feat: 初始化 OnceLove GraphRAG 项目基础架构

- 添加完整的项目结构,包括前端(Vue3 + Vite)、后端(Fastify)和基础设施配置
- 实现核心 GraphRAG 服务,集成 Neo4j 图数据库和 Qdrant 向量数据库
- 添加用户认证系统和管理员登录界面
- 提供 Docker 容器化部署方案和开发环境配置
- 包含项目文档、API 文档(Swagger)和测试脚本
This commit is contained in:
KOSHM-Pig
2026-03-23 00:00:13 +08:00
commit ec21df7aa6
50 changed files with 7459 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
/**
* 统一服务层异常处理并输出标准响应结构。
*/
const sendServiceResult = async (reply, action) => {
try {
const data = await action();
return reply.send(data);
} catch (error) {
const statusCode = Number(error?.statusCode) || 500;
return reply.code(statusCode).send({
ok: false,
error: error?.message ?? "internal error"
});
}
};
/**
* GraphRAG 控制器:负责请求转发与响应封装。
*/
export const createGraphRagController = (service) => ({
health: async (_request, reply) => reply.send({ ok: true }),
ready: async (_request, reply) => sendServiceResult(reply, () => service.ready()),
bootstrap: async (_request, reply) => sendServiceResult(reply, () => service.bootstrap()),
getGraphStats: async (_request, reply) => sendServiceResult(reply, () => service.getGraphStats()),
ingest: async (request, reply) => sendServiceResult(reply, () => service.ingest(request.body)),
queryTimeline: async (request, reply) =>
sendServiceResult(reply, () => service.queryTimeline(request.body)),
queryGraphRag: async (request, reply) =>
sendServiceResult(reply, () => service.queryGraphRag(request.body)),
analyzeAndIngest: async (request, reply) =>
sendServiceResult(reply, () => service.analyzeAndIngest(request.body.text))
});