Merge pull request #987 from ecschoye/fix/openrouter-embedding-provider

fix(memory): add openrouter as recognized embedding provider
This commit is contained in:
Alex Gorevski 2026-02-19 12:47:25 -08:00 committed by GitHub
commit 141d483aa4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -172,6 +172,15 @@ pub fn create_embedding_provider(
dims, dims,
)) ))
} }
"openrouter" => {
let key = api_key.unwrap_or("");
Box::new(OpenAiEmbedding::new(
"https://openrouter.ai/api/v1",
key,
model,
dims,
))
}
name if name.starts_with("custom:") => { name if name.starts_with("custom:") => {
let base_url = name.strip_prefix("custom:").unwrap_or(""); let base_url = name.strip_prefix("custom:").unwrap_or("");
let key = api_key.unwrap_or(""); let key = api_key.unwrap_or("");
@ -212,6 +221,18 @@ mod tests {
assert_eq!(p.dimensions(), 1536); assert_eq!(p.dimensions(), 1536);
} }
#[test]
fn factory_openrouter() {
let p = create_embedding_provider(
"openrouter",
Some("sk-or-test"),
"openai/text-embedding-3-small",
1536,
);
assert_eq!(p.name(), "openai"); // uses OpenAiEmbedding internally
assert_eq!(p.dimensions(), 1536);
}
#[test] #[test]
fn factory_custom_url() { fn factory_custom_url() {
let p = create_embedding_provider("custom:http://localhost:1234", None, "model", 768); let p = create_embedding_provider("custom:http://localhost:1234", None, "model", 768);
@ -281,6 +302,20 @@ mod tests {
assert_eq!(p.dimensions(), 384); assert_eq!(p.dimensions(), 384);
} }
#[test]
fn embeddings_url_openrouter() {
let p = OpenAiEmbedding::new(
"https://openrouter.ai/api/v1",
"key",
"openai/text-embedding-3-small",
1536,
);
assert_eq!(
p.embeddings_url(),
"https://openrouter.ai/api/v1/embeddings"
);
}
#[test] #[test]
fn embeddings_url_standard_openai() { fn embeddings_url_standard_openai() {
let p = OpenAiEmbedding::new("https://api.openai.com", "key", "model", 1536); let p = OpenAiEmbedding::new("https://api.openai.com", "key", "model", 1536);