@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
JavaScript
// 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;