Caution
NO LONGER MAINTAINED.
Gemini (Public and Vertex) is now accessible and compatible with the OpenAI API format, there is little point in dusting this off - Thanks.
An unofficial rust-based client library to interact with the Google generative AI API.
The goal is to emulate the Google AI Python SDK but in Rust.
Start point, gain familiarity with Google's Gemini generative AI.
-
For the public Gemini endpoint, see the Gemini API Overview docs
-
Similarly, for the Vertex AI endpoint, see the Vertex AI Gemini API docs
See examples and follow the in-comment instructions. The code is (hopefully) easy and readable.
Yes, please!! Create a fork and branch, make your contribution, and raise a PR.
Please see contributing for the rules; they are standard though.
google-generative-ai-rs = { version = "0.3.4", features = ["beta"] }
Using the beta feature will enable the following:
gemini-1.5-pro-latestgemini-1.0-progemini-1.5-pro-latest")gemini-1.5-flash")"gemini-1.5-flash-8b")gemini-2.0-flash-exp")- or custom
Model::Custom(name) - system instructions
json_mode
Note: gemini-1.0-pro is deprecated and will be unavailable from 15th February 2025.
I do my best to release working code.
Status today is: "Happy path for both public and Vertex AI endpoints work for Gemini."
- Create request and response structs
- Create the public API happy path for Gemini
- Create the Vertex AI (private) API happy path for Gemini
- Create basic error handling
- get - see: "https://ai.google.dev/tutorials/rest_quickstart#get_model" and "https://ai.google.dev/tutorials/rest_quickstart#list_models"
- countTokens - see: "https://ai.google.dev/tutorials/rest_quickstart#count_tokens"
- function - see "https://cloud.google.com/vertex-ai/docs/generative-ai/multimodal/function-calling"
- embedContent - see: "https://ai.google.dev/tutorials/rest_quickstart#embedding"