#ai #gemini #multimodal #ai-api #openai #bard #language-model

bin+lib gemini-ai

A Rust based Gemini AI API, enabling access to advanced natural language processing and multimodal models

10 releases

new 0.1.160 Nov 21, 2024
0.1.140 Nov 21, 2024

#118 in Machine learning

Download history 1150/week @ 2024-11-16

1,160 downloads per month

MIT license

57KB
1.5K SLoC

Gemini AI Rust Wrapper

Welcome to the Rust Gemini AI! This crate provides a Rust interface to interact with the Gemini AI API, which powers advanced natural language processing (NLP) and multimodal capabilities.

License Gemini AI Logo

New Feature Added

  • Added Function Calling Feature

  • MaxTokenLimit Based Response

  • Instruction Based Response

Previous New Feature Added

  • MaxTokenLimit Based Response

  • Instruction Based Response

Features

  • Instruction Processing: Based on instruction customize the response in the way you like.
  • Natural Language Processing: Access powerful language models like Gemini 1.5 Pro for advanced text analysis, summarization, and generation.
  • Multimodal Capabilities: Interact with Gemini models that can handle not only text but also images, audio, and video inputs.
  • Easy Integration: A straightforward API wrapper for easy integration into your Rust projects.

Installation

To add this crate to your project, include it in your Cargo.toml:


   [dependencies]
   gemini-ai = "0.1.14"


   let builder = GeminiContentGenBuilder::new()
        .env("GEMINI_API_KEY")
        .model(gemini_ai::Models::GEMINI_1_5_PRO_002)
        .kind(gemini_ai::Kind::Image("statics/OIP.jpeg"))
        .instruction(
            "you are great image analyzer and tell the image design accuratly and how it can be made great",
        )
        .text("image")
        .max_token(gemini_ai::TokenLen::Default)
        .build()
        .output();

   let string = decode_gemini(&builder); // optional to decode the output if it sends the reponse else error


   let feature1 = Properties::new(
        "get_current_place_detail",
        "current palce details",
        Some(gemini_ai::pulse::format::Paramters {
            r#type: String::from("object"),
            properties: gemini_ai::pulse::format::SubProperties {
                name: String::from("events"),
                r#type: String::from("string"),
                description: String::from("Render all the events located in current location"),
            },
        }),
        Some(&["events"]),
    );

    let feature = feature(&[&feature1]);


   let pluse = GeminiPulse::new()
      .env("GEMINI_API_KEY")
      .model(gemini_ai::Models::GEMINI_1_5_PRO)
      .train(&feature)
      .instruction("your are great in telling events in the current place")
      .tell("banglore at 24 november 2024")
      .build()
      .output();

Dependencies

~1–10MB
~127K SLoC