NAC_Blockchain/docs/deploy-logs/issue69-chat-knowledge-base.md

138 lines
4.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Issue #69 部署日志 — NAC 公链知识库问答系统
**日期**2026-02-28
**执行人**NAC_AI AI
**状态**:✅ 100% 完成
---
## 一、任务概述
构建面向所有 NAC 公链用户的公开知识库问答系统,基于 CNNL+RAG 自主推理引擎(零外部 LLM 依赖)。
---
## 二、已完成工作
### 2.1 CNNL+RAG 自主推理引擎
**文件**`/opt/nac/services/nac-admin/server/nacInferenceEngine.ts`
核心能力:
- 意图识别7 种意图:合规查询/技术问题/资产上链/XTZH/Charter/CBPP/通用)
- 关键词提取NAC 专业术语词典)
- MongoDB RAG 检索(正则匹配 + 全文检索双策略)
- 结构化回答生成(模板化,无需外部 LLM
- 支持 7 种语言(中/英/阿/日/韩/法/俄)
- 处理耗时 < 500ms
**修复问题**
- `query.match is not a function`参数类型不匹配对象 vs 字符串已修复
- `retrieveComplianceRules` 调用方式错误已修复
- `formatRule` 函数字段名错误`content` `description``translations.zh` `descriptionI18n.zh`已修复
### 2.2 公开问答 API
**路由**`publicAsk`无需登录的 publicProcedure
| 端点 | 方法 | 功能 |
|------|------|------|
| `publicAsk.query` | mutation | 提交问题返回推理结果 |
| `publicAsk.hotQuestions` | query | 获取热门问题列表7 种语言 |
| `publicAsk.stats` | query | 获取知识库统计规则数/管辖区/语言数 |
**修复问题**
- `stats` 查询条件 `isActive: true` `status: "active"`数据库实际字段
### 2.3 MongoDB 索引优化
| 集合 | 索引类型 | 字段 |
|------|---------|------|
| `compliance_rules` | 全文索引 | `ruleName` + `description` |
| `agent_conversations` | TTL 索引 | `createdAt`90天过期 |
| `agent_messages` | 普通索引 | `conversationId` |
### 2.4 对话历史持久化
已确认工作正常
- `agent_conversations`1 条记录首次测试对话
- `agent_messages`2 条记录问题 + 回答
### 2.5 chat.newassetchain.io 公开问答网站
**技术栈**React 18 + Vite + CSS无外部字体/CDN 依赖
**功能**
- 左侧知识库统计面板合规规则 35 / 管辖区 6 / 支持语言 7
- 热门问题快速入口8 个问题7 种语言
- 对话式问答界面
- 引用来源显示显示使用的合规规则
- 相关问题推荐
- 多语言切换//////
- 响应式设计移动端适配
**CORS 配置**admin.newassetchain.io nginx 已添加允许 chat.newassetchain.io 的跨域头
---
## 三、服务验证
| 服务 | 地址 | HTTP 状态 | 测试结果 |
|------|------|-----------|---------|
| 公开问答网站 | https://chat.newassetchain.io | 200 | 正常 |
| 公开问答 API | https://admin.newassetchain.io/api/trpc/publicAsk.query | 200 | 置信度 85% |
| 知识库统计 | https://admin.newassetchain.io/api/trpc/publicAsk.stats | 200 | ruleCount: 35 |
| 热门问题 | https://admin.newassetchain.io/api/trpc/publicAsk.hotQuestions | 200 | 8 个问题 |
---
## 四、代码仓库
| 仓库 | 地址 | 提交数 |
|------|------|--------|
| nac-chat | https://git.newassetchain.io/nacadmin/nac-chat | 1 次提交 |
| NAC_Blockchain | https://git.newassetchain.io/nacadmin/NAC_Blockchain | 已更新 |
---
## 五、管理员账号
| 系统 | 用户名 | 密码 |
|------|--------|------|
| admin.newassetchain.io | admin@newassetchain.io | NACAdmin2026! |
| Gitea | nacadmin | NACadmin2026! |
| 服务器 SSH | root | XKUigTFMJXhH |
| 宝塔面板 | cproot | vajngkvf |
| MongoDB | root | idP0ZaRGyLsTUA3a |
---
## 六、架构说明
```
用户问题chat.newassetchain.io
↓ HTTPS POST
publicAsk.query APIadmin.newassetchain.io
nacInferenceEngine.ts
├── 意图识别
├── 关键词提取NAC 专业词典)
├── RAG 检索MongoDB compliance_rules
│ ├── 正则匹配(主策略)
│ └── $text 全文检索(辅助策略)
└── 模板化回答生成
结构化响应answer + confidence + sources + suggestions
```
**零外部 LLM 依赖**所有推理在 NAC 私有服务器上完成数据不出境
---
## 七、后续建议
1. **扩充知识库**将白皮书内容Charter/CNNL/CBPP/XTZH添加到 compliance_rules 集合
2. **多语言规则**为每条规则添加英文/阿拉伯文翻译
3. **问答日志分析**定期分析用户问题补充知识库盲点
4. **Charter 语法文档** chat 页面添加 Charter 语法速查卡