Files
demo2-qwen/main.py

78 lines
1.7 KiB
Python
Raw Normal View History

2026-03-04 13:56:08 +08:00
"""FastAPI 应用主文件"""
import logging
2026-03-05 15:39:50 +08:00
import asyncio
2026-03-04 13:56:08 +08:00
2026-03-05 15:22:21 +08:00
from fastapi import FastAPI, Request
2026-03-04 13:56:08 +08:00
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from app.agents import orchestrate_agents
from app.config import get_settings
# 初始化日志
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# 初始化设置
settings = get_settings()
# 创建 FastAPI 应用
app = FastAPI(
title=settings.project_name,
version=settings.project_version,
debug=settings.fastapi_debug,
)
# 添加 CORS 中间件
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
class FullWorkflowResponse(BaseModel):
"""完整工作流响应"""
status: str = "success"
@app.post("/workflow/full", response_model=FullWorkflowResponse)
2026-03-05 15:22:21 +08:00
async def full_workflow(request: Request):
2026-03-04 13:56:08 +08:00
try:
2026-03-05 15:22:21 +08:00
body_bytes = await request.body()
message = body_bytes.decode('utf-8')
logger.info(f"开始处理需求: {message}")
2026-03-04 13:56:08 +08:00
# 调用编排函数执行三个Agent的工作流
2026-03-05 15:39:50 +08:00
asyncio.create_task( orchestrate_agents(message))
2026-03-04 13:56:08 +08:00
# 构建响应
response = FullWorkflowResponse(
status="success"
)
return response
except Exception as e:
logger.error(f"处理需求时出错: {str(e)}", exc_info=True)
return {
"error": str(e),
"status": "error"
}
if __name__ == "__main__":
import uvicorn
uvicorn.run(
app,
host=settings.fastapi_host,
port=settings.fastapi_port,
log_level="info",
)