Ollama предоставила бесплатный API для веб-поиска

Ollama официально запустила встроенную поддержку веб-поиска через REST API. Это не просто внешний плагин — это часть экосистемы: API интегрирован в Python и JavaScript SDK, а также доступен через MCP (Model Control Protocol) сервер. Цель — снизить галлюцинации и дать моделям доступ к свежим данным без ручного RAG-пайплайна.

Факты по делу:

Важный нюанс: в документации нет информации о rate limits. Неясно, сколько запросов в минуту/день разрешено, особенно для self-hosted или cloud-версий. Пока предполагаем, что лимиты мягкие — но это нужно тестировать. Как сказано в официальном блог-посте:

Ollama provides a generous free tier of web searches for individuals to use, and higher rate limits are available via Ollama’s cloud.

Если что, стоимость Ollama Cloud – 20$ в месяц, и пока что сервис находится в preview.

Вот как выглядит простой поиск:

curl https://ollama.com/api/web_search \
  --header "Authorization: Bearer $OLLAMA_API_KEY" \
  -d '{
    "query": "what is ollama?"
  }'

А вот так выглядит полноценный агент, который ходит в интернет:

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]+'...')
        # Result is truncated for limited context lengths
        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:
    break

Блог-пост | Документация

Русскоязычное сообщество про AI в разработке

Друзья! Эту новость подготовила команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-ассистентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!

@python_leader
26.09.2025 12:47 UTC
Первоисточник

Комментарии

@
26.09.2025 11:29 UTC
0
НЛО прилетело и опубликовало эту надпись здесь
@WinPooh32
27.09.2025 05:02 UTC
0

Есть неплохая локальная альтернатива - searxng (API)

@Incognito4pda
29.09.2025 06:58 UTC
0

Подскажите плиз, может кто знает как оплатить Ollama cloud из РФ? Вот не сталкивался до сих с оплатой зарубежных сервисов. Даже не знаю с чего и начать, поиск выдаёт кучу контор, но какие из них нормально работают, не понятно.