环境变量

Data Agent 在不同部署模式下都依赖一组核心环境变量来描述项目名称、元数据库(PostgreSQL)和可选的 MongoDB。建议在部署前梳理清楚这些变量的值,并通过 Docker Compose 或集群 Secret 的方式统一管理。

核心变量清单

变量说明默认/示例
PROJECT当前实例的唯一标识,参与多项目隔离与日志区分。test
DB_HOSTPostgreSQL 服务地址,可使用容器内服务名或外部 IP。postgres
DB_DATABASEData Agent 使用的 PostgreSQL 数据库名称。mydatabase
DB_USER连接 PostgreSQL 的账号,需包含建表、索引和扩展权限。postgres
DB_PASSWORDPostgreSQL 对应账号的密码。postgres
MONGO_URLMongoDB 连接字符串,未来将会逐步淘汰。mongodb://root:rootPassXXX@ip:27017

联网检索能力

如需让 AI员工 在问答时具备联网检索能力(需要在AI员工的技能里面手动添加),可配置 WEB_SEARCH_API_KEY 环境变量,或按供应商分别设置 Tavily/Bing/SerpAPI 的 Key:

# API Key(任选一个)
WEB_SEARCH_API_KEY=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

# 或者使用更具体的 Key
# TAVILY_API_KEY=your-tavily-key
# BING_API_KEY=your-bing-key
# SERPAPI_API_KEY=your-serpapi-key

推荐配置方式

Docker/Compose

  1. 在部署目录创建 .env,写入上述变量:

    PROJECT=prod-agent
    DB_HOST=postgres
    DB_DATABASE=data_agent
    DB_USER=postgres
    DB_PASSWORD=strongPassw0rd
    MONGO_URL=
  2. docker-compose.yml 中引用:

    services:
      app:
        image: chatbi/yiask:latest
        env_file:
          - ./.env

使用 env_file 可以避免在 Compose 文件中暴露敏感信息,并方便不同环境复用同一份模板。

Kubernetes/云原生

  1. 将变量写入 Secret

    apiVersion: v1
    kind: Secret
    metadata:
      name: data-agent-env
    stringData:
      PROJECT: prod-agent
      DB_HOST: postgres.default.svc.cluster.local
      DB_DATABASE: data_agent
      DB_USER: postgres
      DB_PASSWORD: strongPassw0rd
  2. 在 Deployment 中挂载:

    envFrom:
      - secretRef:
          name: data-agent-env

调整与排查

  • 连接失败:确认 DB_HOST 可达并允许 DB_USER 访问,必要时在容器内执行 psql -h $DB_HOST 测试。
  • 多项目部署:为不同实例设置唯一的 PROJECT,便于日志、监控和文件目录隔离。
  • 修改密码:更新数据库密码后务必同步更新对应 Secret/.env 并重新滚动发布。

配置完成后,可继续阅读《单台服务器部署》K8s 部署 获取完整的部署流程。