dify Adding python requirements to sandbox gives Github Action error

ds97pgxw  于 2个月前  发布在  Python
关注(0)|答案(5)|浏览(38)

自检

  • 仅用于提交错误报告,如果您想提问,请访问 Discussions
  • 我已在现有问题中进行了搜索,包括已关闭的问题。
  • 我确认我使用英语提交此报告(我已阅读并同意 Language Policy )。
  • 请不要修改此模板 :) 并填写所有必需的字段。

Dify版本

0.6.10

云或自托管

自托管(Docker),自托管(源代码)

重现步骤

将依赖项添加到docker/volumes/sandbox/dependencies/python-requirements.txt
"requests
jinja2
httpx"
当API测试3.10和3.11在GitHub action中运行时,它在代码执行过程中出现错误:
=========================== 简短的测试摘要信息 =============================
失败了 api/tests/integration_tests/workflow/nodes/code_executor/test_code_javascript.py::test_javascript_plain - core.helper.code_executor.code_executor.CodeExecutionException:无法执行代码,可能是网络问题,请检查沙箱服务是否正在运行。 (错误:无法执行代码,获得状态码502,请检查沙箱服务是否正在运行)

✔️ 预期行为

沙箱在本地和AWS ECS上与这些依赖项一起工作,我们在python-requirements.txt中依赖它们,因为我们的沙箱是自己部署的,而不是用docker部署的。

❌ 实际行为

在API检查中出现代码执行错误

hjqgdpho

hjqgdpho1#

要解决在GitHub Actions中添加Python依赖项到沙箱时出现的代码执行错误,鉴于错误信息显示可能存在与沙箱服务相关的网络问题,你应该确保沙箱服务正在运行且可访问。以下是排查和解决问题的步骤:

  1. 检查沙箱服务是否正在运行:确保位于 CODE_EXECUTION_ENDPOINT 的服务正在运行。根据 docker-compose.yaml 文件,沙箱服务应该被配置为如下所示:
sandbox:
  image: langgenius/dify-sandbox:0.2.1
  restart: always
  environment:
    API_KEY: dify-sandbox
    GIN_MODE: 'release'
    WORKER_TIMEOUT: 15
    ENABLE_NETWORK: 'true'
    HTTP_PROXY: 'http://ssrf_proxy:3128'
    HTTPS_PROXY: 'http://ssrf_proxy:3128'
    SANDBOX_PORT: 8194
  volumes:
    - ./volumes/sandbox/dependencies:/dependencies
  networks:
    - ssrf_proxy_network
  1. 验证网络连接:确保没有阻止访问沙箱服务的网络问题。 ssrf_proxy 服务用于管理网络访问:
ssrf_proxy:
  image: ubuntu/squid:latest
  restart: always
  volumes:
    - ./volumes/ssrf_proxy/squid.conf:/etc/squid/squid.conf
  networks:
    - ssrf_proxy_network
    - default
  1. 检查API密钥:确保 CODE_EXECUTION_API_KEY 正确设置并具有必要的权限。API密钥应与沙箱服务中配置的密钥相匹配:
CODE_EXECUTION_API_KEY: dify-sandbox
  1. 启用详细日志记录:将 LOG_LEVEL 设置为 DEBUG 以启用对沙箱服务的更详细的日志记录。这有助于诊断网络问题或服务不可用:
sandbox:
  image: langgenius/dify-sandbox:0.2.1
  restart: always
  environment:
    API_KEY: dify-sandbox
    GIN_MODE: 'release'
    WORKER_TIMEOUT: 15
    ENABLE_NETWORK: 'true'
    HTTP_PROXY: 'http://ssrf_proxy:3128'
    HTTPS_PROXY: 'http://ssrf_proxy:3128'
    SANDBOX_PORT: 8194
    LOG_LEVEL: DEBUG  # Set log level to DEBUG for detailed logging
  volumes:
    - ./volumes/sandbox/dependencies:/dependencies
  networks:
    - ssrf_proxy_network

如果服务正在运行且网络连接得到确认,但问题仍然存在,你可能需要进一步调查沙箱服务的日志以查找任何特定的错误 1(https://github.com/langgenius/dify/blob/main/api/core/helper/code_executor/code_executor.py)2(https://github.com/langgenius/dify/blob/main/docker/docker-compose.yaml)。

  • 要继续与 Dosu 交谈,请提及 @dosu。*
nfeuvbwi

nfeuvbwi2#

请查看以下内容。

wecizke3

wecizke33#

这可能需要@Yeuoly的审查和进一步的解决方案,因为dify-sandox尚未成为开源项目的一部分。

yks3o0rb

yks3o0rb4#

我们应该检查这些操作的日志。我想,沙箱服务似乎没有成功启动。日志可能会有所帮助

i1icjdpr

i1icjdpr5#

当从docker/volumes/sandbox/dependencies/python-requirements.txt中移除依赖项后,GitHub操作顺利进行。

相关问题