Files
AILab/bbit_ai/app/app.py
T
2025-12-08 18:11:48 +08:00

79 lines
2.5 KiB
Python

import asyncio
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from uvicorn import Config, Server
from config.yolo import YOLOSingleton
from routers.Bot import botRouter
from routers.Chat import chatRouter
from routers.Datasource import reportDataRouter
from routers.Knowledge import knowledgeRouter
from routers.Public import publicRouter
from routers.RabbitMQ import rqRouter
from routers.Report import reportRouter
from routers.Service import serviceRouter
from routers.System import systemRouter
from routers.Vision import visionRouter
async def ai_lab():
app = FastAPI(title="BBIT_AI")
origins = [
"http://localhost:8091", # Vite dev 默认端口
"https://ai.ronsunny.cn:8090",
"*", # ⚠️ 生产环境不要用
]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"], # 必须包含 OPTIONS、GET 等
allow_headers=["*"],
)
routers = [
chatRouter,
reportRouter,
knowledgeRouter,
reportDataRouter,
serviceRouter,
botRouter,
rqRouter,
]
for r in routers:
app.include_router(r, prefix="/llm", tags=["llm"])
app.include_router(visionRouter, prefix="/cv", tags=["cv"])
app.include_router(systemRouter, prefix="/system", tags=["system"])
app.include_router(publicRouter, prefix="/api/public", tags=["api"])
config = Config(app=app, host="0.0.0.0", port=13011, log_level="debug")
server = Server(config)
await server.serve()
async def main():
# 初始化模型
YOLOSingleton.init_model()
# 主干AI实验室FastAPI服务
task_api = asyncio.create_task(ai_lab())
# MCP服务-ailab
# endpoint_url_ai_lab = "wss://ai.ronsunny.cn:8090/aimcp/mcp_endpoint/mcp/?token=TsSP9lBq6Oa1WMkachHoS2TtNt4GKV/Gli24pk5Rjpk%3D"
# endpoint_url_ai_lab = "ws://ce_bot_mcp:8004/mcp_endpoint/mcp/?token=TsSP9lBq6Oa1WMkachHoS2TtNt4GKV/Gli24pk5Rjpk%3D"
# task_mcp1 = asyncio.create_task(init_mcp_server(endpoint_url_ai_lab))
# MCP服务-ql
# endpoint_url_ql = "wss://ai.ronsunny.cn:8090/aimcp/mcp_endpoint/mcp/?token=8ZmCzp7FzsbxwHOg2%2FvBQkxrC3QWJiI%2B4iTfouExinjcT8ZgLwQfFUtgcMInI7St"
# task_mcp2 = asyncio.create_task(init_mcp_server(endpoint_url_ql))
# RabbitMQ服务
# task_mq = asyncio.create_task(mq_pull_analysis_async())
# await asyncio.gather(task_api, task_mcp1, task_mcp2, task_mq)
await asyncio.gather(task_api)
if __name__ == "__main__":
asyncio.run(main())