All files / api/src/ai-providers/google-vertex-ai create-finetune.ts

82.5% Statements 33/40
100% Branches 0/0
0% Functions 0/1
82.5% Lines 33/40

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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55                1x           1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x                
import type {
  GoogleErrorResponse,
  GoogleFinetuneRecord,
} from '@api/ai-providers/google/types';
import type {
  AIProviderFunctionConfig,
  ResponseTransformFunction,
} from '@shared/types/ai-providers/config';
import {
  GoogleErrorResponseTransform,
  googleToOpenAIFinetune,
  transformVertexFinetune,
} from './utils';
 
export const GoogleVertexFinetuneConfig: AIProviderFunctionConfig = {
  model: {
    param: 'baseModel',
    required: true,
  },
  training_file: {
    param: 'supervisedTuningSpec',
    required: true,
    transform: transformVertexFinetune,
  },
  suffix: {
    param: 'tunedModelDisplayName',
    required: true,
  },
  validation_file: {
    param: 'supervisedTuningSpec',
    required: false,
    transform: transformVertexFinetune,
  },
  method: {
    param: 'supervisedTuningSpec',
    required: false,
    transform: transformVertexFinetune,
  },
  hyperparameters: {
    param: 'supervisedTuningSpec',
    required: false,
    transform: transformVertexFinetune,
  },
};
 
export const googleFinetuneCreateResponseTransform: ResponseTransformFunction =
  (response, status) => {
    if (status !== 200) {
      return GoogleErrorResponseTransform(
        response as unknown as GoogleErrorResponse,
      );
    }
    return googleToOpenAIFinetune(response as unknown as GoogleFinetuneRecord);
  };