gems 0.1.4

💎 A cli, tui, and sdk for interacting with the Gemini API (WIP)
Documentation
use crate::chat::Chats;
use crate::embed::Embeddings;
use crate::imagen::Images;
use crate::models::Model;
use crate::models::Models;
use crate::stream::Streaming;
use crate::tokens::Tokens;
use crate::tts::Tts;
use crate::vidgen::Videos;
use crate::vision::Visions;
use anyhow::Result;
use reqwest::{Method, RequestBuilder};

pub trait CTrait {
    fn set_api_key(&self, api_key: String);
    fn get_api_key(&self) -> Option<String>;
    fn get_model(&self) -> Model;

    fn set_model(&mut self, model: Model);
    fn request(&self, method: Method, endpoint: &str) -> Result<RequestBuilder>;
    fn chat(&self) -> Chats;
    fn embeddings(&self) -> Embeddings;
    fn tokens(&self) -> Tokens;
    fn vision(&self) -> Visions;
    fn stream(&self) -> Streaming;
    fn models(&self) -> Models;
    fn images(&self) -> Images;
    fn videos(&self) -> Videos;
    fn tts(&self) -> Tts;
}