WikiChat
WikiChat 是一款由斯坦福大学研发的开源项目,旨在解决大型语言模型(LLM)在对话中频繁产生“幻觉”或编造事实的痛点。无论是面对近期发生的新闻事件,还是较为冷门的知识点,传统 AI 聊天机器人往往容易给出错误信息,而 WikiChat 通过引入维基百科作为权威数据源,确保回答的真实可靠。
其核心亮点在于独特的七阶段处理流水线。该系统并非简单地将检索结果丢给模型,而是通过多轮大模型调用,依次执行检索、去噪、证据提取及事实核查等步骤,严格将生成的回答“锚定”在维基百科的真实内容上。这种机制有效过滤了模型自身的臆造,显著提升了回复的准确性。此外,WikiChat 还支持包括英语、法语、德语在内的 25 种语言版本,并提供了从本地部署到多用户云端访问的灵活配置方案。
这款工具非常适合希望构建高可信度问答系统的开发者、从事自然语言处理研究的研究人员,以及对事实准确性有严苛要求的企业用户。对于普通用户而言,它也是一个验证信息真伪、获取可靠知识的强力助手。通过结合检索增强生成(RAG)技术与严谨的核查流程,WikiChat 让 AI 对话真正做到了“言之有据”。
使用场景
某科技媒体编辑正在撰写一篇关于"2024 年诺贝尔物理学奖得主最新研究进展”的深度报道,需要确保文中引用的实验数据和理论细节绝对准确。
没有 WikiChat 时
- 事实性幻觉频发:通用大模型常凭空捏造不存在的实验参数或错误归因研究成果,导致文章出现严重事实错误。
- 时效信息缺失:面对近期发生的获奖新闻,模型因训练数据截止而无法提供最新的研究细节,只能给出模糊或过时的回答。
- 核实成本高昂:编辑必须手动交叉验证模型生成的每一处引用,耗费大量时间查阅原始论文和维基百科,极大拖慢发稿速度。
- 冷门领域失准:在涉及特定物理分支的冷门知识时,模型倾向于“一本正经地胡说八道”,缺乏可靠的知识边界。
使用 WikiChat 后
- 源头事实锚定:WikiChat 强制通过检索维基百科语料库生成回答,彻底消除了模型凭空捏造数据和理论的幻觉问题。
- 实时知识同步:直接调用最新的维基百科条目,能够精准捕捉并解读刚刚更新的诺贝尔奖相关研究动态。
- 可信引用溯源:系统自动基于检索到的真实段落生成回复,编辑可直接信任其内容,无需逐字人工复核,效率提升数倍。
- 专业领域严谨:即使在深奥的物理学细分领域,也能严格依据收录的权威词条作答,确保专业术语和逻辑的准确性。
WikiChat 通过将大模型的生成能力牢牢“锚定”在维基百科的真实数据上,让内容创作者在追求效率的同时不再牺牲信息的真实性。
运行环境要求
- Linux (Ubuntu 20.04 LTS 已测试)
- macOS (可能需排查)
- Windows (仅限 WSL,可能需排查)
- 本地运行 LLM 或创建检索索引时必需
- 创建索引时默认嵌入模型需至少 13GB 显存
- 具体型号未说明,需支持相应显存容量
未说明(但建议本地托管大型搜索索引时使用高性能存储和充足内存)

