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)) | |