diff --git a/src/globals.ts b/src/globals.ts index 4d6e327e4..19813ea1e 100644 --- a/src/globals.ts +++ b/src/globals.ts @@ -113,6 +113,7 @@ export const ORACLE: string = 'oracle'; export const IO_INTELLIGENCE: string = 'iointelligence'; export const AIBADGR: string = 'aibadgr'; export const OVHCLOUD: string = 'ovhcloud'; +export const MIXLAYER: string = 'mixlayer'; export const VALID_PROVIDERS = [ ANTHROPIC, @@ -189,6 +190,7 @@ export const VALID_PROVIDERS = [ IO_INTELLIGENCE, AIBADGR, OVHCLOUD, + MIXLAYER, ]; export const CONTENT_TYPES = { diff --git a/src/providers/index.ts b/src/providers/index.ts index 2cd5355f8..9862ecac3 100644 --- a/src/providers/index.ts +++ b/src/providers/index.ts @@ -74,6 +74,7 @@ import OracleConfig from './oracle'; import IOIntelligenceConfig from './iointelligence'; import AIBadgrConfig from './aibadgr'; import OVHcloudConfig from './ovhcloud'; +import { mixlayerProviderAPIConfig } from './mixlayer'; const Providers: { [key: string]: ProviderConfigs } = { openai: OpenAIConfig, @@ -148,6 +149,7 @@ const Providers: { [key: string]: ProviderConfigs } = { iointelligence: IOIntelligenceConfig, aibadgr: AIBadgrConfig, ovhcloud: OVHcloudConfig, + mixlayer: mixlayerProviderAPIConfig, }; export default Providers; diff --git a/src/providers/mixlayer/api.ts b/src/providers/mixlayer/api.ts new file mode 100644 index 000000000..87bba2613 --- /dev/null +++ b/src/providers/mixlayer/api.ts @@ -0,0 +1,18 @@ +import { ProviderAPIConfig } from '../types'; + +export const mixlayerAPIConfig: ProviderAPIConfig = { + getBaseURL: () => 'https://models.mixlayer.ai/v1', + headers: ({ providerOptions }) => { + return { + Authorization: `Bearer ${providerOptions.apiKey}`, + }; + }, + getEndpoint: ({ fn }) => { + switch (fn) { + case 'chatComplete': + return '/chat/completions'; + default: + return ''; + } + }, +}; diff --git a/src/providers/mixlayer/index.ts b/src/providers/mixlayer/index.ts new file mode 100644 index 000000000..9cfc1cdf0 --- /dev/null +++ b/src/providers/mixlayer/index.ts @@ -0,0 +1,18 @@ +import { MIXLAYER } from '../../globals'; +import { chatCompleteParams, responseTransformers } from '../open-ai-base'; +import { ProviderConfigs } from '../types'; +import { mixlayerAPIConfig } from './api'; + +export const mixlayerProviderAPIConfig: ProviderConfigs = { + chatComplete: chatCompleteParams([ + 'n', + 'logit_bias', + 'logprobs', + 'top_logprobs', + 'user', + ]), + api: mixlayerAPIConfig, + responseTransforms: responseTransformers(MIXLAYER, { + chatComplete: true, + }), +};