From baee8cfe82df2c8a1ad76c4ba0dd1dff8fa8982b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=8D=E5=81=9A=E4=BA=86=E7=9D=A1=E5=A4=A7=E8=A7=89?= <64798754+stakeswky@users.noreply.github.com> Date: Thu, 31 Aug 2023 17:58:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E6=9C=89=E5=8C=96=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=AF=B9=E6=8E=A5oneapi=E6=95=99=E7=A8=8B+=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=20(#237)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chatglm2-m3e对接教程 * chatglm2docker部署+对接Oneapi * Update m3e.md --- .../docs/custom-models/chatglm2-m3e.md | 110 ++++++++++++++++++ .../content/docs/custom-models/chatglm2.md | 57 ++++++++- docSite/content/docs/custom-models/m3e.md | 1 + 3 files changed, 166 insertions(+), 2 deletions(-) create mode 100644 docSite/content/docs/custom-models/chatglm2-m3e.md diff --git a/docSite/content/docs/custom-models/chatglm2-m3e.md b/docSite/content/docs/custom-models/chatglm2-m3e.md new file mode 100644 index 000000000..a8c0b2636 --- /dev/null +++ b/docSite/content/docs/custom-models/chatglm2-m3e.md @@ -0,0 +1,110 @@ +--- +title: '接入 ChatGLM2-m3e 模型' +description: ' 将 FastGPT 接入私有化模型 ChatGLM2和m3e-large' +icon: 'model_training' +draft: false +toc: true +weight: 100 +--- + +## 前言 + +FastGPT 默认使用了 openai 的 LLM模型和向量模型,如果想要私有化部署的话,可以使用 ChatGLM2 和 m3e-large 模型。以下是由用户@不做了睡大觉 提供的接入方法。 + +## 部署镜像 + +镜像名: `stawky/chatglm2-m3e:latest` +国内镜像名: `registry.cn-hangzhou.aliyuncs.com/fastgpt/chatglm2-m3e:latest` +端口号: 6006 +镜像默认sk-key: `sk-aaabbbcccdddeeefffggghhhiiijjjkkk` + +## 接入 OneAPI + +为chatglm2和m3e-large各添加一个渠道,参数如下: + +![](/imgs/model-m3e1.png) + +这里我填入m3e作为向量模型,chatglm2作为语言模型 +## 测试 + +curl 例子: + +```bash +curl --location --request POST 'https://domain/v1/embeddings' \ +--header 'Authorization: Bearer sk-aaabbbcccdddeeefffggghhhiiijjjkkk' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "m3e", + "input": ["laf是什么"] +}' +``` + +```bash +curl --location --request POST 'https://domain/v1/chat/completions' \ +--header 'Authorization: Bearer sk-aaabbbcccdddeeefffggghhhiiijjjkkk' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "chatglm2", + "messages": [{"role": "user", "content": "Hello!"}] +}' +``` + +Authorization 为 sk-aaabbbcccdddeeefffggghhhiiijjjkkk。model 为刚刚在 OneAPI 填写的自定义模型。 + +## 接入 FastGPT + +修改 config.json 配置文件,在 VectorModels 中加入 chatglm2和M3E 模型: + +```json + "ChatModels": [ + //已有模型 + { + "model": "chatglm2", + "name": "chatglm2", + "contextMaxToken": 8000, + "quoteMaxToken": 4000, + "maxTemperature": 1.2, + "price": 0, + "defaultSystem": "" + } + ], + +"VectorModels": [ + { + "model": "text-embedding-ada-002", + "name": "Embedding-2", + "price": 0.2, + "defaultToken": 500, + "maxToken": 3000 + }, + { + "model": "m3e", + "name": "M3E(测试使用)", + "price": 0.1, + "defaultToken": 500, + "maxToken": 1800 + } +], +``` + +## 测试使用 +M3E 模型的使用方法如下: +1. 创建知识库时候选择 M3E 模型。 + +注意,一旦选择后,知识库将无法修改向量模型。 + +![](/imgs/model-m3e2.png) + +2. 导入数据 +3. 搜索测试 + +![](/imgs/model-m3e3.png) + +4. 应用绑定知识库 + +注意,应用只能绑定同一个向量模型的知识库,不能跨模型绑定。并且,需要注意调整相似度,不同向量模型的相似度(距离)会有所区别,需要自行测试实验。 + +![](/imgs/model-m3e4.png) + +chatglm2 模型的使用方法如下: +模型选择chatglm2即可 \ No newline at end of file diff --git a/docSite/content/docs/custom-models/chatglm2.md b/docSite/content/docs/custom-models/chatglm2.md index 0f045594c..168e3c44f 100644 --- a/docSite/content/docs/custom-models/chatglm2.md +++ b/docSite/content/docs/custom-models/chatglm2.md @@ -66,6 +66,59 @@ CHAT_API_KEY=sk-aaabbbcccdddeeefffggghhhiiijjjkkk # 这里是你在代码中配 这样就成功接入 ChatGLM2-6B 了。 -## 注意 +## docker 部署 + +## 部署镜像 + +镜像名: `stawky/chatglm2:latest` +国内镜像名: `registry.cn-hangzhou.aliyuncs.com/fastgpt/chatglm2:latest` +端口号: 6006 +镜像默认sk-key: `sk-aaabbbcccdddeeefffggghhhiiijjjkkk` + +## 接入 OneAPI + +为chatglm2添加一个渠道,参数如下: + +![](/imgs/model-m3e1.png) + +这里我填入chatglm2作为语言模型 +## 测试 + +curl 例子: + +```bash +curl --location --request POST 'https://domain/v1/chat/completions' \ +--header 'Authorization: Bearer sk-aaabbbcccdddeeefffggghhhiiijjjkkk' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "model": "chatglm2", + "messages": [{"role": "user", "content": "Hello!"}] +}' +``` + +Authorization 为 sk-aaabbbcccdddeeefffggghhhiiijjjkkk。model 为刚刚在 OneAPI 填写的自定义模型。 + +## 接入 FastGPT + +修改 config.json 配置文件,在 VectorModels 中加入 chatglm2和M3E 模型: + +```json + "ChatModels": [ + //已有模型 + { + "model": "chatglm2", + "name": "chatglm2", + "contextMaxToken": 8000, + "quoteMaxToken": 4000, + "maxTemperature": 1.2, + "price": 0, + "defaultSystem": "" + } + ], +``` + +## 测试使用 + +chatglm2 模型的使用方法如下: +模型选择chatglm2即可 -1. docker 部署时,给的推荐配置是组网模型,无法连接到本地的网络,以为这无法请求 0.0.0.0:6006。可以使用 host 模式,或者将模型发布到服务器上,并通过 oneapi 引入该模型。 diff --git a/docSite/content/docs/custom-models/m3e.md b/docSite/content/docs/custom-models/m3e.md index f738cc76e..74f43db2b 100644 --- a/docSite/content/docs/custom-models/m3e.md +++ b/docSite/content/docs/custom-models/m3e.md @@ -14,6 +14,7 @@ FastGPT 默认使用了 openai 的 embedding 向量模型,如果你想私有 ## 部署镜像 镜像名: `stawky/m3e-large-api:latest` +国内镜像: `registry.cn-guangzhou.aliyuncs.com/kbgpt/m3e-large-api:latest` 端口号: 6008 ## 接入 OneAPI