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