Skip to main content

kcode_gemini_api/
lib.rs

1//! Gemini inference with in-memory session usage accounting and spending limits.
2//!
3//! [`Gemini`] intentionally supports Gemini 3.1 Flash-Lite, Gemini 3.1 Pro
4//! Preview, Nano Banana Pro, Pro multimodal inference, and Flash-Lite grounded
5//! search. Nothing is persisted by this crate.
6
7#![deny(missing_docs)]
8#![forbid(unsafe_code)]
9
10mod accounting;
11mod api;
12mod error;
13mod model;
14
15pub use accounting::{
16    GroupedUsage, LimitPeriod, LimitStatus, SpendingLimits, UsageBreakdown, UsageRecord,
17    UsageTotals, UsageWindow,
18};
19pub use api::Gemini;
20pub use error::{Error, Result};
21pub use model::{
22    AspectRatio, CompletionStatus, CostAccuracy, CostBreakdown, GeneratedImage, GenerationOptions,
23    GroundedSearchRequest, GroundedSearchResponse, InferenceRequest, InferenceResponse, MediaInput,
24    MediaKind, Modality, ModalityTokens, Money, MultimodalRequest, NanoBananaProRequest,
25    ServiceTier, StructuredOutput, TextModel, ThinkingLevel, TokenUsage, WebSource,
26};
27
28/// Stable Gemini 3.1 Flash-Lite model identifier.
29pub const GEMINI_31_FLASH_LITE: &str = "gemini-3.1-flash-lite";
30/// Current Gemini 3.1 Pro preview model identifier.
31pub const GEMINI_31_PRO: &str = "gemini-3.1-pro-preview";
32/// Stable Nano Banana Pro model identifier.
33pub const NANO_BANANA_PRO: &str = "gemini-3-pro-image";