UNPKG

@nomyx/assistant

Version:

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

58 lines (57 loc) 1.81 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.embed = embed; exports.embedBatch = embedBatch; const axios_1 = __importDefault(require("axios")); async function embed(config, text) { try { const response = await axios_1.default.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; } } async function embedBatch(config, texts) { try { const response = await axios_1.default.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) => item.embedding); } catch (error) { handleError(config, error); throw error; } } function handleError(config, error) { const logger = config.getLogger(); if (axios_1.default.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); } }