UNPKG

@nomyx/assistant

Version:

A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)

59 lines (56 loc) 1.57 kB
import axios from 'axios'; import { OpenAIConfig } from './config'; export async function embed(config: OpenAIConfig, text: string): Promise<number[]> { try { const response = await axios.post( 'https://api.openai.com/v1/embeddings', { model: 'text-embedding-ada-002', input: text, }, { headers: { 'Authorization': `Bearer ${config.getApiKey()}`, 'Content-Type': 'application/json', }, } ); return response.data.data[0].embedding; } catch (error) { handleError(config, error); throw error; } } export async function embedBatch(config: OpenAIConfig, texts: string[]): Promise<number[][]> { try { const response = await axios.post( 'https://api.openai.com/v1/embeddings', { model: 'text-embedding-ada-002', input: texts, }, { headers: { 'Authorization': `Bearer ${config.getApiKey()}`, 'Content-Type': 'application/json', }, } ); return response.data.data.map((item: { embedding: number[] }) => item.embedding); } catch (error) { handleError(config, error); throw error; } } function handleError(config: OpenAIConfig, error: any): void { const logger = config.getLogger(); if (axios.isAxiosError(error)) { logger.error('OpenAIProvider: API request failed:', { status: error.response?.status, message: error.message, data: error.response?.data }); } else { logger.error('OpenAIProvider: Unexpected error:', error); } }