Spaces:
Sleeping
Sleeping
import asyncio | |
import os | |
import uuid | |
from dotenv import load_dotenv | |
from aworld import trace | |
from examples.debate.agent.debate_agent import DebateAgent | |
from examples.debate.agent.main import DebateArena | |
from examples.debate.agent.moderator_agent import ModeratorAgent | |
from examples.debate.agent.prompts import generate_opinions_prompt | |
from aworld.config import AgentConfig | |
from aworld.output import WorkSpace | |
if __name__ == '__main__': | |
load_dotenv() | |
trace.configure() | |
base_config = { | |
"llm_provider": "openai", | |
"llm_model_name": os.environ['LLM_MODEL_NAME'], | |
"llm_base_url": os.environ['LLM_BASE_URL'], | |
"llm_api_key": os.environ['LLM_API_KEY'], | |
} | |
agentConfig = AgentConfig.model_validate(base_config) | |
agent1 = DebateAgent(name="affirmativeSpeaker", stance="affirmative", conf=AgentConfig.model_validate(base_config)) | |
agent2 = DebateAgent(name="negativeSpeaker", stance="negative", conf=AgentConfig.model_validate(base_config)) | |
moderator_agent = ModeratorAgent( | |
conf=AgentConfig.model_validate(base_config | { | |
"name": "moderator_agent", | |
"agent_prompt": generate_opinions_prompt | |
}) | |
) | |
debate_arena = DebateArena(affirmative_speaker=agent1, negative_speaker=agent2, moderator=moderator_agent, | |
workspace=WorkSpace.from_local_storages(str(uuid.uuid4()))) | |
async def start_debate(debate_arena, topic, rounds): | |
speeches = debate_arena.async_run(topic=topic, rounds=rounds) | |
async for speech in speeches: | |
if speech.parts: | |
async for part in speech.parts: | |
print(part.content, flush=True, end="") | |
print(f"{speech.name}: {speech.content}") | |
asyncio.run(start_debate(debate_arena, topic="张居正", rounds=3)) | |