use refyne::{Client, ExtractRequest};
use serde_json::json;
#[tokio::main]
async fn main() -> Result<(), refyne::Error> {
let api_key = std::env::var("REFYNE_API_KEY").expect("REFYNE_API_KEY must be set");
let client = Client::builder(api_key).build()?;
let schema = json!({
"title": "string",
"description": "string",
"price": {
"amount": "number",
"currency": "string"
}
});
let result = client
.extract(ExtractRequest {
url: "https://example.com/product".into(),
schema,
..Default::default()
})
.await?;
println!("Extracted data: {:#?}", result.data);
println!(
"Tokens used: {} input, {} output",
result.usage.input_tokens, result.usage.output_tokens
);
println!("Cost: ${:.6}", result.usage.cost_usd);
Ok(())
}