安装部署
用户可以在 Windows、MacOS、Linux 平台部署 KAT。本文档介绍如何使用 Docker Compose 整体部署 KAT。
部署 KAT
前提条件
- 已安装 Docker Compose。
- KAT 默认使用以下端口。确保目标机器的以下端口没有被占用且没有被防火墙拦截。如需使用其他端口,可在安装部署过程中进行修改。
8000:KWDB Agent Server API 服务端口。8123:KWDB Agent Server Copilot 服务的端口。3000:KWDB Agent UI 的端口。3100:KWDB Agent VIS 的端口。5432:PostgreSQL 数据库端口。
- 安装用户为
root用户。root用户在进行部署时无需输入密码。 - 联系 KaiwuDB 技术支持人员,获取 KWDB Agent Server 镜像。
- 联系 KaiwuDB 技术支持人员,获取 KWDB Agent UI 镜像。
- 联系 KaiwuDB 技术支持人员,获取 KWDB Agent VIS 镜像。
- (可选)如需以安全模式连接 KaiwuDB 数据库,用户需要生成 CA 证书和密钥、客户端证书和密钥、节点证书和密钥。有关详细信息,参见
kwdb cert命令参考。
步骤
如需使用 YAML 文件部署 KAT,遵循以下步骤。
创建一个目录。然后在该目录下创建
docker-compose.yml配置文件并配置相关参数。配置文件示例:
services: postgres: image: postgres:16.13-alpine3.22 # 如无法拉取该版本,可替换为 postgres:16-alpine container_name: kat-postgres restart: unless-stopped environment: POSTGRES_USER: katadmin POSTGRES_PASSWORD: kat_2026 POSTGRES_DB: katdb ports: - "5432:5432" volumes: - /your/local/path/data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres -d postgres"] interval: 5s timeout: 5s retries: 5 kat-server: image: "$kat-server" container_name: kat-server restart: unless-stopped depends_on: postgres: condition: service_healthy environment: LOG_LEVEL: "your_log_level" DATABASE_URL: "katadmin:kat_2026@localhost:5432/katdb" LANGCHAIN_TRACING: "false" LANGSMITH_PROJECT: "your_langchain_project_name" LANGSMITH_ENDPOINT: "https://api.smith.langchain.com" LANGSMITH_API_KEY: "your_langchain_api_key" KNOWLEDGE_API_URL: "your_knowledge_api_url" KNOWLEDGE_BASE_SERVER_HOST: "localhost" KNOWLEDGE_BASE_SERVER_PORT: "8002" KWDB_MCP_SERVER_HOST: "localhost" KWDB_MCP_SERVER_PORT: "8003" CERTS_BASE_DIR: "/app/data/certs" AUTH_ENABLED: "false" KWDB_CMD_MCP_SERVER_SSE_READ_TIMEOUT: "3600" TRUSTED_HOSTS: "your_trusted_hosts" FRONTEND_ORIGIN: "your_frontend_origin_url" network_mode: host volumes: - /your/local/path/data/:/app/data/ - /your/local/path/certs:/app/data/certs # 如需以安全模式连接 KaiwuDB 数据库。 - /your/local/path/kwdb-mcp-server:/user/local/bin/kwdb-mcp-server # (可选)挂载 KWDB MCP Server 二进制安装包。 command: ["/app/entrypoint.sh"] kat-ui: image: "$kat-ui" container_name: kat-ui restart: unless-stopped network_mode: host environment: COPILOT_URL: http://localhost:8123 BACKEND_URL: http://localhost:8000 AUTH_ENABLED: "false" kat-vis: image: "$kat-vis" container_name: kat-vis restart: unless-stopped # MacOS 系统不能使用 host 模式 network_mode: host #ports: # - "3100:3100" environment: RENDERED_IMAGE_HOST_PATH: http://localhost:3100/charts volumes: - /your/local/path/data/charts:/tmp/kat-vis-charts参数说明:
postgres.environment:PostgreSQL 数据库的环境变量。POSTGRES_USER:PostgreSQL 用户名,默认为katadmin。POSTGRES_PASSWORD:PostgreSQL 用户密码,默认为kat_2026。生产环境建议修改为强密码。POSTGRES_DB:KAT 元数据库名称,默认为katdb。
postgres.ports:PostgreSQL 服务的端口映射配置。postgres.volumes:PostgreSQL 数据目录的映射路径。postgres.healthcheck:PostgreSQL 服务的健康检查配置。kat-server在 PostgreSQL 健康检查通过后启动。kat-server.restart:KWDB Agent Server 的重启方式。kat-server.depends_on:配置kat-server在postgres服务健康检查通过后启动。kat-server.environment:KWDB Agent Server 支持的环境变量。用户可根据实际环境按需修改以下环境变量。LOG_LEVEL:日志级别,支持设置为ERROR、WARN、INFO、或DEBUG选项。DATABASE_URL:KAT 元数据库的连接信息,格式为用户名:密码@主机:端口/数据库名。该参数取值需要与postgres.environment中POSTGRES_USER、POSTGRES_PASSWORD、POSTGRES_DB的取值保持一致。LANGCHAIN_TRACING:配置是否开启 LangChain 链路追踪。支持设置为true或false。LANGSMITH_PROJECT:待追踪的项目名称。LANGSMITH_ENDPOINT:LangSmith 收集过程数据的 API 地址。默认设置为https://api.smith.langchain.com。LANGSMITH_API_KEY:LangSmith API 密钥。KNOWLEDGE_API_URL:KaiwuDB 知识库的 API 地址,默认设置为http://117.73.9.174:8001/proxy/knowledge。KNOWLEDGE_BASE_SERVER_HOST:知识库 MCP Server 的主机地址,默认为localhost。KNOWLEDGE_BASE_SERVER_PORT:知识库 MCP Server 的端口,默认为8002。KWDB_MCP_SERVER_HOST:KWDB MCP Server 的主机地址,默认为localhost。KWDB_MCP_SERVER_PORT:KWDB MCP Server 的端口,默认为8003。CERTS_BASE_DIR:证书文件目录,默认为/app/data/certs。AUTH_ENABLED:是否启用认证功能。目前只支持设置为false。KWDB_CMD_MCP_SERVER_SSE_READ_TIMEOUT:KWDB CMD MCP Server 的 SSE 读取超时时间(秒),推荐设置为3600。TRUSTED_HOSTS:可信主机列表,多个主机用英文逗号分隔。生产环境建议配置为实际域名,例如your-domain.com,www.your-domain.com。如果服务器没有域名,填写 IP 地址和 localhost,例如localhost,127.0.0.1,<主机IP>。FRONTEND_ORIGIN:前端页面的访问地址。生产环境建议配置为实际域名,例如http://your-domain.com:3000。如果服务器没有域名,填写实际 IP 地址,例如http://<主机IP>:3000。
kat-server.network_mode: 配置 KWDB Agent Server 的网络访问模式。支持设置为host,表示 KWDB Agent Server 容器直接使用宿主机的网络配置,而无需创建独立的虚拟网络环境。kat-server.volumes:数据库的映射目录。kat-server.command:容器启动后,默认执行的命令。kat-ui.image:KWDB Agent UI 的镜像名称。kat-ui.container_name:自定义 KWDB Agent UI 的容器名称。kat-ui.restart:KWDB Agent UI 的重启方式。kat-ui.network_mode: 配置 KWDB Agent UI 的网络访问模式。该参数取值需要与kat-server.network_mode参数的取值保持一致。kat-ui.environment:KWDB Agent UI 支持的环境变量。用户可根据实际环境按需修改以下环境变量。COPILOT_URL:KWDB Agent Server Copilot 服务的地址。BACKEND_URL:KWDB Agent Server API 服务的地址。AUTH_ENABLED:是否启用认证功能。目前只支持设置为false。
kat-vis.image:KWDB Agent VIS 的镜像名称。kat-vis.container_name:自定义 KWDB Agent VIS 的容器名称。kat-vis.restart:KWDB Agent VIS 的重启方式。kat-vis.network_mode:配置 KWDB Agent VIS 的网络访问模式。该参数取值需要与kat-server.network_mode参数的取值保持一致。kat-vis.ports:可选参数,KWDB Agent VIS 服务的端口映射配置。kat-vis.environment:KWDB Agent VIS 支持的环境变量。用户可根据实际环境按需修改以下环境变量。RENDERED_IMAGE_HOST_PATH:生成的图片的 URL 前缀。
kat-vis.volumes:KWDB Agent VIS 服务的映射目录。
启动 KAT。
docker compose up -d(可选)停止 KAT。
docker compose down
访问 KAT
说明
对于 Chrome 浏览器,建议使用 Chrome 110 及以上版本的浏览器。
成功启动 KAT 后,用户即可通过 http://localhost:3000/ 访问 KAT。