services: weaviate: command: - --host - 0.0.0.0 - --port - "8080" - --scheme - http image: cr.weaviate.io/semitechnologies/weaviate:1.32.0 # Required for text2vec-google taskType support ports: - 8080:8080 - 50051:50051 volumes: - product_profile_ingestion_weaviate_data:/var/lib/weaviate restart: on-failure:0 depends_on: - reranker-transformers environment: QUERY_DEFAULTS_LIMIT: 25 PERSISTENCE_DATA_PATH: "/var/lib/weaviate" CLUSTER_HOSTNAME: "node1" # Swap OpenAI to Google modules ENABLE_MODULES: "text2vec-google,reranker-transformers" DEFAULT_VECTORIZER_MODULE: "text2vec-google" RERANKER_INFERENCE_API: "http://reranker-transformers:8080" # Local cross-encoder. Reranks the near_text candidate pool; no external API key. reranker-transformers: image: cr.weaviate.io/semitechnologies/reranker-transformers:cross-encoder-ms-marco-MiniLM-L-6-v2 environment: ENABLE_CUDA: 0 # Self-hosted tracing/eval UI (Arize Phoenix). Opt-in from the pipeline's # side (config.yaml observability.enabled / PHOENIX_TRACING_ENABLED); this # container can run continuously with no effect on `batch` when tracing is # off. SQLite on a mounted volume is sufficient for a single-machine setup # (see README "Observability"); do not add Postgres. phoenix: image: arizephoenix/phoenix:20.3.0 ports: - 6006:6006 # UI + OTLP/HTTP collector (POST .../v1/traces) environment: PHOENIX_WORKING_DIR: /mnt/data volumes: - phoenix_data:/mnt/data restart: unless-stopped volumes: product_profile_ingestion_weaviate_data: external: true phoenix_data: