Skip to content

Commit 9ccfda4

Browse files
authored
V4.6.6-2 (labring#673)
1 parent ccca046 commit 9ccfda4

File tree

270 files changed

+8175
-1288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

270 files changed

+8175
-1288
lines changed
+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
name: Build Home page images in Personal warehouse
2+
on:
3+
workflow_dispatch:
4+
push:
5+
paths:
6+
- 'projects/home/**'
7+
branches:
8+
- 'main'
9+
jobs:
10+
build-fastgpt-images:
11+
runs-on: ubuntu-20.04
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v3
15+
with:
16+
fetch-depth: 0
17+
- name: Set up Docker Buildx
18+
uses: docker/setup-buildx-action@v2
19+
with:
20+
driver-opts: network=host
21+
- name: Cache Docker layers
22+
uses: actions/cache@v3
23+
with:
24+
path: /tmp/.buildx-cache
25+
key: ${{ runner.os }}-buildx-${{ github.sha }}
26+
restore-keys: |
27+
${{ runner.os }}-buildx-
28+
- name: Login to GitHub Container Registry
29+
uses: docker/login-action@v2
30+
with:
31+
registry: ghcr.io
32+
username: ${{ github.repository_owner }}
33+
password: ${{ secrets.GH_PAT }}
34+
- name: Set DOCKER_REPO_TAGGED based on branch or tag
35+
run: |
36+
echo "DOCKER_REPO_TAGGED=ghcr.io/${{ github.repository_owner }}/fastgpt-home:latest" >> $GITHUB_ENV
37+
- name: Build and publish image for main branch or tag push event
38+
env:
39+
DOCKER_REPO_TAGGED: ${{ env.DOCKER_REPO_TAGGED }}
40+
run: |
41+
docker buildx build \
42+
--build-arg name=home \
43+
--label "org.opencontainers.image.source=https://github.com/${{ github.repository_owner }}/FastGPT" \
44+
--label "org.opencontainers.image.description=fastgpt-home image" \
45+
--push \
46+
--cache-from=type=local,src=/tmp/.buildx-cache \
47+
--cache-to=type=local,dest=/tmp/.buildx-cache \
48+
-t ${DOCKER_REPO_TAGGED} \
49+
-f Dockerfile \
50+
.

.prettierignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ dist
22
.vscode
33
**/.DS_Store
44
node_modules
5-
docSite/
5+
docSite/
6+
*.md

.vscode/settings.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
"typescript.tsdk": "node_modules/typescript/lib",
55
"prettier.prettierPath": "./node_modules/prettier",
66
"i18n-ally.localesPaths": [
7-
"projects/app/public/locales"
7+
"projects/app/public/locales",
8+
"projects/home/public/locales"
89
],
910
"i18n-ally.enabledParsers": ["json"],
1011
"i18n-ally.keystyle": "nested",

Dockerfile

+1-3
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,7 @@ COPY --from=builder /app/projects/$name/package.json ./package.json
7777
# copy woker
7878
COPY --from=workerDeps /app/worker /app/worker
7979
# copy config
80-
COPY ./projects/$name/data/config.json /app/data/config.json
81-
COPY ./projects/$name/data/pluginTemplates /app/data/pluginTemplates
82-
COPY ./projects/$name/data/simpleTemplates /app/data/simpleTemplates
80+
COPY ./projects/$name/data /app/data
8381

8482

8583
ENV NODE_ENV production
85.5 KB
Loading

docSite/content/docs/course/data_search.md

+31-13
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,50 @@ weight: 106
99

1010
在知识库搜索的方式上,FastGPT提供了三种方式,分别为“语义检索”“增强语义检索”“混合检索”。
1111

12-
![](/imgs/data_search1.png)
12+
![](/imgs/dataset_search_params1.png)
1313

14-
## 语义检索
14+
## 搜索模式
1515

16-
语义检索就是向量检索,同时把用户的问题和知识库内容向量化,然后通过“语义相关度匹配”的方式从知识库中查找到匹配的知识点。
16+
### 语义检索
17+
18+
语义检索是通过向量距离,计算用户问题与知识库内容的距离,从而得出“相似度”,当然这并不是语文上的相似度,而是数学上的。
1719

1820
优点:
1921
- 相近语义理解
2022
- 跨多语言理解(例如输入中文问题匹配英文知识点)
2123
- 多模态理解(文本,图片,音视频等)
2224

23-
## 增强语义检索
25+
缺点:
26+
- 依赖模型训练效果
27+
- 精度不稳定
28+
- 受关键词和句子完整度影响
2429

25-
在语义检索的基础上,增强“语义相关度匹配”并在搜索结束后进行 Rerank(重排)。
30+
### 全文检索
2631

27-
Rerank(重排):把检索结果按“与用户问题语义”相关性,从高到低排序,简单的说就是把最匹配用户问题的检索结果排在前面
32+
才用传统的全文检索方式。适合查找关键的主谓语等
2833

29-
## 混合检索(推荐)
34+
### 混合检索
3035

36+
同时使用向量检索和全文检索,并通过 RRF 公式进行两个搜索结果合并,一般情况下搜索结果会更加丰富准确。
3137

32-
在向量检索的同时进行全文检索,并把两项检索的结果混合一起重排,以便选中匹配用户问题的最佳结果
38+
由于混合检索后的查找范围很大,并且无法直接进行相似度过滤,通常需要进行利用重排模型进行一次结果重新排序,并利用重排的得分进行过滤
3339

34-
全文检索:理解为全文关键词检索,通过关键词查询知识库,并返回包含关键词的文本片段。
3540

36-
优点:
37-
- 精确匹配(姓名,编号,ID等)
38-
- 少量关键词匹配(当用户问题字数过少时向量检索效果非常不好)
3941

40-
混合检索结合了向量检索和全文检索的优点,并且对查询结果进行了重排,大大提高了命中率,推荐使用。
42+
## 结果重排
43+
44+
利用`ReRank`模型对搜索结果进行重排,绝大多数情况下,可以有效提高搜索结果的准确率。不过,重排模型与问题的完整度(主谓语齐全)有一些关系,通常会先走问题补全后再进行搜索-重排。重排后可以得到一个`0-1`的得分,代表着搜索内容与问题的相关度,该分数通常比向量的得分更加精确,可以根据得分进行过滤。
45+
46+
FastGPT 会使用 `RRF` 对重排结果、向量搜索结果、全文检索结果进行合并,得到最终的搜索结果。
47+
48+
## 引用上限
49+
50+
每次搜索最多引用`n``tokens`的内容。
51+
52+
之所以不采用`top k`,是发现在混合知识库(问答库、文档库)时,不同`chunk`的长度差距很大,会导致`top k`的结果不稳定,因此采用了`tokens`的方式进行引用上限的控制。
53+
54+
## 最低相关度
55+
56+
一个`0-1`的数值,会过滤掉一些低相关度的搜索结果。
57+
58+
该值仅在`语义检索`或使用`结果重排`时生效。

docSite/content/docs/course/websync.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@ weight: 105
99

1010
![](/imgs/webSync1.jpg)
1111

12+
该功能目前仅向商业版用户开放。
13+
1214
## 什么是 Web 站点同步
1315

1416
Web 站点同步利用爬虫的技术,可以通过一个入口网站,自动捕获`同域名`下的所有网站,目前最多支持`200`个子页面。出于合规与安全角度,FastGPT 仅支持`静态站点`的爬取,主要用于各个文档站点快速构建知识库。
1517

1618
Tips: 国内的媒体站点基本不可用,公众号、csdn、知乎等。可以通过终端发送`curl`请求检测是否为静态站点,例如:
1719

1820
```bash
19-
curl ai.fastgpt.in
21+
curl https://doc.fastgpt.in/docs/intro/
2022
```
2123

2224
## 如何使用

docSite/content/docs/development/docker.md

-61
Original file line numberDiff line numberDiff line change
@@ -99,64 +99,3 @@ docker-compose up -d
9999
目前可以通过 `ip:3000` 直接访问(注意防火墙)。登录用户名为 `root`,密码为`docker-compose.yml`环境变量里设置的 `DEFAULT_ROOT_PSW`
100100

101101
如果需要域名访问,请自行安装并配置 Nginx。
102-
103-
## QA
104-
105-
### 如何更新?
106-
107-
执行下面命令会自动拉取最新镜像,一般情况下不需要执行额外操作。
108-
109-
```bash
110-
docker-compose pull
111-
docker-compose up -d
112-
```
113-
114-
### 如何自定义配置文件?
115-
116-
修改`config.json`文件,并执行`docker-compose up -d`重起容器。具体配置,参考[配置详解](/docs/development/configuration)
117-
118-
### 如何检查自定义配置文件是否挂载
119-
120-
1. `docker logs fastgpt` 可以查看日志,在启动容器后,第一次请求网页,会进行配置文件读取,可以看看有没有读取成功以及有无错误日志。
121-
2. `docker exec -it fastgpt sh` 进入 FastGPT 容器,可以通过`ls data`查看目录下是否成功挂载`config.json`文件。可通过`cat data/config.json`查看配置文件。
122-
123-
**可能不生效的原因**
124-
125-
1. 挂载目录不正确
126-
2. 配置文件不正确,日志中会提示`invalid json`,配置文件需要是标准的 JSON 文件。
127-
128-
### 为什么无法连接`本地模型`镜像。
129-
130-
`docker-compose.yml`中使用了桥接的模式建立了`fastgpt`网络,如想通过0.0.0.0或镜像名访问其它镜像,需将其它镜像也加入到网络中。
131-
132-
### 端口冲突怎么解决?
133-
134-
docker-compose 端口定义为:`映射端口:运行端口`
135-
136-
桥接模式下,容器运行端口不会有冲突,但是会有映射端口冲突,只需将映射端口修改成不同端口即可。
137-
138-
如果`容器1`需要连接`容器2`,使用`容器2:运行端口`来进行连接即可。
139-
140-
(自行补习 docker 基本知识)
141-
142-
### relation "modeldata" does not exist
143-
144-
PG 数据库没有连接上/初始化失败,可以查看日志。FastGPT 会在每次连接上 PG 时进行表初始化,如果报错会有对应日志。
145-
146-
1. 检查数据库容器是否正常启动
147-
2. 非 docker 部署的,需要手动安装 pg vector 插件
148-
3. 查看 fastgpt 日志,有没有相关报错
149-
150-
### Operation `auth_codes.findOne()` buffering timed out after 10000ms
151-
152-
mongo连接失败,检查
153-
1. mongo 服务有没有起来(有些 cpu 不支持 AVX,无法用 mongo5,需要换成 mongo4.x,可以dockerhub找个最新的4.x,修改镜像版本,重新运行)
154-
2. 环境变量(账号密码,注意host和port)
155-
156-
157-
### 错误排查方式
158-
159-
遇到问题先按下面方式排查。
160-
161-
1. `docker ps -a` 查看所有容器运行状态,检查是否全部 running,如有异常,尝试`docker logs 容器名`查看对应日志。
162-
2. 不懂 docker 不要瞎改端口,只需要改`OPENAI_BASE_URL``CHAT_API_KEY`即可。
+76
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
weight: 749
3+
title: "常见开发 & 部署问题"
4+
description: "FastGPT 常见开发 & 部署问题"
5+
icon: upgrade
6+
draft: false
7+
images: []
8+
---
9+
10+
## 通用问题
11+
12+
### insufficient_user_quota user quota is not enough
13+
14+
OneAPI 账号的余额不足,默认 root 用户只有 200 刀,可以手动修改。
15+
16+
17+
## Docker 部署常见问题
18+
19+
### 如何更新?
20+
21+
执行下面命令会自动拉取最新镜像,一般情况下不需要执行额外操作。
22+
23+
```bash
24+
docker-compose pull
25+
docker-compose up -d
26+
```
27+
28+
### 如何自定义配置文件?
29+
30+
修改`config.json`文件,并执行`docker-compose up -d`重起容器。具体配置,参考[配置详解](/docs/development/configuration)
31+
32+
### 如何检查自定义配置文件是否挂载
33+
34+
1. `docker logs fastgpt` 可以查看日志,在启动容器后,第一次请求网页,会进行配置文件读取,可以看看有没有读取成功以及有无错误日志。
35+
2. `docker exec -it fastgpt sh` 进入 FastGPT 容器,可以通过`ls data`查看目录下是否成功挂载`config.json`文件。可通过`cat data/config.json`查看配置文件。
36+
37+
**可能不生效的原因**
38+
39+
1. 挂载目录不正确
40+
2. 配置文件不正确,日志中会提示`invalid json`,配置文件需要是标准的 JSON 文件。
41+
42+
### 为什么无法连接`本地模型`镜像。
43+
44+
`docker-compose.yml`中使用了桥接的模式建立了`fastgpt`网络,如想通过0.0.0.0或镜像名访问其它镜像,需将其它镜像也加入到网络中。
45+
46+
### 端口冲突怎么解决?
47+
48+
docker-compose 端口定义为:`映射端口:运行端口`
49+
50+
桥接模式下,容器运行端口不会有冲突,但是会有映射端口冲突,只需将映射端口修改成不同端口即可。
51+
52+
如果`容器1`需要连接`容器2`,使用`容器2:运行端口`来进行连接即可。
53+
54+
(自行补习 docker 基本知识)
55+
56+
### relation "modeldata" does not exist
57+
58+
PG 数据库没有连接上/初始化失败,可以查看日志。FastGPT 会在每次连接上 PG 时进行表初始化,如果报错会有对应日志。
59+
60+
1. 检查数据库容器是否正常启动
61+
2. 非 docker 部署的,需要手动安装 pg vector 插件
62+
3. 查看 fastgpt 日志,有没有相关报错
63+
64+
### Operation `auth_codes.findOne()` buffering timed out after 10000ms
65+
66+
mongo连接失败,检查
67+
1. mongo 服务有没有起来(有些 cpu 不支持 AVX,无法用 mongo5,需要换成 mongo4.x,可以dockerhub找个最新的4.x,修改镜像版本,重新运行)
68+
2. 环境变量(账号密码,注意host和port)
69+
70+
71+
### 错误排查方式
72+
73+
遇到问题先按下面方式排查。
74+
75+
1. `docker ps -a` 查看所有容器运行状态,检查是否全部 running,如有异常,尝试`docker logs 容器名`查看对应日志。
76+
2. 不懂 docker 不要瞎改端口,只需要改`OPENAI_BASE_URL``CHAT_API_KEY`即可。

docSite/content/docs/development/upgrading/466.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: 'V4.6.6(需要改配置文件)'
2+
title: 'V4.6.6-alpha(需要改配置文件)'
33
description: 'FastGPT V4.6.6'
44
icon: 'upgrade'
55
draft: false
66
toc: true
7-
weight: 831
7+
weight: 830
88
---
99

1010
**版本仍在开发中……**

packages/global/common/system/types/index.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ export type FastGPTFeConfigsType = {
4848
};
4949
scripts?: { [key: string]: string }[];
5050
favicon?: string;
51+
customApiDomain?: string;
52+
customSharePageDomain?: string;
5153
};
5254

