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.05 kB
"use strict"; /** * Convert OpenAI request to Wenwen format */ Object.defineProperty(exports, "__esModule", { value: true }); exports.convertOpenAIRequestToWenwen = convertOpenAIRequestToWenwen; exports.convertWenwenRequestToOpenAI = convertWenwenRequestToOpenAI; const openai_compatible_1 = require("../universal/openai-compatible"); const common_1 = require("../../types/common"); /** * Convert OpenAI request to Wenwen format * Wenwen uses OpenAI-compatible API */ function convertOpenAIRequestToWenwen(request, options) { // Use the universal converter since Wenwen is OpenAI-compatible const convertedRequest = (0, openai_compatible_1.convertOpenAIRequestToCompatible)(request, common_1.Platform.Wenwen, options); // Add Wenwen-specific extensions if (convertedRequest._extensions) { convertedRequest._extensions.wenwen = { ...convertedRequest._extensions.wenwen, // Wenwen-specific model handling model: normalizeWenwenModel(request.model), // Preserve Wenwen-specific parameters ...(request._extensions?.wenwen || {}) }; } return convertedRequest; } /** * Normalize model name for Wenwen API */ function normalizeWenwenModel(model) { // Wenwen model name mapping const modelMapping = { 'gpt-3.5-turbo': 'wenwen-chat', 'gpt-4': 'wenwen-chat', 'gpt-4-turbo': 'wenwen-chat', 'text-davinci-003': 'wenwen-text', 'code-davinci-002': 'wenwen-code' }; // If it's already a Wenwen model, return as-is if (model.startsWith('wenwen-')) { return model; } // Return mapped model or default return modelMapping[model] || 'wenwen-chat'; } /** * Convert Wenwen request to OpenAI format */ function convertWenwenRequestToOpenAI(request, options) { // Use the universal converter for reverse conversion const convertedRequest = (0, openai_compatible_1.convertOpenAIRequestToCompatible)(request, common_1.Platform.OpenAI, options); return convertedRequest; }