File size: 2,167 Bytes
a8aec61 |
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
import { toast } from 'sonner'
import { APIRoutes } from './routes'
import { Agent, ComboboxAgent, SessionEntry } from '@/types/playground'
export const getPlaygroundAgentsAPI = async (
endpoint: string
): Promise<ComboboxAgent[]> => {
const url = APIRoutes.GetPlaygroundAgents(endpoint)
try {
const response = await fetch(url, { method: 'GET' })
if (!response.ok) {
toast.error(`Failed to fetch playground agents: ${response.statusText}`)
return []
}
const data = await response.json()
// Transform the API response into the expected shape.
const agents: ComboboxAgent[] = data.map((item: Agent) => ({
value: item.agent_id || '',
label: item.name || '',
model: item.model || '',
storage: item.storage || false
}))
return agents
} catch {
toast.error('Error fetching playground agents')
return []
}
}
export const getPlaygroundStatusAPI = async (base: string): Promise<number> => {
const response = await fetch(APIRoutes.PlaygroundStatus(base), {
method: 'GET'
})
return response.status
}
export const getAllPlaygroundSessionsAPI = async (
base: string,
agentId: string
): Promise<SessionEntry[]> => {
try {
const response = await fetch(
APIRoutes.GetPlaygroundSessions(base, agentId),
{
method: 'GET'
}
)
if (!response.ok) {
if (response.status === 404) {
// Return empty array when storage is not enabled
return []
}
throw new Error(`Failed to fetch sessions: ${response.statusText}`)
}
return response.json()
} catch {
return []
}
}
export const getPlaygroundSessionAPI = async (
base: string,
agentId: string,
sessionId: string
) => {
const response = await fetch(
APIRoutes.GetPlaygroundSession(base, agentId, sessionId),
{
method: 'GET'
}
)
return response.json()
}
export const deletePlaygroundSessionAPI = async (
base: string,
agentId: string,
sessionId: string
) => {
const response = await fetch(
APIRoutes.DeletePlaygroundSession(base, agentId, sessionId),
{
method: 'DELETE'
}
)
return response
}
|