ai-platform-converter
Version:
Lossless API parameter conversion between multiple AI platforms (OpenAI, Anthropic, Gemini, DeepSeek, Wenwen, Vertex AI, Huawei, BigModel)
63 lines (62 loc) • 1.92 kB
JavaScript
;
/**
* Convert RapidAPI request to OpenAI format
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertRapidAPIRequestToOpenAI = convertRapidAPIRequestToOpenAI;
const common_1 = require("../../types/common");
const helpers_1 = require("../../utils/helpers");
/**
* Convert RapidAPI request to OpenAI format
*/
function convertRapidAPIRequestToOpenAI(request, _options) {
const { endpoint, parameters } = request;
// Convert parameters based on endpoint
let convertedParameters;
if (endpoint === 'face-swap') {
convertedParameters = convertFromFaceSwapParameters(parameters);
}
else if (endpoint === 'face-detect') {
convertedParameters = convertFromFaceDetectParameters(parameters);
}
else {
throw new Error(`Unsupported RapidAPI endpoint: ${endpoint}`);
}
// Build OpenAI request with RapidAPI extensions
const openaiRequest = {
model: 'rapidapi-' + endpoint,
messages: [],
_extensions: {
platform: common_1.Platform.RapidAPI,
rapidapi: {
endpoint,
parameters: convertedParameters
}
}
};
return (0, helpers_1.removeUndefined)(openaiRequest);
}
/**
* Convert from RapidAPI face swap parameters
*/
function convertFromFaceSwapParameters(parameters) {
return {
videoUrl: parameters.videoUrl,
items: parameters.items?.map((item) => ({
faceUrl: item.faceUrl,
sourceUrl: item.sourceUrl
})),
startSeconds: parameters.startSeconds,
endSeconds: parameters.endSeconds
};
}
/**
* Convert from RapidAPI face detect parameters
*/
function convertFromFaceDetectParameters(parameters) {
return {
videoUrl: parameters.videoUrl,
startSeconds: parameters.startSeconds,
endSeconds: parameters.endSeconds
};
}