UNPKG

ai-platform-converter

Version:

Lossless API parameter conversion between multiple AI platforms (OpenAI, Anthropic, Gemini, DeepSeek, Wenwen, Vertex AI, Huawei, BigModel)

56 lines (55 loc) 2.22 kB
"use strict"; /** * Convert OpenAI response to Google Vertex AI format */ Object.defineProperty(exports, "__esModule", { value: true }); exports.convertOpenAIResponseToVertexAI = convertOpenAIResponseToVertexAI; exports.convertVertexAIResponseToOpenAI = convertVertexAIResponseToOpenAI; const openai_compatible_1 = require("../universal/openai-compatible"); const common_1 = require("../../types/common"); /** * Convert OpenAI response to Vertex AI format * Vertex AI uses OpenAI-compatible response format */ function convertOpenAIResponseToVertexAI(response, options) { // Use the universal converter since VertexAI is OpenAI-compatible const convertedResponse = (0, openai_compatible_1.convertOpenAIResponseToCompatible)(response, common_1.Platform.VertexAI, options); // Add VertexAI-specific response handling if (convertedResponse._extensions) { convertedResponse._extensions.vertexai = { ...convertedResponse._extensions.vertexai, // Normalize model name for VertexAI response model: normalizeVertexAIModel(response.model), // Preserve VertexAI-specific response fields ...(response._extensions?.vertexai || {}) }; } return convertedResponse; } /** * Normalize model name for VertexAI response */ function normalizeVertexAIModel(model) { // Vertex AI model name mapping for responses const modelMapping = { 'gpt-3.5-turbo': 'gemini-1.5-flash', 'gpt-4': 'gemini-1.5-pro', 'gpt-4-turbo': 'gemini-1.5-pro', 'text-davinci-003': 'text-bison', 'code-davinci-002': 'code-bison' }; // If it's already a Vertex AI model, return as-is if (model.startsWith('gemini') || model.includes('-bison')) { return model; } // Return mapped model or default return modelMapping[model] || 'gemini-1.5-flash'; } /** * Convert VertexAI response to OpenAI format */ function convertVertexAIResponseToOpenAI(response, options) { // Use the universal converter for reverse conversion const convertedResponse = (0, openai_compatible_1.convertOpenAIResponseToCompatible)(response, common_1.Platform.OpenAI, options); return convertedResponse; }