Dify部署内网时遇到的代理问题及解决办法

       大家知道,在公网环境下利用docker安装dify源码镜像比较容易,详见我之前的文章,基于dify开发agent、workflow等非常方便,本次想着在内部网络环境下也完成部署,以方便更多的人使用,但在部署到内网环境下,遇到各类问题,虽然可以通过离线下载安装包来解决,但是总会遇到各种各样的问题,因此本文做了如何通过代理实现安装和更新,具体如下,在dify镜像安装在企业内网部署时,需要考虑各种情况下的代理问题。

1.docker容器安装过程中的代理配置

安装过程中记得在.env的配置proxy,详见.env文件

2.安装插件的代理配置

记得关闭.env的proxy,打开plugin_daemon服务的proxy配置,并配置国内数据源,详见docker-compose.yaml配置文件的PIP_MIRROR_URL,之后安装任何插件都需要打开这一步的配置。

3.安装和配置ollama服务

采用第2步配置下,通过本地安装ollama插件
配置局域网内的ollama服务,记得关闭plugin_daemon服务的proxy配置,否则访问不到。

4.sandbox容器如何安装python库

默认情况下,sandbox还无法安装外部库,由于sandbox依赖于ssrf_proxy,主要原因是ssrf_proxy服务没有设置访问外部的代理,具体设置代理方法如下。
1).打开E:\temp\dify12\docker\ssrf_proxy目录下的squid.conf.template文件
在# cache_peer 172.1.1.1 parent 3128 0 no-query no-digest no-netdb-exchange default 行下面增加如下内容。

# 定义直接访问的 ACL
acl direct_access dst 192.128.0.0/16
# 配置 cache_peer
cache_peer http_proxy_ip parent http_proxy_port 0 no-query no-digest no-netdb-exchange default login=user:pass

# 允许 192.128.*.* 的请求直接访问(B段)
always_direct allow direct_access

# 其他请求通过代理
never_direct allow all

cache_peer的参数说明:
http_proxy_ip:代理服务器的主机名或 IP 地址
parent 或 sibling :表示该代理是上游(父)代理还是兄弟代理
http_proxy_port:代理服务器的 HTTP 端口
login=用户名:密码

2).打开docker-compose.yaml文件,找到ssrf_proxy服务,增加如下内容

environment:
      # pls clearly modify the squid env vars to fit your network environment.
      HTTP_PROXY_SERVER_HOST: http_proxy_ip
      HTTP_PROXY_SERVER_PORT: http_proxy_port
      HTTP_PROXY_SERVER_USERNAME: user
      HTTP_PROXY_SERVER_PASSWORD: pwd

然后卸载容器,再重新加载容器。进入sandbox容器中,即可用pip install安装库。

完成类库安装后,记得关闭上述两步设置的内容,防止ssrf攻击。

5.成功部署后实现第一个agent应用

查询数字孪生技术的应用场景有哪些?

### Dify框架的内网离线安装方法及支持的模型供应商 Dify 是一种用于构建智能代理的强大工具,其功能依赖于多种大语言模型的支持。然而,在某些场景下,可能需要在无外网连接的情况下运行该框架。以下是关于 **Dify内网离线安装方法** 和它所支持的 **模型供应商** 的详细介绍。 #### 内网离线安装方法 为了实现 Dify 框架的内网离线下部署,通常需要完成以下几个方面的准备工作: 1. **下载必要的依赖包**: 需要提前在外网环境中准备好所有的 Python 依赖库并打包成 `.whl` 文件形式。这些文件可以被复制到内网环境并通过 `pip install *.whl` 命令进行安装[^1]。 2. **预训练模型的导入**: 如果计划使用本地部署大模型,则需确保已获取对应模型的权重文件,并将其放置在指定路径中。例如,Hugging Face 提供的部分开源模型可以通过手动下载后加载至项目目录下的 `/models/` 路径[^2]。 3. **配置数据库与缓存服务**: 数据存储部分建议采用 SQLite 或 PostgreSQL 等关系型数据库作为默认选项;而对于高速读写需求较高的组件(如会话管理),Redis 则是一个不错的选择。需要注意的是,所有上述服务都应调整为仅监听局域网 IP 地址以保障安全性[^3]。 4. **修改 API 接口定义**: 在实际开发过程中可能会遇到类似于 `"Model schema not found"` 这样的错误提示。这通常是由于自定义模块未正确注册所致。通过编辑源码文件 (比如 `dify/api/models/tool.py`) 来补充缺失字段描述即可有效规避此类异常情况的发生. #### 支持的模型供应商 目前,Dify 主要兼容以下几类主流的人工智能模型提供商: - **OpenAI**: 提供 GPT 系列在内的多个高性能文本生成器,但由于政策原因在国内访问受限. - **Anthropic**: 另一家专注于对话系统的创业公司,产品性能接近甚至超越 OpenAI . - **阿里云通义千问(Qwen)**: 完全自主研发且完全适配中文语境特点的大规模预训练语言模型系列之一. - **百度文心一言**: 结合搜索引擎优势打造而成的新一代自然语言处理解决方案. 值得注意的是,当选用国产化程度更高的方案(如同义千问),往往能够更好地满足特定行业的合规性要求同也减少了对外部网络资源的依赖度. ```python import os from dify import Agent agent = Agent( model="local_model", provider="Qwen", api_key=os.getenv('LOCAL_API_KEY') ) response = agent.chat("你好!") print(response) ``` 以上代码片段展示了如何设置一个基于本地部署并与 Qwen 整合的简单聊天机器人实例。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一望无际的大草原

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值