import request from '@/utils/request'
import type {
  LLMProviderInfo,
  LLMConfig,
  LLMConfigUpdate,
  LLMTestResult,
  LLMTestRequest,
  LLMProvidersResponse,
  LLMConfigUpdateResponse
} from '@/types/llm'

export function getLLMProviders(): Promise<LLMProvidersResponse> {
  return request({
    url: '/admin/llm/providers',
    method: 'get'
  })
}

export function getLLMConfig(): Promise<LLMConfig> {
  return request({
    url: '/admin/llm/config',
    method: 'get'
  })
}

export function updateLLMConfig(data: LLMConfigUpdate): Promise<LLMConfigUpdateResponse> {
  return request({
    url: '/admin/llm/config',
    method: 'put',
    data
  })
}

export function testLLM(data: LLMTestRequest): Promise<LLMTestResult> {
  return request({
    url: '/admin/llm/test',
    method: 'post',
    data
  })
}

export type {
  LLMProviderInfo,
  LLMConfig,
  LLMConfigUpdate,
  LLMTestResult,
  LLMTestRequest,
  LLMProvidersResponse,
  LLMConfigUpdateResponse
}
