30 lines
872 B
Markdown
30 lines
872 B
Markdown
```typescript title="WASM"
|
|
import init, { extractFile } from "kreuzberg-wasm";
|
|
|
|
await init();
|
|
|
|
const config = {
|
|
structuredExtraction: {
|
|
schema: {
|
|
type: "object",
|
|
properties: {
|
|
title: { type: "string" },
|
|
authors: { type: "array", items: { type: "string" } },
|
|
date: { type: "string" },
|
|
},
|
|
required: ["title", "authors", "date"],
|
|
additionalProperties: false,
|
|
},
|
|
llm: {
|
|
model: "openai/gpt-4o-mini",
|
|
},
|
|
strict: true,
|
|
},
|
|
};
|
|
|
|
const result = await extractFile("paper.pdf", undefined, config);
|
|
console.log(result.structuredOutput);
|
|
```
|
|
|
|
<!-- snippet:syntax-only --> Requires network access to the configured LLM provider and a valid API key in the host environment. The WASM crate accepts `structuredExtraction` configuration; the LLM call is dispatched through liter-llm's `wasm-http` transport.
|