Близнецы 2.0 (экспериментальный)

Gemini 2.0 Flash теперь доступен в виде экспериментальной предварительной версии через Gemini Developer API и Google AI Studio. Модель представляет новые функции и расширенные основные возможности:

  • Мультимодальный Live API: этот новый API помогает создавать приложения для визуализации в реальном времени и потокового аудио с помощью инструментов.
  • Скорость и производительность: Gemini 2.0 имеет значительно улучшенное время появления первого токена (TTFT) по сравнению с 1,5 Flash.
  • Качество: Модель сохраняет качество, сравнимое с более крупными моделями, такими как Gemini 1.5 Pro.
  • Улучшенные агентские возможности: Gemini 2.0 обеспечивает улучшения мультимодального понимания, кодирования, выполнения сложных инструкций и вызова функций. Эти улучшения работают вместе, чтобы улучшить работу агентов.
  • Новые возможности: Gemini 2.0 представляет встроенную генерацию изображений и управляемые возможности преобразования текста в речь, что позволяет редактировать изображения, создавать локализованные изображения и выразительное повествование.

Для поддержки новой модели мы также поставляем новый SDK .

Технические подробности о Gemini 2.0 см. в разделе Модели Gemini .

Google Gen AI SDK (экспериментальный)

Новый Google Gen AI SDK обеспечивает унифицированный интерфейс для Gemini 2.0 через Gemini Developer API и Gemini API для Vertex AI. За некоторыми исключениями, код, работающий на одной платформе, будет работать и на обеих. Это означает, что вы можете создать прототип приложения с помощью API разработчика, а затем перенести его на Vertex AI, не переписывая код.

Gen AI SDK также поддерживает модели Gemini 1.5.

Новый SDK доступен на Python и Go, а в ближайшее время появятся Java и JavaScript.

Вы можете начать использовать SDK, как показано ниже.

  1. Установите новый SDK: pip install google-genai
  2. Затем импортируйте библиотеку, инициализируйте клиент и сгенерируйте контент:
from google import genai

client = genai.Client(
    vertexai=False,
    api_key="YOUR_API_KEY"
)
response = client.models.generate_content(
    model='gemini-2.0-flash-experimental', contents='How does AI work?'
)
print(response.text)

(Необязательно) Установите переменные среды

Альтернативно вы можете инициализировать клиент, используя переменные среды. Сначала установите соответствующие значения и экспортируйте переменные:

# Replace `YOUR_API_KEY` with your API key.
export GOOGLE_API_KEY=YOUR_API_KEY
export GOOGLE_GENAI_USE_VERTEXAI=False

Затем вы можете инициализировать клиент без каких-либо аргументов:

client = genai.Client()

Разработчики Python также могут опробовать записную книжку «Начало работы» в Cookbook .

Мультимодальный Live API

Мультимодальный Live API обеспечивает двунаправленное голосовое и видео взаимодействие с Gemini с малой задержкой. Используя Multimodal Live API, вы можете предоставить конечным пользователям возможность естественного, человеческого голосового общения, а также возможность прерывать ответы модели с помощью голосовых команд. Модель может обрабатывать ввод текста, аудио и видео, а также обеспечивать вывод текста и звука.

Мультимодальный Live API доступен в Gemini API как метод BidiGenerateContent и построен на основе WebSockets .

Вот простой пример преобразования текста в текст, который поможет вам начать работу с Multimodal Live API:

MODEL = "models/gemini-2.0-flash-exp"
CONFIG = {"generation_config": {"response_modalities": ["TEXT"]}}

async with client.aio.live.connect(model=MODEL, config=CONFIG) as session:
  message = "Hello? Gemini, are you there?"
  print("> ", message, "\n")
  await session.send(message, end_of_turn=True)

  # For text responses, when the model's turn is complete it breaks out of the loop.
  async for response in session.receive():
    print("- ", response.text)

Ключевые возможности:

  • Мультимодальность: модель может видеть, слышать и говорить.
  • Взаимодействие в реальном времени с малой задержкой: обеспечивает быструю реакцию.
  • Память сеанса: модель сохраняет память обо всех взаимодействиях в течение одного сеанса, вспоминая ранее услышанную или увиденную информацию.
  • Поддержка вызова функций, выполнения кода и поиска как инструмента: обеспечивает интеграцию с внешними службами и источниками данных.
  • Автоматическое обнаружение голосовой активности (VAD): модель может точно распознавать, когда пользователь начинает и заканчивает говорить. Это обеспечивает естественное диалоговое взаимодействие и дает пользователям возможность прервать работу модели в любой момент.