快速开始
WikiChat
阻止大型语言模型的幻觉
在线演示:
https://wikichat.genie.stanford.edu
https://github.com/user-attachments/assets/3ac856ba-682c-4aed-9271-ce2f6a27cd5e
目录
简介
像ChatGPT和GPT-4这样的大型语言模型聊天机器人经常会出错,尤其是在您寻找的信息比较新(“告诉我关于2024年超级碗的情况”)或涉及不太热门的话题时(“有哪些值得一看的好电影,出自[插入您最喜欢的外国导演]?”)。WikiChat利用维基百科和以下7个阶段的流程来确保其回复内容真实可靠。每个编号阶段都会涉及一次或多次语言模型调用。
更多详情请参阅我们的论文: Sina J. Semnani, Violet Z. Yao*, Heidi C. Zhang*, and Monica S. Lam. 2023. WikiChat:通过基于维基百科的少样本接地来阻止大型语言模型聊天机器人的幻觉。载于计算语言学协会会议成果集:EMNLP 2023,新加坡。计算语言学协会。
🚨 通知
(2025年4月29日)WikiChat 2.1 现已发布!主要更新包括:
- 多语言支持增强:现支持25种不同的维基百科版本(之前为10种),可通过网页和API在 search.genie.stanford.edu/wikipedia_20250320 访问:🇺🇸 英语、🇫🇷 法语、🇩🇪 德语、🇪🇸 西班牙语、🇯🇵 日语、🇷🇺 俄语、🇵🇹 葡萄牙语、🇨🇳 中文、🇮🇹 意大利语、🇸🇦 阿拉伯语、🇮🇷 波斯语、🇵🇱 波兰语、🇳🇱 荷兰语、🇺🇦 乌克兰语、🇮🇱 希伯来语、🇮🇩 印尼语、🇹🇷 土耳其语、🇨🇿 捷克语、🇸🇪 瑞典语、🇰🇷 韩语、🇫🇮 芬兰语、🇻🇳 越南语、🇭🇺 匈牙利语、加泰罗尼亚语、🇹🇭 泰语。
- 信息检索优化:借助最新的 Snowflake Arctic 嵌入模型,检索准确性和速度均有所提升。
- 维基百科预处理改进:使用 Docling 进行预处理。一如既往地,预处理后的维基百科数据可在 HuggingFace 上获取。
- WikiChat 流程优化:
- 在最终回复中添加了内联引用。
- “生成”阶段现在始终与“观点提取”阶段合并,即使在非蒸馏模式下也是如此,从而实现更快、更经济的推理。
- 取消基于日期的重新排序,转而采用基于大语言模型的重新排序。
- 切换至使用 pixi 进行包管理,并使用 loguru 进行日志记录。
(2024年8月22日)WikiChat 2.0 现已发布!主要更新包括:
- 多语言支持:默认从10种不同语言的维基百科中检索信息:🇺🇸 英语、🇨🇳 中文、🇪🇸 西班牙语、🇵🇹 葡萄牙语、🇷🇺 俄语、🇩🇪 德语、🇮🇷 波斯语、🇯🇵 日语、🇫🇷 法语和🇮🇹 意大利语。
- 信息检索优化
- 现在除了文本外,还支持从表格、信息框和列表等结构化数据中检索信息。
- 拥有目前质量最高的公开维基百科预处理脚本。
- 使用最先进的多语言检索模型 BGE-M3。
- 使用 Qdrant 进行可扩展的向量搜索。
- 使用 RankGPT 对搜索结果进行重新排序。
- 免费多语言维基百科搜索API:我们提供高质量、免费(但有限速)的搜索API,用于访问10种维基百科,涵盖超过1.8亿条向量嵌入。
- LLM兼容性扩展:通过 LiteLLM 接口,支持100多种大语言模型。
- 流程优化:可通过合并 WikiChat 的“生成”和“观点提取”阶段,获得更快且更具成本效益的流程。
- LangChain兼容性:完全兼容 LangChain 🦜️🔗。
- 更多功能!
(2024年6月20日)WikiChat荣获2024年维基媒体研究奖!
2024年度< a href="https://twitter.com/Wikimedia?ref_src=twsrc%5Etfw">@Wikimedia研究奖授予“WikiChat:通过少量示例将大型语言模型聊天机器人锚定到维基百科以阻止幻觉”⚡
— Wiki Workshop 2024 (@wikiworkshop) 2024年6月20日
📜 https://t.co/d2M8Qrarkw pic.twitter.com/P2Sh47vkyi(2024年5月16日)我们的后续论文 “🍝 SPAGHETTI:基于检索与语义解析的异构数据源开放域问答” 被 ACL 2024 接收。该论文增加了对表格、信息框和列表等结构化数据的支持。
(2024年1月8日)蒸馏版 LLaMA-2 模型发布。您可以在本地运行这些模型,作为付费API的更便宜、更快速的替代方案。
(2023年12月8日)我们在 EMNLP 2023 上展示了我们的工作。
(2023年10月27日)我们论文的最终定稿现已在 arXiv 上发布。
(2023年10月6日)我们的论文被 EMNLP 2023 接收。
安装说明
安装 WikiChat 包括以下步骤:
- 安装依赖项。
- 配置您选择的大语言模型。WikiChat 支持超过100种大语言模型,包括来自 OpenAI、Azure、Anthropic、Mistral、HuggingFace、Together.ai 和 Groq 的模型。
- 选择信息检索来源。这可以是任何符合 retrieval/retriever_server.py 中定义接口的 HTTP 终端点。我们提供了以下选项的说明和脚本:
- 使用我们提供的25种语言维基百科的免费限速 API。
- 下载并自行托管我们提供的维基百科索引。
- 从您自己的文档中创建并运行新的自定义索引。
- 使用您所需的配置运行 WikiChat。
- 【可选】部署 WikiChat 以供多用户访问。我们提供了部署简单前端和后端的代码,以及连接 Azure Cosmos DB 数据库以存储对话记录的说明。
系统要求
该项目已在 Ubuntu 20.04 LTS (Focal Fossa) 上使用 Python 3.11 进行测试,但应能兼容许多其他 Linux 发行版。如果您计划在 Windows WSL 或 macOS 上使用,或使用不同的 Python 版本,请做好在安装过程中可能需要排查问题的准备。
硬件要求因您的使用目的而异:
- 基本使用:使用 LLM API 和我们的维基百科搜索 API 运行 WikiChat 的硬件要求很低,大多数系统均可运行。
- 本地搜索索引:如果您打算在本地托管搜索索引,请确保有足够的磁盘空间。对于大型索引,检索延迟高度依赖于磁盘速度,因此建议使用 SSD,最好是 NVMe 驱动器。例如,Azure 上的存储优化虚拟机
Standard_L8s_v3就非常适合此用途。 - 本地 LLM:如果您计划使用本地 LLM 运行 WikiChat,则需要 GPU 来承载模型。
- 创建新检索索引:如果您想对某个文档集合建立索引,需要 GPU 将文档嵌入为向量。默认的嵌入模型至少需要 13GB 的 GPU 内存才能运行。
安装依赖
首先,克隆仓库:
git clone https://github.com/stanford-oval/WikiChat.git
cd WikiChat
我们建议使用 pixi.toml 中指定的 pixi 环境。该环境包含 Python 3.11、pip、gcc、g++、make,以及所有所需的 Python 包。
Pixi 是一个跨平台的包管理工具,它是 conda 的更快替代方案。要安装它,请按照 https://pixi.sh/latest/#installation 上的说明进行操作。然后创建并激活 pixi 环境:
pixi shell
python -m spacy download en_core_web_sm # Spacy 仅在用户模拟时需要
默认情况下,此仓库通过 Docker 使用 Redis Stack。
如果运行聊天机器人后出现 Error: Redis lookup failed,很可能是因为 Redis 没有正确设置。请检查 Redis Docker 容器的日志。或者,您可以按照其 官方文档 安装 Redis。
在后续的所有命令中,请保持此环境处于激活状态。
根据您的操作系统,按照 https://docs.docker.com/engine/install/ 上的说明安装 Docker。WikiChat 主要使用 Docker 来创建和提供用于检索的向量数据库,特别是 🤗 Text Embedding Inference 和 Qdrant。在较新的 Ubuntu 版本上,您可以尝试运行 inv install-docker。对于其他操作系统,请遵循 Docker 官网上的说明。
WikiChat 使用 invoke 添加用于各种目的的自定义命令。要查看所有可用命令及其描述,请运行:
invoke --list
或简写形式:
inv -l
如需了解某个特定命令的详细信息,请使用:
inv [命令名称] --help
这些命令实现于 tasks/ 文件夹中。
配置您选择的 LLM
WikiChat 兼容多种 LLM,包括来自 OpenAI、Azure、Anthropic、Mistral、Together.ai 和 Groq 的模型。 您也可以通过 HuggingFace 将许多本地托管的模型与 WikiChat 结合使用。
要配置您的 LLM:
填写
llm_config.yaml中相应的字段。创建一个名为
API_KEYS的文件(已包含在.gitignore中)。在
API_KEYS文件中,设置您想要使用的 LLM 端点的 API 密钥。API 密钥的名称应与您在llm_config.yaml的api_key字段中提供的名称一致。 例如,如果您通过 openai.com 使用 OpenAI 模型,并使用 Mistral 端点,那么您的API_KEYS文件可能如下所示:
# 请用您的 API 密钥填写以下值。确保密钥后面没有多余的空格。
# 此文件的更改会被 git 忽略,因此您可以在开发过程中安全地在此处存储您的密钥。
OPENAI_API_KEY=[您从 https://platform.openai.com/api-keys 获取的 OpenAI API 密钥]
MISTRAL_API_KEY=[您从 https://console.mistral.ai/api-keys/ 获取的 Mistral API 密钥]
请注意,本地托管的模型不需要 API 密钥,但您需要在 api_base 中提供一个兼容 OpenAI 的端点。代码已针对 🤗 Text Generation Inference 端点进行了测试,但您也可以尝试其他类似的端点,如 vLLM、SGLang 等。
配置信息检索
选项 1(默认):使用我们的免费限流 Wikipedia 搜索 API
默认情况下,WikiChat 通过 https://search.genie.stanford.edu/wikipedia_20250320/ 端点从 25 种语言的维基百科中检索信息。如果您只想试用 WikiChat,则无需进行任何修改。
选项 2:构建您自己的索引
构建维基百科索引
以下命令将下载、预处理并索引 库尔德语维基百科 的最新 HTML 转储文件,我们在本示例中使用它是因为其规模相对较小。
inv index-wikipedia-dump --workdir ./workdir --language ku
索引自定义文档
- 将您的数据预处理为一个 JSON Lines 文件(文件扩展名为 .jsonl 或 .jsonl.gz),其中每行包含以下字段:
{"id": "integer", "document_title": "string", "section_title": "string", "content": "string", "block_type": "string", "language": "string", "last_edit_date": "string (optional)", "url": "string (optional)", "num_tokens": "integer (optional)", "block_metadata": "dict (optional)"}
content 应该是您文档的分块文本。我们建议将每个分块控制在嵌入模型分词器的 500 个标记以内。有关分块方法的概述,请参阅 此链接。
block_type 和 language 仅用于在搜索结果中提供过滤功能。如果您不需要它们,可以简单地将其设置为 block_type=text 和 language=en。
脚本会将 document_title > section_title 和 content 输入到嵌入模型中以生成嵌入向量。
有关如何针对维基百科 HTML 转储文件实现此操作的详细信息,请参阅 preprocessing/preprocess_wikipedia_html_dump.py。
- 运行索引命令:
inv index-collection --collection-path <预处理后的 JSONL 文件路径> --collection-name <索引名称>
此命令会为 🤗 文本嵌入推理 启动 Docker 容器(每个可用 GPU 一个)。默认情况下,它使用与 NVIDIA Ampere 80 架构 GPU 兼容的 Docker 镜像,例如 A100。对其他一些 GPU 也提供了支持,但您需要从 可用的 Docker 镜像 中选择合适的镜像。
- (可选)添加 payload 索引
python retrieval/add_payload_index.py
这将启用按 language 或 block_type 进行过滤的查询。请注意,对于大型索引,索引重新可用可能需要几分钟时间。
- 索引完成后,按照选项 2 的方式加载和使用索引。例如:
inv start-retriever --retriever-port <端口号>
curl -X POST 0.0.0.0:5100/<索引名称> -H "Content-Type: application/json" -d '{"query": ["What is GPT-4?", "What is LLaMA-3?"], "num_blocks": 3}'
- 通过传递此检索器的 URL 来启动 WikiChat。例如:
inv demo --retriever-endpoint "http://0.0.0.0:<端口号>/<索引名称>" --corpus_id "您正在使用的语料库的 ID"
corpus_id 参数用于匹配语料库的简短描述,以便提供给 LLM,帮助其判断是否有必要搜索索引。它应指向一个包含语料库简短描述的 Corpus 对象,例如“库尔德语维基百科”或“X 公司的业务文档”。
使用 Azure AI 部署的嵌入模型代替本地模型
在通过 Azure AI 部署了可用的嵌入模型之一后,将您的端点密钥作为 EMBEDDING_API_KEY 添加到 API_KEYS 中。
然后,您可以使用以下命令来索引您的集合:
inv index-collection --collection-path <预处理后的 JSONL 文件路径> --collection-name <索引名称> --embedding-model-name <模型名称> --embedding-model-url https://<部署名称>.<部署区域>.inference.ml.azure.com --embedding-model-port 443
embedding-model-name 应为您在 Azure 上部署的模型名称,例如 Snowflake/snowflake-arctic-embed-l-v2.0。
请注意,Azure 会根据模型和部署硬件施加 batch_size 限制。您有责任设置和拆除 Azure 部署。您的端点 URL 和密钥可以在 Azure 门户的部署详情中找到。
将 Qdrant 索引上传到 🤗 Hub
- 将索引拆分为更小的部分:
tar -cvf - <Qdrant 索引文件夹路径> | pigz -p 14 | split --bytes=10GB --numeric-suffixes=0 --suffix-length=4 - <输出文件夹路径>/qdrant_index.tar.gz.part-
- 上传生成的部分:
python retrieval/upload_folder_to_hf_hub.py --folder_path <输出文件夹路径> --repo_id <🤗 Hub 上的仓库 ID>
在终端中运行 WikiChat
您可以使用类似以下的命令运行不同配置的 WikiChat:
inv demo --engine gpt-4o # engine 可以是 llm_config 中配置的任何值,例如 mistral-large、claude-sonnet-35、local
有关所有可用选项的完整列表,您可以运行 inv demo --help。
【可选】部署 WikiChat 以供多用户访问
此仓库提供了通过 Chainlit 部署基于 Web 的聊天界面,并将用户对话存储到 Cosmos DB 数据库中的代码。
这些分别在 backend_server.py 和 database.py 中实现。如果您想使用其他数据库或前端,需要修改这些文件。在开发阶段,移除对 Cosmos DB 的依赖并直接将对话存储在内存中应该非常简单。
您还可以配置 backend_server.py 中定义的聊天机器人参数,例如使用不同的 LLM 或增减 WikiChat 的阶段。
设置 Cosmos DB
在通过 Azure 创建实例后,获取连接字符串并将该值添加到 API_KEYS 中。
COSMOS_CONNECTION_STRING=[您的 Cosmos DB 连接字符串]
运行 Chainlit
运行此命令将启动后端和前端服务器。然后您可以通过指定的端口(默认为 5001)访问前端。
inv chainlit --backend-port 5001
免费的限速维基百科搜索 API
您可以使用此 API 端点来原型化高质量的 RAG 系统。 完整的规范请参见 https://search.genie.stanford.edu/redoc。
请注意,我们不对该端点提供任何保证,且不适合用于生产环境。
维基百科预处理
我们公开发布了 25 种语言的预处理维基百科数据集。
其他命令
运行蒸馏模型以降低延迟和成本
WikiChat≥2.0 不兼容 发布的微调 LLaMA-2 检查点。请参考 v1.0 来运行蒸馏模型。
模拟对话
为了评估聊天机器人,你可以使用用户模拟器来模拟对话。subset 参数可以是 head、tail 或 recent 中的一个,分别对应 WikiChat 论文中介绍的三个子集。你还可以指定用户的语言(WikiChat 始终以用户使用的语言进行回复)。
该脚本会从对应的 benchmark/topics/{subset}_articles_{language}.json 文件中读取主题(即维基百科标题和文章)。使用 --num-dialogues 来设置要生成的模拟对话数量,使用 --num-turns 来指定每个对话的轮次数。
inv simulate-users --num-dialogues 1 --num-turns 2 --simulation-mode passage --language en --subset head
根据你所使用的引擎不同,这可能需要一些时间。模拟对话和日志文件将保存在 benchmark/simulated_dialogues/ 目录下。你也可以提供上述管道中的任何参数。
你可以通过修改 benchmark/user_simulator.py 文件中的 user_characteristics 来尝试不同的用户特征。
许可证
WikiChat 的代码以及模型和数据均采用 Apache-2.0 许可证发布。
引用
如果你使用了本仓库中的代码或数据,请引用以下论文:
@inproceedings{semnani-etal-2023-wikichat,
title = "{W}iki{C}hat: Stopping the Hallucination of Large Language Model Chatbots by Few-Shot Grounding on {W}ikipedia",
author = "Semnani, Sina and
Yao, Violet and
Zhang, Heidi and
Lam, Monica",
editor = "Bouamor, Houda and
Pino, Juan and
Bali, Kalika",
booktitle = "Findings of the Association for Computational Linguistics: EMNLP 2023",
month = dec,
year = "2023",
address = "Singapore",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2023.findings-emnlp.157",
pages = "2387--2413",
}
@inproceedings{zhang-etal-2024-spaghetti,
title = "{SPAGHETTI}: Open-Domain Question Answering from Heterogeneous Data Sources with Retrieval and Semantic Parsing",
author = "Zhang, Heidi and
Semnani, Sina and
Ghassemi, Farhad and
Xu, Jialiang and
Liu, Shicheng and
Lam, Monica",
editor = "Ku, Lun-Wei and
Martins, Andre and
Srikumar, Vivek",
booktitle = "Findings of the Association for Computational Linguistics ACL 2024",
month = aug,
year = "2024",
address = "Bangkok, Thailand and virtual meeting",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2024.findings-acl.96",
pages = "1663--1678",
}
版本历史
v2.12025/04/29v2.02024/08/23v1.02024/08/23常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备