Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enterprise Knowledge Agent

一个面向企业知识问答的通用 RAG Agent。它不在后端维护固定意图、槽位、实体别名或行业关键词;语义理解交给模型,后端只负责通用的输入边界、候选 ID、证据来源、数字一致性和错误处理。

核心流程

用户问题与聊天历史
  -> 分析问题(上下文处理 + AI问题改写)
  -> 知识检索(混合检索 + RRF粗排 + AI精排 + 证据决策)
  -> 组织答案(证据校验 + 未覆盖/追问分支 + 答案和图表 + 回答校验)
  -> 返回已验证回答

问答流程由三个高内聚 Application Service 实现,LangGraph 只负责编排三个稳定大节点。每个大节点把内部小节点作为受控执行详情返回前端。知识上传、删除和动态提示由独立的 KnowledgeManagementService 负责。

技术栈

  • 前端:React、TypeScript、Vite
  • API:FastAPI、Pydantic
  • 编排:LangGraph
  • 语言模型:DeepSeek Chat Completions
  • 权威知识库:MySQL
  • 全文索引:Elasticsearch BM25
  • 向量索引:PostgreSQL + pgvector
  • Embedding:本地 Qwen3-Embedding-0.6B
  • 文档解析:openpyxl、python-docx

数据边界

  • knowledge_documents:上传来源和文档级元数据
  • knowledge_chunks:可检索原文知识块
  • knowledge_assets:图片标题、路径、OCR/说明元数据
  • knowledge_facts:模型从原文抽取并经后端原文校验的可选通用事实
  • knowledge_vector_index:chunk、fact、asset 的语义向量索引,不是事实来源
  • Elasticsearch enterprise_knowledge:可从MySQL重建的BM25全文索引
  • knowledge/uploads:Word、Excel 原文件
  • knowledge/assets:图片原文件

Elasticsearch与pgvector独立召回,混合检索阶段严格使用配置的Top-K,并保留原始 BM25分数、向量余弦相似度和各自排名。查询过程不再全量同步索引;上传和删除知识时 负责更新索引。应用层粗排序只读取排名执行RRF,不直接相加两种量纲不同的原始分数。 所有向量Top-K都会进入RRF,不再根据相似度阈值提前删除知识。

RRF融合分只决定候选先后,不代表真实相关度,也不再作为删除门槛。同一父知识的文档 和事实重复表示在粗排阶段合并,最多30条进入现有DeepSeek精排;精排逻辑本次未调整。

前端执行路径按文档、事实、图片三类证据展示混合检索结果。同一知识的全文排名/BM25 分数与向量排名/相似度并排显示;独立 Top-K 中未召回的一侧明确显示“未召回”。

本地启动

.\.venv\Scripts\python.exe -m uvicorn app.main:app --app-dir backend --host 127.0.0.1 --port 8000

另开一个 PowerShell:

cd frontend
npm run dev

访问:

  • Agent:http://127.0.0.1:5173/
  • 独立架构查看器:http://127.0.0.1:5173/architecture/
  • API 健康检查:http://127.0.0.1:8000/api/health

文档

验证

.\.venv\Scripts\python.exe -m pytest -q
cd frontend
npm run build

项目公开仓库不包含个人、客户或版权受限的知识文件。接入自己的知识库后, 可以在本地另行配置真实依赖回归场景,再验证多轮问答、图表续问和知识库外拒答。

开源说明

  • 本项目使用 MIT License,详见 LICENSE
  • backend/.env、上传文档、图片、日志、虚拟环境和本地评测数据不会进入仓库。
  • 使用前请复制 backend/.env.examplebackend/.env,再填写自己的模型和数据库配置。
  • 不要把企业内部知识、客户资料或任何密钥提交到公开仓库。

About

Enterprise Knowledge Agent(企业知识智能体):基于 RAG(检索增强生成)、LangGraph(智能体编排)、DeepSeek(大语言模型)、Elasticsearch(全文检索)和 pgvector(向量检索)的企业知识问答系统,支持文档上传、混合检索、精排序、证据校验、图表回答与执行路径。

Topics

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages