ओलामा (स्थानीय मॉडल)

पूर्ण गोपनीयता के साथ स्थानीय रूप से LLMs चलाएँ - कोई API कुंजी नहीं, कोई इंटरनेट नहीं, कोई लागत नहीं।

अवलोकन

┌─────────────────────────────────────────────────────────────────────┐
│                         Ollama Local Setup                          │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│   Your Machine                                                      │
│   ┌─────────────────────────────────────────────────────────────┐  │
│   │                                                             │  │
│   │   ┌──────────────┐      ┌──────────────┐                   │  │
│   │   │  ADK-Rust    │ ───▶ │   Ollama     │                   │  │
│   │   │  Agent       │      │   Server     │                   │  │
│   │   └──────────────┘      └──────┬───────┘                   │  │
│   │                                │                            │  │
│   │                         ┌──────▼───────┐                   │  │
│   │                         │  Local LLM   │                   │  │
│   │                         │  (llama3.2)  │                   │  │
│   │                         └──────────────┘                   │  │
│   │                                                             │  │
│   └─────────────────────────────────────────────────────────────┘  │
│                                                                     │
│   🔒 100% Private - Data never leaves your machine                 │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

ओलामा क्यों?

लाभविवरण
🆓 मुफ़्तकभी कोई API लागत नहीं
🔒 निजीडेटा आपकी मशीन पर रहता है
📴 ऑफ़लाइनइंटरनेट के बिना काम करता है
🎛️ नियंत्रणकोई भी मॉडल चुनें, सेटिंग्स अनुकूलित करें
तेज़कोई नेटवर्क विलंबता नहीं

चरण 1: ओलामा इंस्टॉल करें

macOS

brew install ollama

Linux

curl -fsSL https://ollama.com/install.sh | sh

Windows

ollama.com से डाउनलोड करें


चरण 2: सर्वर शुरू करें

ollama serve

आपको दिखना चाहिए:

Couldn't find '/Users/you/.ollama/id_ed25519'. Generating new private key.
Your new public key is: ssh-ed25519 AAAA...
time=2024-01-05T12:00:00.000Z level=INFO source=server.go msg="Listening on 127.0.0.1:11434"

चरण 3: एक मॉडल पुल करें

एक नए टर्मिनल में:

# अनुशंसित स्टार्टर मॉडल (3B पैरामीटर, तेज़)
ollama pull llama3.2

# अन्य लोकप्रिय मॉडल
ollama pull qwen2.5:7b    # उत्कृष्ट टूल कॉलिंग
ollama pull mistral       # कोड के लिए अच्छा
ollama pull codellama     # कोड जनरेशन
ollama pull gemma2        # Google का कुशल मॉडल

चरण 4: अपने प्रोजेक्ट में जोड़ें

[dependencies]
adk-model = { version = "0.2", features = ["ollama"] }

चरण 5: कोड में उपयोग करें

use adk_model::ollama::{OllamaModel, OllamaConfig};
use adk_agent::LlmAgentBuilder;
use std::sync::Arc;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // No API key needed!
    let model = OllamaModel::new(OllamaConfig::new("llama3.2"))?;

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

    // Use the agent...
    Ok(())
}

पूर्ण कार्यशील उदाहरण

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

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    dotenvy::dotenv().ok();
    
    // No API key needed!
    let model = OllamaModel::new(OllamaConfig::new("llama3.2"))?;

    let agent = LlmAgentBuilder::new("ollama_assistant")
        .description("Ollama-संचालित स्थानीय सहायक")
        .instruction("आप Ollama के माध्यम से स्थानीय रूप से चल रहे एक सहायक सहायक हैं। संक्षिप्त रहें।")
        .model(Arc::new(model))
        .build()?;

    // Run interactive session
    Launcher::new(Arc::new(agent)).run().await?;
    
    Ok(())
}

Cargo.toml

[dependencies]
adk-rust = { version = "0.2", features = ["cli", "ollama"] }
tokio = { version = "1", features = ["full"] }
dotenvy = "0.15"
anyhow = "1.0"

कॉन्फ़िगरेशन विकल्प

