/* * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ import { llmFeedbackBatchGetCompletionFeedback } from "../funcs/llmFeedbackBatchGetCompletionFeedback.js"; import { llmFeedbackBatchGetResponseFeedback } from "../funcs/llmFeedbackBatchGetResponseFeedback.js"; import { llmFeedbackCreateCompletionFeedback } from "../funcs/llmFeedbackCreateCompletionFeedback.js"; import { llmFeedbackCreateResponseFeedback } from "../funcs/llmFeedbackCreateResponseFeedback.js"; import { llmFeedbackExportCompletionFeedback } from "../funcs/llmFeedbackExportCompletionFeedback.js"; import { llmFeedbackExportResponseFeedback } from "../funcs/llmFeedbackExportResponseFeedback.js"; import { llmFeedbackGetCompletionFeedback } from "../funcs/llmFeedbackGetCompletionFeedback.js"; import { llmFeedbackGetExportStatus } from "../funcs/llmFeedbackGetExportStatus.js"; import { llmFeedbackGetResponseFeedback } from "../funcs/llmFeedbackGetResponseFeedback.js"; import { llmFeedbackListCompletionFeedback } from "../funcs/llmFeedbackListCompletionFeedback.js"; import { llmFeedbackListResponseFeedback } from "../funcs/llmFeedbackListResponseFeedback.js"; import { llmFeedbackStartExport } from "../funcs/llmFeedbackStartExport.js"; import { llmFeedbackUpdateCompletionFeedback } from "../funcs/llmFeedbackUpdateCompletionFeedback.js"; import { llmFeedbackUpdateResponseFeedback } from "../funcs/llmFeedbackUpdateResponseFeedback.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as components from "../models/components/index.js"; import * as operations from "../models/operations/index.js"; import { unwrapAsync } from "../types/fp.js"; export class Feedback extends ClientSDK { /** * Submit feedback for chat completion * * @remarks * Submit user feedback for a specific chat completion to track satisfaction and model performance. Each completion can only receive feedback once. */ async createCompletionFeedback( request: operations.CreateCompletionFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackCreateCompletionFeedback( this, request, options, )); } /** * List chat completion feedback * * @remarks * Retrieves a paginated list of feedback entries recorded on the caller's chat completions, ordered by the completion's creation date. Supports filtering by rating. An `after` cursor that no longer resolves to a completion visible to the caller returns 400; restart pagination from the first page. */ async listCompletionFeedback( request: operations.ListCompletionFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackListCompletionFeedback( this, request, options, )); } /** * Retrieve feedback by completion ID * * @remarks * Retrieves the existing feedback rating and description for a specific chat completion. */ async getCompletionFeedback( request: operations.GetCompletionFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackGetCompletionFeedback( this, request, options, )); } /** * Update existing completion feedback * * @remarks * Updates or modifies existing feedback for a specific chat completion. Useful for allowing users to revise their initial submissions. */ async updateCompletionFeedback( request: operations.UpdateCompletionFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackUpdateCompletionFeedback( this, request, options, )); } /** * Batch retrieve feedback for multiple completions * * @remarks * Retrieves feedback for multiple chat completions in a single batch request. */ async batchGetCompletionFeedback( request: operations.BatchGetCompletionFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackBatchGetCompletionFeedback( this, request, options, )); } /** * Submit feedback for response * * @remarks * Submit user feedback for a specific agent response to track satisfaction and model performance. Each response can only receive feedback once. */ async createResponseFeedback( request: operations.CreateResponseFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackCreateResponseFeedback( this, request, options, )); } /** * List response feedback * * @remarks * Retrieves a paginated list of feedback entries recorded on the caller's agent responses, ordered by the response's creation date. Supports filtering by rating. An `after` cursor that no longer resolves to a response visible to the caller — including responses that have since been deleted — returns 400; restart pagination from the first page. */ async listResponseFeedback( request: operations.ListResponseFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackListResponseFeedback( this, request, options, )); } /** * Retrieve feedback by response ID * * @remarks * Retrieves the existing feedback rating and description for a specific agent response. */ async getResponseFeedback( request: operations.GetResponseFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackGetResponseFeedback( this, request, options, )); } /** * Update existing response feedback * * @remarks * Updates or modifies existing feedback for a specific agent response. Useful for allowing users to revise their initial submissions. */ async updateResponseFeedback( request: operations.UpdateResponseFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackUpdateResponseFeedback( this, request, options, )); } /** * Batch retrieve feedback for multiple responses * * @remarks * Retrieves feedback for multiple agent responses in a single batch request. */ async batchGetResponseFeedback( request: operations.BatchGetResponseFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackBatchGetResponseFeedback( this, request, options, )); } /** * Export completion feedback as CSV * * @remarks * Synchronously exports the completion feedback entries visible to the caller as a CSV file, ordered by the creation date of the underlying request. Visibility matches the list endpoint: callers see their own feedback; org owners and admins see their whole team. Supports filtering by rating. The export is capped at 50,000 rows; when the cap is hit the response carries an X-Export-Truncated header and older rows (with the default descending order) are omitted. */ async exportCompletionFeedback( request: operations.ExportCompletionFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackExportCompletionFeedback( this, request, options, )); } /** * Export response feedback as CSV * * @remarks * Synchronously exports the response feedback entries visible to the caller as a CSV file, ordered by the creation date of the underlying request. Visibility matches the list endpoint: callers see their own feedback; org owners and admins see their whole team. Supports filtering by rating. The export is capped at 50,000 rows; when the cap is hit the response carries an X-Export-Truncated header and older rows (with the default descending order) are omitted. */ async exportResponseFeedback( request: operations.ExportResponseFeedbackRequest, options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackExportResponseFeedback( this, request, options, )); } /** * Start feedback export * * @remarks * Starts a background job to export all feedback data across every tenant to parquet files in S3/R2. Only one export can run simultaneously. Restricted to cluster administrators. */ async startExport( options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackStartExport( this, options, )); } /** * Get feedback export status * * @remarks * Checks the status and progress of the currently running or most recently completed feedback export job. Restricted to cluster administrators. */ async getExportStatus( options?: RequestOptions, ): Promise { return unwrapAsync(llmFeedbackGetExportStatus( this, options, )); } }