コンテンツにスキップ
Vessios Docs
日本語
Esc
navigateopen⌘Jpreview
このページの内容

Tech stack

Languages, frameworks, and the LLM backend configuration behind Vessios.

Backend services

  • wiki-worker — Python, FastAPI. Owns all domain and business logic. Dependencies are pinned exactly (==, not ^/>=) to avoid dependency-confusion risk.
  • wiki-gateway — Rust, Axum. A thin, type-unaware passthrough reverse proxy; it forwards request bodies without parsing them, so API type generation targets wiki-front, not the gateway. unsafe Rust is disallowed project-wide.
  • wiki-front — Next.js, TypeScript. Consumes the API described in the API reference.

Infrastructure

  • Firestore — tenant, page, source, and knowledge-graph data, with per-tenant subcollection isolation.
  • Vertex AI — embeddings and Vector Search; also hosts Claude when routed through Vertex.
  • Redis — caching, rate limiting, and the semantic query cache.
  • Pub/Sub — asynchronous pipelines (file ingest, export).
  • BigQuery — a three-tier logging system (query_logs, usage logs, audit logs).
  • Cloud Run — hosts both wiki-worker and wiki-gateway; deployed via GitHub Actions, with infrastructure managed as code through OpenTofu across dev/staging/prod environments.

Embeddings

Production uses text-embedding-005 (Vertex AI, 768 dimensions, Japanese-capable). Local development uses multilingual-e5-small (384 dimensions). Because the dimensionality differs, local and production vector indexes are not interchangeable.

LLM backend selection

wiki-worker selects its LLM client through a factory, controlled by the LLM_BACKEND environment variable. Container wiring and api/main.py depend only on the factory — never on a concrete client — keeping the dependency direction inward per Clean Architecture.

LLM_BACKEND Implementation Auth
gemini GeminiClient (Vertex AI Gemini) ADC / IAM — no API key
vertex ClaudeClient (Claude via Vertex AI) ADC
anthropic (default) ClaudeClient (direct Anthropic API) API key

Testing

  • wiki-worker: pytest, with all external services mocked by default (no live API calls or charges in CI).
  • wiki-gateway: cargo test plus cargo clippy --all-targets -- -D warnings (zero warnings tolerated).
  • Evaluation harness (wiki-worker/eval/): offline and mock-backed by default; a --live flag opts into real Claude calls for golden-query regression and mode A/B testing.

このページは役に立ちましたか?