[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-wenda-LLM--wenda":3,"tool-wenda-LLM--wenda":65},[4,17,27,35,48,57],{"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 真正成长为懂上",148568,2,"2026-04-09T23:34:24",[13,14,15],"开发框架","Agent","语言模型","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"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":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":10,"last_commit_at":33,"category_tags":34,"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":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":10,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85052,"2026-04-08T11:03:08",[26,43,44,45,14,46,15,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":54,"last_commit_at":55,"category_tags":56,"status":16},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[15,43,46],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":23,"last_commit_at":63,"category_tags":64,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[14,26,13,15,46],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":78,"owner_location":78,"owner_email":78,"owner_twitter":78,"owner_website":78,"owner_url":79,"languages":80,"stars":105,"forks":106,"last_commit_at":107,"license":108,"difficulty_score":109,"env_os":110,"env_gpu":111,"env_ram":112,"env_deps":113,"category_tags":122,"github_topics":123,"view_count":10,"oss_zip_url":78,"oss_zip_packed_at":78,"status":16,"created_at":127,"updated_at":128,"faqs":129,"releases":170},6032,"wenda-LLM\u002Fwenda","wenda","闻达：一个LLM调用平台。目标为针对特定环境的高效内容生成，同时考虑个人和中小企业的计算资源局限性，以及知识安全和私密性问题","闻达是一个专为个人用户和中小企业打造的大规模语言模型（LLM）调用平台。它致力于在有限的计算资源下，实现高效、安全且私密的内容生成，解决了本地部署大模型门槛高、数据隐私难保障以及通用模型缺乏特定领域知识等痛点。\n\n闻达的核心优势在于其高度的灵活性与安全性。它支持多种主流开源模型（如 ChatGLM、RWKV、Baichuan 等）的本地离线部署，确保敏感数据不出内网；同时内置强大的知识库功能，可对接本地向量库或搜索引擎，让模型能基于私有文档进行精准回答。此外，闻达独特的\"Auto 脚本”机制允许用户通过 JavaScript 插件自定义对话流程、调用外部 API 或动态切换模型，极大地扩展了应用场景。\n\n该平台非常适合希望私有化部署 AI 能力的中小企业主、关注数据安全的机构人员，以及具备一定技术基础的开发者。无论是用于构建企业内部智能助手、搭建专属知识库问答系统，还是进行大模型应用的原型开发，闻达都提供了一个功能全面且易于上手的解决方案，让用户能在保护隐私的前提下，轻松享受大语言模型带来的效率提升。","# 闻达：一个大规模语言模型调用平台\n本项目设计目标为实现针对特定环境的高效内容生成，同时考虑个人和中小企业的计算资源局限性，以及知识安全和私密性问题。为达目标，平台化集成了以下能力：\n\n1. 知识库：支持对接[本地离线向量库](#rtst模式)、[本地搜索引擎](#fess模式)、在线搜索引擎等。\n2. 多种大语言模型：目前支持离线部署模型有`chatGLM-6B\\chatGLM2-6B`、`chatRWKV`、`llama系列(不推荐中文用户)`、`moss(不推荐)`、`baichuan(需配合lora使用，否则效果差)`、`Aquila-7B`、`InternLM`，在线API访问`openai api`和`chatGLM-130b api`。\n3. Auto脚本：通过开发插件形式的JavaScript脚本，为平台附件功能，实现包括但不限于自定义对话流程、访问外部API、在线切换LoRA模型。\n4. 其他实用化所需能力：对话历史管理、内网部署、多用户同时使用等。\n\n\n交流QQ群：LLM使用和综合讨论群`162451840`；知识库使用讨论群`241773574(已满，请去QQ频道讨论)`；Auto开发交流群`744842245`；[QQ频道](https:\u002F\u002Fpd.qq.com\u002Fs\u002Fej03plxks)\n\n\u003C!--ts-->\n- [闻达：一个大规模语言模型调用平台](#闻达一个大规模语言模型调用平台)\n  - [安装部署](#安装部署)\n    - [各模型功能说明](#各模型功能说明)\n    - [懒人包](#懒人包)\n      - [百度云](#百度云)\n      - [夸克](#夸克)\n      - [介绍](#介绍)\n    - [自行安装](#自行安装)\n      - [1.安装库](#1安装库)\n      - [2.下载模型](#2下载模型)\n      - [3.参数设置](#3参数设置)\n  - [Auto](#auto)\n    - [Auto 开发函数列表](#auto-开发函数列表)\n    - [Auto 开发涉及代码段](#auto-开发涉及代码段)\n    - [部分内置 Auto 使用说明](#部分内置-auto-使用说明)\n  - [知识库](#知识库)\n    - [rtst模式](#rtst模式)\n    - [使用微调模型提高知识库回答准确性](#使用微调模型提高知识库回答准确性)\n    - [模型](#模型)\n    - [fess模式](#fess模式)\n    - [知识库调试](#知识库调试)\n    - [清洗知识库文件](#清洗知识库文件)\n  - [模型配置](#模型配置)\n    - [chatGLM-6B\u002FchatGLM2-6B](#chatglm-6bchatglm2-6b)\n    - [chatRWKV](#chatrwkv)\n      - [torch](#torch)\n      - [cpp](#cpp)\n    - [Aquila-7B](#aquila-7b)\n- [基于本项目的二次开发](#基于本项目的二次开发)\n  - [wenda-webui](#wenda-webui)\n  - [接入Word文档软件](#接入word文档软件)\n\n\u003C!-- Created by https:\u002F\u002Fgithub.com\u002Fekalinin\u002Fgithub-markdown-toc -->\n\u003C!-- Added by: runner, at: Sun May 14 12:45:00 UTC 2023 -->\n\n\u003C!--te-->\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_7015e4119663.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_a595b8320def.png)\n## 安装部署\n### 各模型功能说明\n| 功能                                             | 多用户并行 | 流式输出   | CPU            | GPU | 量化               | 外挂LoRa |\n| ------------------------------------------------ | ---------- | ---------- | -------------- | --- | ------------------ | -------- |\n| [chatGLM-6B\u002FchatGLM2-6B](#chatglm-6bchatglm2-6b) | √          | √          | 需安装编译器   | √   | 预先量化和在线量化 | √        |\n| RWKV [torch](#torch)                             | √          | √          | √              | √   | 预先量化和在线量化 |          |\n| RWKV.[cpp](#cpp)                                 | √          | √          | 可用指令集加速 |     | 预先量化           |          |\n| Baichuan-7B                                      | √          | √          | √              | √   |                    | √        |\n| Baichuan-7B (GPTQ)                               | √          | √          |                | √   | 预先量化           |          |\n| [Aquila-7B](#aquila-7b)                          |            | 官方未实现 | √              | √   |                    |          |\n| replit                                           |            |            | √              | √   |                    |          |\n| chatglm130b api                                  | √          |            |                |     |                    |          |\n| openai api                                       | √          | √          |                |     |                    |          |\n| llama.cpp                                        | √          | √          | 可用指令集加速 |     | 预先量化           |          |\n| llama torch                                      | √          | √          | √              | √   | 预先量化和在线量化 |          |\n| InternLM                                         | √          | √          | √              | √   | 在线量化           |          |\n### 懒人包\n#### 百度云\nhttps:\u002F\u002Fpan.baidu.com\u002Fs\u002F1idvot-XhEvLLKCbjDQuhyg?pwd=wdai \n\n#### 夸克\n链接：https:\u002F\u002Fpan.quark.cn\u002Fs\u002Fc4cb08de666e\n提取码：4b4R\n#### 介绍\n默认参数在6G显存设备上运行良好。最新版懒人版已集成一键更新功能，建议使用前更新。\n\n使用步骤（以glm6b模型为例）：\n1. 下载懒人版主体和模型，模型可以用内置脚本从HF下载，也可以从网盘下载。\n2. 如果没有安装`CUDA11.8`，从网盘下载并安装。\n3. 双击运行`运行GLM6B.bat`。\n4. 如果需要生成离线知识库，参考 [知识库](#知识库)。\n### 自行安装\nPS:一定要看[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml)，里面对各功能有更详细的说明！！！\n#### 1.安装库\n通用依赖：```pip install -r requirements\u002Frequirements.txt```\n根据使用的 [知识库](#知识库)进行相应配置\n\n#### 2.下载模型\n根据需要，下载对应模型。\n\n建议使用chatRWKV的RWKV-4-Raven-7B-v11，或chatGLM-6B。\n\n#### 3.参数设置\n把[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml)重命名为`config.yml`，根据里面的参数说明，填写你的模型下载位置等信息\n\n## Auto\nauto功能通过JavaScript脚本实现，使用油猴脚本或直接放到`autos`目录的方式注入至程序，为闻达附加各种自动化功能。\n\n### Auto 开发函数列表\n| 函数 （皆为异步调用）           | 功能                                  | 说明                                                                |\n| ------------------------------- | ------------------------------------- | ------------------------------------------------------------------- |\n| send(s,keyword = \"\",show=true)  | 发送信息至LLM，返回字符串为模型返回值 | s：输入模型文本；keyword:聊天界面显示文本；show：是否在聊天界面显示 |\n| add_conversation(role, content) | 添加会话信息                          | role：'AI'、'user'；content：字符串                                 |\n| save_history()                  | 保存会话历史                          | 对话完成后会自动保存，但手动添加的对话须手动保存                    |\n| find(s, step = 1)               | 从知识库查找                          | 返回json数组                                                        |\n| find_dynamic(s,step=1,paraJson) | 从动态知识库查找；参考闻达笔记Auto    | paraJson：{libraryStategy:\"sogowx:3\",maxItmes:2}                    |\n| zsk(b=true)                     | 开关知识库                            |                                                                     |\n| lsdh(b=true)                    | 开关历史对话                          | 打开知识库时应关闭历史                                              |\n| speak(s)                        | 使用TTS引擎朗读文本。                 | 调用系统引擎                                                        |\n| copy(s)                         | 使用浏览器`clipboard-write`复制文本   | 需要相关权限                                                        |\n### Auto 开发涉及代码段\n在左侧功能栏添加内容：\n```\nfunc.push({\n    name: \"名称\",\n    question: async () => {\n        let answer=await send(app.question)\n        alert(answer)\n    },\n})\n```\n在下方选项卡添加内容：\n```\napp.plugins.push({ icon: 'note-edit-outline', url: \"\u002Fstatic\u002Fwdnote\u002Findex.html\" })\n```\n在指定RTST知识库查找:\n```\nfind_in_memory = async (s, step, memory_name) => {\n   response = await fetch(\"\u002Fapi\u002Ffind_rtst_in_memory\", {\n      method: 'post',\n      body: JSON.stringify({\n         prompt: s,\n         step: step,\n         memory_name: memory_name\n      }),\n      headers: {\n         'Content-Type': 'application\u002Fjson'\n      }\n   })\n   let json = await response.json()\n   console.table(json)\n   app.zhishiku = json\n   return json\n}\n```\n上传至指定RTST知识库:\n```\nupload_rtst_zhishiku = async (title, txt,memory_name) => {\n   response = await fetch(\"\u002Fapi\u002Fupload_rtst_zhishiku\", {\n      method: 'post',\n      body: JSON.stringify({\n         title: title,\n         txt: txt,\n         memory_name: memory_name\n      }),\n      headers: { 'Content-Type': 'application\u002Fjson' }\n   })\n   alert(await response.text())\n}\n```\n保存指定RTST知识库:\n```\nsave_rtst = async (memory_name) => {\n   response = await fetch(\"\u002Fapi\u002Fsave_rtst_zhishiku\", {\n      method: 'post',\n      body: JSON.stringify({\n         memory_name: memory_name\n      }),\n      headers: { 'Content-Type': 'application\u002Fjson' }\n   })\n   alert(await response.text())\n}\n```\n访问SD_agent:\n```\nresponse = await fetch(\"\u002Fapi\u002Fsd_agent\", {\n   method: 'post',\n   body: JSON.stringify({\n         prompt: `((masterpiece, best quality)), photorealistic,` + Q,\n         steps: 20,\n         \u002F\u002F sampler_name: \"DPM++ SDE Karras\",\n         negative_prompt: `paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans`\n   }),\n   headers: {\n         'Content-Type': 'application\u002Fjson'\n   }\n})\ntry {\n   let json = await response.json()\n   add_conversation(\"AI\", '![](data:image\u002Fpng;base64,' + json.images[0] + \")\")\n} catch (error) {\n   alert(\"连接SD API失败，请确认已开启agents库，并将SD API地址设置为127.0.0.1:786\")\n}\n```\n### 部分内置 Auto 使用说明\n| 文件名               | 功能                                                                                |\n| -------------------- | ----------------------------------------------------------------------------------- |\n| 0-write_article.js   | 写论文：根据题目或提纲写论文                                                        |\n| 0-zsk.js             | 知识库增强和管理                                                                    |\n| face-recognition.js  | 纯浏览器端人脸检测：通过识别嘴巴开合，控制语音输入。因浏览器限制，仅本地或TLS下可用 |\n| QQ.js                | QQ机器人:配置过程见文件开头注释                                                     |\n| block_programming.js | 猫猫也会的图块化编程:通过拖动图块实现简单Auto功能                                   |\n| 1-draw_use_SD_api.js | 通过agents模块（见example.config.yml`\u003CLibrary>`）调用Stable Diffusion接口绘图       |\n\n以上功能主要用于展示auto用法，进一步能力有待广大用户进一步发掘。\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_33adc5cef82a.jpg)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_5ec8023f9d7c.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_75223aabb11b.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_795a5eed21cd.png)\n\n[auto例程](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Ftree\u002Fmain\u002Fautos)\n\n## 知识库\n知识库原理是在搜索后，生成一些提示信息插入到对话里面，知识库的数据就被模型知道了。[rtst模式](#rtst模式)计算语义并在本地数据库中匹配；[fess模式](#fess模式)（相当于本地搜索引擎）、bing模式均调用搜索引擎搜索获取答案。\n\n为防止爆显存和受限于模型理解能力，插入的数据不能太长，所以有字数和条数限制，这一问题可通过知识库增强Auto解决。\n\n正常使用中，勾选右上角知识库即开启知识库。\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_2f1875e48308.jpg)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_f87774cc4703.png)\n\n\n\n有以下几种方案：\n1.   rtst模式，sentence_transformers+faiss进行索引，支持预先构建索引和运行中构建。\n2.   bing模式，cn.bing搜索，仅国内可用\n3.   bingsite模式，cn.bing站内搜索，仅国内可用\n4.   fess模式，本地部署的[fess搜索](https:\u002F\u002Fgithub.com\u002Fcodelibs\u002Ffess)，并进行关键词提取\n### rtst模式\nsentence_transformers+faiss进行索引、匹配，并连同上下文返回。目前支持txt和pdf格式。\n\n支持预先构建索引和运行中构建，其中，预先构建索引强制使用`cuda`，运行中构建根据`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))中`rtst`段的`device(embedding运行设备)`决定，对于显存小于12G的用户建议使用`CPU`。\n\nWindows预先构建索引运行：`plugins\u002Fbuils_rtst_default_index.bat`。\n\nLinux直接使用wenda环境执行 `python plugins\u002Fgen_data_st.py`\n\n需下载模型置于model文件夹，并将txt格式语料置于txt文件夹。\n### 使用微调模型提高知识库回答准确性\n闻达用户“帛凡”，训练并提供的权重合并模型和lora权重文件，详细信息见https:\u002F\u002Fhuggingface.co\u002Ffb700\u002Fchatglm-fitness-RLHF ，使用该模型或者lora权重文件，对比hatglm-6b、chatglm2-6b、百川等模型，在闻达知识库平台中，总结能力可获得显著提升。\n### 模型\n1. [GanymedeNil\u002Ftext2vec-large-chinese](https:\u002F\u002Fhuggingface.co\u002FGanymedeNil\u002Ftext2vec-large-chinese) 不再推荐，不支持英文且显存占用高\n2. [moka-ai\u002Fm3e-base](https:\u002F\u002Fhuggingface.co\u002Fmoka-ai\u002Fm3e-base) 推荐\n### fess模式\n在本机使用默认端口安装fess后可直接运行。否则需修改`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))中`fess_host`的`127.0.0.1:8080`为相应值。[FESS安装教程](docs\u002Finstall_fess.md)\n###  知识库调试\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_84bac2309e7e.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_6d5768bcb5fd.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_f79596b1b9ba.png)\n\n### 清洗知识库文件\n\n安装 [utool](https:\u002F\u002Fu.tools\u002F) 工具，uTools 是一个极简、插件化的桌面软件，可以安装各种使用 nodejs 开发的插件。您可以使用插件对闻达的知识库进行数据清洗。请自行安装以下推荐插件：\n\n- 插件“解散文件夹”，用于将子目录的文件移动到根目录，并删除所有子目录。\n- 插件“重复文件查找”，用于删除目录中的重复文件，原理是对比文件 md5。\n- 插件“文件批量重命名”，用于使用正则匹配和修改文件名，并将分类后的文件名进行知识库的分区操作。\n\n##  模型配置\n### chatGLM-6B\u002FchatGLM2-6B\n运行：`run_GLM6B.bat`。\n\n模型位置等参数：修改`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))。\n\n默认参数在GTX1660Ti（6G显存）上运行良好。\n\n### chatRWKV\n支持torch和cpp两种后端实现，运行：`run_rwkv.bat`。\n\n模型位置等参数：见`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))。\n#### torch\n可使用内置脚本对模型量化，运行：`cov_torch_rwkv.bat`。此操作可以加快启动速度。\n\n在安装vc后支持一键启动CUDA加速，运行：`run_rwkv_with_vc.bat`。强烈建议安装！！！\n#### cpp\n可使用内置脚本对torch版模型转换和量化。 运行：`cov_ggml_rwkv.bat`。\n\n设置strategy诸如\"Q8_0->8\"即支持量化在cpu运行，速度较慢，没有显卡或者没有nvidia显卡的用户使用。\n\n注意：默认windows版本文件为AVX2，默认Liunx版本文件是在debian sid编译的，其他linux发行版本未知。\n\n可以查看：[saharNooby\u002Frwkv.cpp](https:\u002F\u002Fgithub.com\u002FsaharNooby\u002Frwkv.cpp)，下载其他版本，或者自行编译。\n\n### Aquila-7B\n1. 运行`pip install FlagAI`。注意FlagAI依赖很多旧版本的包，需要自己编译，所以如果想基于python3.11运行或者想在一个环境同时跑其他模型，建议去下懒人包\n2. 运行：`run_Aquila.bat`。\n\n模型位置等参数：见`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))。注意模型要在这里下：https:\u002F\u002Fmodel.baai.ac.cn\u002Fmodel-detail\u002F100101\n\n# 基于本项目的二次开发\n## [wenda-webui](https:\u002F\u002Fgithub.com\u002FAlanLee1996\u002Fwenda-webui)\n项目调用闻达的 api 接口实现类似于 new bing 的功能。 技术栈：vue3 + element-plus + ts\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_b02fdffc55b0.jpg)\n## [接入Word文档软件](https:\u002F\u002Fqun.qq.com\u002Fqqweb\u002Fqunpro\u002Fshare?_wv=3&_wwv=128&appChannel=share&inviteCode=20s7Vs0iZMx&contentID=1mlnYv&businessType=2&from=181174&shareSource=5&biz=ka)\n通过宏，调用闻达HTTP API\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_7ccc9b65a69b.png)\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_1d94fe3d17e0.png)](https:\u002F\u002Fstar-history.com\u002F#l15y\u002Fwenda&Date)\n","# 闻达：一个大规模语言模型调用平台\n本项目设计目标为实现针对特定环境的高效内容生成，同时考虑个人和中小企业的计算资源局限性，以及知识安全和私密性问题。为达目标，平台化集成了以下能力：\n\n1. 知识库：支持对接[本地离线向量库](#rtst模式)、[本地搜索引擎](#fess模式)、在线搜索引擎等。\n2. 多种大语言模型：目前支持离线部署模型有`chatGLM-6B\\chatGLM2-6B`、`chatRWKV`、`llama系列(不推荐中文用户)`、`moss(不推荐)`、`baichuan(需配合lora使用，否则效果差)`、`Aquila-7B`、`InternLM`，在线API访问`openai api`和`chatGLM-130b api`。\n3. Auto脚本：通过开发插件形式的JavaScript脚本，为平台附件功能，实现包括但不限于自定义对话流程、访问外部API、在线切换LoRA模型。\n4. 其他实用化所需能力：对话历史管理、内网部署、多用户同时使用等。\n\n\n交流QQ群：LLM使用和综合讨论群`162451840`；知识库使用讨论群`241773574(已满，请去QQ频道讨论)`；Auto开发交流群`744842245`；[QQ频道](https:\u002F\u002Fpd.qq.com\u002Fs\u002Fej03plxks)\n\n\u003C!--ts-->\n- [闻达：一个大规模语言模型调用平台](#闻达一个大规模语言模型调用平台)\n  - [安装部署](#安装部署)\n    - [各模型功能说明](#各模型功能说明)\n    - [懒人包](#懒人包)\n      - [百度云](#百度云)\n      - [夸克](#夸克)\n      - [介绍](#介绍)\n    - [自行安装](#自行安装)\n      - [1.安装库](#1安装库)\n      - [2.下载模型](#2下载模型)\n      - [3.参数设置](#3参数设置)\n  - [Auto](#auto)\n    - [Auto 开发函数列表](#auto-开发函数列表)\n    - [Auto 开发涉及代码段](#auto-开发涉及代码段)\n    - [部分内置 Auto 使用说明](#部分内置-auto-使用说明)\n  - [知识库](#知识库)\n    - [rtst模式](#rtst模式)\n    - [使用微调模型提高知识库回答准确性](#使用微调模型提高知识库回答准确性)\n    - [模型](#模型)\n    - [fess模式](#fess模式)\n    - [知识库调试](#知识库调试)\n    - [清洗知识库文件](#清洗知识库文件)\n  - [模型配置](#模型配置)\n    - [chatGLM-6B\u002FchatGLM2-6B](#chatglm-6bchatglm2-6b)\n    - [chatRWKV](#chatrwkv)\n      - [torch](#torch)\n      - [cpp](#cpp)\n    - [Aquila-7B](#aquila-7b)\n- [基于本项目的二次开发](#基于本项目的二次开发)\n  - [wenda-webui](#wenda-webui)\n  - [接入Word文档软件](#接入word文档软件)\n\n\u003C!-- Created by https:\u002F\u002Fgithub.com\u002Fekalinin\u002Fgithub-markdown-toc -->\n\u003C!-- Added by: runner, at: Sun May 14 12:45:00 UTC 2023 -->\n\n\u003C!--te-->\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_7015e4119663.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_a595b8320def.png)\n## 安装部署\n### 各模型功能说明\n| 功能                                             | 多用户并行 | 流式输出   | CPU            | GPU | 量化               | 外挂LoRa |\n| ------------------------------------------------ | ---------- | ---------- | -------------- | --- | ------------------ | -------- |\n| [chatGLM-6B\u002FchatGLM2-6B](#chatglm-6bchatglm2-6b) | √          | √          | 需安装编译器   | √   | 预先量化和在线量化 | √        |\n| RWKV [torch](#torch)                             | √          | √          | √              | √   | 预先量化和在线量化 |          |\n| RWKV.[cpp](#cpp)                                 | √          | √          | 可用指令集加速 |     | 预先量化           |          |\n| Baichuan-7B                                      | √          | √          | √              | √   |                    | √        |\n| Baichuan-7B (GPTQ)                               | √          | √          |                | √   | 预先量化           |          |\n| [Aquila-7B](#aquila-7b)                          |            | 官方未实现 | √              | √   |                    |          |\n| replit                                           |            |            | √              | √   |                    |          |\n| chatglm130b api                                  | √          |            |                |     |                    |          |\n| openai api                                       | √          | √          |                |     |                    |          |\n| llama.cpp                                        | √          | √          | 可用指令集加速 |     | 预先量化           |          |\n| llama torch                                      | √          | √          | √              | √   | 预先量化和在线量化 |          |\n| InternLM                                         | √          | √          | √              | √   | 在线量化           |          |\n### 懒人包\n#### 百度云\nhttps:\u002F\u002Fpan.baidu.com\u002Fs\u002F1idvot-XhEvLLKCbjDQuhyg?pwd=wdai \n\n#### 夸克\n链接：https:\u002F\u002Fpan.quark.cn\u002Fs\u002Fc4cb08de666e\n提取码：4b4R\n#### 介绍\n默认参数在6G显存设备上运行良好。最新版懒人版已集成一键更新功能，建议使用前更新。\n\n使用步骤（以glm6b模型为例）：\n1. 下载懒人版主体和模型，模型可以用内置脚本从HF下载，也可以从网盘下载。\n2. 如果没有安装`CUDA11.8`，从网盘下载并安装。\n3. 双击运行`运行GLM6B.bat`。\n4. 如果需要生成离线知识库，参考 [知识库](#知识库)。\n### 自行安装\nPS:一定要看[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml)，里面对各功能有更详细的说明！！！\n#### 1.安装库\n通用依赖：```pip install -r requirements\u002Frequirements.txt```\n根据使用的 [知识库](#知识库)进行相应配置\n\n#### 2.下载模型\n根据需要，下载对应模型。\n\n建议使用chatRWKV的RWKV-4-Raven-7B-v11，或chatGLM-6B。\n\n#### 3.参数设置\n把[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml)重命名为`config.yml`，根据里面的参数说明，填写你的模型下载位置等信息\n\n## Auto\nauto功能通过JavaScript脚本实现，使用油猴脚本或直接放到`autos`目录的方式注入至程序，为闻达附加各种自动化功能。\n\n### Auto 开发函数列表\n| 函数 （皆为异步调用）           | 功能                                  | 说明                                                                |\n| ------------------------------- | ------------------------------------- | ------------------------------------------------------------------- |\n| send(s,keyword = \"\",show=true)  | 发送信息至LLM，返回字符串为模型返回值 | s：输入模型文本；keyword:聊天界面显示文本；show：是否在聊天界面显示 |\n| add_conversation(role, content) | 添加会话信息                          | role：'AI'、'user'；content：字符串                                 |\n| save_history()                  | 保存会话历史                          | 对话完成后会自动保存，但手动添加的对话须手动保存                    |\n| find(s, step = 1)               | 从知识库查找                          | 返回json数组                                                        |\n| find_dynamic(s,step=1,paraJson) | 从动态知识库查找；参考闻达笔记Auto    | paraJson：{libraryStategy:\"sogowx:3\",maxItmes:2}                    |\n| zsk(b=true)                     | 开关知识库                            |                                                                     |\n| lsdh(b=true)                    | 开关历史对话                          | 打开知识库时应关闭历史                                              |\n| speak(s)                        | 使用TTS引擎朗读文本。                 | 调用系统引擎                                                        |\n| copy(s)                         | 使用浏览器`clipboard-write`复制文本   | 需要相关权限                                                        |\n\n### Auto 开发涉及代码段\n在左侧功能栏添加内容：\n```\nfunc.push({\n    name: \"名称\",\n    question: async () => {\n        let answer=await send(app.question)\n        alert(answer)\n    },\n})\n```\n在下方选项卡添加内容：\n```\napp.plugins.push({ icon: 'note-edit-outline', url: \"\u002Fstatic\u002Fwdnote\u002Findex.html\" })\n```\n在指定RTST知识库查找:\n```\nfind_in_memory = async (s, step, memory_name) => {\n   response = await fetch(\"\u002Fapi\u002Ffind_rtst_in_memory\", {\n      method: 'post',\n      body: JSON.stringify({\n         prompt: s,\n         step: step,\n         memory_name: memory_name\n      }),\n      headers: {\n         'Content-Type': 'application\u002Fjson'\n      }\n   })\n   let json = await response.json()\n   console.table(json)\n   app.zhishiku = json\n   return json\n}\n```\n上传至指定RTST知识库:\n```\nupload_rtst_zhishiku = async (title, txt,memory_name) => {\n   response = await fetch(\"\u002Fapi\u002Fupload_rtst_zhishiku\", {\n      method: 'post',\n      body: JSON.stringify({\n         title: title,\n         txt: txt,\n         memory_name: memory_name\n      }),\n      headers: { 'Content-Type': 'application\u002Fjson' }\n   })\n   alert(await response.text())\n}\n```\n保存指定RTST知识库:\n```\nsave_rtst = async (memory_name) => {\n   response = await fetch(\"\u002Fapi\u002Fsave_rtst_zhishiku\", {\n      method: 'post',\n      body: JSON.stringify({\n         memory_name: memory_name\n      }),\n      headers: { 'Content-Type': 'application\u002Fjson' }\n   })\n   alert(await response.text())\n}\n```\n访问SD_agent:\n```\nresponse = await fetch(\"\u002Fapi\u002Fsd_agent\", {\n   method: 'post',\n   body: JSON.stringify({\n         prompt: `((masterpiece, best quality)), photorealistic,` + Q,\n         steps: 20,\n         \u002F\u002F sampler_name: \"DPM++ SDE Karras\",\n         negative_prompt: `paintings, sketches, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, glans`\n   }),\n   headers: {\n         'Content-Type': 'application\u002Fjson'\n   }\n})\ntry {\n   let json = await response.json()\n   add_conversation(\"AI\", '![](data:image\u002Fpng;base64,' + json.images[0] + \")\")\n} catch (error) {\n   alert(\"连接SD API失败，请确认已开启agents库，并将SD API地址设置为127.0.0.1:786\")\n}\n```\n### 部分内置 Auto 使用说明\n| 文件名               | 功能                                                                                |\n| -------------------- | ----------------------------------------------------------------------------------- |\n| 0-write_article.js   | 写论文：根据题目或提纲写论文                                                        |\n| 0-zsk.js             | 知识库增强和管理                                                                    |\n| face-recognition.js  | 纯浏览器端人脸检测：通过识别嘴巴开合，控制语音输入。因浏览器限制，仅本地或TLS下可用 |\n| QQ.js                | QQ机器人:配置过程见文件开头注释                                                     |\n| block_programming.js | 猫猫也会的图块化编程:通过拖动图块实现简单Auto功能                                   |\n| 1-draw_use_SD_api.js | 通过agents模块（见example.config.yml`\u003CLibrary>`）调用Stable Diffusion接口绘图       |\n\n以上功能主要用于展示auto用法，进一步能力有待广大用户进一步发掘。\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_33adc5cef82a.jpg)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_5ec8023f9d7c.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_75223aabb11b.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_795a5eed21cd.png)\n\n[auto例程](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Ftree\u002Fmain\u002Fautos)\n\n## 知识库\n知识库原理是在搜索后，生成一些提示信息插入到对话里面，知识库的数据就被模型知道了。[rtst模式](#rtst模式)计算语义并在本地数据库中匹配；[fess模式](#fess模式)（相当于本地搜索引擎）、bing模式均调用搜索引擎搜索获取答案。\n\n为防止爆显存和受限于模型理解能力，插入的数据不能太长，所以有字数和条数限制，这一问题可通过知识库增强Auto解决。\n\n正常使用中，勾选右上角知识库即开启知识库。\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_2f1875e48308.jpg)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_f87774cc4703.png)\n\n\n\n有以下几种方案：\n1.   rtst模式，sentence_transformers+faiss进行索引，支持预先构建索引和运行中构建。\n2.   bing模式，cn.bing搜索，仅国内可用\n3.   bingsite模式，cn.bing站内搜索，仅国内可用\n4.   fess模式，本地部署的[fess搜索](https:\u002F\u002Fgithub.com\u002Fcodelibs\u002Ffess)，并进行关键词提取\n### rtst模式\nsentence_transformers+faiss进行索引、匹配，并连同上下文返回。目前支持txt和pdf格式。\n\n支持预先构建索引和运行中构建，其中，预先构建索引强制使用`cuda`，运行中构建根据`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))中`rtst`段的`device(embedding运行设备)`决定，对于显存小于12G的用户建议使用`CPU`。\n\nWindows预先构建索引运行：`plugins\u002Fbuils_rtst_default_index.bat`。\n\nLinux直接使用wenda环境执行 `python plugins\u002Fgen_data_st.py`\n\n需下载模型置于model文件夹，并将txt格式语料置于txt文件夹。\n### 使用微调模型提高知识库回答准确性\n闻达用户“帛凡”，训练并提供的权重合并模型和lora权重文件，详细信息见https:\u002F\u002Fhuggingface.co\u002Ffb700\u002Fchatglm-fitness-RLHF ，使用该模型或者lora权重文件，对比hatglm-6b、chatglm2-6b、百川等模型，在闻达知识库平台中，总结能力可获得显著提升。\n### 模型\n1. [GanymedeNil\u002Ftext2vec-large-chinese](https:\u002F\u002Fhuggingface.co\u002FGanymedeNil\u002Ftext2vec-large-chinese) 不再推荐，不支持英文且显存占用高\n2. [moka-ai\u002Fm3e-base](https:\u002F\u002Fhuggingface.co\u002Fmoka-ai\u002Fm3e-base) 推荐\n### fess模式\n在本机使用默认端口安装fess后可直接运行。否则需修改`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))中`fess_host`的`127.0.0.1:8080`为相应值。[FESS安装教程](docs\u002Finstall_fess.md)\n###  知识库调试\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_84bac2309e7e.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_6d5768bcb5fd.png)\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_f79596b1b9ba.png)\n\n### 清洗知识库文件\n\n安装 [utool](https:\u002F\u002Fu.tools\u002F) 工具，uTools 是一个极简、插件化的桌面软件，可以安装各种使用 nodejs 开发的插件。您可以使用插件对闻达的知识库进行数据清洗。请自行安装以下推荐插件：\n\n- 插件“解散文件夹”，用于将子目录的文件移动到根目录，并删除所有子目录。\n- 插件“重复文件查找”，用于删除目录中的重复文件，原理是对比文件 md5。\n- 插件“文件批量重命名”，用于使用正则匹配和修改文件名，并将分类后的文件名进行知识库的分区操作。\n\n##  模型配置\n### chatGLM-6B\u002FchatGLM2-6B\n运行：`run_GLM6B.bat`。\n\n模型位置等参数：修改`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))。\n\n默认参数在GTX1660Ti（6G显存）上运行良好。\n\n### chatRWKV\n支持torch和cpp两种后端实现，运行：`run_rwkv.bat`。\n\n模型位置等参数：见`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))。\n#### torch\n可使用内置脚本对模型量化，运行：`cov_torch_rwkv.bat`。此操作可以加快启动速度。\n\n在安装vc后支持一键启动CUDA加速，运行：`run_rwkv_with_vc.bat`。强烈建议安装！！！\n#### cpp\n可使用内置脚本对torch版模型转换和量化。 运行：`cov_ggml_rwkv.bat`。\n\n设置strategy诸如\"Q8_0->8\"即支持量化在cpu运行，速度较慢，没有显卡或者没有nvidia显卡的用户使用。\n\n注意：默认windows版本文件为AVX2，默认Liunx版本文件是在debian sid编译的，其他linux发行版本未知。\n\n可以查看：[saharNooby\u002Frwkv.cpp](https:\u002F\u002Fgithub.com\u002FsaharNooby\u002Frwkv.cpp)，下载其他版本，或者自行编译。\n\n### Aquila-7B\n1. 运行`pip install FlagAI`。注意FlagAI依赖很多旧版本的包，需要自己编译，所以如果想基于python3.11运行或者想在一个环境同时跑其他模型，建议去下懒人包\n2. 运行：`run_Aquila.bat`。\n\n模型位置等参数：见`config.yml`(复制[example.config.yml](https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda\u002Fblob\u002Fmain\u002Fexample.config.yml))。注意模型要在这里下：https:\u002F\u002Fmodel.baai.ac.cn\u002Fmodel-detail\u002F100101\n\n# 基于本项目的二次开发\n## [wenda-webui](https:\u002F\u002Fgithub.com\u002FAlanLee1996\u002Fwenda-webui)\n项目调用闻达的 api 接口实现类似于 new bing 的功能。 技术栈：vue3 + element-plus + ts\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_b02fdffc55b0.jpg)\n## [接入Word文档软件](https:\u002F\u002Fqun.qq.com\u002Fqqweb\u002Fqunpro\u002Fshare?_wv=3&_wwv=128&appChannel=share&inviteCode=20s7Vs0iZMx&contentID=1mlnYv&businessType=2&from=181174&shareSource=5&biz=ka)\n通过宏，调用闻达HTTP API\n![](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_7ccc9b65a69b.png)\n[![Star History Chart](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_readme_1d94fe3d17e0.png)](https:\u002F\u002Fstar-history.com\u002F#l15y\u002Fwenda&Date)","# 闻达 (wenda) 快速上手指南\n\n闻达是一个面向个人和中小企业的大规模语言模型调用平台，支持本地离线部署、知识库增强及自动化脚本扩展，注重数据隐私与资源效率。\n\n## 1. 环境准备\n\n### 系统要求\n- **操作系统**：Windows (推荐)、Linux\n- **硬件建议**：\n  - **入门**：6GB 显存显卡 (如 GTX 1660 Ti) 或纯 CPU 运行 (速度较慢)\n  - **推荐**：12GB+ 显存以获得更佳的知识库构建体验\n- **软件依赖**：\n  - Python 3.8 - 3.10 (部分模型在 3.11 下需特殊处理)\n  - CUDA 11.8 (如需 GPU 加速，Windows 用户建议从网盘下载安装包)\n  - Git (用于克隆代码)\n\n### 前置依赖安装\n确保已安装 Python 和 pip，然后安装基础依赖库：\n```bash\npip install -r requirements\u002Frequirements.txt\n```\n*注：若使用 Aquila-7B 模型，需额外执行 `pip install FlagAI`（注意该库依赖较旧，建议使用项目提供的“懒人包”环境）。*\n\n## 2. 安装步骤\n\n您可以选择“懒人包”快速启动，或自行从头安装。\n\n### 方案 A：懒人包（推荐新手）\n项目提供了集成环境和预配置参数的压缩包，适合快速体验。\n\n1. **下载资源**：\n   - **百度云**：https:\u002F\u002Fpan.baidu.com\u002Fs\u002F1idvot-XhEvLLKCbjDQuhyg?pwd=wdai\n   - **夸克网盘**：https:\u002F\u002Fpan.quark.cn\u002Fs\u002Fc4cb08de666e (提取码：4b4R)\n2. **解压与更新**：解压后，建议先运行内置的一键更新功能。\n3. **下载模型**：\n   - 可使用内置脚本从 HuggingFace 下载。\n   - 或直接下载模型文件放入指定目录（推荐 `chatGLM-6B` 或 `RWKV-4-Raven-7B-v11`）。\n4. **启动服务**：\n   - 以 GLM6B 为例，双击运行 `运行 GLM6B.bat`。\n\n### 方案 B：自行安装\n适合需要自定义配置或二次开发的开发者。\n\n1. **克隆项目**：\n   ```bash\n   git clone https:\u002F\u002Fgithub.com\u002Fl15y\u002Fwenda.git\n   cd wenda\n   ```\n\n2. **安装依赖**：\n   ```bash\n   pip install -r requirements\u002Frequirements.txt\n   ```\n\n3. **下载模型**：\n   根据需求下载对应模型权重（推荐 `chatRWKV` 的 `RWKV-4-Raven-7B-v11` 或 `chatGLM-6B`），并放置于项目目录下的 `model` 文件夹中。\n\n4. **配置文件设置**：\n   将示例配置文件重命名并按需修改：\n   ```bash\n   cp example.config.yml config.yml\n   ```\n   编辑 `config.yml`，填写模型路径、API Key（如需）、知识库模式等参数。**务必仔细阅读该文件内的注释说明。**\n\n5. **启动服务**：\n   根据选择的模型运行对应的启动脚本，例如：\n   - ChatGLM: `run_GLM6B.bat` (Windows) 或对应 Python 命令\n   - RWKV: `run_rwkv.bat` (Windows)\n\n## 3. 基本使用\n\n启动成功后，通常在浏览器访问 `http:\u002F\u002F127.0.0.1:xxxx` (具体端口见控制台输出或配置文件) 即可进入 Web 界面。\n\n### 核心功能操作\n\n#### 1. 基础对话\n在聊天框输入问题，系统将调用配置的本地大模型进行回答。支持流式输出和多轮对话历史管理。\n\n#### 2. 开启知识库 (RAG)\n为了让模型基于私有数据回答：\n1. 准备 `.txt` 或 `.pdf` 格式的文档，放入 `txt` 目录。\n2. **构建索引** (以 RTST 模式为例)：\n   - Windows: 运行 `plugins\u002Fbuils_rtst_default_index.bat`\n   - Linux: 执行 `python plugins\u002Fgen_data_st.py`\n   *注意：显存小于 12G 的用户建议在 `config.yml` 中将 embedding 设备设为 `CPU`。*\n3. **启用功能**：在 Web 界面右上角勾选“知识库”开关。\n4. **提问**：此时提问，模型会先检索本地知识库，结合检索内容生成答案。\n\n#### 3. 使用 Auto 自动化脚本\n闻达支持通过 JavaScript 脚本扩展功能（如自动写论文、调用绘图 API 等）。\n- **内置脚本**：项目 `autos` 目录下包含多个示例，如 `0-write_article.js` (写论文)、`1-draw_use_SD_api.js` (绘图)。\n- **启用方式**：将脚本文件放入 `autos` 目录，或在 Web 界面通过油猴脚本注入。\n- **示例代码结构**：\n  ```javascript\n  func.push({\n      name: \"我的功能\",\n      question: async () => {\n          let answer = await send(app.question)\n          alert(answer)\n      },\n  })\n  ```\n\n### 常用模型启动参考\n- **ChatGLM-6B\u002F2-6B**: 默认参数适配 6G 显存，支持量化和 LoRA。\n- **ChatRWKV**: 支持 Torch 和 C++ 后端。Torch 版可运行 `cov_torch_rwkv.bat` 进行量化加速；C++ 版适合无 N 卡用户（需设置 strategy 如 `\"Q8_0->8\"`）。\n- **Aquila-7B**: 需确保安装 `FlagAI`，模型下载地址：https:\u002F\u002Fmodel.baai.ac.cn\u002Fmodel-detail\u002F100101","某中型法律科技公司的内部团队，需要在完全隔离的内网环境中，利用私有法律法规文档构建一个智能问答助手，以辅助律师快速检索案例和条款。\n\n### 没有 wenda 时\n- **数据安全风险高**：若使用公有云大模型 API，必须将敏感的案情描述和客户合同上传至外部服务器，严重违反行业合规要求。\n- **硬件资源门槛高**：部署主流开源模型通常需要多张高端显卡，公司现有的单卡消费级 GPU 服务器无法运行，导致项目搁置。\n- **知识更新滞后**：模型训练数据截止于过去，无法回答最新的地方法规或公司内部新发布的办案指引，回答往往“一本正经地胡说八道”。\n- **定制开发困难**：缺乏统一平台整合本地搜索与模型推理，开发人员需从零编写复杂的向量检索和接口对接代码，耗时数月。\n\n### 使用 wenda 后\n- **实现纯内网私有化**：利用 wenda 的本地离线向量库功能，将所有法律文档存储在本地，配合 ChatGLM-6B 等离线模型，确保数据不出内网，完美解决隐私顾虑。\n- **低资源高效运行**：借助 wenda 对量化技术和多种轻量模型（如 RWKV、Baichuan-LoRA）的优化支持，成功在单张 6G 显存的旧显卡上流畅运行服务。\n- **精准结合私有知识**：通过挂载本地知识库，系统能先检索内部文档再生成答案，准确引用最新条款，大幅降低了模型幻觉，提升了回答的可信度。\n- **快速落地与扩展**：利用内置的 Auto 脚本功能，团队仅用少量 JavaScript 代码就实现了自定义的案情分析流程，将原本数月的开发周期缩短至几天。\n\nwenda 让资源有限的中小企业也能在保障绝对数据安全的前提下，低成本、高效率地拥有专属的行业大模型应用。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fwenda-LLM_wenda_7015e411.png","wenda-LLM","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fwenda-LLM_abaf7126.png",null,"https:\u002F\u002Fgithub.com\u002Fwenda-LLM",[81,85,89,93,97,101],{"name":82,"color":83,"percentage":84},"JavaScript","#f1e05a",85.3,{"name":86,"color":87,"percentage":88},"CSS","#663399",6.8,{"name":90,"color":91,"percentage":92},"Python","#3572A5",5.4,{"name":94,"color":95,"percentage":96},"HTML","#e34c26",2.3,{"name":98,"color":99,"percentage":100},"Batchfile","#C1F12E",0.1,{"name":102,"color":103,"percentage":104},"Shell","#89e051",0,6205,798,"2026-04-09T08:34:50","AGPL-3.0",4,"Windows, Linux","非必需（支持 CPU 运行）。若使用 GPU，推荐 NVIDIA 显卡。默认参数在 GTX1660Ti (6GB 显存) 上运行良好；部分模式建议显存小于 12GB 时使用 CPU。需安装 CUDA 11.8（懒人包提及）。","未说明",{"notes":114,"python":115,"dependencies":116},"1. 支持多种模型离线部署（如 chatGLM-6B, RWKV, Aquila-7B 等），不同模型对硬件要求不同。2. 知识库构建（rtst 模式）若预先构建索引强制使用 CUDA，运行时构建可根据配置选择 CPU 以节省显存（建议显存\u003C12G 用户选 CPU）。3. Windows 用户需安装编译器以支持部分模型的 CPU 运行。4. Aquila-7B 依赖 FlagAI，可能涉及旧包编译问题。5. 提供懒人包集成一键更新和预设环境。","未说明（提及 FlagAI 依赖旧版本包，若在 Python 3.11 运行建议使用懒人包）",[117,118,119,120,121],"sentence_transformers","faiss","FlagAI (针对 Aquila-7B)","torch","requirements.txt 中定义的通用依赖",[15],[124,125,126],"chatglm-6b","chatrwkv","rwkv","2026-03-27T02:49:30.150509","2026-04-10T07:47:03.632618",[130,135,140,145,150,155,160,165],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},27321,"是否支持 Word 文档作为知识库输入？如何处理其中的图片？","系统已支持 Word 文件（v4.14 版本起）。对于文档中的图片，目前的处理思路是将文本部分提取用于索引，图片部分可以单独存放文件夹，并通过链接或 HTML 形式在输出中展示，或者使用图床链接。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F64",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},27314,"运行模型时出现 'gcc: error' 或 'Symbol cudaLaunchKernel not found' 导致加载失败怎么办？","这通常是因为本地缺少 GCC 编译环境，导致量化内核编译失败。虽然懒人包中的模型（如 int4 版本）通常无需重新编译，但程序仍会尝试编译。解决方法：1. 安装 MinGW 并添加环境变量；2. 或者直接使用已量化的模型文件（如将 WSL2 下正常的 chatglm-6b-int4 模型复制到当前环境）；3. 尝试重启电脑后再次运行。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F55",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},27315,"查询知识库时报错 'HuggingFaceEmbeddings' object is not callable 如何解决？","这是 LangChain 版本兼容性问题。在 0.0.329 版本的 LangChain 中，HuggingFaceEmbeddings 类没有直接的 embedding_function 调用方式。需要修改代码 plugins\u002Fzhishiku_rtst.py 第 62 行，将 `embedding = get_vectorstore(memory_name).embedding_function(s)` 改为 `embedding = get_vectorstore(memory_name).embedding_function.embed_query(s)`。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F503",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},27316,"系统是否支持多用户同时访问？如果多人同时提问会发生什么？","LLM 推理同一时间只能处理一个请求，无法同时对多个用户生成答案。其他用户需要排队等待。系统实现了排队机制，用户在访问前可以调用 chat_now 接口获取当前的排队人数，以便了解等待情况。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F365",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},27317,"修改了 txt 文档内容并重新运行数据处理脚本，为什么新内容在问答中搜不到？","旧索引可能未被正确清除。请确保使用最新的 Fess 模式进行搜索。如果是 Windows 懒人包用户，可能需要克隆最新代码在 Ubuntu 环境下运行以避免缓存问题，或者手动彻底清理 cache 目录后重试。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F112",{"id":156,"question_zh":157,"answer_zh":158,"source_url":159},27318,"如何配置 Stable Diffusion (SD) 与 Wenda 连接？","需要在 wenda.py 中添加对应的 SD Agent 连接地址。默认配置中可能未包含 `llm\u002Fsd-agent` 接口。你需要全文搜索相关代码，确认 SD 是否与 Wenda 运行在同一台服务器，并检查 SD 端口（通常为 7860），然后将对应的接口逻辑添加到 wenda.py 中以实现连接。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F306",{"id":161,"question_zh":162,"answer_zh":163,"source_url":164},27319,"运行 llama.cpp 模型时报错 'unknown (magic, version) combination' 是什么原因？","这通常是因为模型文件格式不匹配。q4 格式专为 CPU 推理设计，建议配合 Torch 使用。Wenda 中的 LLM 模块与检索增强生成（RTST）模块是解耦的。请确认下载的模型文件（如 q4_0.bin 或 q4_2.bin）版本与当前运行的 llama.cpp 版本兼容，并检查 config.yml 中的配置是否正确指向了该模型。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F338",{"id":166,"question_zh":167,"answer_zh":168,"source_url":169},27320,"Vicuna 模型解压后报错或生成内容异常（如自问自答）怎么办？","1. 关于解压：懒人包中的两个压缩包通常是一个整体，请确保完整下载。2. 关于效果：CPU 版本已支持，但效果可能不如 ChatGLM。GPTQ 版本效果略好，但可能存在生成“自问自答”内容的 Bug，目前暂无完美解决方案，建议优先尝试其他稳定模型或关注后续更新。","https:\u002F\u002Fgithub.com\u002Fwenda-LLM\u002Fwenda\u002Fissues\u002F72",[]]