docker-compose部署的dify1.3.1,接入大模型报错: 2025-06-04 13:00:47.312 ERROR [Dummy-12] [models.py:162] - Failed to save model credentials, tenant_id: 8c2d526f-02a0-47f1-8601-******31017, model: XiYanSQL-QwenCoder-14B-2504, model_type: llm api-1 | Traceback (most recent call last): api-1 | File "/app/api/controllers/console/workspace/models.py", line 154, in post api-1 | model_provider_service.save_model_credentials( api-1 | File "/app/api/services/model_provider_service.py", line 237, in save_model_credentials api-1 | provider_configuration.add_or_update_custom_model_credentials( api-1 | File "/app/api/core/entities/provider_configuration.py", line 422, in add_or_update_custom_model_credentials api-1 | provider_model_record, credentials = self.custom_model_credentials_validate(model_type, model, credentials) api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/core/entities/provider_configuration.py", line 402, in custom_model_credentials_validate api-1 | credentials = model_provider_factory.model_credentials_validate( api-1 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ api-1 | File "/app/api/core/model_runtime/model_providers/model_provider_factory.py", line 191, in model_credentials_validate api-1 | self.plugin_model_manager.validate_model_credentials( api-1 | File "/app/api/core/plugin/impl/model.py", line 137, in validate_model_credentials api-1 | for resp in response: api-1 | ^^^^^^^^ api-1 | File "/app/api/core/plugin/impl/base.py", line 191, in _request_with_plugin_daemon_response_stream api-1 | self._handle_plugin_daemon_error(error.error_type, error.message) api-1 | File "/app/api/core/plugin/impl/base.py", line 221, in _handle_plugin_daemon_error api-1 | raise CredentialsValidateFailedError(error_object.get("message")) api-1 | core.model_runtime.errors.validate.CredentialsValidateFailedError: An error occurred during credentials validation: HTTPConnectionPool(host='172.**.**.1**', port=3020): Max retries exceeded with url: /v1/api/chat (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0xfdcb255228a0>: Failed to establish a new connection: [Errno 111] Connection refused'))
时间: 2025-06-20 18:36:03 浏览: 68
### Docker Compose 部署 Dify 1.3.1 接入大模型时的连接错误解决方案
在使用 `docker-compose` 部署 Dify 1.3.1 并接入大模型的过程中,如果遇到因凭证验证失败导致的连接被拒绝错误(`Connection refused`),通常与以下几个方面相关:网络配置、环境变量设置、密钥管理以及服务之间的依赖关系。
#### 1. 网络配置问题
Docker 容器之间的通信需要正确的网络配置。如果服务之间无法通过网络正常通信,可能会导致连接被拒绝的错误。确保所有服务都在同一个 Docker 网络中运行,并检查 `docker-compose.yml` 文件中的 `networks` 配置是否正确[^1]。
```yaml
services:
app:
networks:
- dify-network
model:
networks:
- dify-network
networks:
dify-network:
driver: bridge
```
#### 2. 环境变量设置问题
接入大模型通常需要提供 API 密钥或其他认证信息。如果环境变量未正确配置或传递到容器中,可能导致凭证验证失败。请检查 `docker-compose.yml` 文件中是否正确设置了相关环境变量,并确保这些变量已传递到目标服务中[^1]。
```yaml
services:
app:
environment:
- MODEL_API_KEY=your_api_key_here
- MODEL_URL=http://model:8000
```
#### 3. 密钥管理问题
如果使用的 API 密钥无效或过期,也可能导致连接被拒绝。请确认以下几点:
- 密钥是否有效且未过期。
- 密钥是否有权限访问指定的大模型服务。
- 如果密钥存储在外部文件中,请确保文件路径正确并具有适当的权限。
可以通过以下方式测试密钥的有效性:
```bash
curl -X POST http://model:8000/predict -H "Authorization: Bearer your_api_key_here" -d '{"input": "test"}'
```
#### 4. 服务启动顺序问题
Docker 容器的启动顺序可能影响服务之间的通信。如果某些服务尚未完全启动,其他服务尝试与其通信时可能会导致连接被拒绝。可以通过 `depends_on` 和 `healthcheck` 配置来确保服务按正确的顺序启动并处于健康状态[^1]。
```yaml
services:
app:
depends_on:
model:
condition: service_healthy
model:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 10s
timeout: 5s
retries: 3
```
#### 5. 日志分析
如果上述方法未能解决问题,可以查看容器的日志以获取更多详细信息。通过以下命令检查相关服务的日志:
```bash
docker-compose logs app
docker-compose logs model
```
日志中可能包含有关连接失败的具体原因,例如无效的 API 密钥或网络配置问题。
---
阅读全文
相关推荐














