مزودو النماذج (السحابية)

يدعم adk-rust العديد من مزودي نماذج LLM السحابية من خلال الكريت adk-model. جميع المزودين يطبقون السمة Llm، مما يجعلهم قابلين للتبديل في وكلاءك.

نظرة عامة

┌─────────────────────────────────────────────────────────────────────┐
│                     Cloud Model Providers                           │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   • Gemini (Google)    ⭐ Default    - Multimodal, large context    │
│   • OpenAI (GPT-4o)    🔥 Popular    - Best ecosystem               │
│   • Anthropic (Claude) 🧠 Smart      - Best reasoning               │
│   • DeepSeek           💭 Thinking   - Chain-of-thought, cheap      │
│   • Groq               ⚡ Ultra-Fast  - Fastest inference           │
│                                                                     │
│   For local/offline models, see:                                    │
│   • Ollama     → ollama.md                                          │
│   • mistral.rs → mistralrs.md                                       │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

مقارنة سريعة

المزودالأفضل لـالسرعةالتكلفةالميزة الرئيسية
Geminiالاستخدام العام⚡⚡⚡💰متعدد الوسائط، سياق كبير
OpenAIالموثوقية⚡⚡💰💰أفضل نظام بيئي
Anthropicالتفكير المعقد⚡⚡💰💰الأكثر أمانًا، الأكثر تفكيرًا
DeepSeekChain-of-thought⚡⚡💰وضع التفكير، رخيص
Groqحرج السرعة⚡⚡⚡⚡💰أسرع استنتاج

الخطوة 1: التثبيت

أضف المزودين الذين تحتاجهم إلى ملف Cargo.toml الخاص بك:

[dependencies]
# Pick one or more providers:
adk-model = { version = "0.2", features = ["gemini"] }        # Google Gemini (default)
adk-model = { version = "0.2", features = ["openai"] }        # OpenAI GPT-4o
adk-model = { version = "0.2", features = ["anthropic"] }     # Anthropic Claude
adk-model = { version = "0.2", features = ["deepseek"] }      # DeepSeek
adk-model = { version = "0.2", features = ["groq"] }          # Groq (ultra-fast)

# Or all cloud providers at once:
adk-model = { version = "0.2", features = ["all-providers"] }

الخطوة 2: تعيين مفتاح API الخاص بك

export GOOGLE_API_KEY="your-key"      # Gemini
export OPENAI_API_KEY="your-key"      # OpenAI
export ANTHROPIC_API_KEY="your-key"   # Anthropic
export DEEPSEEK_API_KEY="your-key"    # DeepSeek
export GROQ_API_KEY="your-key"        # Groq

Gemini (Google) ⭐ افتراضي

الأفضل لـ: الأغراض العامة، المهام متعددة الوسائط، المستندات الكبيرة

أبرز الميزات:

  • 🖼️ متعدد الوسائط أصلي (صور، فيديو، صوت، PDF)
  • 📚 نافذة سياق تصل إلى 2 مليون رمز
  • 💰 تسعير تنافسي
  • ⚡ استدلال سريع

مثال عملي كامل

