UNPKG

@aj-archipelago/cortex

Version:

Cortex is a GraphQL API for AI. It provides a simple, extensible interface for using AI services from OpenAI, Azure and others.

58 lines (47 loc) 1.86 kB
// AzureTranslatePlugin.js import ModelPlugin from './modelPlugin.js'; import logger from '../../lib/logger.js'; class AzureTranslatePlugin extends ModelPlugin { constructor(pathway, model) { super(pathway, model); } // Set up parameters specific to the Azure Translate API getRequestParameters(text, parameters, prompt) { const combinedParameters = { ...this.promptParameters, ...parameters }; const { modelPromptText } = this.getCompiledPrompt(text, parameters, prompt); const requestParameters = { data: [ { Text: modelPromptText, }, ], params: { to: combinedParameters.to } }; return requestParameters; } // Execute the request to the Azure Translate API async execute(text, parameters, prompt, cortexRequest) { const requestParameters = this.getRequestParameters(text, parameters, prompt); cortexRequest.data = requestParameters.data; cortexRequest.params = requestParameters.params; return this.executeRequest(cortexRequest); } // Parse the response from the Azure Translate API parseResponse(data) { if (Array.isArray(data) && data.length > 0 && data[0].translations) { return data[0].translations[0].text.trim(); } else { return data; } } // Override the logging function to display the request and response logRequestData(data, responseData, prompt) { const modelInput = data[0].Text; logger.verbose(`${modelInput}`); logger.verbose(`${this.parseResponse(responseData)}`); prompt && prompt.debugInfo && (prompt.debugInfo += `\n${JSON.stringify(data)}`); } } export default AzureTranslatePlugin;