Crates.io | gems |
lib.rs | gems |
version | 0.0.9 |
source | src |
created_at | 2024-03-02 06:45:10.86185 |
updated_at | 2024-11-15 22:44:01.25384 |
description | 💎 A cli, tui, and sdk for interacting with the Gemini API (WIP) |
homepage | |
repository | https://github.com/wiseaidev/gems |
max_upload_size | |
id | 1159534 |
size | 90,137 |
💎 GEMS: A cli, tui, and sdk for interacting with the Gemini API, allowing you to generate creative content, perform text-related tasks, and get information about supported models.
To install the gems
cli, use the following Cargo command:
cargo install --locked gems --all-features
Before using the gems
CLI, make sure to set the following environment variables:
export GEMINI_API_KEY=<your_gemini_api_key>
export GEMINI_MODEL=<your_gemini_model>
Generate an api key from Google AI Studio.
gems generate -t "Hello"
curl -o image.jpg https://storage.googleapis.com/generativeai-downloads/images/scones.jpg
gems vision -i image.jpg
gems vision -i image.jpg -t "What's in the image?"
gems stream -t "Generate a short fictional story"
gems count -t "Hello There!"
gems -m 'embedding-001' embed -t "Write a story about a magic backpack."
gems -m 'embedding-001' batch -t "Write a story about a magic backpack.","Generate a poem about nature."
gems info
gems list
Option | Description |
---|---|
--api-key |
Specify the API key for accessing the Gemini API. |
--model |
Specify the model to use for generating content. |
Subcommand | Description |
---|---|
generate |
Generate creative content. |
vision |
Analyze an image and generate content from text. |
stream |
Stream the generation of content. |
count |
Count the number of tokens in a text. |
embed |
Embed content into a specified model. |
batch |
Batch embed multiple contents. |
info |
Get information about the current model. |
list |
List available models. |
Add the gems
crate:
[dependencies]
gems = "0.0.9"
Use the Client
struct to interact with the Gemini API:
use gems::Client;
#[tokio::main]
async fn main() {
let mut client = Client::new("your_api_key", "your_model");
// Use the various functions provided by the client
// For example:
match client.generate_content("Hello").await {
Ok(response) => {
println!("{}", response);
}
Err(err) => {
eprintln!("Error: {:?}", err);
}
}
}
This repository contains a list of notebooks examples on how to use the sdk and or the cli. To use the notebooks in this repository, you need to set up your environment. Follow these steps to get started:
Clone the repository to your local machine:
git clone https://github.com/wiseaidev/gems.git
Install the required dependencies and libraries. Make sure you have Rust
, Jupyter Notebook
, and evcxr_jupyter
installed on your system.
# Install a Rust toolchain (e.g. nightly):
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly
# Install Jupyter Notebook
pip install notebook
# Install evcxr_jupyter
cargo install evcxr_jupyter
evcxr_jupyter --install
Navigate to the cloned repository and build the project:
cd gems
cargo build --release --all-features
Start Jupyter Notebook:
jupyter notebook
Access the notebooks in your web browser by clicking on the notebook file you want to explore.
ID | Example | Open on GitHub | Launch on Binder | Launch on Colab |
---|---|---|---|---|
1 | Basic | |||
2 | Rocket | |||
3 | Axum |
Contributions and feedback are welcome! If you'd like to contribute, report an issue, or suggest an enhancement, please engage with the project on GitHub. Your contributions help improve this crate for the community.
This project is licensed under the MIT License.