[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71233":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":16,"starSnapshotCount":16,"syncStatus":28,"lastSyncTime":29,"discoverSource":30},71233,"wenda","wenda-LLM\u002Fwenda","wenda-LLM","闻达：一个LLM调用平台。目标为针对特定环境的高效内容生成，同时考虑个人和中小企业的计算资源局限性，以及知识安全和私密性问题","",null,"JavaScript",6173,791,78,55,0,39.7,"GNU Affero General Public License v3.0",false,"main",[22,23,24],"chatglm-6b","chatrwkv","rwkv","2026-06-12 02:02:49","# 闻达：一个大规模语言模型调用平台\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![](imgs\u002Fsetting.png)\n![](imgs\u002Fsetting2.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![](imgs\u002Fauto1.jpg)\n![](imgs\u002Fauto2.png)\n![](imgs\u002Fauto3.png)\n![](imgs\u002Fauto4.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![](imgs\u002Fzsk1.jpg)\n![](imgs\u002Fzsk2.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![](imgs\u002Fzsk-test.png)\n![](imgs\u002Fzsk-glm.png)\n![](imgs\u002Fzsk-rwkv.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![](imgs\u002Fwebui.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![](imgs\u002FWord.png)\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=l15y\u002Fwenda&type=Date)](https:\u002F\u002Fstar-history.com\u002F#l15y\u002Fwenda&Date)\n","闻达是一个大规模语言模型调用平台，旨在为特定环境提供高效的内容生成服务，同时考虑到个人和中小企业在计算资源、知识安全及私密性方面的限制。该项目支持多种大语言模型的离线部署与在线API访问，并且能够对接本地或在线的知识库，通过Auto脚本扩展功能，如自定义对话流程等。此外，它还具备对话历史管理、内网部署以及多用户同时使用的能力。适合需要在有限资源下实现高质量文本生成，并重视数据隐私保护的应用场景，例如企业内部知识管理系统、个人研究助手等领域。",2,"2026-06-11 03:36:42","high_star"]