
ChatFiles
上传多个文档,直接对话提问,秒级获取答案。
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 3331
技术标签
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Node.js 环境(需运行 npm install / npm run dev)
- 一个 Supabase 项目用于创建向量数据库(参考 doc/vectordb/supabase.md)
- 需在项目根目录准备 .env 文件并填写环境变量(参考 doc/env-vars.md)
安装与启动步骤
-
1克隆仓库
把 ChatFiles 源码下载到本地,README 第一步要求 clone 该仓库。
git clone https://github.com/guangzhengli/ChatFiles.git cd ChatFiles -
2创建 .env 文件
在项目根目录新建 .env 文件,所有环境变量都写在这里。
touch .env -
3填写环境变量
按仓库 doc/env-vars.md 的说明逐项设置变量,至少包含 Supabase 与上传路径相关配置。
-
4初始化向量数据库
按 doc/vectordb/supabase.md 在 Supabase 上创建向量库,否则文件无法被索引检索。
-
5安装依赖
进入 chatfiles-ui 目录执行安装,README 使用 npm 管理依赖。
npm install -
6启动本地服务
运行开发服务器,README 说明启动后用浏览器访问 3000 端口。
npm run dev -
7浏览器访问
打开 http://localhost:3000 即可上传文件并与文档对话。
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH | 是 | 文件上传的临时目录,Vercel 部署时必须为 /tmp | /tmp |
SUPABASE_URL | 是 | Supabase 项目地址,用于连接向量数据库 | https://xxxxxxxx.supabase.co |
SUPABASE_SERVICE_ROLE_KEY | 是 | Supabase 服务角色密钥,用于读写向量数据 | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxx |
OPENAI_API_KEY | 是 | 调用 GPT 与 Embedding 接口所需的密钥,请以 doc/env-vars.md 为准 | sk-xxxxxxxxxxxxxxxx |
如何确认成功
浏览器打开 http://localhost:3000 页面能正常加载,即可上传文件发起对话。
常见问题
Q:环境变量具体要填哪些?
A:README 指向仓库内 doc/env-vars.md,请按该文档逐项配置;Vercel 部署按钮提示至少需要 NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH、SUPABASE_SERVICE_ROLE_KEY、SUPABASE_URL。
Q:部署到 Vercel 时上传路径怎么写?
A:README 特别提醒 NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH 的值必须为 /tmp,否则文件上传会失败。
Q:没有向量数据库能直接问答吗?
A:不能。需要先按 doc/vectordb/supabase.md 在 Supabase 上创建向量库,文件才会被向量化并支持语义检索。
Q:如何本地运行且不受限制?
A:按 README 的 'How to run locally without limited' 流程:克隆仓库、在根目录创建 .env、按 doc/env-vars.md 配置变量,然后访问 http://localhost:3000。
注意事项
- README 未给出完整的 .env 变量清单,实际配置需查阅 doc/env-vars.md。
- Vercel 一键部署时上传目录固定为 /tmp,本地则按自身环境设置。
- 项目基于 LangchainJS 与 Chatbot-ui 二次开发,仅支持 GPT-3.5 对话与文件问答。
核心亮点
- 支持多文件同时上传,批量处理文档,提升效率
- 基于向量检索,回答内容有据可依,减少幻觉
- 部署简单,一条命令即可启动,适合快速体验
不足之处
- 文档格式支持有限,主要针对文本类文件
- 文档/社区待观察
适用场景
- 个人知识库问答,快速查找本地文档内容
- 团队内部资料检索,替代传统关键词搜索
- 教育场景中,学生与教材或讲义进行互动问答
替代项目
ChatPDF、quivr、privateGPT
同类项目推荐
Streamly
开源
问 Streamlit 问题,秒回代码和最新动态
Streamly - Streamlit Assistant is designed to provide the latest updates from Stream···
chatbot-template
开源
克隆即用的 AI 聊天界面模板,几行配置接上模型就能跑
A minimal chatbot template built with Next.js, AI SDK, shadcn/ui, shadcn/react, shad···
OpenAssistantGPT
开源
拖拽式搭建 OpenAI 聊天机器人,嵌入网站即用
A Community Open-Source Saas for Crafting/Building/Creating Chatbots with OpenAI's A···
ChatGirl
开源
用 TensorFlow 快速训练一个能聊天的机器人
ChatGirl is an AI ChatBot based on TensorFlow Seq2Seq Model. ChatGirl 一个基于 T···
DaVinci
开源
把 ChatGPT 装进树莓派,打造能对话的智能硬件
DaVinci - The GPT-Realtime-2.1 Talking AI Virtual Assistant - New Version Fall 2026
yetibot
开源
在聊天框里用管道命令,把运维和自动化全搞定
Extreme chatops bot for Slack, Discord, Mattermost, IRC New contributors welcome
CreativeChatGLM
开源
基于 ChatGLM 的创意写作助手,一键修订续写,激发灵感
欢迎来到 ChatGLM 创意世界!你可以使用修订和续写的功能来生成创意内容!
maxigo-client
开源
用 Go 写 Max 机器人,零依赖、带上下文、错误清晰,开箱即用。
Idiomatic Go HTTP client for Max Bot API — zero dependencies, context support, stru···
chatbot-samples
开源
看示例,快速搭出你的聊天机器人
聊天机器人示例,定制聊天机器人,聊天机器人语料导入导出