@genkit-ai/anthropic
Version:
Genkit AI framework plugin for Anthropic APIs.
73 lines • 2.33 kB
JavaScript
import { z } from "genkit";
const baseCitationSchema = z.object({
cited_text: z.string(),
document_index: z.number(),
document_title: z.string().nullable().optional(),
file_id: z.string().nullable().optional()
});
const charLocationCitationSchema = baseCitationSchema.extend({
type: z.literal("char_location"),
start_char_index: z.number(),
end_char_index: z.number()
});
const pageLocationCitationSchema = baseCitationSchema.extend({
type: z.literal("page_location"),
start_page_number: z.number(),
end_page_number: z.number()
});
const contentBlockLocationCitationSchema = baseCitationSchema.extend({
type: z.literal("content_block_location"),
start_block_index: z.number(),
end_block_index: z.number()
});
const citationSchema = z.discriminatedUnion("type", [
charLocationCitationSchema,
pageLocationCitationSchema,
contentBlockLocationCitationSchema
]);
function fromAnthropicCitation(citation) {
if (citation.document_index === void 0) {
return void 0;
}
const result = citationSchema.safeParse(citation);
if (!result.success) {
return void 0;
}
const parsed = result.data;
switch (parsed.type) {
case "char_location":
return {
type: "char_location",
citedText: parsed.cited_text,
documentIndex: parsed.document_index,
documentTitle: parsed.document_title ?? void 0,
fileId: parsed.file_id ?? void 0,
startCharIndex: parsed.start_char_index,
endCharIndex: parsed.end_char_index
};
case "page_location":
return {
type: "page_location",
citedText: parsed.cited_text,
documentIndex: parsed.document_index,
documentTitle: parsed.document_title ?? void 0,
fileId: parsed.file_id ?? void 0,
startPageNumber: parsed.start_page_number,
endPageNumber: parsed.end_page_number
};
case "content_block_location":
return {
type: "content_block_location",
citedText: parsed.cited_text,
documentIndex: parsed.document_index,
documentTitle: parsed.document_title ?? void 0,
fileId: parsed.file_id ?? void 0,
startBlockIndex: parsed.start_block_index,
endBlockIndex: parsed.end_block_index
};
}
}
export {
fromAnthropicCitation
};
//# sourceMappingURL=citations.mjs.map