deer-flow/frontend/src/core/api/feedback.ts
rayhpeng 77491f2801 feat(feedback): add frontend feedback API client
Adds upsertFeedback and deleteFeedback API functions backed by
fetchWithAuth, targeting the /api/threads/{id}/runs/{id}/feedback
endpoint.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-11 23:38:20 +08:00

43 lines
1.1 KiB
TypeScript

import { getBackendBaseURL } from "../config";
import { fetchWithAuth } from "./fetcher";
export interface FeedbackData {
feedback_id: string;
rating: number;
comment: string | null;
}
export async function upsertFeedback(
threadId: string,
runId: string,
rating: number,
comment?: string,
): Promise<FeedbackData> {
const res = await fetchWithAuth(
`${getBackendBaseURL()}/api/threads/${encodeURIComponent(threadId)}/runs/${encodeURIComponent(runId)}/feedback`,
{
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ rating, comment: comment ?? null }),
},
);
if (!res.ok) {
throw new Error(`Failed to submit feedback: ${res.status}`);
}
return res.json();
}
export async function deleteFeedback(
threadId: string,
runId: string,
): Promise<void> {
const res = await fetchWithAuth(
`${getBackendBaseURL()}/api/threads/${encodeURIComponent(threadId)}/runs/${encodeURIComponent(runId)}/feedback`,
{ method: "DELETE" },
);
if (!res.ok && res.status !== 404) {
throw new Error(`Failed to delete feedback: ${res.status}`);
}
}