2026-05-22 10:43:28 +08:00
|
|
|
import { api } from './http-client'
|
2026-05-22 00:38:56 +08:00
|
|
|
|
|
|
|
|
interface ChatMessage {
|
|
|
|
|
role: 'user' | 'assistant' | 'system'
|
|
|
|
|
content: string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
interface ChatResponse {
|
|
|
|
|
content: string
|
2026-05-22 10:43:28 +08:00
|
|
|
conversationId?: string
|
2026-05-22 00:38:56 +08:00
|
|
|
usage?: { model?: string; inputTokens?: number; outputTokens?: number }
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-22 10:43:28 +08:00
|
|
|
export async function sendMessage(
|
|
|
|
|
messages: ChatMessage[],
|
|
|
|
|
conversationId?: string,
|
|
|
|
|
signal?: AbortSignal,
|
|
|
|
|
): Promise<ChatResponse> {
|
|
|
|
|
const body: Record<string, unknown> = { messages }
|
|
|
|
|
if (conversationId) body.conversationId = conversationId
|
|
|
|
|
return api.post<ChatResponse>('/admin-api/ai/chat', body, signal ? { signal } : undefined)
|
|
|
|
|
}
|