基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版
docker pull library/tradingagents-backend
docker run -d --name tradingagents-cn -p 8001:8001 --restart always tradingagents-backend:latest
podman run -d --name tradingagents-cn -p 8001:8001 --restart always tradingagents-backend:latest
skopeo inspect docker://docker.io/library/tradingagents-backend:latest
oras pull tradingagents-backend:latest
docker compose up -d
version: '3.8'
# 前后端分离的 Docker Compose(保留旧版 docker-compose.yml 不变)
services:
# FastAPI 后端服务
backend:
build:
context: .
dockerfile: Dockerfile.backend
image: tradingagents-backend:latest
container_name: TradingAgents-backend
ports:
- "8001:8001"
env_file:
- .env
environment:
PYTHONUNBUFFERED: 1
PYTHONDONTWRITEBYTECODE: 1
TZ: "Asia/Shanghai"
TRADINGAGENTS_LOG_LEVEL: "INFO"
TRADINGAGENTS_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/tradingagents?authSource=admin
TRADINGAGENTS_REDIS_URL: redis://:tradingagents123@redis:6379
TRADINGAGENTS_CACHE_TYPE: redis
DOCKER_CONTAINER: "true"
depends_on:
- mongodb
- redis
networks:
- tradingagents-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8001/docs"]
interval: 30s
timeout: 10s
retries: 3
start_period: 60s
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "3"
# 前端静态站点服务(Nginx 托管 Vite 构建产物)
frontend:
build:
context: .
dockerfile: Dockerfile.frontend
image: tradingagents-frontend:latest
container_name: TradingAgents-frontend
ports:
- "8080:80"
environment:
TZ: "Asia/Shanghai"
depends_on:
- backend
networks:
- tradingagents-network
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
restart: unless-stopped
logging:
driver: "json-file"
options:
max-size: "100m"
max-file: "3"
# MongoDB 数据库服务
mongodb:
image: mongo:4.4
container_name: tradingagents-mongodb
restart: unless-stopped
ports:
- "27017:27017"
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: tradingagents123
MONGO_INITDB_DATABASE: tradingagents
TZ: "Asia/Shanghai"
volumes:
- mongodb_data:/data/db
- ./scripts/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
- tradingagents-network
healthcheck:
test: echo 'db.runCommand("ping").ok' | mongo localhost:27017/test --quiet
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Redis 缓存服务
redis:
image: redis:latest
container_name: tradingagents-redis
restart: unless-stopped
ports:
- "6379:6379"
environment:
TZ: "Asia/Shanghai"
command: redis-server --appendonly yes --requirepass tradingagents123
volumes:
- redis_data:/data
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
- tradingagents-network
healthcheck:
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
# Redis Commander 管理界面(可选)
redis-commander:
image: ghcr.io/joeferner/redis-commander:latest
container_name: tradingagents-redis-commander
restart: unless-stopped
ports:
- "8081:8081"
environment:
- REDIS_HOSTS=local:redis:6379:0:tradingagents123
networks:
- tradingagents-network
depends_on:
- redis
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:8081"]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
profiles:
- management
# Mongo Express 管理界面(可选)
mongo-express:
image: mongo-express:latest
container_name: tradingagents-mongo-express
restart: unless-stopped
ports:
- "8082:8081"
environment:
ME_CONFIG_MONGODB_ADMINUSERNAME: admin
ME_CONFIG_MONGODB_ADMINPASSWORD: tradingagents123
ME_CONFIG_MONGODB_URL: mongodb://admin:tradingagents123@mongodb:27017/
ME_CONFIG_BASICAUTH_USERNAME: admin
ME_CONFIG_BASICAUTH_PASSWORD: tradingagents123
networks:
- tradingagents-network
depends_on:
- mongodb
profiles:
- management
# 数据卷定义
volumes:
mongodb_data:
driver: local
name: tradingagents_mongodb_data
redis_data:
driver: local
name: tradingagents_redis_data
# 网络定义
networks:
tradingagents-network:
driver: bridge
name: tradingagents-network