Spaces:
Paused
Paused
| from dotenv import load_dotenv | |
| import sys | |
| import os | |
| import uuid | |
| sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) | |
| from multi_agents.agents import ChiefEditorAgent | |
| import asyncio | |
| import json | |
| from gpt_researcher.utils.enum import Tone | |
| # Run with LangSmith if API key is set | |
| if os.environ.get("LANGCHAIN_API_KEY"): | |
| os.environ["LANGCHAIN_TRACING_V2"] = "true" | |
| load_dotenv() | |
| def open_task(): | |
| # Get the directory of the current script | |
| current_dir = os.path.dirname(os.path.abspath(__file__)) | |
| # Construct the absolute path to task.json | |
| task_json_path = os.path.join(current_dir, 'task.json') | |
| with open(task_json_path, 'r') as f: | |
| task = json.load(f) | |
| if not task: | |
| raise Exception("No task found. Please ensure a valid task.json file is present in the multi_agents directory and contains the necessary task information.") | |
| return task | |
| async def run_research_task(query, websocket=None, stream_output=None, tone=Tone.Objective, headers=None): | |
| task = open_task() | |
| task["query"] = query | |
| chief_editor = ChiefEditorAgent(task, websocket, stream_output, tone, headers) | |
| research_report = await chief_editor.run_research_task() | |
| if websocket and stream_output: | |
| await stream_output("logs", "research_report", research_report, websocket) | |
| return research_report | |
| async def main(): | |
| task = open_task() | |
| chief_editor = ChiefEditorAgent(task) | |
| research_report = await chief_editor.run_research_task(task_id=uuid.uuid4()) | |
| return research_report | |
| if __name__ == "__main__": | |
| asyncio.run(main()) |