use adk_model::ollama::{OllamaModel, OllamaConfig};

let config = OllamaConfig::new("llama3.2")
    .with_base_url("http://localhost:11434")  // कस्टम सर्वर यूआरएल
    .with_temperature(0.7)                     // रचनात्मकता (0.0-1.0)
    .with_max_tokens(2048);                    // अधिकतम प्रतिक्रिया लंबाई

let model = OllamaModel::new(config)?;

अनुशंसित मॉडल

मॉडलआकारआवश्यक RAMइसके लिए सबसे अच्छा
llama3.23B4GBतेज़, सामान्य उद्देश्य
llama3.2:7b7B8GBबेहतर गुणवत्ता
qwen2.5:7b7B8GBसर्वोत्तम टूल कॉलिंग
mistral7B8GBकोड और तर्क
codellama7B8GBकोड जनरेशन
gemma29B10GBसंतुलित प्रदर्शन
llama3.1:70b70B48GBउच्चतम गुणवत्ता

मॉडल चुनना

  • सीमित RAM (8GB)?llama3.2 (3B)
  • टूल कॉलिंग की आवश्यकता है?qwen2.5:7b
  • कोड लिख रहे हैं?codellama या mistral
  • सर्वोत्तम गुणवत्ता?llama3.1:70b (48GB+ RAM की आवश्यकता है)

Ollama के साथ टूल कॉलिंग

Ollama संगत मॉडल के साथ फ़ंक्शन कॉलिंग का समर्थन करता है:

use adk_model::ollama::{OllamaModel, OllamaConfig};
use adk_agent::LlmAgentBuilder;
use adk_tool::FunctionTool;
use std::sync::Arc;

// qwen2.5 has excellent tool calling support
let model = OllamaModel::new(OllamaConfig::new("qwen2.5:7b"))?;

let weather_tool = Arc::new(FunctionTool::new(
    "get_weather",
    "किसी स्थान का मौसम प्राप्त करें",
    |_ctx, args| async move {
        let location = args.get("location").and_then(|v| v.as_str()).unwrap_or("unknown");
        Ok(serde_json::json!({
            "location": location,
            "temperature": "72°F",
            "condition": "Sunny"
        }))
    },
));

let agent = LlmAgentBuilder::new("weather_assistant")
    .instruction("उपयोगकर्ताओं को मौसम जांचने में मदद करें।")
    .model(Arc::new(model))
    .tool(weather_tool)
    .build()?;

ध्यान दें: स्थानीय मॉडल के साथ विश्वसनीयता के लिए टूल कॉलिंग नॉन-स्ट्रीमिंग मोड का उपयोग करता है।


उदाहरण आउटपुट

👤 उपयोगकर्ता: नमस्ते! आप क्या कर सकते हैं?

🤖 Ollama (llama3.2): नमस्ते! मैं आपके मशीन पर चल रहा एक स्थानीय AI सहायक हूँ। मैं इसमें मदद कर सकता हूँ:
- प्रश्नों का उत्तर देना
- पाठ लिखना और संपादित करना
- अवधारणाओं को समझाना
- बुनियादी कोडिंग सहायता

सब कुछ पूरी तरह से निजी - आपके कंप्यूटर से कुछ भी बाहर नहीं जाता!

समस्या निवारण

"कनेक्शन अस्वीकृत"

# सुनिश्चित करें कि Ollama चल रहा है
ollama serve

"मॉडल नहीं मिला"

# पहले मॉडल को पुल करें
ollama pull llama3.2

धीमी प्रतिक्रियाएँ

  • एक छोटा मॉडल उपयोग करें (llama3.2 के बजाय llama3.1:70b)
  • RAM खाली करने के लिए अन्य एप्लिकेशन बंद करें
  • यदि उपलब्ध हो तो GPU त्वरण पर विचार करें

उपलब्ध मॉडल जाँचें

ollama list

उदाहरण चलाना

# official_docs_examples फ़ोल्डर से
cd official_docs_examples/models/providers_test
cargo run --bin ollama_example

संबंधित


पिछला: ← मॉडल प्रदाता | अगला: स्थानीय मॉडल (mistral.rs) →