Ollama'nın web arama API'si, halüsinasyonları azaltmak ve doğruluğu artırmak için modelleri en son bilgilerle zenginleştirmek amacıyla kullanılabilir.
Web arama, Python ve JavaScript kütüphanelerinde daha derin araç entegrasyonlarıyla bir REST API olarak sunulur. Bu, OpenAI'ın gpt-oss modelleri gibi modellerin uzun süreli araştırma görevleri gerçekleştirmesini de sağlar.
Kimlik Doğrulama
Ollama'nın web arama API'sine erişim için bir API anahtarı oluşturun. Ücretsiz bir Ollama hesabı gereklidir.
Web arama API'si
Tek bir sorgu için web araması yapar ve ilgili sonuçları döndürür.
İstek
POST https://ollama.com/api/web_search
query(dize, zorunlu): arama sorgu dizesimax_results(tam sayı, isteğe bağlı): döndürülecek maksimum sonuç sayısı (varsayılan 5, en fazla 10)
Yanıt
Aşağıdaki alanları içeren bir nesne döndürür:
results(dizi): arama sonucu nesnelerinin dizisi, her biri şunları içerir:title(dize): web sayfasının başlığıurl(dize): web sayfasının URL'sicontent(dize): web sayfasından alınan ilgili içerik parçacığı
Örnekler
Not
OLLAMA_API_KEY değişkeninin ayarlanmış olduğundan emin olun veya Authorization üstbilgisinde iletilmesi gerekir.
cURL İsteği
bash
curl https://ollama.com/api/web_search \
--header "Authorization: Bearer $OLLAMA_API_KEY" \
-d '{
"query":"what is ollama?"
}'Yanıt
json
{
"results": [
{
"title": "Ollama",
"url": "https://ollama.com/",
"content": "Cloud models are now available..."
},
{
"title": "What is Ollama? Introduction to the AI model management tool",
"url": "https://www.hostinger.com/tutorials/what-is-ollama",
"content": "Ariffud M. 6min Read..."
},
{
"title": "Ollama Explained: Transforming AI Accessibility and Language ...",
"url": "https://www.geeksforgeeks.org/artificial-intelligence/ollama-explained-transforming-ai-accessibility-and-language-processing/",
"content": "Data Science Data Science Projects Data Analysis..."
}
]
}Python kütüphanesi
python
response = ollama.web_search("What is Ollama?")
print(response)Örnek çıktı
python
results = [
{
"title": "Ollama",
"url": "https://ollama.com/",
"content": "Cloud models are now available in Ollama..."
},
{
"title": "What is Ollama? Features, Pricing, and Use Cases - Walturn",
"url": "https://www.walturn.com/insights/what-is-ollama-features-pricing-and-use-cases",
"content": "Our services..."
},
{
"title": "Complete Ollama Guide: Installation, Usage & Code Examples",
"url": "https://collabnix.com/complete-ollama-guide-installation-usage-code-examples",
"content": "Join our Discord Server..."
}
]Daha fazla Ollama Python örneği
JavaScript kütüphanesi
tsx
const client = new Ollama();
const results = await client.webSearch("what is ollama?");
console.log(JSON.stringify(results, null, 2));Örnek çıktı
json
{
"results": [
{
"title": "Ollama",
"url": "https://ollama.com/",
"content": "Cloud models are now available..."
},
{
"title": "What is Ollama? Introduction to the AI model management tool",
"url": "https://www.hostinger.com/tutorials/what-is-ollama",
"content": "Ollama is an open-source tool..."
},
{
"title": "Ollama Explained: Transforming AI Accessibility and Language Processing",
"url": "https://www.geeksforgeeks.org/artificial-intelligence/ollama-explained-transforming-ai-accessibility-and-language-processing/",
"content": "Ollama is a groundbreaking..."
}
]
}Daha fazla Ollama JavaScript örneği
Web getirme API'si
Tek bir web sayfasını URL'sine göre getirir ve içeriğini döndürür.
İstek
POST https://ollama.com/api/web_fetch
url(dize, zorunlu): getirilecek URL
Yanıt
Aşağıdaki alanları içeren bir nesne döndürür:
title(dize): web sayfasının başlığıcontent(dize): web sayfasının ana içeriğilinks(dizi): sayfada bulunan bağlantıların dizisi
Örnekler
cURL İsteği
python
curl --request POST \
--url https://ollama.com/api/web_fetch \
--header "Authorization: Bearer $OLLAMA_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"url": "ollama.com"
}'Yanıt
json
{
"title": "Ollama",
"content": "[Cloud models](https://ollama.com/blog/cloud-models) are now available in Ollama...",
"links": [
"http://ollama.com/",
"http://ollama.com/models",
"https://github.com/ollama/ollama"
]Python SDK'sı
python
from ollama import web_fetch
result = web_fetch('https://ollama.com')
print(result)Sonuç
python
WebFetchResponse(
title='Ollama',
content='[Cloud models](https://ollama.com/blog/cloud-models) are now available in Ollama\n\n**Chat & build
with open models**\n\n[Download](https://ollama.com/download) [Explore
models](https://ollama.com/models)\n\nAvailable for macOS, Windows, and Linux',
links=['https://ollama.com/', 'https://ollama.com/models', 'https://github.com/ollama/ollama']
)JavaScript SDK'sı
tsx
const client = new Ollama();
const fetchResult = await client.webFetch("https://ollama.com");
console.log(JSON.stringify(fetchResult, null, 2));Sonuç
json
{
"title": "Ollama",
"content": "[Cloud models](https://ollama.com/blog/cloud-models) are now available in Ollama...",
"links": [
"https://ollama.com/",
"https://ollama.com/models",
"https://github.com/ollama/ollama"
]
}Arama ajanı oluşturma
Ollama'nın web arama API'sini bir araç olarak kullanarak mini bir arama ajanı oluşturun.
Bu örnek, 4B parametreli Alibaba'nın Qwen 3 modelini kullanır.
bash
ollama pull qwen3:4bpython
from ollama import chat, web_fetch, web_search
available_tools = {'web_search': web_search, 'web_fetch': web_fetch}
messages = [{'role': 'user', 'content': "what is ollama's new engine"}]
while True:
response = chat(
model='qwen3:4b',
messages=messages,
tools=[web_search, web_fetch],
think=True
)
if response.message.thinking:
print('Thinking: ', response.message.thinking)
if response.message.content:
print('Content: ', response.message.content)
messages.append(response.message)
if response.message.tool_calls:
print('Tool calls: ', response.message.tool_calls)
for tool_call in response.message.tool_calls:
function_to_call = available_tools.get(tool_call.function.name)
if function_to_call:
args = tool_call.function.arguments
result = function_to_call(**args)
print('Result: ', str(result)[:200]+'...')
# Sonuç, sınırlı bağlam uzunlukları için kısaltılmıştır
messages.append({'role': 'tool', 'content': str(result)[:2000 * 4], 'tool_name': tool_call.function.name})
else:
messages.append({'role': 'tool', 'content': f'Tool {tool_call.function.name} not found', 'tool_name': tool_call.function.name})
else:
breakSonuç
Thinking: Tamam, kullanıcı Ollama'nın yeni motoru hakkında soruyor. Ne kastettiğini anlamam gerekiyor. Ollama büyük dil modelleri geliştiren bir şirket, belki mevcut motorunun güncellenmiş bir sürümünü veya yeni bir model yayınlamışlar....
Tool calls: [ToolCall(function=Function(name='web_search', arguments={'max_results': 3, 'query': 'Ollama new engine'}))]
Result: results=[WebSearchResult(content='# New model scheduling\n\n## September 23, 2025\n\nOllama now includes a significantly improved model scheduling system. Ahead of running a model, Ollama’s new engine
Thinking: Tamam, kullanıcı Ollama'nın yeni motoru hakkında sordu. Arama sonuçlarına bakayım.
İlk sonuç 23 Eylül 2025 tarihli, yeni model zamanlamasından bahsediyor. Geliştirilmiş bellek yönetimi, azaltılmış çökmeler, daha iyi GPU kullanımı ve çoklu GPU performansından bahsediyor. Örnekler hız iyileştirmeleri ve doğru bellek raporlaması gösteriyor. Desteklenen modeller arasında gemma3, llama4, qwen3 vb. var...
Content: Ollama, motoruna 2025 yılında yayınlanan iki temel güncelleme yaptı:
1. **Geliştirilmiş Model Zamanlaması (23 Eylül 2025)**
- **Hassas Bellek Yönetimi**: Kesin bellek tahsisi, belleğin yetersizliğinden kaynaklanan çökmeleri azaltır ve GPU kullanımını optimize eder.
- **Performans Kazançları**: Örnekler önemli hız iyileştirmeleri (örneğin 85,54 token/sn karşı 52,02 token/sn) ve tam GPU katmanı kullanımı gösteriyor.
- **Çoklu GPU Desteği**: Birden fazla GPU'da geliştirilmiş verimlilik, `nvidia-smi` gibi araçlarla doğru bellek raporlaması ile birlikte.
- **Desteklenen Modeller**: `gemma3`, `llama4`, `qwen3`, `mistral-small3.2` ve daha fazlasını içerir.
2. **Çoklu Ortam Motoru (15 Mayıs 2025)**
- **Görü Desteği**: `llama4:scout` (109B parametre), `gemma3`, `qwen2.5vl` ve `mistral-small3.1` gibi görü modelleri için birinci sınıf destek.
- **Çoklu Ortam Görevleri**: Birden fazla görüntüdeki hayvanları tanımlama, videolardan konum temelli soruları yanıtlama ve belge taraması gibi örnekler.
Bu güncellemeler, Ollama'nın hem metin hem de görü görevleri için verimlilik, performans ve genişletilmiş yeteneklere odaklanmasını vurguluyor.Bağlam uzunluğu ve ajanlar
Web arama sonuçları binlerce token döndürebilir. Modelin bağlam uzunluğunu en az ~32000 token'a çıkarmanız önerilir. Arama ajanları tam bağlam uzunluğu ile en iyi çalışır. Ollama'nın bulut modelleri tam bağlam uzunluğunda çalışır.
MCP Sunucusu
Web aramayı Python MCP sunucusu aracılığıyla herhangi bir MCP istemcisinde etkinleştirebilirsiniz.
Cline
Ollama'nın web araması, MCP sunucusu yapılandırmasını kullanarak Cline ile kolayca entegre edilebilir.
MCP Sunucularını Yönet > MCP Sunucularını Yapılandır > Aşağıdaki yapılandırmayı ekleyin:
json
{
"mcpServers": {
"web_search_and_fetch": {
"type": "stdio",
"command": "uv",
"args": ["run", "path/to/web-search-mcp.py"],
"env": { "OLLAMA_API_KEY": "your_api_key_here" }
}
}
}
Codex
Ollama, OpenAI'ın Codex aracıyla iyi bir şekilde çalışır.
Aşağıdaki yapılandırmayı ~/.codex/config.toml dosyasına ekleyin
python
[mcp_servers.web_search]
command = "uv"
args = ["run", "path/to/web-search-mcp.py"]
env = { "OLLAMA_API_KEY" = "your_api_key_here" }
Goose
Ollama, MCP özelliği aracılığıyla Goose ile entegre edilebilir.


Diğer entegrasyonlar
Ollama, doğrudan Ollama API'si, Python / JavaScript kütüphaneleri, OpenAI uyumlu API ve MCP sunucusu entegrasyonu yoluyla mevcut çoğu araca entegre edilebilir.