diff --git a/.github/workflows/build-sandbox-image.yml b/.github/workflows/build-sandbox-image.yml index ecc6bc818..7423c2d4b 100644 --- a/.github/workflows/build-sandbox-image.yml +++ b/.github/workflows/build-sandbox-image.yml @@ -82,3 +82,27 @@ jobs: run: docker tag ghcr.io/${{ github.repository_owner }}/fastgpt-sandbox:${{env.IMAGE_TAG}} ${{ secrets.ALI_IMAGE_NAME }}/fastgpt-sandbox:${{env.IMAGE_TAG}} - name: Push image to Docker Hub run: docker push ${{ secrets.ALI_IMAGE_NAME }}/fastgpt-sandbox:${{env.IMAGE_TAG}} + push-to-docker-hub: + needs: build-fastgpt-sandbox-images + runs-on: ubuntu-20.04 + steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_NAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + - name: Set DOCKER_REPO_TAGGED based on branch or tag + run: | + if [[ "${{ github.ref_name }}" == "main" ]]; then + echo "IMAGE_TAG=latest" >> $GITHUB_ENV + else + echo "IMAGE_TAG=${{ github.ref_name }}" >> $GITHUB_ENV + fi + - name: Pull image from GitHub Container Registry + run: docker pull ghcr.io/${{ github.repository_owner }}/fastgpt-sandbox:${{env.IMAGE_TAG}} + - name: Tag image with Docker Hub repository name and version tag + run: docker tag ghcr.io/${{ github.repository_owner }}/fastgpt-sandbox:${{env.IMAGE_TAG}} ${{ secrets.DOCKER_IMAGE_NAME }}/fastgpt-sandbox:${{env.IMAGE_TAG}} + - name: Push image to Docker Hub + run: docker push ${{ secrets.DOCKER_IMAGE_NAME }}/fastgpt-sandbox:${{env.IMAGE_TAG}} diff --git a/.github/workflows/fastgpt-image.yml b/.github/workflows/fastgpt-image.yml index 13cc8b0e2..0075aec3d 100644 --- a/.github/workflows/fastgpt-image.yml +++ b/.github/workflows/fastgpt-image.yml @@ -80,9 +80,9 @@ jobs: - name: Pull image from GitHub Container Registry run: docker pull ghcr.io/${{ github.repository_owner }}/fastgpt:${{env.IMAGE_TAG}} - name: Tag image with Docker Hub repository name and version tag - run: docker tag ghcr.io/${{ github.repository_owner }}/fastgpt:${{env.IMAGE_TAG}} ${{ secrets.DOCKER_IMAGE_NAME }}:${{env.IMAGE_TAG}} + run: docker tag ghcr.io/${{ github.repository_owner }}/fastgpt:${{env.IMAGE_TAG}} ${{ secrets.DOCKER_IMAGE_NAME }}/fastgpt:${{env.IMAGE_TAG}} - name: Push image to Docker Hub - run: docker push ${{ secrets.DOCKER_IMAGE_NAME }}:${{env.IMAGE_TAG}} + run: docker push ${{ secrets.DOCKER_IMAGE_NAME }}/fastgpt:${{env.IMAGE_TAG}} push-to-ali-hub: needs: build-fastgpt-images if: github.repository == 'labring/FastGPT' @@ -106,6 +106,6 @@ jobs: - name: Pull image from GitHub Container Registry run: docker pull ghcr.io/${{ github.repository_owner }}/fastgpt:${{env.IMAGE_TAG}} - name: Tag image with Docker Hub repository name and version tag - run: docker tag ghcr.io/${{ github.repository_owner }}/fastgpt:${{env.IMAGE_TAG}} ${{ secrets.ALI_IMAGE_NAME }}:${{env.IMAGE_TAG}} + run: docker tag ghcr.io/${{ github.repository_owner }}/fastgpt:${{env.IMAGE_TAG}} ${{ secrets.ALI_IMAGE_NAME }}/fastgpt:${{env.IMAGE_TAG}} - name: Push image to Docker Hub - run: docker push ${{ secrets.ALI_IMAGE_NAME }}:${{env.IMAGE_TAG}} + run: docker push ${{ secrets.ALI_IMAGE_NAME }}/fastgpt:${{env.IMAGE_TAG}} diff --git a/.github/workflows/preview-image.yml b/.github/workflows/preview-image.yml index acf437051..90eca3741 100644 --- a/.github/workflows/preview-image.yml +++ b/.github/workflows/preview-image.yml @@ -47,7 +47,7 @@ jobs: -f projects/app/Dockerfile \ --label "org.opencontainers.image.source=https://github.com/${{ github.repository_owner }}/FastGPT" \ --label "org.opencontainers.image.description=fastgpt-pr imae" \ - --label "org.opencontainers.image.licenses=Apache" \g + --label "org.opencontainers.image.licenses=Apache" \ --push \ --cache-from=type=local,src=/tmp/.buildx-cache \ --cache-to=type=local,dest=/tmp/.buildx-cache \ diff --git a/docSite/content/docs/development/upgrading/482.md b/docSite/content/docs/development/upgrading/482.md new file mode 100644 index 000000000..d8adf5de5 --- /dev/null +++ b/docSite/content/docs/development/upgrading/482.md @@ -0,0 +1,33 @@ +--- +title: 'V4.8.2' +description: 'FastGPT V4.8.2 更新说明' +icon: 'upgrade' +draft: false +toc: true +weight: 822 +--- + +## Sealos 升级说明 + +1. 在应用管理中新建一个应用,镜像为:registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.8.1 +2. 无需外网访问地址 +3. 部署完后,复制应用的内网地址 +4. 点击变更`FastGPT - 修改环境变量,增加下面的环境变量即可 + +``` +SANDBOX_URL=内网地址 +``` + +## Docker 部署 + +可以拉取最新 [docker-compose.yml](https://github.com/labring/FastGPT/blob/main/files/deploy/fastgpt/docker-compose.yml) 文件参考 + +1. 新增一个容器 `sandbox` +2. fastgpt容器新增环境变量: `SANDBOX_URL` +3. sandbox 简易不要开启外网访问,未做凭证校验。 + +## V4.8.2 更新说明 + +1. 新增 - js代码运行节点(更完整的type提醒,后续继续完善) +2. 修复 - 新增的站点同步无法使用 +3. 修复 - 定时任务无法输入内容 \ No newline at end of file diff --git a/files/deploy/fastgpt/docker-compose.yml b/files/deploy/fastgpt/docker-compose.yml index d4ff5719e..1e80de5ee 100644 --- a/files/deploy/fastgpt/docker-compose.yml +++ b/files/deploy/fastgpt/docker-compose.yml @@ -67,10 +67,17 @@ services: # 等待docker-entrypoint.sh脚本执行的MongoDB服务进程 wait $$! + sandbox: + container_name: sandbox + image: ghcr.io/labring/fastgpt-sandbox:v4.8.2 # git + # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.8.2 # 阿里云 + networks: + - fastgpt + restart: always fastgpt: container_name: fastgpt - image: ghcr.io/labring/fastgpt:v4.8.1 # git - # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.1 # 阿里云 + image: ghcr.io/labring/fastgpt:v4.8.2 # git + # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.2 # 阿里云 ports: - 3000:3000 networks: @@ -78,6 +85,7 @@ services: depends_on: - mongo - pg + - sandbox restart: always environment: # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。 @@ -98,6 +106,8 @@ services: - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin # pg 连接参数 - PG_URL=postgresql://username:password@pg:5432/postgres + # sandbox 地址 + - SANDBOX_URL=http://sandbox:3000 volumes: - ./config.json:/app/data/config.json - ./fastgpt/tmp:/app/tmp diff --git a/projects/app/public/docs/versionIntro.md b/projects/app/public/docs/versionIntro.md index 2fa2d1426..39a944289 100644 --- a/projects/app/public/docs/versionIntro.md +++ b/projects/app/public/docs/versionIntro.md @@ -1,32 +1,12 @@ -### FastGPT V4.8 +### FastGPT V4.8.2 -本次更新的重点是对工作流 (高级编排) 进行了重构,使其更加简洁和强大。但由于新旧工作流机制有较大变化,尽管我们进行了一定的自动转换,仍有部分工作流需要您手动重建。请尽快更新到新版本,并对工作流进行必要的调试和重新发布。 - -❗ 重要提示: -1️⃣ 旧工作流更新后暂不失效,打开旧工作流会弹出自动转换提示,重新编排后点 “发布” 按钮发布新工作流 -2️⃣ 发布新工作流前,工作流自动保存功能暂不生效 -3️⃣ 应用和插件新增 version 字段,标识适用新/旧版工作流,以实现兼容 - -✨ 新增功能亮点: -1️⃣ 判断器:支持 if/elseIf/else 判断逻辑,工作流控制更灵活 -2️⃣ 变量更新节点:运行中可动态修改工作流输出变量或全局变量值 -3️⃣ 工作流自动保存和版本管理:自动保存修改,支持查看和回滚历史版本 -4️⃣ 工作流调试模式:更直观高效,可调试单节点或逐步执行,实时查看输入输出数据 -5️⃣ 定时执行应用:支持简单配置实现各种定时任务 - -🛠️ 其他优化与修复: -- 优化工作流节点连线方式,支持四向连接,易构建循环工作流 -- 显著提升工作流上下文数据传递性能 -- 简易模式下修改配置自动刷新调试框,免手动保存 -- 改进 worker 进程管理,支持 Token 计算任务分配,提高效率 -- 工具调用支持 string、boolean、number 数据类型 -- 完善 completions 接口对 size 参数限制 -- 重构 Node.js API 中间件和服务端代码 -- 对话记录长度调整为偶数,最大长度增至 50 轮,避免奇数导致部分模型不兼容 -- HTTP 节点出错将终止进程,避免异常影响 -- 修复工具调用名称不能以数字开头问题 -- 修复分享链接 query 参数缓存 bug -- 修复工具调用和 HTTP 模块兼容性问题 +- 新增 - 知识库重新选择向量模型重建 +- 新增 - 对话框支持问题模糊检索提示,可自定义预设问题词库 +- 新增 - js代码运行节点 +- 新增 - 外部文件源知识库: [点击查看文档](https://doc.fastai.site/docs/course/externalfile/) +- 新增 - 内容提取节点增加完全提取成功输出 +- 新增 - HTTP节点增加错误输出,可以自行判断处理 +- 优化 - 插件输入的 debug 模式,支持全量参数输入渲染 - [点击查看高级编排介绍文档](https://doc.fastgpt.in/docs/workflow/intro) - [使用文档](https://doc.fastgpt.in/docs/intro/) - [点击查看商业版](https://doc.fastgpt.in/docs/commercial/) \ No newline at end of file diff --git a/projects/app/src/components/core/app/ScheduledTriggerConfig.tsx b/projects/app/src/components/core/app/ScheduledTriggerConfig.tsx index 7917dd258..6c8b06539 100644 --- a/projects/app/src/components/core/app/ScheduledTriggerConfig.tsx +++ b/projects/app/src/components/core/app/ScheduledTriggerConfig.tsx @@ -99,7 +99,7 @@ const ScheduledTriggerConfig = ({ const timezone = value?.timezone; const cronString = value?.cronString; - const defaultPrompt = value?.defaultPrompt || ''; + const defaultPrompt = value?.defaultPrompt; const cronSelectList = useRef([ { @@ -134,15 +134,10 @@ const ScheduledTriggerConfig = ({ timezone?: string; defaultPrompt?: string; }) => { - if (!cronString) { - onChange(undefined); - return; - } onChange({ - ...value, - cronString, - timezone: timezone || Intl.DateTimeFormat().resolvedOptions().timeZone, - defaultPrompt: defaultPrompt || '' + cronString: cronString ?? value?.cronString ?? '0 0 * * *', + timezone: timezone ?? value?.timezone ?? Intl.DateTimeFormat().resolvedOptions().timeZone, + defaultPrompt: defaultPrompt ?? value?.defaultPrompt ?? '' }); }, [onChange, value] @@ -314,7 +309,7 @@ const ScheduledTriggerConfig = ({ - {t('core.app.schedule.Default prompt')} + {t('core.app.schedule.Default prompt')}