use future_utils::StreamExt; use llm_connector::{ LlmClient, types::{ChatRequest, Message, Role, MessageBlock}, }; use tokio::fs; use base64::engine::general_purpose::STANDARD; use base64::Engine; #[tokio::main] async fn main() -> Result<(), Box> { let client = LlmClient::openai_with_base_url("", "http://192.168.0.11:1234")?; let models = client.models().await?; for model in models { println!("Available model: {}", model); } let data = fs::read("/home/aquafire/Downloads/14843746.jpg").await?; let encoded = STANDARD.encode(&data); println!("{}", encoded); let request = ChatRequest { model: "qwen/qwen3-vl-30b".to_string(), messages: vec![ Message::new( Role::User, vec![ MessageBlock::text("Analyze this image"), MessageBlock::image_base64("image/jpeg", encoded), ], ), ], ..Default::default() }; let response = client.chat(&request).await?; println!("Response: {}", response.content); Ok(()) }