Crate adk_model

Crate adk_model 

Source
Expand description

§adk-model

LLM model integrations for ADK (Gemini, OpenAI, Anthropic, DeepSeek, etc.).

§Overview

This crate provides LLM implementations for ADK agents. Currently supports:

  • GeminiModel - Google’s Gemini models (2.0 Flash, Pro, etc.)
  • OpenAIClient - OpenAI models (GPT-4o, GPT-4o-mini, etc.) - requires openai feature
  • AzureOpenAIClient - Azure OpenAI Service - requires openai feature
  • AnthropicClient - Anthropic Claude models (Claude 4, Claude 3.5, etc.) - requires anthropic feature
  • DeepSeekClient - DeepSeek models (deepseek-chat, deepseek-reasoner) - requires deepseek feature
  • MockLlm - Mock LLM for testing

§Quick Start

§Gemini

use adk_model::GeminiModel;
use std::sync::Arc;

let api_key = std::env::var("GOOGLE_API_KEY").unwrap();
let model = GeminiModel::new(&api_key, "gemini-2.5-flash").unwrap();

§OpenAI

use adk_model::openai::{OpenAIClient, OpenAIConfig};

let model = OpenAIClient::new(OpenAIConfig::new(
    std::env::var("OPENAI_API_KEY").unwrap(),
    "gpt-4o-mini",
)).unwrap();

§Anthropic

use adk_model::anthropic::{AnthropicClient, AnthropicConfig};

let model = AnthropicClient::new(AnthropicConfig::new(
    std::env::var("ANTHROPIC_API_KEY").unwrap(),
    "claude-sonnet-4-20250514",
)).unwrap();

§DeepSeek

use adk_model::deepseek::{DeepSeekClient, DeepSeekConfig};

// Chat model
let chat = DeepSeekClient::chat(std::env::var("DEEPSEEK_API_KEY").unwrap()).unwrap();

// Reasoner with thinking mode
let reasoner = DeepSeekClient::reasoner(std::env::var("DEEPSEEK_API_KEY").unwrap()).unwrap();

§Supported Models

§Gemini

ModelDescription
gemini-2.5-flashFast, efficient model (recommended)
gemini-1.5-proMost capable model
gemini-1.5-flashBalanced speed/capability

§OpenAI

ModelDescription
gpt-4oMost capable model
gpt-4o-miniFast, cost-effective
gpt-4-turboPrevious generation flagship

§Anthropic

ModelDescription
claude-sonnet-4-20250514Latest Claude 4 Sonnet
claude-3-5-sonnet-20241022Claude 3.5 Sonnet
claude-3-opus-20240229Most capable Claude 3

§DeepSeek

ModelDescription
deepseek-chatFast, capable chat model
deepseek-reasonerReasoning model with thinking mode

§Features

  • Async streaming with backpressure
  • Tool/function calling support
  • Multimodal input (text, images, audio, video, PDF)
  • Generation configuration (temperature, top_p, etc.)
  • OpenAI-compatible APIs (Ollama, vLLM, etc.)

Re-exports§

pub use gemini::GeminiModel;
pub use mock::MockLlm;

Modules§

gemini
mock