gemini-ai

Crates.iogemini-ai
lib.rsgemini-ai
version0.1.1672
sourcesrc
created_at2024-11-20 07:39:38.154167
updated_at2024-12-09 14:35:43.658774
descriptionA Rust based Gemini AI API, enabling access to advanced natural language processing and multimodal models.
homepagehttps://crates.io/crates/gemini-ai
repositoryhttps://github.com/HashiramaSenjuhari/gemini-ai
max_upload_size
id1454444
size109,840
Hariprasath (HashiramaSenjuhari)

documentation

https://docs.rs/gemini-ai

README

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 Rag Concept Model

  • Added Pdf,Audio,Video Uploading feature

  • 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,pdf, 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.167"

       let builder = GeminiContentGenBuilder::new()
        .env("GEMINI_API_KEY")
        .model(gemini_ai::Models::GEMINI_1_5_PRO_002)
        // .memory(gemini_ai::Memorys::Json)
        .no_memory()
        .kind(gemini_ai::Kind::Image("statics/OIP.jpeg"))
        .instruction("")
        .text("hi tell character name")
        .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
    //eg function calling
    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();

        let builder = GeminiContentGenBuilder::new()
        .env("GEMINI_API_KEY")
        .model(gemini_ai::Models::GEMINI_1_5_PRO_002)
        // .memory(gemini_ai::Memorys::Json)
        .no_memory()
        .kind(gemini_ai::Kind::Audio("statics/OIP.mpeg"))
        .instruction("tell hi")
        .text("hi tell character name")
        .max_token(gemini_ai::TokenLen::Default)
        .build()
        .output();
Commit count: 46

cargo fmt