UNPKG

ai-platform-converter

Version:

Lossless API parameter conversion between multiple AI platforms (OpenAI, Anthropic, Gemini, DeepSeek, Wenwen, Vertex AI, Huawei, BigModel)

118 lines (117 loc) 3.47 kB
"use strict"; /** * Convert RapidAPI response to OpenAI format */ Object.defineProperty(exports, "__esModule", { value: true }); exports.convertRapidAPIResponseToOpenAI = convertRapidAPIResponseToOpenAI; /** * Convert RapidAPI response to OpenAI format */ function convertRapidAPIResponseToOpenAI(rapidapiResponse, _options) { try { // Handle error responses if (!rapidapiResponse.success) { return createErrorResponse(rapidapiResponse.error || 'Unknown error'); } // Extract data from RapidAPI response const data = rapidapiResponse.data; if (!data) { return createErrorResponse('No data in RapidAPI response'); } // Convert to OpenAI compatible format return createOpenAIResponse(data); } catch (error) { return createErrorResponse(error instanceof Error ? error.message : 'Unknown error occurred'); } } /** * Create OpenAI compatible response */ function createOpenAIResponse(data) { const content = formatDataAsContent(data); return { id: `chatcmpl-${Math.random().toString(36).substr(2, 9)}`, object: 'chat.completion', created: Math.floor(Date.now() / 1000), model: 'rapidapi-response', choices: [ { index: 0, message: { role: 'assistant', content: content }, finish_reason: 'stop' } ], usage: { prompt_tokens: 0, completion_tokens: content.length, total_tokens: content.length } }; } /** * Format RapidAPI data as OpenAI content */ function formatDataAsContent(data) { try { // If it's a face swap response if (data.videoUrl) { const result = { type: 'face_swap_result', videoUrl: data.videoUrl }; if (data.faces) { result.faces = data.faces; } return JSON.stringify(result, null, 2); } // If it's a face detect response if (data.faces && Array.isArray(data.faces)) { const result = { type: 'face_detection_result', faces: data.faces }; return JSON.stringify(result, null, 2); } // Generic data formatting return JSON.stringify({ type: 'rapidapi_result', data: data }, null, 2); } catch (error) { return `Error formatting RapidAPI response: ${error instanceof Error ? error.message : 'Unknown error'}`; } } /** * Create error response in OpenAI format */ function createErrorResponse(errorMessage) { return { id: `chatcmpl-${Math.random().toString(36).substr(2, 9)}`, object: 'chat.completion', created: Math.floor(Date.now() / 1000), model: 'rapidapi-error', choices: [ { index: 0, message: { role: 'assistant', content: JSON.stringify({ type: 'error', message: errorMessage }, null, 2) }, finish_reason: 'stop' } ], usage: { prompt_tokens: 0, completion_tokens: 100, total_tokens: 100 } }; }