labring / FastGPT

FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, and visual AI workflow orchestration, letting you easily develop and deploy complex question-answering systems without the need for extensive setup or configuration.
https://tryfastgpt.ai
Other
17.49k stars 4.69k forks source link

V4.8.4版沙盒不能输出数据 #1771

Closed mwnu closed 4 months ago

mwnu commented 4 months ago

例行检查

你的版本

问题描述, 日志截图

代码在本地测试过了,之前的版本也能正常运行,升级到V4.8.4后没有输出。 日志中没有错误

复现步骤

这是插件配置:

{
  "nodes": [
    {
      "nodeId": "f480s68o5e5o",
      "name": "自定义插件输入",
      "intro": "自定义配置外部输入,使用插件时,仅暴露自定义配置的输入",
      "avatar": "/imgs/workflow/input.png",
      "flowNodeType": "pluginInput",
      "showStatus": false,
      "position": {
        "x": 655.3488424684256,
        "y": -208.23731804950714
      },
      "version": "481",
      "inputs": [
        {
          "key": "ask",
          "valueType": "string",
          "label": "ask",
          "renderTypeList": [
            "reference"
          ],
          "required": true,
          "description": "用户的问题",
          "canEdit": true,
          "value": "",
          "editField": {
            "key": true
          },
          "dynamicParamDefaultValue": {
            "inputType": "reference",
            "valueType": "string",
            "required": true
          }
        }
      ],
      "outputs": [
        {
          "id": "pz0mzKGfE3So",
          "key": "ask",
          "valueType": "string",
          "label": "ask",
          "type": "static"
        }
      ]
    },
    {
      "nodeId": "yvcdskguv1pz",
      "name": "自定义插件输出",
      "intro": "自定义配置外部输出,使用插件时,仅暴露自定义配置的输出",
      "avatar": "/imgs/workflow/output.png",
      "flowNodeType": "pluginOutput",
      "showStatus": false,
      "position": {
        "x": 1775.0125970530758,
        "y": -232.84662879155175
      },
      "version": "481",
      "inputs": [
        {
          "key": "prompt",
          "valueType": "string",
          "label": "prompt",
          "renderTypeList": [
            "reference"
          ],
          "required": false,
          "description": "",
          "canEdit": true,
          "editField": {
            "key": true,
            "description": true,
            "valueType": true
          },
          "value": [
            "z2VK9hmPjhql",
            "bS83HL4eZ0g8"
          ]
        },
        {
          "key": "cmdBegin",
          "valueType": "string",
          "label": "cmdBegin",
          "renderTypeList": [
            "reference"
          ],
          "required": false,
          "description": "",
          "canEdit": true,
          "editField": {
            "key": true,
            "description": true,
            "valueType": true
          },
          "value": [
            "z2VK9hmPjhql",
            "djUcSr2AjzqI"
          ]
        },
        {
          "key": "cmdEnd",
          "valueType": "number",
          "label": "cmdEnd",
          "renderTypeList": [
            "reference"
          ],
          "required": false,
          "description": "",
          "canEdit": true,
          "editField": {
            "key": true,
            "description": true,
            "valueType": true
          },
          "value": [
            "z2VK9hmPjhql",
            "vSS4m53HfiRf"
          ]
        },
        {
          "key": "errormsg",
          "valueType": "any",
          "label": "errormsg",
          "renderTypeList": [
            "reference"
          ],
          "required": false,
          "description": "",
          "canEdit": true,
          "editField": {
            "key": true,
            "description": true,
            "valueType": true
          },
          "value": [
            "z2VK9hmPjhql",
            "error"
          ]
        },
        {
          "key": "data",
          "valueType": "any",
          "label": "data",
          "renderTypeList": [
            "reference"
          ],
          "required": false,
          "description": "",
          "canEdit": true,
          "editField": {
            "key": true,
            "description": true,
            "valueType": true
          },
          "value": [
            "z2VK9hmPjhql",
            "system_rawResponse"
          ]
        }
      ],
      "outputs": []
    },
    {
      "nodeId": "z2VK9hmPjhql",
      "name": "代码运行",
      "intro": "执行一段简单的脚本代码,通常用于进行复杂的数据处理。",
      "avatar": "/imgs/workflow/code.svg",
      "flowNodeType": "code",
      "showStatus": true,
      "position": {
        "x": 1166.4303284927432,
        "y": -535.2951149237969
      },
      "version": "482",
      "inputs": [
        {
          "key": "system_addInputParam",
          "renderTypeList": [
            "addInputParam"
          ],
          "valueType": "dynamic",
          "label": "",
          "required": false,
          "description": "这些变量会作为代码的运行的输入参数",
          "editField": {
            "key": true,
            "valueType": true
          }
        },
        {
          "key": "ask",
          "valueType": "string",
          "label": "ask",
          "renderTypeList": [
            "reference"
          ],
          "description": "",
          "canEdit": true,
          "editField": {
            "key": true,
            "valueType": true
          },
          "value": [
            "f480s68o5e5o",
            "pz0mzKGfE3So"
          ]
        },
        {
          "key": "codeType",
          "renderTypeList": [
            "hidden"
          ],
          "label": "",
          "value": "js"
        },
        {
          "key": "code",
          "renderTypeList": [
            "custom"
          ],
          "label": "",
          "value": "function main({ask}) {\n    // 提取前25个字符\n    let first25Chars = ask.substring(0, 25);\n    \n    // 匹配 \\s--(A-Z0-9a-z){1,5}\\s 的正则表达式\n    let match = first25Chars.match(/--[A-Za-z0-9]{1,5}\\s/);\n    \n    // 初始化 isMatch 和 prompt\n    let cmdBegin = \"\";\n    let prompt = ask;\n    \n    // 如果匹配到\n    if (match) {\n        cmdBegin = match[0].trim(); // 去掉前后的空白字符\n        \n        // 只替换第一个匹配到的字符块\n        let matchIndex = ask.indexOf(match[0]);\n        prompt = ask.substring(0, matchIndex) + ask.substring(matchIndex + match[0].length);\n    }\n    \n    // 匹配文本末尾的 \\s~~\\d{1,2}\\s*\n    let endMatch = ask.match(/\\s~~(\\d{1,2})\\s*$/);\n    // 初始化 cmdEnd\n    let cmdEnd = 0;\n    \n    // 如果匹配到\n    if (endMatch) {\n        cmdEnd = parseInt(endMatch[1], 10); // 提取数字并转换为整数\n        // prompt = prompt.replace(endMatch[0], '');\n        matchIndex = prompt.indexOf(endMatch[0]);\n        prompt = prompt.substring(0, matchIndex) + prompt.substring(matchIndex + endMatch[0].length);\n    }\n    \n    // 创建返回的JSON对象\n    let returnJson = {\n        \"prompt\": prompt.trim(),\n        \"cmdBegin\": cmdBegin,\n        \"cmdEnd\": cmdEnd\n    };\n    \n    // 返回构建的JSON对象\n    return returnJson;\n}"
        }
      ],
      "outputs": [
        {
          "id": "system_addOutputParam",
          "key": "system_addOutputParam",
          "type": "dynamic",
          "valueType": "dynamic",
          "label": "",
          "editField": {
            "key": true,
            "valueType": true
          },
          "description": "将代码中 return 的对象作为输出,传递给后续的节点"
        },
        {
          "id": "system_rawResponse",
          "key": "system_rawResponse",
          "label": "完整响应数据",
          "valueType": "object",
          "type": "static"
        },
        {
          "id": "error",
          "key": "error",
          "label": "运行错误",
          "description": "代码运行错误信息,成功时返回空",
          "valueType": "object",
          "type": "static"
        },
        {
          "id": "bS83HL4eZ0g8",
          "type": "dynamic",
          "key": "prompt",
          "valueType": "string",
          "label": "prompt"
        },
        {
          "id": "djUcSr2AjzqI",
          "type": "dynamic",
          "key": "cmdBegin",
          "valueType": "string",
          "label": "cmdBegin"
        },
        {
          "id": "vSS4m53HfiRf",
          "type": "dynamic",
          "key": "cmdEnd",
          "valueType": "number",
          "label": "cmdEnd"
        }
      ]
    }
  ],
  "edges": [
    {
      "source": "f480s68o5e5o",
      "target": "z2VK9hmPjhql",
      "sourceHandle": "f480s68o5e5o-source-right",
      "targetHandle": "z2VK9hmPjhql-target-left"
    },
    {
      "source": "z2VK9hmPjhql",
      "target": "yvcdskguv1pz",
      "sourceHandle": "z2VK9hmPjhql-source-right",
      "targetHandle": "yvcdskguv1pz-target-left"
    }
  ]
}

