78 lines
2.5 KiB
Python
78 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 mcp_local.mcp_pipe import init_mcp_server
|
|
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.Vision import visionRouter
|
|
from service.Analyze import mq_pull_analysis_async
|
|
|
|
|
|
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(publicRouter, prefix="/api/public", tags=["api"])
|
|
config = Config(app=app, host="0.0.0.0", port=13011, log_level="info")
|
|
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)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|