👀 新功能预览
PDF 增强
开启PDF增强 | 原文 | 解析结果 |
---|---|---|
![]() | ![]() | ![]() |
兼容 & 弃用
- 弃用 - 之前私有化部署的自定义文件解析方案,请同步更新到最新的配置方案。点击查看 PDF 增强解析配置
- 弃用 - 弃用旧版本地文件上传 API:/api/core/dataset/collection/create/file(以前仅商业版可用的 API,该接口已放切换成:/api/core/dataset/collection/create/localFile)
- 停止维护,即将弃用 - 外部文件库相关 API,可通过 API 文件库替代。
- API更新 - 上传文件至知识库、创建连接集合、API 文件库、推送分块数据等带有
trainingType
字段的接口,trainingType
字段未来仅支持chunk
和QA
两种模式。增强索引模式将设置单独字段:autoIndexes
,目前仍有适配旧版trainingType=auto
代码,但请尽快变更成新接口类型。具体可见:知识库 OpenAPI 文档
🚀 新增内容
- PDF增强解析交互添加到页面上。同时内嵌 Doc2x 服务,可直接使用 Doc2x 服务解析 PDF 文件。 @c121914yu
- 图片自动标注,同时修改知识库文件上传部分数据逻辑和交互。 @c121914yu
- pg vector 插件升级 0.8.0 版本,引入迭代搜索,减少部分数据无法被检索的情况。 @c121914yu
- Qwen-qwq 模型预设。 @c121914yu
⚙️ 优化
- 知识库数据不再限制索引数量,可无限自定义。同时可自动更新输入文本的索引,不影响自定义索引。@c121914yu
- Markdown 解析,增加链接后中文标点符号检测,增加空格。@c121914yu
- Prompt 模式工具调用,支持思考模型。同时优化其格式检测,减少空输出的概率。@c121914yu
- Mongo 文件读取流合并,减少计算量。同时优化存储 chunks,极大提高大文件读取速度。50M PDF 读取时间提高 3 倍。 @lgphone
- HTTP Body 适配,增加对字符串对象的适配。 @c121914yu
🐛 修复
- 增加网页抓取安全链接校验。 @L0nm4r
- 批量运行时,全局变量未进一步传递到下一次运行中,导致最终变量更新错误。 @newfish-cmyk
更新指南
1. 做好数据库备份
2. 更新镜像
- 更新 FastGPT 镜像 tag: v4.9.0
- 更新 FastGPT 商业版镜像 tag: v4.9.0
- Sandbox 镜像,可以不更新
3. 替换 OneAPI(可选)
如果需要使用 AI Proxy 替换 OneAPI 的用户可执行该步骤。
1. 修改 yml 文件
参考最新的 yml 文件。里面已移除 OneAPI 并添加了 AIProxy配置。包含一个服务和一个 PgSQL 数据库。将 aiproxy
的配置追加
到 OneAPI 的配置后面(先不要删除 OneAPI,有一个初始化会自动同步 OneAPI 的配置)
# AI Proxy
aiproxy:
image: 'ghcr.io/labring/sealos-aiproxy-service:latest'
container_name: aiproxy
restart: unless-stopped
depends_on:
aiproxy_pg:
condition: service_healthy
networks:
- fastgpt
environment:
# 对应 fastgpt 里的AIPROXY_API_TOKEN
- ADMIN_KEY=aiproxy
# 错误日志详情保存时间(小时)
- LOG_DETAIL_STORAGE_HOURS=1
# 数据库连接地址
- SQL_DSN=postgres://postgres:aiproxy@aiproxy_pg:5432/aiproxy
# 最大重试次数
- RetryTimes=3
# 不需要计费
- BILLING_ENABLED=false
# 不需要严格检测模型
- DISABLE_MODEL_CONFIG=true
healthcheck:
test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/status']
interval: 5s
timeout: 5s
retries: 10
aiproxy_pg:
image: pgvector/pgvector:0.8.0-pg15 # docker hub
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.8.0-pg15 # 阿里云
restart: unless-stopped
container_name: aiproxy_pg
volumes:
- ./aiproxy_pg:/var/lib/postgresql/data
networks:
- fastgpt
environment:
TZ: Asia/Shanghai
POSTGRES_USER: postgres
POSTGRES_DB: aiproxy
POSTGRES_PASSWORD: aiproxy
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres', '-d', 'aiproxy']
interval: 5s
timeout: 5s
retries: 10
2. 增加 FastGPT 环境变量:
修改 yml 文件中,fastgpt 容器的环境变量:
# AI Proxy 的地址,如果配了该地址,优先使用
- AIPROXY_API_ENDPOINT=http://aiproxy:3000
# AI Proxy 的 Admin Token,与 AI Proxy 中的环境变量 ADMIN_KEY
- AIPROXY_API_TOKEN=aiproxy
3. 重载服务
docker-compose down
停止服务,然后 docker-compose up -d
启动服务,此时会追加 aiproxy
服务,并修改 FastGPT 的配置。
4. 执行OneAPI迁移AI proxy脚本
- 可联网方案:
# 进入 aiproxy 容器
docker exec -it aiproxy sh
# 安装 curl
apk add curl
# 执行脚本
curl --location --request POST 'http://localhost:3000/api/channels/import/oneapi' \
--header 'Authorization: Bearer aiproxy' \
--header 'Content-Type: application/json' \
--data-raw '{
"dsn": "mysql://root:oneapimmysql@tcp(mysql:3306)/oneapi"
}'
# 返回 {"data":[],"success":true} 代表成功
- 无法联网时,可打开
aiproxy
的外网暴露端口,然后在本地执行脚本。
aiProxy 暴露端口:3003:3000,修改后重新 docker-compose up -d
启动服务。
# 在终端执行脚本
curl --location --request POST 'http://localhost:3003/api/channels/import/oneapi' \
--header 'Authorization: Bearer aiproxy' \
--header 'Content-Type: application/json' \
--data-raw '{
"dsn": "mysql://root:oneapimmysql@tcp(mysql:3306)/oneapi"
}'
# 返回 {"data":[],"success":true} 代表成功
- 如果不熟悉 docker 操作,建议不要走脚本迁移,直接删除 OneAPI 所有内容,然后手动重新添加渠道。
5. 进入 FastGPT 检查AI Proxy
服务是否正常启动。
登录 root 账号后,在账号-模型提供商
页面,可以看到多出了模型渠道
和调用日志
两个选项,打开模型渠道,可以看到之前 OneAPI 的渠道,说明迁移完成,此时可以手动再检查下渠道是否正常。
6. 删除 OneAPI 服务
# 停止服务,或者针对性停止 OneAPI 和其 Mysql
docker-compose down
# yml 文件中删除 OneAPI 和其 Mysql 依赖
# 重启服务
docker-compose up -d
4. 运行 FastGPT 升级脚本
从任意终端,发起 1 个 HTTP 请求。其中 {{rootkey}} 替换成环境变量里的 rootkey
;{{host}} 替换成FastGPT 域名。
curl --location --request POST 'https://{{host}}/api/admin/initv490' \
--header 'rootkey: {{rootkey}}' \
--header 'Content-Type: application/json'
脚本功能
- 升级 PG Vector 插件版本
- 全量更新知识库集合字段。
- 全量更新知识库数据中,index 的 type 类型。(时间较长,最后可能提示 timeout,可忽略,数据库不崩都会一直增量执行)
📖 完整记录
- fix: Check the url to avoid ssrf attacks by @c121914yu in #3965
- Create SECURITY.md by @c121914yu in #3967
- plugin customize author by @newfish-cmyk in #3963
- fix loop child nodes variables by @newfish-cmyk in #3980
- fix ai proxy logs pagination by @newfish-cmyk in #3954
- fix: 优化读取mongo文件性能,解决因执行Buffer.concat过多造成等待导致整个服务hang住的 by @lgphone in #3985
- simple mode tool reason by @c121914yu in #3984
- fix: link cheker by @c121914yu in #3987
- perf: http body check by @c121914yu in #4003
- Update README.md by @Fmaverick in #3999
- pref: set strictQuery to throw. by @FinleyGe in #3994
- perf: doc by @c121914yu in #4005
- V4.9.0 feature by @c121914yu in #4006
New Contributors
- @Fmaverick made their first contribution in #3999
Full Changelog: v4.8.23...v4.9.0
What's Changed
- perf: http body check by @c121914yu in #4003
- Update README.md by @Fmaverick in #3999
- pref: set strictQuery to throw. by @FinleyGe in #3994
- perf: doc by @c121914yu in #4005
- V4.9.0 feature by @c121914yu in #4006
- feat: qwen qwq model config by @c121914yu in #4008
- qwq config by @c121914yu in #4009
New Contributors
- @Fmaverick made their first contribution in #3999
Full Changelog: v4.8.23...v4.9.0