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.

38 lines (29 loc) 1.24 kB
// OpenAiEmbeddingsPlugin.js import ModelPlugin from './modelPlugin.js'; class OpenAiEmbeddingsPlugin extends ModelPlugin { constructor(pathway, model) { super(pathway, model); } getRequestParameters(text, parameters, prompt) { const combinedParameters = { ...this.promptParameters, ...this.model.params, ...parameters }; const { modelPromptText } = this.getCompiledPrompt(text, combinedParameters, prompt); const { model } = combinedParameters; const requestParameters = { data: { input: combinedParameters?.input?.length ? combinedParameters.input : modelPromptText || text, model } }; return requestParameters; } 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); } parseResponse(data) { return JSON.stringify(data?.data?.map( ({embedding}) => embedding) || []); } } export default OpenAiEmbeddingsPlugin;