import type { AssistantMessage } from "@mariozechner/pi-ai"; import {
resolveAgentModelFallbackValues,
resolveAgentModelPrimaryValue,
} from "../../config/model-input.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { providerSupportsNativePdfDocument } from "../../media-understanding/defaults.js"; import { extractAssistantText } from "../pi-embedded-utils.js";
export type PdfModelConfig = { primary?: string; fallbacks?: string[] };
export function resolvePdfInputs(record: Record<string, unknown>): string[] { const pdfCandidates: string[] = []; if (typeof record.pdf === "string") {
pdfCandidates.push(record.pdf);
} if (Array.isArray(record.pdfs)) {
pdfCandidates.push(...record.pdfs.filter((v): v is string => typeof v === "string"));
}
const seenPdfs = new Set<string>(); const pdfInputs: string[] = []; for (const candidate of pdfCandidates) { const trimmed = candidate.trim(); if (!trimmed || seenPdfs.has(trimmed)) { continue;
}
seenPdfs.add(trimmed);
pdfInputs.push(trimmed);
} if (pdfInputs.length === 0) { thrownew Error("pdf required: provide a path or URL to a PDF document");
} return pdfInputs;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.