UNPKG

@arizeai/phoenix-client

Version:

A client for the Phoenix API

77 lines 2.97 kB
import { operations } from "../__generated__/api/v1.js"; import { ClientFn } from "../types/core.js"; import { ProjectSelector } from "../types/projects.js"; /** * Parameters to get span annotations from a project using auto-generated types */ export interface GetSpanAnnotationsParams extends ClientFn { /** The project to get span annotations from */ project: ProjectSelector; /** One or more span IDs to fetch annotations for */ spanIds: string[]; /** Optional list of annotation names to include. If provided, only annotations with these names will be returned. 'note' annotations are excluded by default unless explicitly included in this list. */ includeAnnotationNames?: string[]; /** Optional list of annotation names to exclude from results. */ excludeAnnotationNames?: string[]; /** Pagination cursor */ cursor?: string | null; /** Maximum number of annotations to return */ limit?: number; } export type GetSpanAnnotationsResponse = operations["listSpanAnnotationsBySpanIds"]["responses"]["200"]; export type GetSpanAnnotationsResult = { annotations: GetSpanAnnotationsResponse["content"]["application/json"]["data"]; nextCursor: GetSpanAnnotationsResponse["content"]["application/json"]["next_cursor"]; }; /** * Get span annotations for a list of span IDs. * * This method allows you to retrieve annotations for specific spans within a project. * You can filter annotations by name and support cursor-based pagination. * * @experimental this function is experimental and may change in the future * * @param params - The parameters to get span annotations * @returns A paginated response containing annotations and optional next cursor * * @example * ```ts * // Get annotations for specific spans * const result = await getSpanAnnotations({ * client, * project: { projectName: "my-project" }, * spanIds: ["span1", "span2", "span3"], * limit: 50 * }); * * // Get specific annotation types * const result = await getSpanAnnotations({ * client, * project: { projectName: "my-project" }, * spanIds: ["span1"], * includeAnnotationNames: ["quality_score", "sentiment"], * limit: 100 * }); * * // Paginate through results * let cursor: string | undefined; * do { * const result = await getSpanAnnotations({ * client, * project: { projectName: "my-project" }, * spanIds: ["span1"], * cursor, * limit: 100 * }); * * // Process annotations * result.annotations.forEach(annotation => { * console.log(`Annotation: ${annotation.name}, Label: ${annotation.result.label}`); * }); * * cursor = result.nextCursor || undefined; * } while (cursor); * ``` */ export declare function getSpanAnnotations({ client: _client, project, spanIds, includeAnnotationNames, excludeAnnotationNames, cursor, limit, }: GetSpanAnnotationsParams): Promise<GetSpanAnnotationsResult>; //# sourceMappingURL=getSpanAnnotations.d.ts.map