diff --git a/docSite/content/zh-cn/docs/guide/dashboard/workflow/document_parsing.md b/docSite/content/zh-cn/docs/guide/dashboard/workflow/document_parsing.md index 1d84b385a..ac14c1c30 100644 --- a/docSite/content/zh-cn/docs/guide/dashboard/workflow/document_parsing.md +++ b/docSite/content/zh-cn/docs/guide/dashboard/workflow/document_parsing.md @@ -7,11 +7,9 @@ toc: true weight: 250 --- -
-
-
-
+
+| | |
+| --- | --- |
+|  |  |
-
-
-
+
+| | |
+| --- | --- |
+|  |  |
-
-+ 🐞 请将任何 FastGPT 的 Bug、问题和需求提交到 [GitHub Issue](https://github.com/labring/fastgpt/issues/new/choose)。
-
-# 开发与部署指南
-## 简介
-
-本地开发 FastGPT 必看
-
-
-
-# 配置文件介绍
-## 简介
-
-FastGPT 配置参数介绍
-
-由于环境变量不利于配置复杂的内容,新版 FastGPT 采用了 ConfigMap 的形式挂载配置文件,你可以在 `projects/app/data/config.json` 看到默认的配置文件。可以参考 [docker-compose 快速部署](/docs/development/docker/) 来挂载配置文件。
-
-**开发环境下**,你需要将示例配置文件 `config.json` 复制成 `config.local.json` 文件才会生效。
-
-下面配置文件示例中包含了系统参数和各个模型配置:
-
-## 4.8.20+ 版本新配置文件示例
-> 从4.8.20版本开始,模型在页面中进行配置。
-```json
-{
- "feConfigs": {
- "lafEnv": "https://laf.dev" // laf环境。 https://laf.run (杭州阿里云) ,或者私有化的laf环境。如果使用 Laf openapi 功能,需要最新版的 laf 。
- },
- "systemEnv": {
- "vectorMaxProcess": 15, // 向量处理线程数量
- "qaMaxProcess": 15, // 问答拆分线程数量
- "vlmMaxProcess": 15, // 图片理解模型最大处理进程
- "tokenWorkers": 50, // Token 计算线程保持数,会持续占用内存,不能设置太大。
- "hnswEfSearch": 100, // 向量搜索参数,仅对 PG 和 OB 生效。越大,搜索越精确,但是速度越慢。设置为100,有99%+精度。
- "customPdfParse": { // 4.9.0 新增配置
- "url": "", // 自定义 PDF 解析服务地址
- "key": "", // 自定义 PDF 解析服务密钥
- "doc2xKey": "", // doc2x 服务密钥
- "price": 0 // PDF 解析服务价格
- }
- }
-}
-```
-
-## 自定义 PDF 解析配置
-
-自定义 PDF 服务解析的优先级高于 Doc2x 服务,所以如果使用 Doc2x 服务,请勿配置自定义 PDF 服务。
-
-### 使用 Sealos PDF 解析服务
-
-#### 1. 申请 Sealos AI proxy API Key
-
-[点击打开 Sealos Pdf parser 官网](https://hzh.sealos.run/?uid=fnWRt09fZP&openapp=system-aiproxy),并进行对应 API Key 的申请。
-
-#### 2. 修改 FastGPT 配置文件
-
-`systemEnv.customPdfParse.url`填写成`https://aiproxy.hzh.sealos.run/v1/parse/pdf?model=parse-pdf`
-`systemEnv.customPdfParse.key`填写成在 Sealos AI proxy 中申请的 API Key。
-
-
-
-### 使用 Doc2x 解析 PDF 文件
-
-`Doc2x`是一个国内提供专业 PDF 解析。
-
-#### 1. 申请 Doc2x 服务
-
-[点击打开 Doc2x 官网](https://doc2x.noedgeai.com?inviteCode=9EACN2),并进行对应 API Key 的申请。
-
-#### 2. 修改 FastGPT 配置文件
-
-开源版用户在 `config.json` 文件中添加 `systemEnv.customPdfParse.doc2xKey` 配置,并填写上申请到的 API Key。并重启服务。
-
-商业版用户在 Admin 后台根据表单指引填写 Doc2x 服务密钥。
-
-#### 3. 开始使用
-
-在知识库导入数据或应用文件上传配置中,可以勾选`PDF 增强解析`,则在对 PDF 解析时候,会使用 Doc2x 服务进行解析。
-
-### 使用 Marker 解析 PDF 文件
-
-[点击查看 Marker 接入教程](/docs/development/custom-models/marker)
-
-# 本地模型使用
-## 简介
-
-FastGPT 对接本地模型
-
-
-
-# 接入 bge-rerank 重排模型
-## 简介
-
-接入 bge-rerank 重排模型
-
-## 不同模型推荐配置
-
-推荐配置如下:
-
-{{< table "table-hover table-striped-columns" >}}
-| 模型名 | 内存 | 显存 | 硬盘空间 | 启动命令 |
-|------|---------|---------|----------|--------------------------|
-| bge-reranker-base | >=4GB | >=4GB | >=8GB | python app.py |
-| bge-reranker-large | >=8GB | >=8GB | >=8GB | python app.py |
-| bge-reranker-v2-m3 | >=8GB | >=8GB | >=8GB | python app.py |
-{{< /table >}}
-
-## 源码部署
-
-### 1. 安装环境
-
-- Python 3.9, 3.10
-- CUDA 11.7
-- 科学上网环境
-
-### 2. 下载代码
-
-3 个模型代码分别为:
-
-1. [https://github.com/labring/FastGPT/tree/main/plugins/model/rerank-bge/bge-reranker-base](https://github.com/labring/FastGPT/tree/main/plugins/model/rerank-bge/bge-reranker-base)
-2. [https://github.com/labring/FastGPT/tree/main/plugins/model/rerank-bge/bge-reranker-large](https://github.com/labring/FastGPT/tree/main/plugins/model/rerank-bge/bge-reranker-large)
-3. [https://github.com/labring/FastGPT/tree/main/plugins/model/rerank-bge/bge-reranker-v2-m3](https://github.com/labring/FastGPT/tree/main/plugins/model/rerank-bge/bge-reranker-v2-m3)
-
-### 3. 安装依赖
-
-```sh
-pip install -r requirements.txt
-```
-
-### 4. 下载模型
-
-3个模型的 huggingface 仓库地址如下:
-
-1. [https://huggingface.co/BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)
-2. [https://huggingface.co/BAAI/bge-reranker-large](https://huggingface.co/BAAI/bge-reranker-large)
-3. [https://huggingface.co/BAAI/bge-reranker-v2-m3](https://huggingface.co/BAAI/bge-reranker-v2-m3)
-
-在对应代码目录下 clone 模型。目录结构:
-
-```
-bge-reranker-base/
-app.py
-Dockerfile
-requirements.txt
-```
-
-### 5. 运行代码
-
-```bash
-python app.py
-```
-
-启动成功后应该会显示如下地址:
-
-
-
-> 这里的 `http://0.0.0.0:6006` 就是连接地址。
-
-## docker 部署
-
-**镜像名分别为:**
-
-1. registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1 (4 GB+)
-2. registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-large:v0.1 (5 GB+)
-3. registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-v2-m3:v0.1 (5 GB+)
-
-**端口**
-
-6006
-
-**环境变量**
-
-```
-ACCESS_TOKEN=访问安全凭证,请求时,Authorization: Bearer ${ACCESS_TOKEN}
-```
-
-**运行命令示例**
-
-```sh
-# auth token 为mytoken
-docker run -d --name reranker -p 6006:6006 -e ACCESS_TOKEN=mytoken --gpus all registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1
-```
-
-**docker-compose.yml示例**
-```
-version: "3"
-services:
- reranker:
- image: registry.cn-hangzhou.aliyuncs.com/fastgpt/bge-rerank-base:v0.1
- container_name: reranker
- # GPU运行环境,如果宿主机未安装,将deploy配置隐藏即可
- deploy:
- resources:
- reservations:
- devices:
- - driver: nvidia
- count: all
- capabilities: [gpu]
- ports:
- - 6006:6006
- environment:
- - ACCESS_TOKEN=mytoken
-
-```
-## 接入 FastGPT
-
-1. 打开 FastGPT 模型配置,新增一个重排模型。
-2. 填写模型配置表单:模型 ID 为`bge-reranker-base`,地址填写`{{host}}/v1/rerank`,host 为你部署的域名/IP:Port。
-
-
-
-## QA
-
-### 403报错
-
-FastGPT中,自定义请求 Token 和环境变量的 ACCESS_TOKEN 不一致。
-
-### Docker 运行提示 `Bus error (core dumped)`
-
-尝试增加 `docker-compose.yml` 配置项 `shm_size` ,以增加容器中的共享内存目录大小。
-
-```
-...
-services:
- reranker:
- ...
- container_name: reranker
- shm_size: '2gb'
- ...
-```
-
-# 接入 ChatGLM2-m3e 模型
-## 简介
-
- 将 FastGPT 接入私有化模型 ChatGLM2和m3e-large
-
-## 前言
-
-FastGPT 默认使用了 OpenAI 的 LLM 模型和向量模型,如果想要私有化部署的话,可以使用 ChatGLM2 和 m3e-large 模型。以下是由用户@不做了睡大觉 提供的接入方法。该镜像直接集成了 M3E-Large 和 ChatGLM2-6B 模型,可以直接使用。
-
-## 部署镜像
-
-+ 镜像名: `stawky/chatglm2-m3e:latest`
-+ 国内镜像名: `registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/chatglm2-m3e:latest`
-+ 端口号: 6006
-
-```
-# 设置安全凭证(即oneapi中的渠道密钥)
-默认值:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
-也可以通过环境变量引入:sk-key。有关docker环境变量引入的方法请自寻教程,此处不再赘述。
-```
-
-## 接入 [One API](/docs/development/modelconfig/one-api/)
-
-为 chatglm2 和 m3e-large 各添加一个渠道,参数如下:
-
-
-
-这里我填入 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 为刚刚在 One API 填写的自定义模型。
-
-## 接入 FastGPT
-
-修改 config.json 配置文件,在 llmModels 中加入 chatglm2, 在 vectorModels 中加入 M3E 模型:
-
-```json
-"llmModels": [
- //其他对话模型
- {
- "model": "chatglm2",
- "name": "chatglm2",
- "maxToken": 8000,
- "price": 0,
- "quoteMaxToken": 4000,
- "maxTemperature": 1.2,
- "defaultSystemChatPrompt": ""
- }
-],
-"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 模型。
-
- 注意,一旦选择后,知识库将无法修改向量模型。
-
- 
-
-2. 导入数据
-3. 搜索测试
-
- 
-
-4. 应用绑定知识库
-
- 注意,应用只能绑定同一个向量模型的知识库,不能跨模型绑定。并且,需要注意调整相似度,不同向量模型的相似度(距离)会有所区别,需要自行测试实验。
-
- 
-
-chatglm2 模型的使用方法如下:
-模型选择 chatglm2 即可
-
-# 接入 ChatGLM2-6B
-## 简介
-
- 将 FastGPT 接入私有化模型 ChatGLM2-6B
-
-## 前言
-
-FastGPT 允许你使用自己的 OpenAI API KEY 来快速调用 OpenAI 接口,目前集成了 GPT-3.5, GPT-4 和 embedding,可构建自己的知识库。但考虑到数据安全的问题,我们并不能将所有的数据都交付给云端大模型。
-
-那么如何在 FastGPT 上接入私有化模型呢?本文就以清华的 ChatGLM2 为例,为各位讲解如何在 FastGPT 中接入私有化模型。
-
-## ChatGLM2-6B 简介
-
-ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本,具体介绍可参阅 [ChatGLM2-6B 项目主页](https://github.com/THUDM/ChatGLM2-6B)。
-
-{{% alert context="warning" %}}
-注意,ChatGLM2-6B 权重对学术研究完全开放,在获得官方的书面许可后,亦允许商业使用。本教程只是介绍了一种用法,无权给予任何授权!
-{{% /alert %}}
-
-## 推荐配置
-
-依据官方数据,同样是生成 8192 长度,量化等级为 FP16 要占用 12.8GB 显存、int8 为 8.1GB 显存、int4 为 5.1GB 显存,量化后会稍微影响性能,但不多。
-
-因此推荐配置如下:
-
-{{< table "table-hover table-striped-columns" >}}
-| 类型 | 内存 | 显存 | 硬盘空间 | 启动命令 |
-|------|---------|---------|----------|--------------------------|
-| fp16 | >=16GB | >=16GB | >=25GB | python openai_api.py 16 |
-| int8 | >=16GB | >=9GB | >=25GB | python openai_api.py 8 |
-| int4 | >=16GB | >=6GB | >=25GB | python openai_api.py 4 |
-{{< /table >}}
-
-## 部署
-
-### 环境要求
-
-- Python 3.8.10
-- CUDA 11.8
-- 科学上网环境
-
-### 源码部署
-
-1. 根据上面的环境配置配置好环境,具体教程自行 GPT;
-2. 下载 [python 文件](https://github.com/labring/FastGPT/blob/main/plugins/model/llm-ChatGLM2/openai_api.py)
-3. 在命令行输入命令 `pip install -r requirements.txt`;
-4. 打开你需要启动的 py 文件,在代码的 `verify_token` 方法中配置 token,这里的 token 只是加一层验证,防止接口被人盗用;
-5. 执行命令 `python openai_api.py --model_name 16`。这里的数字根据上面的配置进行选择。
-
-然后等待模型下载,直到模型加载完毕为止。如果出现报错先问 GPT。
-
-启动成功后应该会显示如下地址:
-
-
-
-> 这里的 `http://0.0.0.0:6006` 就是连接地址。
-
-### docker 部署
-
-**镜像和端口**
-
-+ 镜像名: `stawky/chatglm2:latest`
-+ 国内镜像名: `registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/chatglm2:latest`
-+ 端口号: 6006
-
-```
-# 设置安全凭证(即oneapi中的渠道密钥)
-默认值:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
-也可以通过环境变量引入:sk-key。有关docker环境变量引入的方法请自寻教程,此处不再赘述。
-```
-
-## 接入 One API
-
-为 chatglm2 添加一个渠道,参数如下:
-
-
-
-这里我填入 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 为刚刚在 One API 填写的自定义模型。
-
-## 接入 FastGPT
-
-修改 config.json 配置文件,在 llmModels 中加入 chatglm2 模型:
-
-```json
-"llmModels": [
- //已有模型
- {
- "model": "chatglm2",
- "name": "chatglm2",
- "maxContext": 4000,
- "maxResponse": 4000,
- "quoteMaxToken": 2000,
- "maxTemperature": 1,
- "vision": false,
- "defaultSystemChatPrompt": ""
- }
-]
-```
-
-## 测试使用
-
-chatglm2 模型的使用方法如下:
-
-模型选择 chatglm2 即可
-
-# 接入 M3E 向量模型
-## 简介
-
- 将 FastGPT 接入私有化模型 M3E
-
-## 前言
-
-FastGPT 默认使用了 openai 的 embedding 向量模型,如果你想私有部署的话,可以使用 M3E 向量模型进行替换。M3E 向量模型属于小模型,资源使用不高,CPU 也可以运行。下面教程是基于 “睡大觉” 同学提供的一个的镜像。
-
-## 部署镜像
-
-镜像名: `stawky/m3e-large-api:latest`
-国内镜像: `registry.cn-hangzhou.aliyuncs.com/fastgpt_docker/m3e-large-api:latest`
-端口号: 6008
-环境变量:
-
-```
-# 设置安全凭证(即oneapi中的渠道密钥)
-默认值:sk-aaabbbcccdddeeefffggghhhiiijjjkkk
-也可以通过环境变量引入:sk-key。有关docker环境变量引入的方法请自寻教程,此处不再赘述。
-```
-
-## 接入 One API
-
-添加一个渠道,参数如下:
-
-
-
-## 测试
-
-curl 例子:
-
-```bash
-curl --location --request POST 'https://domain/v1/embeddings' \
---header 'Authorization: Bearer xxxx' \
---header 'Content-Type: application/json' \
---data-raw '{
- "model": "m3e",
- "input": ["laf是什么"]
-}'
-```
-
-Authorization 为 sk-key。model 为刚刚在 One API 填写的自定义模型。
-
-## 接入 FastGPT
-
-修改 config.json 配置文件,在 vectorModels 中加入 M3E 模型:
-
-```json
-"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
- }
-]
-```
-
-## 测试使用
-
-1. 创建知识库时候选择 M3E 模型。
-
- 注意,一旦选择后,知识库将无法修改向量模型。
-
- 
-
-2. 导入数据
-3. 搜索测试
-
- 
-
-4. 应用绑定知识库
-
- 注意,应用只能绑定同一个向量模型的知识库,不能跨模型绑定。并且,需要注意调整相似度,不同向量模型的相似度(距离)会有所区别,需要自行测试实验。
-
- 
-
-# 接入 Marker PDF 文档解析
-## 简介
-
-使用 Marker 解析 PDF 文档,可实现图片提取和布局识别
-
-## 背景
-
-PDF 是一个相对复杂的文件格式,在 FastGPT 内置的 pdf 解析器中,依赖的是 pdfjs 库解析,该库基于逻辑解析,无法有效的理解复杂的 pdf 文件。所以我们在解析 pdf 时候,如果遇到图片、表格、公式等非简单文本内容,会发现解析效果不佳。
-
-市面上目前有多种解析 PDF 的方法,比如使用 [Marker](https://github.com/VikParuchuri/marker),该项目使用了 Surya 模型,基于视觉解析,可以有效提取图片、表格、公式等复杂内容。
-
-在 `FastGPT v4.9.0` 版本中,开源版用户可以在`config.json`文件中添加`systemEnv.customPdfParse`配置,来使用 Marker 解析 PDF 文件。商业版用户直接在 Admin 后台根据表单指引填写即可。需重新拉取 Marker 镜像,接口格式已变动。
-
-## 使用教程
-
-### 1. 安装 Marker
-
-参考文档 [Marker 安装教程](https://github.com/labring/FastGPT/tree/main/plugins/model/pdf-marker),安装 Marker 模型。封装的 API 已经适配了 FastGPT 自定义解析服务。
-
-这里介绍快速 Docker 安装的方法:
-
-```dockerfile
-docker pull crpi-h3snc261q1dosroc.cn-hangzhou.personal.cr.aliyuncs.com/marker11/marker_images:v0.2
-docker run --gpus all -itd -p 7231:7232 --name model_pdf_v2 -e PROCESSES_PER_GPU="2" crpi-h3snc261q1dosroc.cn-hangzhou.personal.cr.aliyuncs.com/marker11/marker_images:v0.2
-```
-### 2. 添加 FastGPT 文件配置
-
-```json
-{
- xxx
- "systemEnv": {
- xxx
- "customPdfParse": {
- "url": "http://xxxx.com/v2/parse/file", // 自定义 PDF 解析服务地址 marker v0.2
- "key": "", // 自定义 PDF 解析服务密钥
- "doc2xKey": "", // doc2x 服务密钥
- "price": 0 // PDF 解析服务价格
- }
- }
-}
-```
-
-需要重启服务。
-
-### 3. 测试效果
-
-通过知识库上传一个 pdf 文件,并勾选上 `PDF 增强解析`。
-
-
-
-确认上传后,可以在日志中看到 LOG (LOG_LEVEL需要设置 info 或者 debug):
-
-```
-[Info] 2024-12-05 15:04:42 Parsing files from an external service
-[Info] 2024-12-05 15:07:08 Custom file parsing is complete, time: 1316ms
-```
-
-然后你就可以发现,通过 Marker 解析出来的 pdf 会携带图片链接:
-
-
-
-同样的,在应用中,你可以在文件上传配置里,勾选上 `PDF 增强解析`。
-
-
-
-
-## 效果展示
-
-以清华的 [ChatDev Communicative Agents for Software Develop.pdf](https://arxiv.org/abs/2307.07924) 为例,展示 Marker 解析的效果:
-
-| | | |
-| --- | --- | --- |
-|  |  |  |
-|  |  |  |
-
-上图是分块后的结果,下图是 pdf 原文。整体图片、公式、表格都可以提取出来,效果还是杠杠的。
-
-不过要注意的是,[Marker](https://github.com/VikParuchuri/marker) 的协议是`GPL-3.0 license`,请在遵守协议的前提下使用。
-
-## 旧版 Marker 使用方法
-
-FastGPT V4.9.0 版本之前,可以用以下方式,试用 Marker 解析服务。
-
-安装和运行 Marker 服务:
-
-```dockerfile
-docker pull crpi-h3snc261q1dosroc.cn-hangzhou.personal.cr.aliyuncs.com/marker11/marker_images:v0.1
-docker run --gpus all -itd -p 7231:7231 --name model_pdf_v1 -e PROCESSES_PER_GPU="2" crpi-h3snc261q1dosroc.cn-hangzhou.personal.cr.aliyuncs.com/marker11/marker_images:v0.1
-```
-
-并修改 FastGPT 环境变量:
-
-```
-CUSTOM_READ_FILE_URL=http://xxxx.com/v1/parse/file
-CUSTOM_READ_FILE_EXTENSION=pdf
-```
-
-* CUSTOM_READ_FILE_URL - 自定义解析服务的地址, host改成解析服务的访问地址,path 不能变动。
-* CUSTOM_READ_FILE_EXTENSION - 支持的文件后缀,多个文件类型,可用逗号隔开。
-
-# 使用 Ollama 接入本地模型
-## 简介
-
- 采用 Ollama 部署自己的模型
-
-[Ollama](https://ollama.com/) 是一个开源的AI大模型部署工具,专注于简化大语言模型的部署和使用,支持一键下载和运行各种大模型。
-
-## 安装 Ollama
-
-Ollama 本身支持多种安装方式,但是推荐使用 Docker 拉取镜像部署。如果是个人设备上安装了 Ollama 后续需要解决如何让 Docker 中 FastGPT 容器访问宿主机 Ollama的问题,较为麻烦。
-
-### Docker 安装(推荐)
-
-你可以使用 Ollama 官方的 Docker 镜像来一键安装和启动 Ollama 服务(确保你的机器上已经安装了 Docker),命令如下:
-
-```bash
-docker pull ollama/ollama
-docker run --rm -d --name ollama -p 11434:11434 ollama/ollama
-```
-
-如果你的 FastGPT 是在 Docker 中进行部署的,建议在拉取 Ollama 镜像时保证和 FastGPT 镜像处于同一网络,否则可能出现 FastGPT 无法访问的问题,命令如下:
-
-```bash
-docker run --rm -d --name ollama --network (你的 Fastgpt 容器所在网络) -p 11434:11434 ollama/ollama
-```
-
-### 主机安装
-
-如果你不想使用 Docker ,也可以采用主机安装,以下是主机安装的一些方式。
-
-#### MacOS
-
-如果你使用的是 macOS,且系统中已经安装了 Homebrew 包管理器,可通过以下命令来安装 Ollama:
-
-```bash
-brew install ollama
-ollama serve #安装完成后,使用该命令启动服务
-```
-
-#### Linux
-
-在 Linux 系统上,你可以借助包管理器来安装 Ollama。以 Ubuntu 为例,在终端执行以下命令:
-
-```bash
-curl https://ollama.com/install.sh | sh #此命令会从官方网站下载并执行安装脚本。
-ollama serve #安装完成后,同样启动服务
-```
-
-#### Windows
-
-在 Windows 系统中,你可以从 Ollama 官方网站 下载 Windows 版本的安装程序。下载完成后,运行安装程序,按照安装向导的提示完成安装。安装完成后,在命令提示符或 PowerShell 中启动服务:
-
-```bash
-ollama serve #安装完成并启动服务后,你可以在浏览器中访问 http://localhost:11434 来验证 Ollama 是否安装成功。
-```
-
-#### 补充说明
-
-如果你是采用的主机应用 Ollama 而不是镜像,需要确保你的 Ollama 可以监听0.0.0.0。
-
-##### 1. Linxu 系统
-
-如果 Ollama 作为 systemd 服务运行,打开终端,编辑 Ollama 的 systemd 服务文件,使用命令sudo systemctl edit ollama.service,在[Service]部分添加Environment="OLLAMA_HOST=0.0.0.0"。保存并退出编辑器,然后执行sudo systemctl daemon - reload和sudo systemctl restart ollama使配置生效。
-
-##### 2. MacOS 系统
-
-打开终端,使用launchctl setenv ollama_host "0.0.0.0"命令设置环境变量,然后重启 Ollama 应用程序以使更改生效。
-
-##### 3. Windows 系统
-
-通过 “开始” 菜单或搜索栏打开 “编辑系统环境变量”,在 “系统属性” 窗口中点击 “环境变量”,在 “系统变量” 部分点击 “新建”,创建一个名为OLLAMA_HOST的变量,变量值设置为0.0.0.0,点击 “确定” 保存更改,最后从 “开始” 菜单重启 Ollama 应用程序。
-
-### Ollama 拉取模型镜像
-
-在安装 Ollama 后,本地是没有模型镜像的,需要自己去拉取 Ollama 中的模型镜像。命令如下:
-
-```bash
-# Docker 部署需要先进容器,命令为: docker exec -it < Ollama 容器名 > /bin/sh
-ollama pull <模型名>
-```
-
-
-
-
-### 测试通信
-
-在安装完成后,需要进行检测测试,首先进入 FastGPT 所在的容器,尝试访问自己的 Ollama ,命令如下:
-
-```bash
-docker exec -it < FastGPT 所在的容器名 > /bin/sh
-curl http://XXX.XXX.XXX.XXX:11434 #容器部署地址为“http://<容器名>:<端口>”,主机安装地址为"http://<主机IP>:<端口>",主机IP不可为localhost
-```
-
-看到访问显示自己的 Ollama 服务以及启动,说明可以正常通信。
-
-## 将 Ollama 接入 FastGPT
-
-### 1. 查看 Ollama 所拥有的模型
-
-首先采用下述命令查看 Ollama 中所拥有的模型,
-
-```bash
-# Docker 部署 Ollama,需要此命令 docker exec -it < Ollama 容器名 > /bin/sh
-ollama ls
-```
-
-
-
-### 2. AI Proxy 接入
-
-如果你采用的是 FastGPT 中的默认配置文件部署[这里](/docs/development/docker.md),即默认采用 AI Proxy 进行启动。
-
-
-
-以及在确保你的 FastGPT 可以直接访问 Ollama 容器的情况下,无法访问,参考上文[点此跳转](#安装-ollama)的安装过程,检测是不是主机不能监测0.0.0.0,或者容器不在同一个网络。
-
-
-
-在 FastGPT 中点击账号->模型提供商->模型配置->新增模型,添加自己的模型即可,添加模型时需要保证模型ID和 OneAPI 中的模型名称一致。详细参考[这里](/docs/development/modelConfig/intro.md)
-
-
-
-
-
-运行 FastGPT ,在页面中选择账号->模型提供商->模型渠道->新增渠道。之后,在渠道选择中选择 Ollama ,然后加入自己拉取的模型,填入代理地址,如果是容器中安装 Ollama ,代理地址为http://地址:端口,补充:容器部署地址为“http://<容器名>:<端口>”,主机安装地址为"http://<主机IP>:<端口>",主机IP不可为localhost
-
-
-
-在工作台中创建一个应用,选择自己之前添加的模型,此处模型名称为自己当时设置的别名。注:同一个模型无法多次添加,系统会采取最新添加时设置的别名。
-
-
-
-### 3. OneAPI 接入
-
-如果你想使用 OneAPI ,首先需要拉取 OneAPI 镜像,然后将其在 FastGPT 容器的网络中运行。具体命令如下:
-
-```bash
-# 拉取 oneAPI 镜像
-docker pull intel/oneapi-hpckit
-
-# 运行容器并指定自定义网络和容器名
-docker run -it --network < FastGPT 网络 > --name 容器名 intel/oneapi-hpckit /bin/bash
-```
-
-进入 OneAPI 页面,添加新的渠道,类型选择 Ollama ,在模型中填入自己 Ollama 中的模型,需要保证添加的模型名称和 Ollama 中一致,再在下方填入自己的 Ollama 代理地址,默认http://地址:端口,不需要填写/v1。添加成功后在 OneAPI 进行渠道测试,测试成功则说明添加成功。此处演示采用的是 Docker 部署 Ollama 的效果,主机 Ollama需要修改代理地址为http://<主机IP>:<端口>
-
-
-
-渠道添加成功后,点击令牌,点击添加令牌,填写名称,修改配置。
-
-
-
-修改部署 FastGPT 的 docker-compose.yml 文件,在其中将 AI Proxy 的使用注释,在 OPENAI_BASE_URL 中加入自己的 OneAPI 开放地址,默认是http://地址:端口/v1,v1必须填写。KEY 中填写自己在 OneAPI 的令牌。
-
-
-
-[直接跳转5](#5-模型添加和使用)添加模型,并使用。
-
-### 4. 直接接入
-
-如果你既不想使用 AI Proxy,也不想使用 OneAPI,也可以选择直接接入,修改部署 FastGPT 的 docker-compose.yml 文件,在其中将 AI Proxy 的使用注释,采用和 OneAPI 的类似配置。注释掉 AIProxy 相关代码,在OPENAI_BASE_URL中加入自己的 Ollama 开放地址,默认是http://地址:端口/v1,强调:v1必须填写。在KEY中随便填入,因为 Ollama 默认没有鉴权,如果开启鉴权,请自行填写。其他操作和在 OneAPI 中加入 Ollama 一致,只需在 FastGPT 中加入自己的模型即可使用。此处演示采用的是 Docker 部署 Ollama 的效果,主机 Ollama需要修改代理地址为http://<主机IP>:<端口>
-
-
-
-完成后[点击这里](#5-模型添加和使用)进行模型添加并使用。
-
-### 5. 模型添加和使用
-
-在 FastGPT 中点击账号->模型提供商->模型配置->新增模型,添加自己的模型即可,添加模型时需要保证模型ID和 OneAPI 中的模型名称一致。
-
-
-
-
-
-在工作台中创建一个应用,选择自己之前添加的模型,此处模型名称为自己当时设置的别名。注:同一个模型无法多次添加,系统会采取最新添加时设置的别名。
-
-
-
-### 6. 补充
-上述接入 Ollama 的代理地址中,主机安装 Ollama 的地址为“http://<主机IP>:<端口>”,容器部署 Ollama 地址为“http://<容器名>:<端口>”
-
-# 使用 Xinference 接入本地模型
-## 简介
-
-一站式本地 LLM 私有化部署
-
-[Xinference](https://github.com/xorbitsai/inference) 是一款开源模型推理平台,除了支持 LLM,它还可以部署 Embedding 和 ReRank 模型,这在企业级 RAG 构建中非常关键。同时,Xinference 还提供 Function Calling 等高级功能。还支持分布式部署,也就是说,随着未来应用调用量的增长,它可以进行水平扩展。
-
-## 安装 Xinference
-
-Xinference 支持多种推理引擎作为后端,以满足不同场景下部署大模型的需要,下面会分使用场景来介绍一下这三种推理后端,以及他们的使用方法。
-
-### 1. 服务器
-
-如果你的目标是在一台 Linux 或者 Window 服务器上部署大模型,可以选择 Transformers 或 vLLM 作为 Xinference 的推理后端:
-
-+ [Transformers](https://huggingface.co/docs/transformers/index):通过集成 Huggingface 的 Transformers 库作为后端,Xinference 可以最快地 集成当今自然语言处理(NLP)领域的最前沿模型(自然也包括 LLM)。
-+ [vLLM](https://vllm.ai/): vLLM 是由加州大学伯克利分校开发的一个开源库,专为高效服务大型语言模型(LLM)而设计。它引入了 PagedAttention 算法, 通过有效管理注意力键和值来改善内存管理,吞吐量能够达到 Transformers 的 24 倍,因此 vLLM 适合在生产环境中使用,应对高并发的用户访问。
-
-假设你服务器配备 NVIDIA 显卡,可以参考[这篇文章中的指令来安装 CUDA](https://xorbits.cn/blogs/langchain-streamlit-doc-chat),从而让 Xinference 最大限度地利用显卡的加速功能。
-
-#### Docker 部署
-
-你可以使用 Xinference 官方的 Docker 镜像来一键安装和启动 Xinference 服务(确保你的机器上已经安装了 Docker),命令如下:
-
-```bash
-docker run -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0
-```
-
-#### 直接部署
-
-首先我们需要准备一个 3.9 以上的 Python 环境运行来 Xinference,建议先根据 conda 官网文档安装 conda。 然后使用以下命令来创建 3.11 的 Python 环境:
-
-```bash
-conda create --name py311 python=3.11
-conda activate py311
-```
-
-以下两条命令在安装 Xinference 时,将安装 Transformers 和 vLLM 作为 Xinference 的推理引擎后端:
-
-```bash
-pip install "xinference[transformers]"
-pip install "xinference[vllm]"
-pip install "xinference[transformers,vllm]" # 同时安装
-```
-
-PyPi 在 安装 Transformers 和 vLLM 时会自动安装 PyTorch,但自动安装的 CUDA 版本可能与你的环境不匹配,此时你可以根据 PyTorch 官网中的[安装指南](https://pytorch.org/get-started/locally/)来手动安装。
-
-只需要输入如下命令,就可以在服务上启动 Xinference 服务:
-
-```bash
-xinference-local -H 0.0.0.0
-```
-
-Xinference 默认会在本地启动服务,端口默认为 9997。因为这里配置了-H 0.0.0.0参数,非本地客户端也可以通过机器的 IP 地址来访问 Xinference 服务。
-
-### 2. 个人设备
-
-如果你想在自己的 Macbook 或者个人电脑上部署大模型,推荐安装 CTransformers 作为 Xinference 的推理后端。CTransformers 是用 GGML 实现的 C++ 版本 Transformers。
-
-[GGML](https://ggml.ai/) 是一个能让大语言模型在[消费级硬件上运行](https://github.com/ggerganov/llama.cpp/discussions/205)的 C++ 库。 GGML 最大的特色在于模型量化。量化一个大语言模型其实就是降低权重表示精度的过程,从而减少使用模型所需的资源。 例如,表示一个高精度浮点数(例如 0.0001)比表示一个低精度浮点数(例如 0.1)需要更多空间。由于 LLM 在推理时需要加载到内存中的,因此你需要花费硬盘空间来存储它们,并且在执行期间有足够大的 RAM 来加载它们,GGML 支持许多不同的量化策略,每种策略在效率和性能之间提供不同的权衡。
-
-通过以下命令来安装 CTransformers 作为 Xinference 的推理后端:
-
-```bash
-pip install xinference
-pip install ctransformers
-```
-
-因为 GGML 是一个 C++ 库,Xinference 通过 `llama-cpp-python` 这个库来实现语言绑定。对于不同的硬件平台,我们需要使用不同的编译参数来安装:
-
-- Apple Metal(MPS):`CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python`
-- Nvidia GPU:`CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python`
-- AMD GPU:`CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python`
-
-安装后只需要输入 `xinference-local`,就可以在你的 Mac 上启动 Xinference 服务。
-
-## 创建并部署模型(以 Qwen-14B 模型为例)
-
-### 1. WebUI 方式启动模型
-
-Xinference 启动之后,在浏览器中输入: `http://127.0.0.1:9997`,我们可以访问到本地 Xinference 的 Web UI。
-
-打开“Launch Model”标签,搜索到 qwen-chat,选择模型启动的相关参数,然后点击模型卡片左下方的小火箭🚀按钮,就可以部署该模型到 Xinference。 默认 Model UID 是 qwen-chat(后续通过将通过这个 ID 来访问模型)。
-
-
-
-当你第一次启动 Qwen 模型时,Xinference 会从 HuggingFace 下载模型参数,大概需要几分钟的时间。Xinference 将模型文件缓存在本地,这样之后启动时就不需要重新下载了。 Xinference 还支持从其他模型站点下载模型文件,例如 [modelscope](https://inference.readthedocs.io/en/latest/models/sources/sources.html)。
-
-### 2. 命令行方式启动模型
-
-我们也可以使用 Xinference 的命令行工具来启动模型,默认 Model UID 是 qwen-chat(后续通过将通过这个 ID 来访问模型)。
-
-```bash
-xinference launch -n qwen-chat -s 14 -f pytorch
-```
-
-除了 WebUI 和命令行工具, Xinference 还提供了 Python SDK 和 RESTful API 等多种交互方式, 更多用法可以参考 [Xinference 官方文档](https://inference.readthedocs.io/en/latest/getting_started/index.html)。
-
-## 将本地模型接入 One API
-
-One API 的部署和接入请参考[这里](/docs/development/modelconfig/one-api/)。
-
-为 qwen1.5-chat 添加一个渠道,这里的 Base URL 需要填 Xinference 服务的端点,并且注册 qwen-chat (模型的 UID) 。
-
-
-
-可以使用以下命令进行测试:
-
-```bash
-curl --location --request POST 'https://
-
-## 代码结构说明
-
-### nextjs
-
-FastGPT 使用了 nextjs 的 page route 作为框架。为了区分好前后端代码,在目录分配上会分成 global, service, web 3个自目录,分别对应着 `前后端共用`、`后端专用`、`前端专用`的代码。
-
-### monorepo
-
-FastGPT 采用 pnpm workspace 方式构建 monorepo 项目,主要分为两个部分:
-
-- projects/app - FastGPT 主项目
-- packages/ - 子模块
- - global - 共用代码,通常是放一些前后端都能执行的函数、类型声明、常量。
- - service - 服务端代码
- - web - 前端代码
- - plugin - 工作流自定义插件的代码
-
-### 领域驱动模式(DDD)
-
-FastGPT 在代码模块划分时,按DDD的思想进行划分,主要分为以下几个领域:
-
-core - 核心功能(知识库,工作流,应用,对话)
-support - 支撑功能(用户体系,计费,鉴权等)
-common - 基础功能(日志管理,文件读写等)
-
-{{% details title="代码结构说明" closed="true" %}}
-
-```
-.
-├── .github // github 相关配置
-├── .husky // 格式化配置
-├── docSite // 文档
-├── files // 一些外部文件,例如 docker-compose, helm
-├── packages // 子包
-│ ├── global // 前后端通用子包
-│ ├── plugins // 工作流插件(需要自定义包时候使用到)
-│ ├── service // 后端子包
-│ └── web // 前端子包
-├── projects
-│ └── app // FastGPT 主项目
-├── python // 存放一些模型代码,和 FastGPT 本身无关
-└── scripts // 一些自动化脚本
- ├── icon // icon预览脚本,可以在顶层 pnpm initIcon(把svg写入到代码中), pnpm previewIcon(预览icon)
- └── postinstall.sh // chakraUI自定义theme初始化 ts 类型
-├── package.json // 顶层monorepo
-├── pnpm-lock.yaml
-├── pnpm-workspace.yaml // monorepo 声明
-├── Dockerfile
-├── LICENSE
-├── README.md
-├── README_en.md
-├── README_ja.md
-├── dev.md
-```
-
-{{% /details %}}
-
-# 迁移&备份
-## 简介
-
-FastGPT 迁移&备份
-
-
-
-# Docker 数据库迁移(无脑操作)
-## 简介
-
-FastGPT Docker 数据库备份和迁移
-
-## 1. 停止服务
-
-```bash
-docker-compose down
-```
-
-
-## 2. Copy文件夹
-
-Docker 部署数据库都会通过 volume 挂载本地的目录进入容器,如果要迁移,直接复制这些目录即可。
-
-`PG 数据`: pg/data
-`Mongo 数据`: mongo/data
-
-直接把pg 和 mongo目录全部复制走即可。
-
-# Docker Mongo迁移(dump模式)
-## 简介
-
-FastGPT Docker Mongo迁移
-
-## 作者
-
-[https://github.com/samqin123](https://github.com/samqin123)
-
-[相关PR。有问题可打开这里与作者交流](https://github.com/labring/FastGPT/pull/1426)
-
-## 介绍
-
-如何使用Mongodump来完成从A环境到B环境的Fastgpt的mongodb迁移
-
-前提说明:
-
- A环境:我在阿里云上部署的fastgpt,现在需要迁移到B环境。
- B环境:是新环境比如腾讯云新部署的fastgpt,更特殊一点的是,NAS(群晖或者QNAP)部署了fastgpt,mongo必须改成4.2或者4.4版本(其实云端更方便,支持fastgpt mongo默认版本)
- C环境:妥善考虑,用本地电脑作为C环境过渡,保存相关文件并分离操作
-
-
-## 1. 环境准备:进入 docker mongo 【A环境】
-```
-docker exec -it mongo sh
-mongo -u 'username' -p 'password'
->> show dbs
-```
-看到fastgpt数据库,以及其它几个,确定下导出数据库名称
-准备:
-检查数据库,容器和宿主机都创建一下 backup 目录 【A环境 + C环境】
-
-##### 准备:
-
-检查数据库,容器和宿主机都创建一下“数据导出导入”临时目录 ,比如data/backup 【A环境建目录 + C环境建目录用于同步到容器中】
-
-#### 先在【A环境】创建文件目录,用于dump导出操作
-容器:(先进入fastgpt docker容器)
-```
-docker exec -it fastgpt sh
-mkdir -p /data/backup
-```
-
-建好后,未来导出mongo的数据,会在A环境本地fastgpt的安装目录/Data/下看到自动同步好的目录,数据会在data\backup中,然后可以衔接后续的压缩和下载转移动作。如果没有同步到本地,也可以手动建一下,配合docker cp 把文件拷到本地用(基本不会发生)
-
-#### 然后,【C环境】宿主机目录类似操作,用于把上传的文件自动同步到C环境部署的fastgpt容器里。
-到fastgpt目录,进入mongo目录,有data目录,下面建backup
-```
-mkdir -p /fastgpt/data/backup
-```
-准备好后,后续上传
-```
-### 新fastgpt环境【B】中也需要建一个,比如/fastgpt/mongobackup目录,注意不要在fastgpt/data目录下建立目录
-```
-mkdir -p /fastgpt/mongobackup
-```
-
-###2. 正题开始,从fastgpt老环境【A】中导出数据
-进入A环境,使用mongodump 导出mongo数据库。
-
-#### 2.1 导出
-可以使用mongodump在源头容器中导出数据文件, 导出路径为上面指定临时目录,即"data\backup"
-
-[导出的文件在代码中指定为/data/backup,因为fastgpt配置文件已经建立了data的持久化,所以会同步到容器所在环境本地fast/mongo/data应该就能看到这个导出的目录:backup,里面有文件]
-
-一行指令导出代码,在服务器本地环境运行,不需要进入容器。
-```
-docker exec -it mongo bash -c "mongodump --db fastgpt -u 'username' -p 'password' --authenticationDatabase admin --out /data/backup"
-```
-
-也可以进入环境,熟手可以结合建目录,一次性完成建导出目录,以及使用mongodump导出数据到该目录
-```
-1.docker exec -it fastgpt sh
-
-2.mkdir -p /data/backup
-
-3. mongodump --host 127.0.0.1:27017 --db fastgpt -u "username" -p "password" --authenticationDatabase admin --out /data/backup
-
-
-##### 补充:万一没自动同步,也可以将mongodump导出的文件,手工导出到宿主机【A环境】,备用指令如下:
-```
-docker cp mongo:/data/backup :/fastgpt/data/backup>
-```
-
-2.2 对新手,建议稳妥起见,压缩这个文件目录,并将压缩文件下载到本地过渡环境【A环境 -> C环境】;原因是因为留存一份,并且检查文件数量是否一致。
-
- 熟手可以直接复制到新部署服务器(腾讯云或者NAS)【A环境-> B环境】
-
-
-2.2.1 先进入 【A环境】源头系统的本地环境 fastgpt/mongo/data 目录
-
-```
-cd /usr/fastgpt/mongo/data
-```
-
-#执行,压缩文件命令
-```
-tar -czvf ../fastgpt-mongo-backup-$(date +%Y-%m-%d).tar.gz ./ 【A环境】
-```
-#接下来,把压缩包下载到本地 【A环境-> C环境】,以便于检查和留存版本。熟手,直接将该压缩包同步到B环境中新fastgpt目录data目录下备用。
-
-```
-scp -i /Users/path/| 团队模式 | -短信/邮箱 注册 | -管理员直接添加 | -SSO 注册 | -|||
|---|---|---|---|---|---|---|
| 是否创建默认团队 | -是否加入 Root 团队 | -是否创建默认团队 | -是否加入 Root 团队 | -是否创建默认团队 | -是否加入 Root 团队 | -|
| 单团队模式 | -❌ | -✅ | -❌ | -✅ | -❌ | -✅ | -
| 多团队模式 | -✅ | -❌ | -✅ | -❌ | -✅ | -❌ | -
| 同步模式 | -❌ | -❌ | -❌ | -✅ | -❌ | -✅ | -
-
-