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 })
},
}
|