Files
fil/docs/snippets/rust/llm/structured_extraction.md

38 lines
1.1 KiB
Markdown
Raw Normal View History

2026-06-01 23:40:55 +02:00
```rust title="Rust"
use kreuzberg::{
extract_file, ExtractionConfig, LlmConfig, StructuredExtractionConfig,
};
use serde_json::json;
#[tokio::main]
async fn main() -> kreuzberg::Result<()> {
let config = ExtractionConfig {
structured_extraction: Some(StructuredExtractionConfig {
schema: json!({
"type": "object",
"properties": {
"title": { "type": "string" },
"authors": { "type": "array", "items": { "type": "string" } },
"date": { "type": "string" }
},
"required": ["title", "authors", "date"],
"additionalProperties": false
}),
llm: LlmConfig {
model: "openai/gpt-4o-mini".to_string(),
..Default::default()
},
strict: true,
..Default::default()
}),
..Default::default()
};
let result = extract_file("paper.pdf", None, &config).await?;
if let Some(structured) = &result.structured_output {
println!("{}", structured);
}
Ok(())
}
```