feat: 初始化 sundynix-agentix 分层式 AI Agent 平台脚手架
5 层 + 1 条 NATS 零拷贝消息总线的 monorepo(Monolith First → Microservices Morph B)。 纵向主干(任务流 + Token 流回流)已真实跑通,横向各层能力为带注释的桩。 已贯通(real code): - sundynix-shared: 共享契约 + JetStream/core NATS 真实收发(bus) + 内嵌 NATS(devnats) + e2e 测试 - sundynix-gateway: Gin 接入 + DSL 解析组装 + NATS Publish + SSE 流式输出 - sundynix-dispatcher: NATS 消费 + Eino Orchestrator 流式回流 + 熔断器 + LLM Pool 占位流式 - 链路: HTTP POST → DSL → sundynix.tasks.* → Dispatcher → Token 经 sundynix.streams.<id> 回流 → SSE - 基础设施: docker-compose(nats/postgres/redis/neo4j/milvus) + Makefile(make demo/e2e) 待填(桩): - Eino 图编排 compose.NewGraph、LLM Pool 接 vLLM/Ollama - Gateway store 换真实 pgx/redis - sundynix-mcp-go: Bleve+Milvus+Neo4j 混合检索 / UniOffice / 外部 API - sundynix-mcp-py: gVisor 沙箱 / MinerU(PaddleOCR) / Docker 解释器 - sundynix-desktop: React Flow 画布 → DSL 导出 → SSE 展示
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
version: "3.9"
|
||||
|
||||
# 基础设施 — NATS 零拷贝骨干网 + 业务存储 + 向量/图数据库
|
||||
services:
|
||||
nats:
|
||||
image: nats:2-alpine
|
||||
command: ["-c", "/etc/nats/nats-server.conf"]
|
||||
ports: ["4222:4222", "8222:8222"]
|
||||
volumes:
|
||||
- ./deploy/nats/nats-server.conf:/etc/nats/nats-server.conf:ro
|
||||
|
||||
postgres:
|
||||
image: postgres:16-alpine
|
||||
environment:
|
||||
POSTGRES_USER: sundynix
|
||||
POSTGRES_PASSWORD: sundynix
|
||||
POSTGRES_DB: sundynix
|
||||
ports: ["5432:5432"]
|
||||
volumes: ["pg_data:/var/lib/postgresql/data"]
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
ports: ["6379:6379"]
|
||||
|
||||
# --- Milvus 向量数据库 (standalone 需 etcd + minio) ---
|
||||
milvus-etcd:
|
||||
image: quay.io/coreos/etcd:v3.5.14
|
||||
environment:
|
||||
ETCD_AUTO_COMPACTION_MODE: revision
|
||||
ETCD_AUTO_COMPACTION_RETENTION: "1000"
|
||||
ETCD_QUOTA_BACKEND_BYTES: "4294967296"
|
||||
ETCD_SNAPSHOT_COUNT: "50000"
|
||||
command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd
|
||||
volumes: ["milvus_etcd:/etcd"]
|
||||
|
||||
milvus-minio:
|
||||
image: minio/minio:RELEASE.2023-03-20T20-16-18Z
|
||||
environment:
|
||||
MINIO_ACCESS_KEY: minioadmin
|
||||
MINIO_SECRET_KEY: minioadmin
|
||||
command: minio server /minio_data
|
||||
volumes: ["milvus_minio:/minio_data"]
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
|
||||
interval: 30s
|
||||
timeout: 20s
|
||||
retries: 3
|
||||
|
||||
milvus:
|
||||
image: milvusdb/milvus:v2.4.13
|
||||
command: ["milvus", "run", "standalone"]
|
||||
environment:
|
||||
ETCD_ENDPOINTS: milvus-etcd:2379
|
||||
MINIO_ADDRESS: milvus-minio:9000
|
||||
ports: ["19530:19530", "9091:9091"] # 19530=gRPC, 9091=metrics/health
|
||||
volumes: ["milvus_data:/var/lib/milvus"]
|
||||
depends_on: [milvus-etcd, milvus-minio]
|
||||
|
||||
neo4j:
|
||||
image: neo4j:5-community
|
||||
environment:
|
||||
NEO4J_AUTH: neo4j/sundynix
|
||||
ports: ["7474:7474", "7687:7687"]
|
||||
volumes: ["neo4j_data:/data"]
|
||||
|
||||
volumes:
|
||||
pg_data:
|
||||
milvus_etcd:
|
||||
milvus_minio:
|
||||
milvus_data:
|
||||
neo4j_data:
|
||||
Reference in New Issue
Block a user