Files
accounted/extensions/general/ai-chat/chatbot/embeddings.ts
T
2026-02-21 11:39:45 +01:00

26 lines
770 B
TypeScript

import { OpenAIEmbeddings } from '@langchain/openai'
import { CHATBOT_CONFIG } from './config'
// Singleton instance for embeddings
let embeddingsInstance: OpenAIEmbeddings | null = null
export function getEmbeddings(): OpenAIEmbeddings {
if (!embeddingsInstance) {
embeddingsInstance = new OpenAIEmbeddings({
modelName: CHATBOT_CONFIG.embeddingModel,
openAIApiKey: process.env.OPENAI_API_KEY,
})
}
return embeddingsInstance
}
export async function generateEmbedding(text: string): Promise<number[]> {
const embeddings = getEmbeddings()
return embeddings.embedQuery(text)
}
export async function generateEmbeddings(texts: string[]): Promise<number[][]> {
const embeddings = getEmbeddings()
return embeddings.embedDocuments(texts)
}