MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / resolve_embedding_provider

Function resolve_embedding_provider

atomic-repository/src/ai/mod.rs:58–102  ·  view source on GitHub ↗

Resolve the best available embedding provider from environment.

()

Source from the content-addressed store, hash-verified

56
57/// Resolve the best available embedding provider from environment.
58pub fn resolve_embedding_provider() -> EmbeddingProvider {
59 // Check for Voyage (via dedicated Voyage key)
60 if let Ok(key) = std::env::var("VOYAGE_API_KEY") {
61 if !key.is_empty() {
62 return EmbeddingProvider {
63 provider: AiProvider::Anthropic,
64 model: "voyage-3".to_string(),
65 dimensions: 1024,
66 api_key: Some(key),
67 };
68 }
69 }
70
71 // Check for OpenAI
72 if let Ok(key) = std::env::var("OPENAI_API_KEY") {
73 if !key.is_empty() {
74 return EmbeddingProvider {
75 provider: AiProvider::OpenAi,
76 model: "text-embedding-3-small".to_string(),
77 dimensions: 1536,
78 api_key: Some(key),
79 };
80 }
81 }
82
83 // Check for Anthropic (use Voyage via Anthropic key)
84 if let Ok(key) = std::env::var("ANTHROPIC_API_KEY") {
85 if !key.is_empty() {
86 return EmbeddingProvider {
87 provider: AiProvider::Anthropic,
88 model: "voyage-3".to_string(),
89 dimensions: 1024,
90 api_key: Some(key),
91 };
92 }
93 }
94
95 // Fallback: local hash-based placeholder
96 EmbeddingProvider {
97 provider: AiProvider::Local,
98 model: "hash-embed".to_string(),
99 dimensions: 384,
100 api_key: None,
101 }
102}
103
104/// Resolve the best available LLM provider from environment.
105pub fn resolve_llm_provider() -> Option<LlmProvider> {

Callers 5

runMethod · 0.85
execute_planFunction · 0.85
vault_auto_indexMethod · 0.85

Calls 1

is_emptyMethod · 0.45