Язык:

  • только английский

Ограничения:

  • Как аудиовходы, так и аудиовыходы отрицательно влияют на способность модели использовать вызов функций.

Дополнительные сведения о возможностях и ограничениях API см. в справочном руководстве по Multimodal Live API .

Вы можете попробовать Multimodal Live API в Google AI Studio . Чтобы начать разработку, вы можете попробовать веб-консоль (написанную на React). Для разработчиков Python попробуйте стартовый код ( блокнот и файл .py ). Возможно, вам проще всего начать работу с блокнотом, но живой API лучше всего работает при запуске с вашего терминала.

Поиск как инструмент

Используя заземление с помощью Google Поиска, вы можете повысить точность и актуальность ответов модели. Начиная с Gemini 2.0, поиск Google доступен в качестве инструмента. Это означает, что модель может решить, когда использовать поиск Google. В следующем примере показано, как настроить поиск в качестве инструмента.

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

client = genai.Client()
model_id = "gemini-2.0-flash-exp"

google_search_tool = Tool(
    google_search = GoogleSearch()
)

response = client.models.generate_content(
    model=model_id,
    contents="When is the next total solar eclipse in the United States?",
    config=GenerateContentConfig(
        tools=[google_search_tool],
        response_modalities=["TEXT"],
    )
)

for each in response.candidates[0].content.parts:
    print(each.text)
# Example response:
# The next total solar eclipse visible in the contiguous United States will be on ...

# To get grounding metadata as web content.
print(response.candidates[0].grounding_metadata.search_entry_point.rendered_content)

Функциональность «Поиск как инструмент» также позволяет осуществлять многоэтапный поиск и запросы с использованием нескольких инструментов (например, сочетание заземления с поиском Google и выполнением кода).

Поиск как инструмент обеспечивает сложные подсказки и рабочие процессы, требующие планирования, рассуждений и размышлений:

  • Обоснование для повышения фактичности и актуальности и предоставления более точных ответов.
  • Получение артефактов из Интернета для дальнейшего анализа.
  • Поиск подходящих изображений, видео или других медиафайлов для помощи в мультимодальных рассуждениях или задачах генерации.
  • Кодирование, устранение технических неполадок и другие специализированные задачи.
  • Поиск информации для конкретного региона или помощь в точном переводе контента
  • Поиск подходящих веб-сайтов для дальнейшего просмотра

Вы можете начать с использования блокнота «Инструмент поиска» .

Улучшенные инструменты

Gemini 2.0 представляет улучшения в вызове функций и инструменты, которые обеспечивают лучшую поддержку агентного взаимодействия.

Вызов композиционной функции

Gemini 2.0 поддерживает новую возможность вызова функций: вызов композиционных функций . Вызов композиционных функций позволяет API Gemini автоматически вызывать несколько определяемых пользователем функций в процессе генерации ответа. Например, чтобы ответить на запрос "Get the temperature in my current location" , API Gemini может вызвать как функцию get_current_location() , так и функцию get_weather() которая принимает местоположение в качестве параметра.

Вызов композиционной функции с выполнением кода требует двунаправленной потоковой передачи и поддерживается только новым Multimodal Live API. Вот пример, показывающий, как вы можете использовать вызов композиционных функций, выполнение кода и Multimodal Live API вместе:

turn_on_the_lights_schema = {'name': 'turn_on_the_lights'}
turn_off_the_lights_schema = {'name': 'turn_off_the_lights'}

prompt = """
  Hey, can you write run some python code to turn on the lights, wait 10s and then turn off the lights?
  """