5355
export type SystemEnvType = {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const PgDatasetTableName = 'modeldata';

packages/global/core/ai/model.d.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ export type LLMModelItemType = {
33
name: string;
44
maxContext: number;
55
maxResponse: number;
6-
price: number;
6+
inputPrice: number;
7+
outputPrice: number;
78
};
89
export type ChatModelItemType = LLMModelItemType & {
910
quoteMaxToken: number;
@@ -22,28 +23,32 @@ export type VectorModelItemType = {
2223
model: string;
2324
name: string;
2425
defaultToken: number;
25-
price: number;
26+
inputPrice: number;
27+
outputPrice: number;
2628
maxToken: number;
2729
weight: number;
2830
};
2931

3032
export type ReRankModelItemType = {
3133
model: string;
3234
name: string;
33-
price: number;
35+
inputPrice: number;
36+
outputPrice?: number;
3437
requestUrl?: string;
3538
requestAuth?: string;
3639
};
3740

3841
export type AudioSpeechModelType = {
3942
model: string;
4043
name: string;
41-
price: number;
44+
inputPrice: number;
45+
outputPrice?: number;
4246
voices: { label: string; value: string; bufferId: string }[];
4347
};
4448

4549
export type WhisperModelType = {
4650
model: string;
4751
name: string;
48-
price: number;
52+
inputPrice: number;
53+
outputPrice?: number;
4954
};

packages/global/core/ai/model.ts

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,17 @@ export const defaultQAModels: LLMModelItemType[] = [
66
name: 'GPT35-16k',
77
maxContext: 16000,
88
maxResponse: 16000,
9-
price: 0
9+
inputPrice: 0,
10+
outputPrice: 0
1011
}
1112
];
1213

1314
export const defaultVectorModels: VectorModelItemType[] = [
1415
{
1516
model: 'text-embedding-ada-002',
1617
name: 'Embedding-2',
17-
price: 0,
18+
inputPrice: 0,
19+
outputPrice: 0,
1820
defaultToken: 500,
1921
maxToken: 3000,
2022
weight: 100

0 commit comments

Comments
 (0)