import { Header3 } from "~/components/primitives/Headers"; import { Paragraph } from "~/components/primitives/Paragraph"; import { formatDuration } from "./aiHelpers"; import { SpanMetricRow as MetricRow } from "./SpanMetricRow"; export type AIEmbedData = { model: string; provider: string; value?: string; durationMs: number; }; export function extractAIEmbedData( properties: Record, durationMs: number ): AIEmbedData | undefined { const ai = properties.ai; if (!ai || typeof ai !== "object") return undefined; const a = ai as Record; if (a.operationId !== "ai.embed") return undefined; const aiModel = a.model; if (!aiModel || typeof aiModel !== "object") return undefined; const m = aiModel as Record; const model = typeof m.id === "string" ? m.id : undefined; if (!model) return undefined; return { model, provider: typeof m.provider === "string" ? m.provider : "unknown", value: typeof a.value === "string" ? a.value : undefined, durationMs, }; } export function AIEmbedSpanDetails({ data }: { data: AIEmbedData }) { return (
{/* Model info */}
{/* Input value */} {data.value && (
Input
{data.value}
)}
); }