use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    
    let api_key = std::env::var("GOOGLE_API_KEY")?;
    let model = GeminiModel::new(&api_key, "gemini-2.0-flash")?;

    let agent = LlmAgentBuilder::new("gemini_assistant")
        .description("Gemini-powered assistant")
        .instruction("You are a helpful assistant powered by Google Gemini. Be concise.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

النماذج المتاحة

Modelالوصفالسياق
gemini-2.0-flashسريع وفعال (موصى به)1M tokens
gemini-2.5-flashأحدث نموذج فلاش1M tokens
gemini-2.5-proالأكثر قدرة2M tokens

مثال على المخرج

👤 User: What's in this image? [uploads photo of a cat]

🤖 Gemini: I can see a fluffy orange tabby cat sitting on a windowsill. 
The cat appears to be looking outside, with sunlight illuminating its fur. 
It has green eyes and distinctive striped markings typical of tabby cats.

OpenAI (GPT-4o) 🔥 شائع

الأفضل لـ: تطبيقات الإنتاج، الأداء الموثوق، القدرات الواسعة

أبرز الميزات:

  • 🏆 معيار الصناعة
  • 🔧 استدعاء ممتاز للأدوات/الوظائف
  • 📖 أفضل وثائق ونظام بيئي
  • 🎯 مخرجات متسقة ويمكن التنبؤ بها

مثال عملي كامل

use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    
    let api_key = std::env::var("OPENAI_API_KEY")?;
    let model = OpenAIClient::new(OpenAIConfig::new(&api_key, "gpt-4o"))?;

    let agent = LlmAgentBuilder::new("openai_assistant")
        .description("OpenAI-powered assistant")
        .instruction("You are a helpful assistant powered by OpenAI GPT-4o. Be concise.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

النماذج المتاحة

Modelالوصفالسياق
gpt-4oالأكثر قدرة، متعدد الوسائط128K tokens
gpt-4o-miniسريع، فعال من حيث التكلفة128K tokens
gpt-4-turboالرائد السابق128K tokens
o1نموذج استدلال128K tokens

مثال على المخرج

👤 User: Write a haiku about Rust programming

🤖 GPT-4o: Memory so safe,
Ownership guards every byte—
Compiler, my friend.

Anthropic (Claude) 🧠 ذكي

الأفضل لـ: الاستدلال المعقد، التطبيقات الحيوية للسلامة، المستندات الطويلة

الميزات الرئيسية:

  • 🧠 قدرة استدلال استثنائية
  • 🛡️ الأكثر تركيزًا على السلامة
  • 📚 سياق 200K token
  • ✍️ جودة كتابة ممتازة

مثال عملي كامل

use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    
    let api_key = std::env::var("ANTHROPIC_API_KEY")?;
    let model = AnthropicClient::new(AnthropicConfig::new(&api_key, "claude-sonnet-4-20250514"))?;

    let agent = LlmAgentBuilder::new("anthropic_assistant")
        .description("Anthropic-powered assistant")
        .instruction("You are a helpful assistant powered by Anthropic Claude. Be concise and thoughtful.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

النماذج المتاحة

النموذجالوصفالسياق
claude-sonnet-4-20250514أحدث Claude 4 Sonnet200K tokens
claude-opus-4-20250514الأكثر قدرة Claude 4200K tokens
claude-3-5-sonnet-20241022Claude 3.5 Sonnet200K tokens

مثال على الإخراج

👤 User: Explain quantum entanglement to a 10-year-old

🤖 Claude: Imagine you have two magic coins. When you flip them, they always 
land the same way - both heads or both tails - even if one coin is on Earth 
and the other is on the Moon! Scientists call this "entanglement." The coins 
are connected in a special way that we can't see, like invisible best friends 
who always make the same choice at the exact same time.

DeepSeek 💭 تفكير

الأفضل لـ: حل المشكلات المعقدة، الرياضيات، البرمجة، مهام الاستدلال

الميزات الرئيسية:

  • 💭 وضع التفكير - يظهر تسلسل التفكير الاستدلالي
  • 💰 فعال للغاية من حيث التكلفة (أرخص بـ 10 مرات من GPT-4)
  • 🔄 تخزين مؤقت للسياق للبادئات المتكررة
  • 🧮 قوي في الرياضيات والبرمجة

مثال عملي كامل

use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    
    let api_key = std::env::var("DEEPSEEK_API_KEY")?;
    
    // نموذج الدردشة القياسي
    let model = DeepSeekClient::chat(&api_key)?;
    
    // أو: نموذج استدلال مع وضع التفكير
    // let model = DeepSeekClient::reasoner(&api_key)?;

    let agent = LlmAgentBuilder::new("deepseek_assistant")
        .description("DeepSeek-powered assistant")
        .instruction("You are a helpful assistant powered by DeepSeek. Be concise.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

النماذج المتاحة

النموذجالوصفميزة خاصة
deepseek-chatنموذج دردشة سريعغرض عام
deepseek-reasonerنموذج استدلاليظهر عملية التفكير

مثال على الإخراج (مفكر مع وضع التفكير)

👤 User: What's 17 × 23?

🤖 DeepSeek: <thinking>
Let me break this down:
17 × 23 = 17 × (20 + 3)
       = 17 × 20 + 17 × 3
       = 340 + 51
       = 391
</thinking>

The answer is 391.

Groq ⚡ فائق السرعة

الأفضل لـ: التطبيقات في الوقت الفعلي، روبوتات الدردشة، المهام الحساسة للسرعة

أبرز الميزات:

  • أسرع استدلال - أسرع بـ 10 مرات من المنافسين
  • 🔧 تقنية LPU (وحدة معالجة اللغة)
  • 💰 تسعير تنافسي
  • 🦙 يشغل نماذج LLaMA، Mixtral، Gemma

مثال عملي كامل

use adk_rust::prelude::*;
use adk_rust::Launcher;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    
    let api_key = std::env::var("GROQ_API_KEY")?;
    let model = GroqClient::llama70b(&api_key)?;

    let agent = LlmAgentBuilder::new("groq_assistant")
        .description("Groq-powered assistant")
        .instruction("You are a helpful assistant powered by Groq. Be concise and fast.")
        .model(Arc::new(model))
        .build()?;

    Launcher::new(Arc::new(agent)).run().await?;
    Ok(())
}

النماذج المتاحة

ModelMethodDescription
llama-3.3-70b-versatileGroqClient::llama70b()الأكثر قدرة
llama-3.1-8b-instantGroqClient::llama8b()الأسرع
mixtral-8x7b-32768Custom configتوازن جيد

مثال على المخرجات

👤 User: Quick! Name 5 programming languages

🤖 Groq (in 0.2 seconds): 
1. Rust
2. Python
3. JavaScript
4. Go
5. TypeScript

تبديل المزودين

جميع المزودين يطبقون نفس السمة Llm، لذا فإن التبديل سهل:

use adk_agent::LlmAgentBuilder;
use std::sync::Arc;

// Just change the model - everything else stays the same!
let model: Arc<dyn adk_core::Llm> = Arc::new(
    // Pick one:
    // GeminiModel::new(&api_key, "gemini-2.0-flash")?
    // OpenAIClient::new(OpenAIConfig::new(&api_key, "gpt-4o"))?
    // AnthropicClient::new(AnthropicConfig::new(&api_key, "claude-sonnet-4-20250514"))?
    // DeepSeekClient::chat(&api_key)?
    // GroqClient::llama70b(&api_key)?
);

let agent = LlmAgentBuilder::new("assistant")
    .instruction("You are a helpful assistant.")
    .model(model)
    .build()?;

أمثلة

# Gemini (default)
cargo run --example quickstart

# OpenAI
cargo run --example openai_basic --features openai

# Anthropic
cargo run --example anthropic_basic --features anthropic

# DeepSeek
cargo run --example deepseek_basic --features deepseek
cargo run --example deepseek_reasoner --features deepseek  # Thinking mode

# Groq
cargo run --example groq_basic --features groq

ذات صلة


السابق: ← العوامل في الوقت الفعلي | التالي: Ollama (محلي) →