预期结果

相关截图 image

c121914yu commented 4 months ago

直接复制使用正常 Screenshot_20240615_092846_com.android.chrome.jpg

mwnu commented 4 months ago

直接复制使用正常 Screenshot_20240615_092846_com.android.chrome.jpg

和沙盒的连接没问题,换模版代码执行也是无法输出: image

c121914yu commented 4 months ago

Screenshot_20240615_095424_com.android.chrome.jpg

看着也没啥问题😂

mwnu commented 4 months ago

Screenshot_20240615_095424_com.android.chrome.jpg

看着也没啥问题😂

将沙盒镜像切换到v4.8.3,重新构建容器解决,应该是新版沙盒的问题 image

c121914yu commented 4 months ago

Screenshot_20240615_095424_com.android.chrome.jpg

看着也没啥问题😂

将沙盒镜像切换到v4.8.3,重新构建容器解决,应该是新版沙盒的问题 image

我用的也是 4.8.4😅你看看有啥日志

mwnu commented 4 months ago

Screenshot_20240615_095424_com.android.chrome.jpg 看着也没啥问题😂

将沙盒镜像切换到v4.8.3,重新构建容器解决,应该是新版沙盒的问题 image

我用的也是 4.8.4😅你看看有啥日志

就是没有日志,没有任何输出。换到v4.8.3后,fastgpt有一条警告信息: [Warn] 2024-06-15 01:54:48 pg query time: 329ms, sql: CREATE EXTENSION IF NOT EXISTS vector; CREATE TABLE IF NOT EXISTS modeldata ( id BIGSERIAL PRIMARY KEY, vector VECTOR(1536) NOT NULL, team_id VARCHAR(50) NOT NULL, dataset_id VARCHAR(50) NOT NULL, collection_id VARCHAR(50) NOT NULL, createtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

c121914yu commented 4 months ago

Screenshot_20240615_095424_com.android.chrome.jpg 看着也没啥问题😂

将沙盒镜像切换到v4.8.3,重新构建容器解决,应该是新版沙盒的问题 image

我用的也是 4.8.4😅你看看有啥日志

就是没有日志,没有任何输出。换到v4.8.3后,fastgpt有一条警告信息: [Warn] 2024-06-15 01:54:48 pg query time: 329ms, sql: CREATE EXTENSION IF NOT EXISTS vector; CREATE TABLE IF NOT EXISTS modeldata ( id BIGSERIAL PRIMARY KEY, vector VECTOR(1536) NOT NULL, team_id VARCHAR(50) NOT NULL, dataset_id VARCHAR(50) NOT NULL, collection_id VARCHAR(50) NOT NULL, createtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

沙盒的日志呢

mwnu commented 4 months ago

Screenshot_20240615_095424_com.android.chrome.jpg 看着也没啥问题😂

将沙盒镜像切换到v4.8.3,重新构建容器解决,应该是新版沙盒的问题 image

我用的也是 4.8.4😅你看看有啥日志 沙盒很少日志的,没有相关错误信息 我之前拉的latest标签,现在我换到v4.8.4标签也没问题,你看下latest标签下的镜像是不是上传错了

mwnu commented 4 months ago

看了下latest Published 17 days ago ·,是很早以前的版本。我一直拉的是这个,方便一键更新,要不然每次要到docker-compose里改

c121914yu commented 4 months ago

看了下latest Published 17 days ago ·,是很早以前的版本。我一直拉的是这个,方便一键更新,要不然每次要到docker-compose里改

应该是,一直只打了 tag。。下次加下自动更新 latest

mwnu commented 4 months ago

看了下latest Published 17 days ago ·,是很早以前的版本。我一直拉的是这个,方便一键更新,要不然每次要到docker-compose里改

应该是,一直只打了 tag。。下次加下自动更新 latest

上传后告诉我一声,我测试一下

c121914yu commented 4 months ago

ok