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.13 kB
JavaScript
;
/**
* Convert OpenAI response to Wenwen format
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertOpenAIResponseToWenwen = convertOpenAIResponseToWenwen;
exports.convertWenwenResponseToOpenAI = convertWenwenResponseToOpenAI;
const openai_compatible_1 = require("../universal/openai-compatible");
const common_1 = require("../../types/common");
/**
* Convert OpenAI response to Wenwen format
* Wenwen uses OpenAI-compatible response format
*/
function convertOpenAIResponseToWenwen(response, options) {
// Use the universal converter since Wenwen is OpenAI-compatible
const convertedResponse = (0, openai_compatible_1.convertOpenAIResponseToCompatible)(response, common_1.Platform.Wenwen, options);
// Add Wenwen-specific response handling
if (convertedResponse._extensions) {
convertedResponse._extensions.wenwen = {
...convertedResponse._extensions.wenwen,
// Normalize model name for Wenwen response
model: normalizeWenwenModel(response.model),
// Preserve Wenwen-specific response fields
...(response._extensions?.wenwen || {})
};
}
return convertedResponse;
}
/**
* Normalize model name for Wenwen response
*/
function normalizeWenwenModel(model) {
// Wenwen model name mapping for responses
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 response to OpenAI format
*/
function convertWenwenResponseToOpenAI(response, options) {
// Use the universal converter for reverse conversion
const convertedResponse = (0, openai_compatible_1.convertOpenAIResponseToCompatible)(response, common_1.Platform.OpenAI, options);
return convertedResponse;
}