use futures_util::StreamExt;
use oxide_agent::client::{HttpOllamaClient, OllamaClient};
use oxide_agent::types::{ChatRequest, Message, Role};
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = HttpOllamaClient::new("http://localhost:11434");
let req = ChatRequest {
model: "llama3".into(),
messages: vec![Message {
role: Role::User,
content: "Write a short haiku about the Rust programming language.".into(),
tool_calls: None,
}],
tools: None,
stream: true,
};
print!("Assistant: ");
let mut stream = client.stream_chat(req);
while let Some(result) = stream.next().await {
let chunk = result?;
print!("{}", chunk.message.content);
if chunk.done {
println!();
break;
}
}
Ok(())
}