ai-platform-converter
Version:
Lossless API parameter conversion between multiple AI platforms (OpenAI, Anthropic, Gemini, DeepSeek, Wenwen, Vertex AI, Huawei, BigModel)
59 lines (58 loc) • 2.06 kB
JavaScript
;
/**
* Convert OpenAI response to RapidAPI format
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.convertOpenAIResponseToRapidAPI = convertOpenAIResponseToRapidAPI;
/**
* Convert OpenAI response to RapidAPI format
*/
function convertOpenAIResponseToRapidAPI(openaiResponse, _endpoint, _options) {
// Check for error responses first
if (openaiResponse.error) {
return {
success: false,
error: openaiResponse.error.message || openaiResponse.error || 'Unknown error occurred'
};
}
try {
// Extract data from OpenAI response
const data = openaiResponse.data || openaiResponse;
// Convert for face-swap endpoint
return convertToFaceSwapResponse(data);
}
catch (error) {
// Return error response
return {
success: false,
error: error instanceof Error ? error.message : 'Unknown error occurred'
};
}
}
/**
* Convert to face swap response
*/
function convertToFaceSwapResponse(data) {
const faceSwapData = {};
// Extract video URL if available
if (data.videoUrl || data.output || data.result?.videoUrl) {
faceSwapData.videoUrl = data.videoUrl || data.output || data.result?.videoUrl;
}
// Extract face information if available
if (data.faces || data.result?.faces) {
faceSwapData.faces = (data.faces || data.result?.faces)?.map((face) => ({
id: face.id || face.face_id || `face_${Math.random().toString(36).substr(2, 9)}`,
confidence: face.confidence || face.score || 0.95,
bbox: face.bbox || face.boundingBox ? {
x: face.bbox?.x || face.boundingBox?.x || 0,
y: face.bbox?.y || face.boundingBox?.y || 0,
width: face.bbox?.width || face.boundingBox?.width || 0,
height: face.bbox?.height || face.boundingBox?.height || 0
} : undefined
}));
}
return {
success: true,
data: faceSwapData
};
}