File size: 805 Bytes
1f21206
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import { api } from './client'
import type { ModelInfo, EffortLevel } from '../types/settings'

type ModelsResponse = { models: ModelInfo[]; provider: { id: string; name: string } | null }
type CurrentModelResponse = { model: ModelInfo }
type EffortResponse = { level: EffortLevel; available: EffortLevel[] }

export const modelsApi = {
  list() {
    return api.get<ModelsResponse>('/api/models')
  },

  getCurrent() {
    return api.get<CurrentModelResponse>('/api/models/current')
  },

  setCurrent(modelId: string) {
    return api.put<{ ok: true; model: string }>('/api/models/current', { modelId })
  },

  getEffort() {
    return api.get<EffortResponse>('/api/effort')
  },

  setEffort(level: EffortLevel) {
    return api.put<{ ok: true; level: EffortLevel }>('/api/effort', { level })
  },
}