Moonborn — Developers
Rust
Das offizielle Rust-SDK. Async-first (Tokio), serde-typed, no_std-clean wo möglich. Versendet innerhalb einer Woche jedes API-Releases.
Das Rust-SDK ist moonborn auf crates.io. Aus der kanonischen
OpenAPI-Spec generiert; idiomatic Rust — async-first, serde-typed,
error-typed.
Installieren
[dependencies]
moonborn = "1.0"
tokio = { version = "1", features = ["full"] }Erster Call
use moonborn::{Client, CreatePersonaInput};
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(env::var("MOONBORN_API_KEY")?);
let persona = client.personas().create_persona(CreatePersonaInput {
intent: "Ein 34-jähriger Gründer aus Istanbul. Brillant, aber rastlos.".into(),
workspace_id: "ws_...".into(),
..Default::default()
}).await?;
println!("{} {}", persona.id, persona.status);
Ok(())
}Streaming
use futures::StreamExt;
let mut stream = client.chat().stream_message(StreamMessageInput {
session_id: session.id.clone(),
content: "Erzähl mir eine stille Wahrheit.".into(),
}).await?;
while let Some(chunk) = stream.next().await {
match chunk? {
Chunk::Token { delta } => print!("{}", delta),
Chunk::Completed { drift_score, .. } => println!("\ndrift: {}", drift_score),
}
}Error-Handling
match client.personas().get_persona(GetPersonaInput { id: "persona_...".into() }).await {
Ok(persona) => { /* ... */ }
Err(Error::Api(api_err)) if api_err.code == "rate_limited" => {
tokio::time::sleep(api_err.retry_after).await;
}
Err(e) => return Err(e.into()),
}Tarif
Jeder Tier.