agent_9art/docker-compose.yml
jqb d55ae221c2 feat: add daily summary feature and customer stats calibration
This commit adds multiple major features and improvements:
1.  Adds Milvus vector database configuration and client integration
2.  Implements daily summary query API for customer chat records
3.  Adds customer statistics calibration functions, including single and full recalculation
4.  Optimizes session list merging logic to handle bidirectional session IDs
5.  Adds new mapper methods for customer message statistics query
6.  Fixes message statistics update logic to avoid duplicate counting
7.  Adds daily scheduled task to reset customer daily message count
8.  Adds frontend page for viewing customer daily summaries
2026-06-17 10:40:46 +08:00

274 lines
6.5 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
services:
# ---------------------- 基础设施 ----------------------
mysql:
image: mysql:5.7
container_name: ai-assistant-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root}
MYSQL_DATABASE: ${MYSQL_DATABASE:-ai_assistant}
MYSQL_CHARACTER_SET_SERVER: utf8mb4
MYSQL_COLLATION_SERVER: utf8mb4_unicode_ci
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
command: --default-authentication-plugin=mysql_native_password
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-p${MYSQL_ROOT_PASSWORD:-root}"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
networks:
- ai-assistant-network
redis:
image: redis:6-alpine
container_name: ai-assistant-redis
restart: always
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- ai-assistant-network
rabbitmq:
image: rabbitmq:3-management-alpine
container_name: ai-assistant-rabbitmq
restart: always
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_DEFAULT_USER:-admin}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_DEFAULT_PASS:-admin}
volumes:
- rabbitmq_data:/var/lib/rabbitmq
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "ping"]
interval: 10s
timeout: 5s
retries: 5
networks:
- ai-assistant-network
# ---------------------- 后端服务 ----------------------
gateway:
build: ./backend/gateway
container_name: ai-assistant-gateway
restart: always
ports:
- "8080:8080"
depends_on:
- auth-service
- archive-service
- conversation-service
- intent-service
- recommend-service
- generation-service
- kb-admin-service
- analytics-service
networks:
- ai-assistant-network
auth-service:
build: ./backend/auth-service
container_name: ai-assistant-auth
restart: always
ports:
- "8081:8081"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
- JWT_SECRET=${JWT_SECRET:-your-256-bit-secret-key-here-at-least-32-characters}
depends_on:
- mysql
- redis
networks:
- ai-assistant-network
archive-service:
build: ./backend/archive-service
container_name: ai-assistant-archive
restart: always
ports:
- "8082:8082"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
- RABBITMQ_HOST=rabbitmq
- WECOM_ARCHIVE_SECRET=${WECOM_ARCHIVE_SECRET:-}
- WECOM_ARCHIVE_RSA_KEY=${WECOM_ARCHIVE_RSA_KEY:-}
- WECOM_ARCHIVE_CALLBACK_TOKEN=${WECOM_ARCHIVE_CALLBACK_TOKEN:-}
- WECOM_ARCHIVE_SDK_PATH=${WECOM_ARCHIVE_SDK_PATH:-/app/sdk}
- MILVUS_HOST=${MILVUS_HOST:-8.159.132.53}
- MILVUS_PORT=${MILVUS_PORT:-19530}
- MILVUS_USERNAME=${MILVUS_USERNAME:-root}
- MILVUS_PASSWORD=${MILVUS_PASSWORD:-Milvus}
- MILVUS_COLLECTION=${MILVUS_COLLECTION:-message_summary}
# 如需真实企微SDK,取消注释下行并将Linux .so文件放入 ./sdk/linux/
# volumes:
# - ./sdk/linux:/app/sdk
depends_on:
- mysql
- redis
- rabbitmq
networks:
- ai-assistant-network
conversation-service:
build: ./backend/conversation-service
container_name: ai-assistant-conversation
restart: always
ports:
- "8083:8083"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
- RABBITMQ_HOST=rabbitmq
depends_on:
- mysql
- redis
- rabbitmq
networks:
- ai-assistant-network
intent-service:
build: ./backend/intent-service
container_name: ai-assistant-intent
restart: always
ports:
- "8084:8084"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
- RABBITMQ_HOST=rabbitmq
depends_on:
- mysql
- redis
- rabbitmq
networks:
- ai-assistant-network
recommend-service:
build: ./backend/recommendation-service
container_name: ai-assistant-recommend
restart: always
ports:
- "8085:8085"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
- RABBITMQ_HOST=rabbitmq
- DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY:-}
depends_on:
- mysql
- redis
- rabbitmq
networks:
- ai-assistant-network
generation-service:
build: ./backend/generation-service
container_name: ai-assistant-generation
restart: always
ports:
- "8086:8086"
environment:
- REDIS_HOST=redis
- DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY:-}
depends_on:
- redis
networks:
- ai-assistant-network
kb-admin-service:
build: ./backend/kb-admin-service
container_name: ai-assistant-kbadmin
restart: always
ports:
- "8087:8087"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
depends_on:
- mysql
- redis
networks:
- ai-assistant-network
analytics-service:
build: ./backend/analytics-service
container_name: ai-assistant-analytics
restart: always
ports:
- "8088:8088"
environment:
- MYSQL_HOST=mysql
- REDIS_HOST=redis
depends_on:
- mysql
- redis
networks:
- ai-assistant-network
# ---------------------- 前端服务 ----------------------
admin:
build: ./frontend/admin
container_name: ai-assistant-admin
restart: always
ports:
- "5174:80"
depends_on:
- gateway
networks:
- ai-assistant-network
sidebar:
build: ./frontend/sidebar
container_name: ai-assistant-sidebar
restart: always
ports:
- "5173:80"
depends_on:
- gateway
networks:
- ai-assistant-network
# ---------------------- 统一入口 Nginx ----------------------
nginx:
image: nginx:alpine
container_name: ai-assistant-nginx
restart: always
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- gateway
- admin
- sidebar
networks:
- ai-assistant-network
# ---------------------- 数据卷 ----------------------
volumes:
mysql_data:
redis_data:
rabbitmq_data:
# ---------------------- 网络 ----------------------
networks:
ai-assistant-network:
driver: bridge