52 lines
1.2 KiB
TypeScript
Vendored
52 lines
1.2 KiB
TypeScript
Vendored
import { api } from '@/lib/api'
|
|
import type { PricingData } from './types'
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// Pricing APIs
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Get model pricing data
|
|
export async function getPricing(): Promise<PricingData> {
|
|
const res = await api.get('/api/pricing')
|
|
return res.data
|
|
}
|
|
|
|
export type PerformanceSeriesPoint = {
|
|
ts: number
|
|
avg_ttft_ms: number
|
|
avg_latency_ms: number
|
|
success_rate: number
|
|
avg_tps: number
|
|
}
|
|
|
|
export type PerformanceGroup = {
|
|
group: string
|
|
avg_ttft_ms: number
|
|
avg_latency_ms: number
|
|
success_rate: number
|
|
avg_tps: number
|
|
series: PerformanceSeriesPoint[]
|
|
}
|
|
|
|
export type PerformanceMetricsData = {
|
|
success: boolean
|
|
message?: string
|
|
data: {
|
|
model_name: string
|
|
series_schema?: string
|
|
groups: PerformanceGroup[]
|
|
}
|
|
}
|
|
|
|
export async function getPerfMetrics(
|
|
modelName: string,
|
|
hours = 24
|
|
): Promise<PerformanceMetricsData> {
|
|
const params = new URLSearchParams({
|
|
model: modelName,
|
|
hours: String(hours),
|
|
})
|
|
const res = await api.get(`/api/perf-metrics?${params.toString()}`)
|
|
return res.data
|
|
}
|