diff --git a/README.md b/README.md new file mode 100644 index 0000000..04be2fd --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# google-genai + +A Rust client library for the Google Generative AI API. + +## Building + +To build the library, run the following command: + +```bash +cargo build --release +``` + +## Running Examples + +The project includes several examples in the `examples` directory. To run an example, you'll first need to set up your environment with your Gemini API key. + +1. Create a `.env` file in the root of the project: + ``` + GEMINI_API_KEY=your_api_key_here + ``` + +2. Run an example using `cargo run`: + ```bash + cargo run --example generate-content + ``` + +## Usage + +To use this library in your own Rust application, add it as a dependency in your `Cargo.toml` file: + +```toml +[dependencies] +google-genai = "0.1.0" # Or the latest version +``` + +Here is a basic example of how to use the `GeminiClient` to generate content: + +```rust +use std::env; +use google_genai::prelude::{Content, GeminiClient, GenerateContentRequest, Role}; + +async fn run() -> Result<(), Box> { + // Get the API key from the environment. + let api_key = env::var("GEMINI_API_KEY")?; + + // Create a new GeminiClient. + let gemini_client = GeminiClient::new(api_key); + + // Build a prompt with a single user message. + let prompt = vec![ + Content::builder() + .role(Role::User) + .add_text_part("What is the airspeed of an unladen swallow?") + .build(), + ]; + + // Create the content generation request. + let request = GenerateContentRequest::builder().contents(prompt).build(); + + // Call the API to generate content. + let response = gemini_client + .generate_content(&request, "gemini-3-pro-preview") + .await?; + + // Print the response. + println!("Response: {:?}", response.candidates[0].get_text().unwrap()); + + Ok(()) +} +```