ओलामा (स्थानीय मॉडल)
पूर्ण गोपनीयता के साथ स्थानीय रूप से 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.2 | 3B | 4GB | तेज़, सामान्य उद्देश्य |
llama3.2:7b | 7B | 8GB | बेहतर गुणवत्ता |
qwen2.5:7b | 7B | 8GB | सर्वोत्तम टूल कॉलिंग |
mistral | 7B | 8GB | कोड और तर्क |
codellama | 7B | 8GB | कोड जनरेशन |
gemma2 | 9B | 10GB | संतुलित प्रदर्शन |
llama3.1:70b | 70B | 48GB | उच्चतम गुणवत्ता |
मॉडल चुनना
- सीमित 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
संबंधित
- मॉडल प्रदाता - क्लाउड-आधारित LLM प्रदाता
- स्थानीय मॉडल (mistral.rs) - नेटिव Rust इन्फेरेंस
पिछला: ← मॉडल प्रदाता | अगला: स्थानीय मॉडल (mistral.rs) →