返回 Skill 列表
extension
分类: 其它无需 API Key

OpenDao 老子智能体

老子智能体(李耳)— 基于RAG的《道德经》问答系统,使用LangChain+Chroma向量库实现检索增强生成,以老子身份回应道家思想及《道德经》相关问题。支持多版本原文对比、主题导航、对话记忆。触发关键词:老子、道德经、道家、请问老子、老子说、李耳。

person作者: aaroncxxxhubclawhub

老子智能体 SKILL

基于 LangChain + Chroma 的 RAG 问答系统,以春秋时期思想家老子(李耳)的身份回答问题。

两套方案

本项目提供两个独立入口,共享同一套知识库,但使用不同的模型:

| | OpenAI 版 | 免费版 | |---|---|---| | 入口 | scripts/laozi_agent.py | app.py | | Embedding | text-embedding-3-large | BAAI/bge-base-zh-v1.5(本地) | | LLM | gpt-4o | Qwen/Qwen2.5-72B-Instruct | | 需要 API Key | ✅ OPENAI_API_KEY | ❌ 无需 | | 界面 | 命令行 | Gradio Web | | Temperature | 0.1 | 0.3 |

前置依赖

# 安装全部依赖(两个版本通用)
pip install -r requirements.txt

# 或按需安装:
# OpenAI 版只需:
pip install langchain langchain-openai langchain-chroma chromadb

# 免费版只需:
pip install langchain langchain-community langchain-chroma chromadb sentence-transformers huggingface_hub gradio

快速启动

方案一:OpenAI 版(命令行,效果更好)

export OPENAI_API_KEY="sk-xxx"
python3 scripts/laozi_agent.py

方案二:免费版(Web 界面,无需 API Key)

python3 app.py
# 浏览器打开 http://localhost:7860

核心功能

1. 问答 (laozi_skill)

以老子身份回答问题,引用《道德经》原文,返回引用来源。

from scripts.laozi_agent import laozi_skill
result = laozi_skill("什么是道?")
# result["answer"] — 老子的回答
# result["sources"] — 引用来源列表

2. 多版本对比 (compare_versions)

对比同一章节的不同版本原文(郭店楚简、马王堆帛书、王弼注本等)。

from scripts.laozi_agent import compare_versions
versions = compare_versions(1)  # 对比第1章

3. 主题导航 (get_topics / get_topic_content)

获取老子思想主要主题及相关内容。

from scripts.laozi_agent import get_topics, get_topic_content
topics = get_topics()
content = get_topic_content("道论")

知识库结构

知识库目录 ./laozi_knowledge_base/,向量集合名 laozi_collection

文档元数据字段:

  • type — "原文" / "注释" / "研究"
  • version — 版本名(郭店楚简本、马王堆帛书甲本 等)
  • chapter — 章节号
  • topic — 主题标签(道论、德论 等)
  • title — 书名/篇名
  • page — 页码

详细书单见 references/knowledge_base_booklist.md

配置项

两个入口均可通过环境变量覆盖默认配置:

| 环境变量 | OpenAI 版默认 | 免费版默认 | 说明 | |---|---|---|---| | LAOZI_EMBEDDING_MODEL | text-embedding-3-large | BAAI/bge-base-zh-v1.5 | 向量模型 | | LAOZI_LLM_MODEL | gpt-4o | Qwen/Qwen2.5-72B-Instruct | 生成模型 | | LAOZI_TEMPERATURE | 0.1 | 0.3 | 温度(越低越严谨) | | LAOZI_RETRIEVAL_K | 5 | 5 | 返回文档数 | | LAOZI_FETCH_K | 20 | 20 | MMR 候选池大小 | | LAOZI_PERSIST_DIR | ./laozi_knowledge_base | ./laozi_knowledge_base | 向量库目录 | | LAOZI_COLLECTION | laozi_collection | laozi_collection | 集合名 |

准确性保障

  • 低温度 减少幻觉(OpenAI 版 0.1,免费版 0.3)
  • MMR 检索 兼顾相关性与多样性
  • 强制引用原文 — Prompt 要求先引原文再解释
  • 未知就说不知 — 超出范围回答"吾不知也"
  • 禁止编造 — 严禁无上下文支持的内容

源码与资源

| 平台 | 链接 | 说明 | |---|---|---| | GitLab(主仓库) | https://gitlab.scnet.cn:9002/space/aaroncxxx/opendao | 源码、Issue、CI/CD | | GitHub(镜像) | https://github.com/aaroncxxx/OpenDao-LaoZi | 国内加速镜像 | | HuggingFace(模型) | https://hf-mirror.com/aaroncxxx/OpenDao-LaoZi | 源文档 + 模型资源(国内镜像) |

注意事项

  1. 严格区分道家(哲学)与道教(宗教),不涉及神仙体系
  2. 坚持学术中立,避免过度解读
  3. 有争议问题说明不同学者观点
  4. 保持老子本人的谦逊态度