better-qdrant-mcp-server
Version:
MCP server for enhanced Qdrant vector database functionality
38 lines • 1.58 kB
JavaScript
import axios from 'axios';
import { BaseEmbeddingService } from './base.js';
export class OpenRouterEmbeddingService extends BaseEmbeddingService {
constructor(apiKey, endpoint, model) {
super(apiKey, endpoint || 'https://openrouter.ai/api/v1', model || 'openai/text-embedding-ada-002');
// Using OpenAI-compatible model by default, which produces 1536-dimensional embeddings
this.vectorSize = 1536;
this.defaultModel = 'openai/text-embedding-ada-002';
this.defaultEndpoint = 'https://openrouter.ai/api/v1';
this.validateConfig();
}
async generateEmbeddings(texts) {
const response = await axios.post(`${this.endpoint}/embeddings`, {
input: texts,
model: this.model || this.defaultModel,
}, {
headers: {
'Authorization': `Bearer ${this.apiKey}`,
'Content-Type': 'application/json',
'HTTP-Referer': 'https://github.com/wreeves/better-qdrant',
'X-Title': 'Better Qdrant',
},
});
if (!response.data.data || !Array.isArray(response.data.data)) {
throw new Error('Invalid response from OpenRouter API');
}
return response.data.data.map((item) => {
if (!item.embedding || !Array.isArray(item.embedding)) {
throw new Error('Invalid embedding format in OpenRouter response');
}
return item.embedding;
});
}
requiresApiKey() {
return true;
}
}
//# sourceMappingURL=openrouter.js.map