- 新增 SocialImageAgentService 支持朋友圈/聊天截图解析,提供图片线索提取与图谱问答建议
- 扩展 LLMService 支持多模型配置(意图分类、图片模型)与流式响应,增加思考模式控制
- 新增 /intent/classify 端点用于轻量意图分类(问答/导入/混合)以节省 token
- 新增 /tasks/{taskId} 与 /tasks/{taskId}/retry 端点用于流式任务状态查询与重试
- 前端 Dashboard 扩展人物详情显示(年龄标签、出生日期、别名、关系置信度等)
- 前端导入流程增加任务 ID 追踪与质量回放信息展示
61 lines
2.0 KiB
JavaScript
61 lines
2.0 KiB
JavaScript
import Fastify from "fastify";
|
|
import cors from "@fastify/cors";
|
|
import swagger from "@fastify/swagger";
|
|
import swaggerUi from "@fastify/swagger-ui";
|
|
import { env } from "./config/env.js";
|
|
import { createClients } from "./config/clients.js";
|
|
import { createSwaggerSpec } from "./config/swagger.js";
|
|
import { EmbeddingService, RerankService, GraphRagService, LLMService, MultiAgentService, SocialImageAgentService } from "./services/index.js";
|
|
import { createGraphRagController } from "./controllers/index.js";
|
|
import { registerRoutes } from "./routes/index.js";
|
|
|
|
/**
|
|
* 创建 Fastify 应用并完成依赖装配与路由注册。
|
|
*/
|
|
export const createServer = async () => {
|
|
const app = Fastify({ logger: true });
|
|
|
|
await app.register(cors, {
|
|
origin: [env.WEBUI_URL, "http://localhost:8080", "http://127.0.0.1:8080", "http://localhost:5174", "http://127.0.0.1:5174", "http://localhost:5173", "http://127.0.0.1:5173"],
|
|
methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
|
|
allowedHeaders: ["Content-Type", "Authorization"]
|
|
});
|
|
|
|
await app.register(swagger, {
|
|
mode: "static",
|
|
specification: {
|
|
document: createSwaggerSpec(env)
|
|
}
|
|
});
|
|
await app.register(swaggerUi, {
|
|
routePrefix: "/api-docs"
|
|
});
|
|
const { neo4jDriver, qdrantClient } = createClients(env);
|
|
const embeddingService = new EmbeddingService(env);
|
|
const rerankService = new RerankService(env);
|
|
const llmService = new LLMService(env);
|
|
const socialImageAgentService = new SocialImageAgentService({ llmService });
|
|
const service = new GraphRagService({
|
|
driver: neo4jDriver,
|
|
qdrantClient,
|
|
embeddingService,
|
|
rerankService,
|
|
llmService,
|
|
socialImageAgentService,
|
|
env
|
|
});
|
|
const multiAgentService = new MultiAgentService({
|
|
llmService,
|
|
logger: app.log
|
|
});
|
|
const controller = createGraphRagController(service, multiAgentService);
|
|
|
|
await registerRoutes(app, controller, env);
|
|
|
|
app.addHook("onClose", async () => {
|
|
await neo4jDriver.close();
|
|
});
|
|
|
|
return { app, env };
|
|
};
|