WikiChat

让聊天机器人不再胡说八道,回答自带来源引用

WikiChat 是一个基于检索增强生成(RAG)的对话助手,旨在解决大语言模型在对话中产生的幻觉问题。它通过从维基百科等语料库中实时检索相关信息,并结合多步骤的检索、过滤和生成流程,确保回答的准确性和事实性。核心能力包括:对用户查询进行意图解析、从语料库中检索最相关的段落、对检索内容进行事实核查、最后生成带有引用来源的回答。WikiChat 在 EMNLP 2023 上发表,提供了完整的 Python 实现,支持自定义语料库,可轻松集成到现有应用中。它特别适合需要高事实准确性的场景,如知识问答、研究辅助和客服系统。

开源 unknown 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1618
维护状态 低维护
是否开源 是
定价模式 unknown

项目数据

分类对话助手
开发团队stanford-oval
所属国家
定价模式unknown
价格说明定价信息待确认
访问状态
是否开源是
开源协议Apache-2.0
主要语言Python
技术栈/模型chatbot,emnlp2023,factuality,llm,natural-language-processing,nlp,rag
GitHub 星标★ 1618
30天Star增速
HF 下载量
上线时间2023-10-19 00:00:00
最近更新2026-09-16 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数1

使用教程

难度:进阶 约 30 分钟 部署方式:本地安装 7 步

环境要求

  • Python 3.11(由 pixi.toml 中的 pixi 环境提供,含 pip、gcc、g++、make 及所需 Python 包)
  • Pixi 包管理工具(https://pixi.sh/latest/#installation 安装)
  • Docker(用于运行 Redis Stack 及检索用向量数据库,如 Text Embedding Inference 和 Qdrant)
  • 至少一个 LLM 提供方的 API 密钥(支持 OpenAI、Azure、Anthropic、Mistral、HuggingFace、Together.ai、G

安装与启动步骤

  1. 1克隆仓库

    把 WikiChat 源码下载到本地并进入项目目录,后续所有命令都在该目录内执行。

    git clone https://github.com/stanford-oval/WikiChat.git
    cd WikiChat
  2. 2创建并激活 Pixi 环境

    先按 pixi 官网说明安装 Pixi,然后在仓库根目录创建并进入项目环境,之后所有命令都保持该环境激活。

    pixi shell
  3. 3下载 spaCy 模型

    spaCy 仅用于用户模拟功能,按 README 要求安装英文小模型。

    python -m spacy download en_core_web_sm
  4. 4安装 Docker

    WikiChat 依赖 Docker 运行 Redis Stack 和向量检索服务。Ubuntu 可尝试用内置命令安装,其他系统请按 Docker 官网说明安装。

    inv install-docker
  5. 5配置 LLM 与 API 密钥

    在 API_KEYS 中填入所选 LLM/服务的密钥,并在 llm_config 中配置要使用的模型,供后续 --engine 参数引用。

  6. 6终端运行 WikiChat

    用 invoke 启动终端对话,--engine 可换成 llm_config 中配置的任意模型名,如 mistral-large、claude-sonnet-35、local。

    inv demo --engine gpt-4o
  7. 7可选:多用户 Web 部署

    启动 Chainlit 前后端,会话存入 Cosmos DB;前端默认在 5001 端口访问。

    inv chainlit --backend-port 5001

关键配置

配置项必填说明示例
API_KEYS是集中存放各服务密钥,如 LLM、嵌入模型与数据库的密钥EMBEDDING_API_KEY=sk-xxxxxxxx
llm_config是配置可用的 LLM 引擎名称,供 inv demo --engine 调用gpt-4o
COSMOS_CONNECTION_STRING否多用户部署时用于存储对话的 Cosmos DB 连接串,写在 API_KEYS 中COSMOS_CONNECTION_STRING=your-cosmos-connection-string

如何确认成功

终端能进入 WikiChat 对话并返回带引用来源的回答;若用 Chainlit,浏览器可打开 5001 端口的聊天界面。

常见问题

Q:运行后提示 Error: Redis lookup failed 怎么办?

A:说明 Redis 未正确启动。查看 Redis Docker 容器日志排查,或按 Redis 官方文档手动安装 Redis。

Q:有哪些可用命令和参数?

A:执行 invoke --list(简写 inv -l)列出全部命令,用 inv [命令名] --help 或 inv demo --help 查看具体参数。

Q:怎么换成别的模型?

A:把 --engine 的值改成 llm_config 中已配置的引擎名,例如 mistral-large、claude-sonnet-35 或 local。

Q:想用自己的文档做检索源怎么办?

A:可自建索引:把文档预处理成 JSONL 后用 inv index-collection --collection-path --collection-name <集合名> 建立索引。

Q:能跑蒸馏小模型降低延迟和成本吗?

A:WikiChat>=2.0 与已发布的微调 LLaMA-2 检查点不兼容,需改用 v1.0 才能运行蒸馏模型。

注意事项

  • 默认检索源是免费但限速的维基百科搜索 API,支持 25 种语言,高频调用可能受限。
  • 仓库默认通过 Docker 使用 Redis Stack,请确认 Docker 服务已启动。
  • pixi shell 激活的环境需在所有后续命令中保持有效。
  • 多用户部署的 Chainlit 前端与 Cosmos DB 逻辑写在 backend_server.py 和 database.py,换成其他数据库或前端需自行修改。

核心亮点

  • 通过检索+过滤机制,显著降低大模型幻觉,回答更可靠
  • 回答附带引用来源,用户可追溯信息出处,增强可信度
  • 基于 EMNLP 论文,有学术背书,且代码开源可定制

不足之处

  • 依赖外部语料库,检索延迟可能影响实时对话体验
  • 文档/社区待观察

适用场景

  • 企业知识库问答,确保回答基于内部文档
  • 学术研究辅助,快速获取带引用的准确信息
  • 新闻或事实核查类聊天机器人,避免传播错误信息

替代项目

RAGFlow、Haystack、LlamaIndex

项目介绍

WikiChat 是搜索知识领域的开源项目,由 stanford-oval 开发,2023 年首次发布。

在全站 13,014 个收录项目中,它的 GitHub 星标数(1,618)位列前 30%,在搜索知识分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-16。从国内网络环境看,可直接访问。

它主要面向的使用场景是:企业知识库问答,确保回答基于内部文档。同类可对比的替代方案包括 RAGFlow、Haystack、LlamaIndex。

上一篇:autoflow

下一篇:IncarnaMind

同类项目推荐

firecrawl 开源

网页抓取像喝水一样简单,开发者省下整周加班

The web data API to search, scrape, and interact at scale.

★ 183325 2026-08-09
contoso-chat 开源

一键跑通 Azure RAG 应用,从代码到评估部署全流程

This sample has the full End2End process of creating RAG application with Prompty an···

★ 766 2026-08-09
graphify 开源

整个代码库画成一张图,找问题一眼定位

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable k···

★ 120493 2026-08-09
ragflow 开源

让大模型用上你的私有知识,搭建可靠的企业级RAG应用

RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fu···

★ 91170 2026-08-09