Langchain、Nest、Vue、LLM、Chatglm、embedding
90
stars
105
commits
Vue
primary language
May 19, 2023
updated
本项目旨在构建一个:模型层(models)-服务层(service)-展示层(views) 三层完全解耦的、支持二次开发、分开部署的、LLM落地框架。
(本项目展示层(views)已支持langchain-ChatGLM)
模型层:使用Python 3。采用各种方式加载模型,并采用Fastapi将所有接口api化。
后续计划:
用OPenai api的格式统一封装所有本地模型。
将模型层制作成sdk并独立仓库,进一步降低部署难度。
计划参考:https://github.com/ninehills/chatglm-openai-api
服务层:使用JS。采用Langchain.js+nest.js框架,实现业务逻辑开发与数据处理,提高与拓展模型层的性能。 后续计划: 不断跟进langchain-ChatGLM等优秀中间层项目,升级服务层。 参考项目:https://github.com/imClumsyPanda/langchain-ChatGLM
展示层: 使用JS。采用vue3全家桶+native-ui,展示本项目的成果。 后续计划: 不断跟进应用层的升级,同时提高页面的美观程度和交互体验。 参考项目:https://github.com/Chanzhaoyu/chatgpt-web
如果你有想要应用的模型,还在寻找部署、落地和增强拓展方案,请联系我们!
如果你有增强llm模型的方案或框架,还在寻找对接本地llm模型和展示界面的方案,请联系我们!
如果你拥有好看的界面,想要接入更多的模型,拓展更多的功能,请联系我们!
联系方式在页面最底部
本项目的阶段性目标,是提供 LLM封装->本地知识库搭建->商业化部署->用户反馈收集(前端埋点,数据清洗等)->模型专业领域微调(使用上一个阶段收集的数据集)->LLM封装 这样的LLM专业领域落地闭环解决方案
即在将数据收集处理,模型微调解决方案也加入工作流。
⛓️ 本项目实现原理如下图来自(https://github.com/imClumsyPanda/langchain-ChatGLM/tree/master) 所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

2023.5.18 service层初步重构,部署后访问http://localhost:3000/api 即可查看接口文档.
2023.5.11 项目引入Openai和Cohere接口,降低硬件要求 v0.2.5
2023.5.7 项目完成初步设计v0.2.0
2023.4.27 项目正式发布v0.1.0
Openai或Cohere无硬件需求
本项目已引入Openai与Cohere接口,使用apikey,无硬件要求。
Cohere的embedding模型可以在线使用,注册门槛低且有免费试用额度,推荐尝试 https://dashboard.cohere.ai/api-keys
ChatGLM-6B 模型硬件需求
| 量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(高效参数微调) |
|---|---|---|
| FP16(无量化) | 13 GB | 14 GB |
| INT8 | 8 GB | 9 GB |
| INT4 | 6 GB | 7 GB |
Embedding 模型硬件需求
本项目选用的 Embedding 模型 GanymedeNil/text2vec-large-chinese 约占用显存 3GB,也可修改为在 CPU 中运行。
Node18,Python 3
cd service 安装依赖并启动
在项目的根目录下,设置.env,EMBEDDING_SERVER_URL为embedding的ip地址,CHATGLM_6B_SERVER_URL为chatGLM-6B的ip地址(如果不使用本地模型,请忽略此步骤) cd models
chatGLM-6B
cd ChatGLM-6B
embedding
cd ../embedding
cd views
pnpm i
npm run dev
git clone https://github.com/fxjhello/langchain_chatglm_nest.gitcd langchain_chatglm_nestcd servicedocker build -t langchain_chatglm_nest:v1.0.0 -f ./dockerfile . # 打包docker run -d --restart=always --name langchain_chatglm_nest-main -p 51798:3000 langchain_chatglm_nest-main:1.0.0 #左边的端口随便取本项目的原理图,实现思路,以及Embedding 模型py封装,均来自(https://github.com/imClumsyPanda/langchain-ChatGLM/tree/master)

🎉 langchain-nest.js 项目交流群,如果你也对本项目感兴趣,欢迎加入群聊参与讨论交流。
Vue
40.0%
Python
28.7%
TypeScript
22.1%
Less
7.9%
Langchain、Nest、Vue、LLM、Chatglm、embedding
90
stars
105
commits
Vue
primary language
May 19, 2023
updated
本项目旨在构建一个:模型层(models)-服务层(service)-展示层(views) 三层完全解耦的、支持二次开发、分开部署的、LLM落地框架。
(本项目展示层(views)已支持langchain-ChatGLM)
模型层:使用Python 3。采用各种方式加载模型,并采用Fastapi将所有接口api化。
后续计划:
用OPenai api的格式统一封装所有本地模型。
将模型层制作成sdk并独立仓库,进一步降低部署难度。
计划参考:https://github.com/ninehills/chatglm-openai-api
服务层:使用JS。采用Langchain.js+nest.js框架,实现业务逻辑开发与数据处理,提高与拓展模型层的性能。 后续计划: 不断跟进langchain-ChatGLM等优秀中间层项目,升级服务层。 参考项目:https://github.com/imClumsyPanda/langchain-ChatGLM
展示层: 使用JS。采用vue3全家桶+native-ui,展示本项目的成果。 后续计划: 不断跟进应用层的升级,同时提高页面的美观程度和交互体验。 参考项目:https://github.com/Chanzhaoyu/chatgpt-web
如果你有想要应用的模型,还在寻找部署、落地和增强拓展方案,请联系我们!
如果你有增强llm模型的方案或框架,还在寻找对接本地llm模型和展示界面的方案,请联系我们!
如果你拥有好看的界面,想要接入更多的模型,拓展更多的功能,请联系我们!
联系方式在页面最底部
本项目的阶段性目标,是提供 LLM封装->本地知识库搭建->商业化部署->用户反馈收集(前端埋点,数据清洗等)->模型专业领域微调(使用上一个阶段收集的数据集)->LLM封装 这样的LLM专业领域落地闭环解决方案
即在将数据收集处理,模型微调解决方案也加入工作流。
⛓️ 本项目实现原理如下图来自(https://github.com/imClumsyPanda/langchain-ChatGLM/tree/master) 所示,过程包括加载文件 -> 读取文本 -> 文本分割 -> 文本向量化 -> 问句向量化 -> 在文本向量中匹配出与问句向量最相似的top k个 -> 匹配出的文本作为上下文和问题一起添加到prompt中 -> 提交给LLM生成回答。

2023.5.18 service层初步重构,部署后访问http://localhost:3000/api 即可查看接口文档.
2023.5.11 项目引入Openai和Cohere接口,降低硬件要求 v0.2.5
2023.5.7 项目完成初步设计v0.2.0
2023.4.27 项目正式发布v0.1.0
Openai或Cohere无硬件需求
本项目已引入Openai与Cohere接口,使用apikey,无硬件要求。
Cohere的embedding模型可以在线使用,注册门槛低且有免费试用额度,推荐尝试 https://dashboard.cohere.ai/api-keys
ChatGLM-6B 模型硬件需求
| 量化等级 | 最低 GPU 显存(推理) | 最低 GPU 显存(高效参数微调) |
|---|---|---|
| FP16(无量化) | 13 GB | 14 GB |
| INT8 | 8 GB | 9 GB |
| INT4 | 6 GB | 7 GB |
Embedding 模型硬件需求
本项目选用的 Embedding 模型 GanymedeNil/text2vec-large-chinese 约占用显存 3GB,也可修改为在 CPU 中运行。
Node18,Python 3
cd service 安装依赖并启动
在项目的根目录下,设置.env,EMBEDDING_SERVER_URL为embedding的ip地址,CHATGLM_6B_SERVER_URL为chatGLM-6B的ip地址(如果不使用本地模型,请忽略此步骤) cd models
chatGLM-6B
cd ChatGLM-6B
embedding
cd ../embedding
cd views
pnpm i
npm run dev
git clone https://github.com/fxjhello/langchain_chatglm_nest.gitcd langchain_chatglm_nestcd servicedocker build -t langchain_chatglm_nest:v1.0.0 -f ./dockerfile . # 打包docker run -d --restart=always --name langchain_chatglm_nest-main -p 51798:3000 langchain_chatglm_nest-main:1.0.0 #左边的端口随便取本项目的原理图,实现思路,以及Embedding 模型py封装,均来自(https://github.com/imClumsyPanda/langchain-ChatGLM/tree/master)

🎉 langchain-nest.js 项目交流群,如果你也对本项目感兴趣,欢迎加入群聊参与讨论交流。
Vue
40.0%
Python
28.7%
TypeScript
22.1%
Less
7.9%