File size: 1,207 Bytes
c40c75a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
// litellmMapping.ts

// Define an enum for the modes as returned in model_info
export enum ModelMode {
    IMAGE_GENERATION = "image_generation",
    CHAT = "chat",
    RESPONSES = "responses",
    // add additional modes as needed
  }
  
  // Define an enum for the endpoint types your UI calls
  export enum EndpointType {
    IMAGE = "image",
    CHAT = "chat",
    RESPONSES = "responses",
    // add additional endpoint types if required
  }
  
  // Create a mapping between the model mode and the corresponding endpoint type
  export const litellmModeMapping: Record<ModelMode, EndpointType> = {
    [ModelMode.IMAGE_GENERATION]: EndpointType.IMAGE,
    [ModelMode.CHAT]: EndpointType.CHAT,
    [ModelMode.RESPONSES]: EndpointType.RESPONSES,
  };

  export const getEndpointType = (mode: string): EndpointType => {
    // Check if the string mode exists as a key in ModelMode enum
    console.log("getEndpointType:", mode);
    if (Object.values(ModelMode).includes(mode as ModelMode)) {
      const endpointType = litellmModeMapping[mode as ModelMode];
      console.log("endpointType:", endpointType);
      return endpointType;
    }

    // else default to chat
    return EndpointType.CHAT;
  };