tools = [
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Разработчики Python могут попробовать это в блокноте Live API Tool Use .

Использование нескольких инструментов

В Gemini 2.0 вы можете одновременно включить несколько инструментов, и модель сама решит, когда их вызывать. Вот пример, который включает два инструмента: заземление с помощью поиска Google и выполнение кода в запросе с использованием Multimodal Live API.

prompt = """
  Hey, I need you to do three things for me.

  1. Turn on the lights.
  2. Then compute the largest prime palindrome under 100000.
  3. Then use Google Search to look up information about the largest earthquake in California the week of Dec 5 2024.

  Thanks!
  """

tools = [
    {'google_search': {}},
    {'code_execution': {}},
    {'function_declarations': [turn_on_the_lights_schema, turn_off_the_lights_schema]}
]

await run(prompt, tools=tools, modality="AUDIO")

Разработчики Python могут попробовать это в блокноте Live API Tool Use .

Обнаружение ограничивающей рамки

В этом экспериментальном выпуске мы предоставляем разработчикам мощный инструмент для обнаружения и локализации объектов на изображениях и видео. Точно идентифицируя и очерчивая объекты с помощью ограничивающих рамок, разработчики могут разблокировать широкий спектр приложений и повысить интеллектуальность своих проектов.

Ключевые преимущества:

  • Просто: легко интегрируйте возможности обнаружения объектов в свои приложения, независимо от вашего опыта в области компьютерного зрения.
  • Настраиваемость: создавайте ограничивающие рамки на основе пользовательских инструкций (например, «Я хочу видеть ограничивающие рамки всех зеленых объектов на этом изображении») без необходимости обучения пользовательской модели.

Технические детали:

  • Входные данные: ваше приглашение и связанные с ним изображения или видеокадры.
  • Вывод: ограничивающие рамки в формате [y_min, x_min, y_max, x_max] . Верхний левый угол — это начало координат. Ось x и y проходят горизонтально и вертикально соответственно. Значения координат нормализуются до 0–1000 для каждого изображения.
  • Визуализация: пользователи AI Studio увидят ограничивающие рамки, нанесенные в пользовательском интерфейсе. Пользователи Vertex AI должны визуализировать свои ограничивающие рамки с помощью специального кода визуализации.

Разработчики Python могут попробовать блокнот для 2D-пространства или экспериментальный блокнот для 3D-указания .

Генерация речи (ранний доступ/белый список)

Gemini 2.0 поддерживает новую возможность мультимодальной генерации: преобразование текста в речь. Используя функцию преобразования текста в речь, вы можете предложить модели генерировать высококачественный аудиовыход, который звучит как человеческий голос ( say "hi everyone" ), а также дополнительно уточнить вывод, управляя голосом.

Создание изображений (ранний доступ/белый список)

Gemini 2.0 поддерживает возможность вывода текста с встроенными изображениями. Это позволяет вам использовать Gemini для редактирования изображений в диалоговом режиме или создания мультимодальных результатов (например, сообщения в блоге с текстом и изображениями за один раз). Раньше для этого требовалось объединить несколько моделей.

Генерация изображений доступна в виде частной экспериментальной версии. Он поддерживает следующие модальности и возможности:

  • Текст в изображение
    • Пример запроса: «Создать изображение Эйфелевой башни с фейерверком на заднем плане».
  • Текст в изображение(я) и текст (чередующийся)
    • Пример приглашения: «Создать иллюстрированный рецепт паэльи».
  • Изображения и текст в изображения и текст (чередующиеся)
    • Пример подсказки: (с изображением меблированной комнаты) «Дива каких еще цветов подойдут в моем пространстве? Можете ли вы обновить изображение?»
  • Редактирование изображений (текст и изображение в изображение)
    • Пример подсказки: «Отредактируйте это изображение, чтобы оно выглядело как мультфильм».
    • Пример подсказки: [изображение кота] + [изображение подушки] + «Вышейте крестиком моего кота на этой подушке».
  • Многооборотное редактирование изображений (чат)
    • Пример подсказки: [загрузите изображение синей машины.] «Превратите эту машину в кабриолет». «Теперь измените цвет на желтый».
  • Водяные знаки (synthID)

Ограничения:

  • Генерация людей и редактирование загруженных изображений людей запрещены.
  • Генерация изображений поддерживается только на следующих языках: EN, es-MX, ja-JP, zh-CN, hi-IN.
  • Генерация изображений не поддерживает аудио- и видеовходы.
  • Генерация изображения не всегда может срабатывать:
    • Модель может выводить только текст. Попробуйте явно запросить выходные данные изображения (например, «создать изображение», «предоставить изображения по мере продвижения», «обновить изображение»).
    • Модель может перестать генерировать на полпути. Попробуйте еще раз или попробуйте другое приглашение.