2025, Dec 09 06:01

Как включить веб‑поиск в Gemini через Python и google.genai

Пошагово показываем, как включить веб‑поиск в моделях Gemini через Python: переход на клиент google.genai, инструмент GoogleSearch и минимальный пример кода.

Как включить веб‑поиск в моделях Gemini через Python SDK

В экосистеме OpenAI подключить веб‑поиск к пайплайну LLM довольно просто, а вот с Gemini легко запутаться, если начинать со старого Python‑пакета. Главное — перейти на новый клиент и явно передать инструмент поиска. Ниже — краткая пошаговая инструкция с рабочими примерами.

С чего обычно начинают разработчики

В OpenAI веб‑поиск включается инструментом в запросе. Минимальный пример:

from openai import OpenAI

oa = OpenAI(api_key="...")
reply = oa.responses.create(
    model="gpt-4o-mini",
    input=[
        {"role": "system", "content": "..."},
        {"role": "user", "content": "..."},
    ],
    tools=[{"type": "web_search_preview"}],
)

Попытка повторить тот же приём в пакете google-generativeai часто упирается в тупик: переключателя tools для поиска там не видно:

from google.generativeai import configure, GenerativeModel

configure(api_key="...")
gm = GenerativeModel("models/gemini-2.0-flash")
res = gm.generate_content(
    "...",
    generation_config={"temperature": 0.1},
    # where to enable web search?
)

Что происходит на самом деле

В Gemini веб‑поиск доступен как инструмент в новом клиенте, а не через generation_config в старом пакете. Возможность появляется, когда вы используете обновлённую библиотеку и указываете инструмент GoogleSearch в конфигурации запроса.

Решение: перейти на новый клиент и добавить инструмент GoogleSearch

Переключитесь на клиент google.genai и добавьте GoogleSearch в GenerateContentConfig. Ниже — минимальный пример с веб‑поиском:

from google.genai import Client
from google.genai.types import GenerateContentConfig, GoogleSearch

gcli = Client(api_key="...")
out = gcli.models.generate_content(
    model="gemini-2.5-pro-preview-06-05",
    contents="...",
    config=GenerateContentConfig(
        temperature=0.1,
        tools=[GoogleSearch],
    ),
)

Почему это важно

Если вам нужен доступ к актуальным данным, выбор пакета определяет, сможет ли модель действительно искать в вебе во время инференса. Правильный клиент и корректно переданный инструмент — это разница между статичным ответом и выводом, основанным на свежих результатах.

Итоги

Если вам нужен веб‑поиск в Gemini на Python, используйте новый клиент и явно передавайте GoogleSearch через конфигурацию запроса. Остальные параметры генерации настраивайте по своему усмотрению; ключевое — параметр tools. Эта небольшая правка сохраняет пайплайн простым и добавляет ответы с поддержкой поиска.