[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-guangzhengli--ChatFiles":3,"tool-guangzhengli--ChatFiles":64},[4,17,27,35,44,52],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",155373,2,"2026-04-14T11:34:08",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":10,"last_commit_at":23,"category_tags":24,"status":16},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[25,14,26,13],"插件","图像",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"status":16},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[25,13],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":41,"last_commit_at":42,"category_tags":43,"status":16},4487,"LLMs-from-scratch","rasbt\u002FLLMs-from-scratch","LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目，旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型（LLM）。它不仅是同名技术著作的官方代码库，更提供了一套完整的实践方案，涵盖模型开发、预训练及微调的全过程。\n\n该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型，却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码，用户能够透彻掌握 Transformer 架构、注意力机制等关键原理，从而真正理解大模型是如何“思考”的。此外，项目还包含了加载大型预训练权重进行微调的代码，帮助用户将理论知识延伸至实际应用。\n\nLLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API，而是渴望探究模型构建细节的技术人员而言，这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计：将复杂的系统工程拆解为清晰的步骤，配合详细的图表与示例，让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础，还是为未来研发更大规模的模型做准备",90106,3,"2026-04-06T11:19:32",[15,26,14,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":10,"last_commit_at":50,"category_tags":51,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,15],{"id":53,"name":54,"github_repo":55,"description_zh":56,"stars":57,"difficulty_score":10,"last_commit_at":58,"category_tags":59,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,"2026-04-10T11:13:16",[26,60,61,25,14,62,15,13,63],"数据工具","视频","其他","音频",{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":75,"owner_avatar_url":76,"owner_bio":77,"owner_company":78,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":100,"forks":101,"last_commit_at":102,"license":103,"difficulty_score":104,"env_os":105,"env_gpu":105,"env_ram":105,"env_deps":106,"category_tags":115,"github_topics":116,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":122,"updated_at":123,"faqs":124,"releases":160},7508,"guangzhengli\u002FChatFiles","ChatFiles","Document Chatbot — multiple files. Powered by GPT \u002F Embedding.","ChatFiles 是一款让你能直接“与文档对话”的开源智能助手。它解决了传统阅读中难以快速从大量文件（如 PDF、文本等）中提取关键信息或进行跨文档关联分析的痛点。用户只需上传多个文件，即可通过自然语言提问，让 AI 基于文件内容提供精准回答、总结摘要或解答疑惑，极大提升了信息检索效率。\n\n这款工具非常适合需要频繁处理文档的研究人员、学生、分析师以及希望构建私有知识库的开发者使用。对于普通用户而言，它也是整理个人笔记、快速理解长文档的得力帮手。\n\n在技术实现上，ChatFiles 基于 Next.js 和 React 构建，核心采用了 LangChainJS 框架结合 Supabase 向量数据库。其独特之处在于利用 Embedding（嵌入）技术将文档内容转化为向量存储，再调用 GPT-3.5 等大模型进行语义匹配与生成，从而实现对多文件内容的深度理解与流畅交互。项目支持一键部署至 Vercel，也提供了详细的本地运行指南，方便不同技术背景的用户根据自身需求灵活搭建和使用。","[![My Skills](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_072399f26054.png)](https:\u002F\u002Fskillicons.dev)\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Figuangzhengli\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png\" alt=\"Buy Me A Coffee\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" >\n\n# ChatFiles\n\n## Deploy with Vercel\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Fguangzhengli%2FChatFiles&env=NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH,SUPABASE_SERVICE_ROLE_KEY,SUPABASE_URL&envDescription=Have%20a%20conversation%20with%20files&envLink=https%3A%2F%2Fgithub.com%2Fguangzhengli%2FChatFiles%2Fblob%2Fmain%2Fdoc%2Fenv-vars.md&demo-title=ChatFiles&demo-description=Have%20a%20conversation%20with%20files&demo-url=https%3A%2F%2Fchat-file.vercel.app%2F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_a4c0f8073a9c.png\" alt=\"Deploy with Vercel\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n> this repository use [LangchainJS](https:\u002F\u002Fgithub.com\u002Fhwchase17\u002Flangchainjs), based on [Chatbot-ui](https:\u002F\u002Fgithub.com\u002Fmckaywrigley\u002Fchatbot-ui)\n\nTechnical architecture\n\n![Embedding](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_55e559ba6ce2.png)\n\nProduct screenshot.\n\n![ChatFiles](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_11817b8e0253.png)\n\n**Upload your file and have a conversation with it.**\n\n\n## How to use it\n\n### Init Vector DB\n[Crate a vector db on Supabase](doc\u002Fvectordb\u002Fsupabase.md)\n\n### How to run locally without limited\n1. clone this repository.\n2. create a .env file on root path.\n3. set environment variables in .env file follow [doc\u002Fenv-vars.md](doc\u002Fenv-vars.md).\n\nopen browser with http:\u002F\u002Flocalhost:3000\n\n## How to run locally\n### chatfiles-ui\n\n```shell\nnpm install\nnpm run dev\n```\n\n### How to deploy on vercel\n1. Click the Deploy Button.\n2. Set environment variables follow [doc\u002Fenv-vars.md](doc\u002Fenv-vars.md).\n3. Pay attention to the NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH value must be \u002Ftmp.\n\n## Feature\n\n- [x] Chat with GPT-3.5\n- [x] Chat with file by langchainjs and supabase vector db.\n\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_a4b6325d98b1.png)](https:\u002F\u002Fstar-history.com\u002F#guangzhengli\u002FChatFiles&Date)\n\n## Sponsors\n\n[![Buy Me A Coffee](https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png)](https:\u002F\u002Fwww.buymeacoffee.com\u002Figuangzhengli)\n\nMore Sponsor methods:\n\nhttps:\u002F\u002Fguangzhengli.com\u002Fsponsors\n\n### Who is sponsoring this project?\n\nSponsored by [The best china travel guide website](https:\u002F\u002Fchinagotrip.com)\n\n\u003Cp>\n\u003C!-- real-sponsors -->\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjohnliu33\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_9f509f237635.png\" width=\"50px\" alt=\"johnliu33\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnoxonsu\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_82c056c77da9.png\" width=\"50px\" alt=\"noxonsu\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmagedhelmy1\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_d4fbb32e8614.png\" width=\"50px\" alt=\"magedhelmy1\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\nZhang Andy&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHuayu-Qin\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_6b5d90374f80.png\" width=\"50px\" alt=\"Huayu-Qin\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n\u003C!-- real-sponsors -->\n\u003C\u002Fp>\n\n\n","[![我的技能](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_072399f26054.png)](https:\u002F\u002Fskillicons.dev)\u003Ca href=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Figuangzhengli\" target=\"_blank\">\u003Cimg src=\"https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png\" alt=\"请我喝杯咖啡\" style=\"height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;\" >\n\n# ChatFiles\n\n## 使用 Vercel 部署\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fvercel.com\u002Fnew\u002Fclone?repository-url=https%3A%2F%2Fgithub.com%2Fguangzhengli%2FChatFiles&env=NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH,SUPABASE_SERVICE_ROLE_KEY,SUPABASE_URL&envDescription=与文件进行对话&envLink=https%3A%2F%2Fgithub.com%2Fguangzhengli%2FChatFiles%2Fblob%2Fmain%2Fdoc%2Fenv-vars.md&demo-title=ChatFiles&demo-description=与文件进行对话&demo-url=https%3A%2F%2Fchat-file.vercel.app%2F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_a4c0f8073a9c.png\" alt=\"使用 Vercel 部署\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n> 本仓库使用 [LangchainJS](https:\u002F\u002Fgithub.com\u002Fhwchase17\u002Flangchainjs)，基于 [Chatbot-ui](https:\u002F\u002Fgithub.com\u002Fmckaywrigley\u002Fchatbot-ui)\n\n技术架构\n\n![Embedding](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_55e559ba6ce2.png)\n\n产品截图。\n\n![ChatFiles](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_11817b8e0253.png)\n\n**上传你的文件，然后与它进行对话。**\n\n\n## 如何使用\n\n### 初始化向量数据库\n[在 Supabase 上创建向量数据库](doc\u002Fvectordb\u002Fsupabase.md)\n\n### 如何本地运行且不受限\n1. 克隆本仓库。\n2. 在根目录下创建一个 .env 文件。\n3. 按照 [doc\u002Fenv-vars.md](doc\u002Fenv-vars.md) 设置 .env 文件中的环境变量。\n\n打开浏览器访问 http:\u002F\u002Flocalhost:3000\n\n## 如何本地运行\n### chatfiles-ui\n\n```shell\nnpm install\nnpm run dev\n```\n\n### 如何在 Vercel 上部署\n1. 点击“部署”按钮。\n2. 按照 [doc\u002Fenv-vars.md](doc\u002Fenv-vars.md) 设置环境变量。\n3. 注意 NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH 的值必须为 \u002Ftmp。\n\n## 功能\n\n- [x] 与 GPT-3.5 对话\n- [x] 通过 langchainjs 和 supabase 向量数据库与文件对话\n\n\n## 星标历史\n\n[![星标历史图表](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_a4b6325d98b1.png)](https:\u002F\u002Fstar-history.com\u002F#guangzhengli\u002FChatFiles&Date)\n\n## 赞助商\n\n[![请我喝杯咖啡](https:\u002F\u002Fwww.buymeacoffee.com\u002Fassets\u002Fimg\u002Fcustom_images\u002Forange_img.png)](https:\u002F\u002Fwww.buymeacoffee.com\u002Figuangzhengli)\n\n更多赞助方式：\n\nhttps:\u002F\u002Fguangzhengli.com\u002Fsponsors\n\n### 谁在赞助这个项目？\n\n由 [最好的中国旅游指南网站](https:\u002F\u002Fchinagotrip.com) 赞助。\n\n\u003Cp>\n\u003C!-- 实际赞助者 -->\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjohnliu33\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_9f509f237635.png\" width=\"50px\" alt=\"johnliu33\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnoxonsu\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_82c056c77da9.png\" width=\"50px\" alt=\"noxonsu\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmagedhelmy1\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_d4fbb32e8614.png\" width=\"50px\" alt=\"magedhelmy1\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n张安迪&nbsp;&nbsp;\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FHuayu-Qin\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_readme_6b5d90374f80.png\" width=\"50px\" alt=\"Huayu-Qin\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\n\u003C!-- 实际赞助者 -->\n\u003C\u002Fp>","# ChatFiles 快速上手指南\n\nChatFiles 是一个基于 LangchainJS 和 Supabase 向量数据库的开源项目，允许用户上传文件并与文件内容进行对话。本项目基于 Next.js、React 和 Tailwind CSS 构建。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **Node.js**: 建议版本 18+ (推荐通过 `nvm` 管理)\n*   **npm** 或 **yarn**: 包管理工具\n*   **Supabase 账号**: 用于创建向量数据库 (Vector DB)\n*   **OpenAI API Key**: 用于驱动大语言模型 (GPT-3.5\u002F4)\n\n> **国内开发者提示**：如果 `npm install` 速度较慢，建议使用淘宝镜像源：\n> ```bash\n> npm config set registry https:\u002F\u002Fregistry.npmmirror.com\n> ```\n\n## 安装步骤\n\n### 1. 克隆项目\n将代码仓库克隆到本地：\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles.git\ncd ChatFiles\n```\n\n### 2. 配置环境变量\n在项目根目录下创建 `.env` 文件，并参考 [`doc\u002Fenv-vars.md`](doc\u002Fenv-vars.md) 填写配置。关键变量包括：\n\n*   `SUPABASE_URL`: 你的 Supabase 项目 URL\n*   `SUPABASE_SERVICE_ROLE_KEY`: 你的 Supabase Service Role Key\n*   `NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH`: 文件上传路径（本地开发可自定义，Vercel 部署必须为 `\u002Ftmp`）\n*   `OPENAI_API_KEY`: 你的 OpenAI API 密钥\n\n**初始化向量数据库**：\n在使用前，需先在 Supabase 控制台创建向量数据库。详细步骤请参考官方文档：[Crate a vector db on Supabase](doc\u002Fvectordb\u002Fsupabase.md)。\n\n### 3. 安装依赖并启动\n安装项目所需依赖并启动开发服务器：\n\n```bash\nnpm install\nnpm run dev\n```\n\n启动成功后，在浏览器中访问 `http:\u002F\u002Flocalhost:3000` 即可使用。\n\n## 基本使用\n\n1.  **上传文件**：在网页界面点击上传按钮，选择你需要分析的文档（支持 PDF, TXT 等常见格式）。\n2.  **开始对话**：文件上传并处理完成后（系统会自动进行 Embedding 并存入 Supabase 向量库），直接在对话框中输入问题。\n3.  **获取回答**：AI 将基于你上传的文件内容回答问题，实现“与文件对话”的功能。\n\n### 部署到 Vercel (可选)\n如果你希望将应用部署到云端：\n\n1.  点击项目 README 中的 **Deploy with Vercel** 按钮。\n2.  在 Vercel 导入页面，按照提示填入上述环境变量。\n3.  **注意**：部署到 Vercel 时，`NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH` 的值必须设置为 `\u002Ftmp`。\n4.  点击 Deploy 完成部署。","某法律团队需要在半小时内从上百页的并购合同、尽职调查报告及往来邮件中，精准提取关键风险条款并回答合伙人的即时质询。\n\n### 没有 ChatFiles 时\n- **检索效率极低**：律师必须手动打开多个 PDF 和 Word 文档，利用关键词搜索逐页翻阅，耗时数小时才能定位分散的信息。\n- **跨文档关联困难**：难以快速对比不同文件中对同一条款（如“违约责任”）的描述差异，极易遗漏隐蔽的逻辑冲突。\n- **上下文理解割裂**：面对长篇大论的非结构化文本，人工阅读容易产生疲劳，导致对复杂长句的语义理解出现偏差。\n- **响应速度滞后**：在会议中面对突发提问，无法立即给出基于文档的确切依据，只能回答“稍后确认”，影响专业形象。\n\n### 使用 ChatFiles 后\n- **秒级精准定位**：将所有合同与报告一次性上传至 ChatFiles，直接提问“列出所有赔偿上限条款”，系统基于向量数据库瞬间返回带出处的答案。\n- **智能交叉验证**：让 ChatFiles 自动对比多份文件中的特定定义，快速生成差异分析表，确保条款一致性无误。\n- **深度语义交互**：利用 GPT 强大的理解力，直接向 ChatFiles 询问复杂场景下的法律后果（如“若触发 A 条款，对 B 项目有何影响”），获得逻辑严密的推导结果。\n- **实时决策支持**：在会议中通过 ChatFiles 实时对话，即刻引用原文段落回答合伙人质疑，大幅提升沟通效率与信任度。\n\nChatFiles 将静态的法律文档库转化为可即时对话的智能助手，把数小时的资料梳理工作压缩至分钟级，让专业人士专注于高价值的决策分析。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fguangzhengli_ChatFiles_11817b8e.png","guangzhengli","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fguangzhengli_b685a359.jpg","阅读与思考，真理与自由。",null,"iguangzhengli@gmail.com","iguangzhengli","https:\u002F\u002Fguangzhengli.com","https:\u002F\u002Fgithub.com\u002Fguangzhengli",[84,88,92,96],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",96.2,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",1.9,{"name":93,"color":94,"percentage":95},"CSS","#663399",1.4,{"name":97,"color":98,"percentage":99},"Dockerfile","#384d54",0.5,3351,476,"2026-04-10T13:25:24","MIT",4,"未说明",{"notes":107,"python":105,"dependencies":108},"该项目基于 Node.js 环境（使用 npm 运行），非 Python 项目。部署需配置 Supabase 向量数据库及相应环境变量。若使用 Vercel 部署，上传路径环境变量必须设置为 \u002Ftmp。",[109,110,111,112,113,114],"nextjs","react","tailwind","typescript","langchainjs","supabase",[25,15],[117,118,119,120,121],"chatbot","chatgpt","chatgpt-api","chatpdf","chatfile","2026-03-27T02:49:30.150509","2026-04-15T04:26:14.893033",[125,130,135,140,145,150,155],{"id":126,"question_zh":127,"answer_zh":128,"source_url":129},33653,"为什么上传 PDF 文件时显示 'API resolved without sending a response' 错误或无法上传？","这通常是由于文件上传路径配置错误或目录不存在导致的。请尝试在根目录的 public 文件夹下创建一个名为 uploads 的文件夹，并将环境变量 NEXT_PUBLIC_CHAT_FILES_UPLOAD_PATH 设置为 public\u002Fuploads。如果您使用的是 Windows 系统，请确保路径分隔符正确（尝试使用反斜杠）。此外，该项目已使用 Langchain 进行了重构，许多上传问题在最新版本中已得到解决。","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F85",{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},33654,"运行 docker-compose 上传文件时出现 'ECONNREFUSED' 连接拒绝错误怎么办？","该错误表明前端无法连接到后端服务（通常是端口 5000）。这个问题在旧版本中较为常见，目前整个项目已使用 Langchain 进行了重构，该问题已在重构后的版本中修复。建议拉取最新代码或查看 Issue #81 了解重构详情。","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F59",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},33655,"已经设置了 OPENAI_API_KEY 环境变量，为什么仍然提示 'OpenAI API Key Required' 或 'Error fetching models'？","首先确认 .env 文件中是否正确设置了 OPENAI_API_KEY=sk-xxxx。如果环境变量已设置但仍报错，可能是浏览器缓存了旧状态。请尝试清除浏览器缓存，或者在代码中显式设置 os.environ['OPENAI_API_KEY'] = '您的 key'。此外，该项目已使用 Langchain 重构，此问题在新版本中已修复。","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F16",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},33656,"上传 PDF 后报错 'The constructor now takes in a list of Node objects... please use from_documents instead' 如何解决？","这是由于依赖库版本更新导致的构造函数变化。虽然可以通过修改代码使用 from_documents 来解决，但更简单的方案是清除浏览器缓存并重新设置正确的 OpenAI API Key (os.environ['OPENAI_API_KEY'])。该项目后续已使用 Langchain 重构，彻底解决了此类兼容性问题。","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F12",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},33657,"如何修改系统提示语让 AI 用中文回答（即使投喂的资料是中文）？","您可以在代码中的 DEFAULT_PROMPT 变量末尾添加强制中文回答的指令。修改后的提示语示例如下：\nDEFAULT_PROMPT = (\n    \"We have provided context information below: \\n\"\n    \"---------------------\\n\"\n    \"{context_str}\\n\"\n    \"---------------------\\n\"\n    \"Given this information, Please answer my question in the same language that I used to ask you.\\n\"\n    \"Please answer the question in chinese: {query_str}\\n\"\n)","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F24",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},33658,"项目是否支持 Azure OpenAI API？","是的，项目已重构并支持 Azure OpenAI Service。由于 Azure API 和 OpenAI API 的认证方式不同，早期版本需要通过代理项目（如 azure-openai-proxy）将 Azure API 转换为 OpenAI 格式才能使用。但在最新的重构版本（基于 Langchain）中，已原生支持 Azure OpenAI，无需额外转换。","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F6",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},33659,"上传文件后界面显示未解析的 HTML 代码而不是文件名，这是什么原因？","这是旧版本中的一个显示 Bug，通常发生在文件上传处理完成后前端渲染异常。该问题在项目使用 Langchain 重构后已被修复。如果您遇到此问题，请升级到最新版本。","https:\u002F\u002Fgithub.com\u002Fguangzhengli\u002FChatFiles\u002Fissues\u002F39",[161,166,171,176,181,186],{"id":162,"version":163,"summary_zh":164,"released_at":165},258813,"v0.3.3","🚀🚀🚀\n1. 支持多种 OpenAI 模型，如 gpt-4、gpt-3.5-turbo-0613、gpt-3.5-turbo-16k。\n2. 优化代码和日志。\n🎉🎉🎉","2023-06-28T14:02:11",{"id":167,"version":168,"summary_zh":169,"released_at":170},258814,"v0.3.2","🚀🚀🚀\n\n1. 支持更多文件类型：JSON、Markdown、CSV。\n2. 文件类型校验。\n3. 失败时在界面显示错误提示信息。\n4. 支持 ZIP 文件！！！\n\n🎉🎉🎉","2023-06-26T13:42:25",{"id":172,"version":173,"summary_zh":174,"released_at":175},258815,"v0.3.1","1. 在使用并集成 GPT 之前，请先修复 OpenAI API 密钥的配置设置。\n2. 更新一个好的示例，并修复 README 文件。","2023-06-17T13:06:19",{"id":177,"version":178,"summary_zh":179,"released_at":180},258816,"v0.3.0","🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉\n\n1. 使用 LangChain 重构所有项目。\n2. 只需一个前端 Next.js 项目和向量数据库，移除 Python 后端项目的依赖。\n3. 您只需在浏览器中输入密钥即可直接使用该服务。\n\n🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉","2023-06-14T14:47:02",{"id":182,"version":183,"summary_zh":184,"released_at":185},258817,"v0.2.0","# ChatFiles\n## 功能\n\n- 多文件支持。\n\n现在你可以上传 ZIP 或 RAR 等压缩文件。ChatFiles 会创建一个新的图谱来构建多索引。\n\n🥳🥳🥳🥳","2023-04-18T14:23:49",{"id":187,"version":188,"summary_zh":189,"released_at":190},258818,"v0.0.1","# ChatFIles 🎉🎉🎉\n\n## 和你的文件进行对话。🎉🎉🎉","2023-04-05T14:46:04"]