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

0% Statements 0/23
100% Branches 1/1
100% Functions 1/1
0% Lines 0/23

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                                                       
import type { InternalProviderAPIConfig } from '@shared/types/ai-providers/config';
import { FunctionName } from '@shared/types/api/request';
 
const HuggingfaceAPIConfig: InternalProviderAPIConfig = {
  getBaseURL: ({ saTarget }) => {
    return (
      saTarget.huggingface_base_url || 'https://api-inference.huggingface.co'
    );
  },
  headers: ({ saTarget }) => ({
    Authorization: `Bearer ${saTarget.api_key}`,
  }),
  getEndpoint: ({ saRequestData, saTarget }) => {
    const { model } = saRequestData.requestBody as { model: string };
    const modelPath = saTarget.huggingface_base_url ? '' : `/models/${model}`;
    switch (saRequestData.functionName) {
      case FunctionName.CHAT_COMPLETE:
        return `${modelPath}/v1/chat/completions`;
      case FunctionName.COMPLETE:
        return `${modelPath}/v1/completions`;
      default:
        return '';
    }
  },
};
 
export default HuggingfaceAPIConfig;