text_request/
text_request.rs

1use log::info;
2use std::env;
3
4use google_generative_ai_rs::v1::{
5    api::Client,
6    gemini::{request::Request, Content, Part, Role},
7};
8
9/// Simple text request using the public API and an API key for authn
10/// To run:
11/// ```
12/// API_KEY=[YOUR_API_KEY] RUST_LOG=info cargo run --package google-generative-ai-rs  --example text_request
13/// ``
14#[tokio::main]
15async fn main() -> Result<(), Box<dyn std::error::Error>> {
16    env_logger::init();
17
18    // Either run as a standard text request or a stream generate content request
19    let client = Client::new(env::var("API_KEY").unwrap().to_string());
20
21    let txt_request = Request {
22        contents: vec![Content {
23            role: Role::User,
24            parts: vec![Part {
25                text: Some("Give me a recipe for banana bread.".to_string()),
26                inline_data: None,
27                file_data: None,
28                video_metadata: None,
29            }],
30        }],
31        tools: vec![],
32        safety_settings: vec![],
33        generation_config: None,
34
35        #[cfg(feature = "beta")]
36        system_instruction: None,
37    };
38
39    let response = client.post(30, &txt_request).await?;
40
41    info!("{:#?}", response);
42
43    Ok(())
44}