first commit

This commit is contained in:
闫旭隆
2025-10-17 09:31:28 +08:00
commit 4698145045
589 changed files with 196795 additions and 0 deletions

View File

@ -0,0 +1,104 @@
# Graph-RAG-Agent 集成说明
## 修改概述
本次修改将 yundage-backserver-test 前端从调用原有的 Java 后端localhost:8080改为调用 graph-rag-agent 的 FastAPI 后端localhost:8000使用 naive_search_tool 进行问答。
## 主要修改
### 1. chat-service.js 修改
修改文件:`/services/api/chat-service.js`
#### 基础配置修改
- **服务地址**:从 `http://localhost:8080` 改为 `http://localhost:8000`
- **会话管理**添加了会话ID生成功能因为 graph-rag-agent 需要 session_id
#### API 接口映射
| 原接口 (Java) | 新接口 (graph-rag-agent) | 说明 |
|--------------|-------------------------|------|
| POST `/qa/ask` | POST `/chat` | 同步问答接口 |
| POST `/qa/ask/stream` | POST `/chat/stream` | 流式问答接口 |
| GET `/qa/conversations` | 本地存储 | graph-rag-agent 无此接口,改为从 localStorage 读取 |
| GET `/qa/conversations/{id}/messages` | 本地存储 | 同上 |
#### 请求参数转换
**原请求格式**
```json
{
"mode": "chat",
"conversationId": null,
"message": "用户消息"
}
```
**新请求格式**
```json
{
"message": "用户消息",
"session_id": "生成的会话ID",
"debug": false,
"agent_type": "naive_rag_agent",
"use_deeper_tool": false,
"show_thinking": false
}
```
#### 响应格式适配
由于前端期望特定的响应格式,在 `sendMessage` 方法中进行了格式转换:
```javascript
// 转换响应格式以适配前端
return {
code: 200,
data: {
conversationId: messageData.conversationId || this.sessionId,
messageId: Date.now().toString(),
content: response.answer,
reference: response.reference,
kg_data: response.kg_data
},
message: '成功'
};
```
#### 流式响应处理
graph-rag-agent 的流式响应格式与原后端不同,主要修改:
- 解析 SSE 数据格式从 `event:` + `data:` 改为直接解析 `data:`
- 处理不同的状态类型:`start``token``done``error`
- 累积完整内容并在完成时返回
### 2. 新增功能
- **generateSessionId()**生成唯一的会话ID
- **clearConversation()**:调用 graph-rag-agent 的 `/clear` 接口清除会话历史
### 3. 本地存储集成
由于 graph-rag-agent 不提供会话列表和历史消息接口,修改为:
-`window.chatManager` 读取本地存储的会话数据
- 保持与原有前端逻辑的兼容性
## 使用说明
1. 确保 graph-rag-agent 服务运行在 `http://localhost:8000`
2. 确保 Neo4j 数据库已启动并包含必要的数据
3. 前端会自动使用 `naive_rag_agent` 进行问答
4. 会话历史保存在浏览器本地存储中
## 注意事项
1. **认证**graph-rag-agent 可能不需要 JWT 认证,但代码中保留了 Authorization header 以备后用
2. **会话管理**:每个用户会生成唯一的 session_id格式为 `{username}_{timestamp}_{random}`
3. **错误处理**:保留了原有的错误处理逻辑,包括认证失败跳转等
4. **深度搜索**:当前配置使用 naive_search_tool如需使用 deep_research_tool可修改 `agent_type` 参数
## 后续优化建议
1. 可以根据用户选择动态切换 agent_typenaive_rag_agent / deep_research_agent
2. 可以添加配置项控制是否显示思考过程show_thinking
3. 可以实现真正的会话持久化,而不仅仅依赖浏览器本地存储