All files / api/src/ai-providers/ai21 api.ts

23.07% Statements 6/26
100% Branches 0/0
0% Functions 0/3
23.07% Lines 6/26

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  1x   1x 1x 1x           1x                               1x  
import type { InternalProviderAPIConfig } from '@shared/types/ai-providers/config';
import { FunctionName } from '@shared/types/api/request';
 
export const aI21APIConfig: InternalProviderAPIConfig = {
  getBaseURL: () => 'https://api.ai21.com/studio/v1',
  headers: ({ saTarget }) => {
    const headers: Record<string, string> = {
      Authorization: `Bearer ${saTarget.api_key}`,
    };
    return headers;
  },
  getEndpoint: ({ saRequestData }) => {
    const { model } = saRequestData.requestBody as { model: string };
    switch (saRequestData.functionName) {
      case FunctionName.COMPLETE: {
        return `/${model}/complete`;
      }
      case FunctionName.CHAT_COMPLETE: {
        return `/${model}/chat`;
      }
      case FunctionName.EMBED: {
        return `/embed`;
      }
      default:
        return '';
    }
  },
};