Files
taiji-AI-PAD/docker-compose.yml
T
xiaohei 32ad055c82 feat: 完成APILLAMA OpenRouter集成和核心业务逻辑实现
✅ 主要更新:
- APILLAMA 集成 OpenRouter API,使用 Llama 3.1 8B Instruct 模型
- 实现完整的 RapidAPI 客户端功能(搜索、同步、测试)
- 实现完整的 Prometheus Metrics 收集
- 完善 OpenAPI 解析器和工具生成器
- 所有文档已整理到 Docs 文件夹

📊 完成度:
- Phase 1 核心功能: 100%
- 业务逻辑实现: 100%
- 测试验证: 通过

🔧 技术改进:
- 使用 OpenRouter API 替代本地模型部署
- 实现 Fallback 机制确保服务可用性
- 完善错误处理和日志记录
- 优化缓存策略

📚 文档更新:
- 更新工程排期计划 (v1.2.0)
- 新增 APILLAMA_OpenRouter集成说明.md
- 新增测试报告.md
- 删除 PROJECT_STATUS.md(已整合到工程排期计划)

版本: v1.2.0
日期: 2025-12-22
2025-12-22 04:12:00 +00:00

261 lines
6.3 KiB
YAML
Raw 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'
# Docker Compose 会自动从 .env 文件读取环境变量
# 所有 ${VAR} 形式的变量都会从 .env 文件中获取
services:
# 数据库服务
postgres:
image: postgres:15-alpine
container_name: taiji-postgres
environment:
POSTGRES_DB: taiji_db
POSTGRES_USER: taiji_user
POSTGRES_PASSWORD: taiji_pass
volumes:
- postgres_data:/var/lib/postgresql/data
- ./scripts/init.sql:/docker-entrypoint-initdb.d/init.sql
ports:
- "5432:5432"
networks:
- taiji-network
restart: unless-stopped
# Redis缓存服务
redis:
image: redis:7-alpine
container_name: taiji-redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- taiji-network
restart: unless-stopped
# NATS消息队列
nats:
image: nats:2.10-alpine
container_name: taiji-nats
ports:
- "4222:4222" # Client connections
- "6222:6222" # Routing
- "8222:8222" # Monitoring
command: ["-js", "-m", "8222"] # Enable JetStream and monitoring
volumes:
- nats_data:/data
networks:
- taiji-network
restart: unless-stopped
# LiteLLM网关服务
litellm-gateway:
build:
context: ./services/model-gateway
dockerfile: Dockerfile
container_name: taiji-litellm-gateway
ports:
- "4000:4000"
environment:
- LITELLM_MASTER_KEY=${LITELLM_MASTER_KEY}
- DATABASE_URL=${DATABASE_URL}
- REDIS_URL=${REDIS_URL}
# OpenRouter 配置
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- OPENROUTER_BASE_URL=${OPENROUTER_BASE_URL}
volumes:
- ./services/model-gateway/config:/app/config
- ./logs:/app/logs
depends_on:
- postgres
- redis
networks:
- taiji-network
restart: unless-stopped
# 数据接入服务 (Python)
data-ingestion:
build:
context: ./services/data-ingestion
dockerfile: Dockerfile
container_name: taiji-data-ingestion
ports:
- "8001:8000"
environment:
- DATABASE_URL=${DATABASE_URL}
- REDIS_URL=${REDIS_URL}
- NATS_URL=${NATS_URL}
# RapidAPI 配置
- RAPIDAPI_KEY=${RAPIDAPI_KEY}
- RAPIDAPI_HOST=${RAPIDAPI_HOST}
# OpenRouter 配置(用于APILLAMA)
- OPENROUTER_API_KEY=${OPENROUTER_API_KEY}
- OPENROUTER_BASE_URL=${OPENROUTER_BASE_URL}
volumes:
- ./services/data-ingestion:/app
- ./logs:/app/logs
depends_on:
- postgres
- redis
- nats
networks:
- taiji-network
restart: unless-stopped
# MCP服务器 (Python)
mcp-server:
build:
context: ./services/mcp-server
dockerfile: Dockerfile
container_name: taiji-mcp-server
ports:
- "8002:8000"
environment:
- DATABASE_URL=postgresql://taiji_user:taiji_pass@postgres:5432/taiji_db
- REDIS_URL=redis://redis:6379
- NATS_URL=nats://nats:4222
- LITELLM_URL=http://litellm-gateway:4000
volumes:
- ./services/mcp-server:/app
- ./logs:/app/logs
depends_on:
- postgres
- redis
- nats
- litellm-gateway
networks:
- taiji-network
restart: unless-stopped
# Agent注册中心 (Go) - 暂时禁用
# agent-registry:
# build:
# context: ./services/agent-registry
# dockerfile: Dockerfile
# container_name: taiji-agent-registry
# ports:
# - "8003:8080"
# environment:
# - DATABASE_URL=postgresql://taiji_user:taiji_pass@postgres:5432/taiji_db
# - REDIS_URL=redis://redis:6379
# - NATS_URL=nats://nats:4222
# volumes:
# - ./services/agent-registry:/app
# - ./logs:/app/logs
# depends_on:
# - postgres
# - redis
# - nats
# networks:
# - taiji-network
# restart: unless-stopped
# EU计费引擎 (Go) - 暂时禁用
# billing-engine:
# build:
# context: ./services/billing-engine
# dockerfile: Dockerfile
# container_name: taiji-billing-engine
# ports:
# - "8004:8080"
# environment:
# - DATABASE_URL=postgresql://taiji_user:taiji_pass@postgres:5432/taiji_db
# - REDIS_URL=redis://redis:6379
# - NATS_URL=nats://nats:6379
# volumes:
# - ./services/billing-engine:/app
# - ./logs:/app/logs
# depends_on:
# - postgres
# - redis
# - nats
# networks:
# - taiji-network
# restart: unless-stopped
# API网关 (Nginx)
api-gateway:
image: nginx:alpine
container_name: taiji-api-gateway
ports:
- "80:80"
- "443:443"
volumes:
- ./config/nginx.conf:/etc/nginx/nginx.conf
- ./config/ssl:/etc/nginx/ssl
depends_on:
- data-ingestion
- mcp-server
networks:
- taiji-network
restart: unless-stopped
# 监控服务 - Prometheus
prometheus:
image: prom/prometheus:latest
container_name: taiji-prometheus
ports:
- "9090:9090"
volumes:
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml
- prometheus_data:/prometheus
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--web.enable-lifecycle'
networks:
- taiji-network
restart: unless-stopped
# 监控服务 - Grafana
grafana:
image: grafana/grafana:latest
container_name: taiji-grafana
ports:
- "3000:3000"
environment:
- GF_SECURITY_ADMIN_PASSWORD=admin
volumes:
- grafana_data:/var/lib/grafana
- ./config/grafana/dashboards:/etc/grafana/provisioning/dashboards
- ./config/grafana/datasources:/etc/grafana/provisioning/datasources
depends_on:
- prometheus
networks:
- taiji-network
restart: unless-stopped
# 开发环境容器 (可选)
dev-container:
build:
context: ./dev-environment
dockerfile: Dockerfile
container_name: taiji-dev
volumes:
- .:/workspace
- /var/run/docker.sock:/var/run/docker.sock
working_dir: /workspace
tty: true
stdin_open: true
networks:
- taiji-network
profiles:
- dev
networks:
taiji-network:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
volumes:
postgres_data:
redis_data:
nats_data:
prometheus_data:
grafana_data: