mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-06-18 02:24:27 +02:00
Replace the Gemini-only EmbeddingClient with one resolved EmbeddingConfig { provider, model, base_url, api_key } behind a sealed Provider enum (OpenAiCompatible | Gemini | Mock). OpenAiCompatible (POST {base}/embeddings, bearer, {model, input, dimensions}) covers OpenRouter — the new default gateway — OpenAI direct, and self-hosted endpoints; Gemini keeps its RETRIEVAL_QUERY/RETRIEVAL_DOCUMENT task types; Mock is offline/deterministic. EmbedRole replaces the task-type string.
from_env() resolves provider via OMNIGRAPH_EMBED_PROVIDER (default openai-compatible), base/model via OMNIGRAPH_EMBED_BASE_URL/_MODEL, and the api key from OPENROUTER_API_KEY/OPENAI_API_KEY or GEMINI_API_KEY. BREAKING (pre-release, no back-compat): the default provider is now OpenRouter, OMNIGRAPH_GEMINI_BASE_URL is dropped, and Gemini-only users set OMNIGRAPH_EMBED_PROVIDER=gemini.
Folds in RFC-012 Phase 1 NFR floor: a total-operation OMNIGRAPH_EMBED_QUERY_DEADLINE_MS deadline (default 60s; 0=unbounded) bounds the ~121s worst case, and tracing spans (target omnigraph::embedding) record provider/model/dim/attempt/elapsed/outcome. The offline 'omnigraph embed' CLI follows the resolved provider (its hardcoded gemini-only bail removed). 17 engine embedding unit tests, 4 CLI embed tests, and the search integration suite (22) pass.
Cross-query client reuse and the docs refresh land in follow-up commits.
|
||
|---|---|---|
| .. | ||
| fixtures | ||
| helpers | ||
| aggregation.rs | ||
| branching.rs | ||
| changes.rs | ||
| composite_flow.rs | ||
| consistency.rs | ||
| end_to_end.rs | ||
| export.rs | ||
| failpoints.rs | ||
| forbidden_apis.rs | ||
| lance_surface_guards.rs | ||
| lance_version_columns.rs | ||
| lifecycle.rs | ||
| literal_filters.rs | ||
| maintenance.rs | ||
| merge_truth_table.rs | ||
| ordering.rs | ||
| point_in_time.rs | ||
| policy_engine_chassis.rs | ||
| proptest_equivalence.rs | ||
| recovery.rs | ||
| s3_storage.rs | ||
| scalar_indexes.rs | ||
| schema_apply.rs | ||
| search.rs | ||
| staged_writes.rs | ||
| traversal.rs | ||
| traversal_indexed.rs | ||
| validators.rs | ||
| writes.rs | ||