Начните работать с Gemini Pro используя Python за 5 минут
Google Gemini Pro является частью новейшей модели ИИ Google Gemini, которая была объявлена как их наиболее способная и общая модель ИИ на сегодняшний день. Это значительный шаг вперед в разработке ИИ Google, предназначенной для решения широкого круга задач с передовыми показателями по многим ведущим тестам. Gemini Pro, наряду с Gemini Ultra и Gemini Nano, был представлен, чтобы отметить начало того, что Google DeepMind называет эрой Gemini.
Gemini Pro был запущен в январе 2024 года после сотрудничества с Samsung по интеграции Gemini Nano и Gemini Pro в линейку смартфонов Galaxy S24. Фактически, даже их приложение-конкурент ChatGPT, Bard, было переименовано в Gemini в начале февраля. Мы также увидели введение «Gemini Advanced с Ultra 1.0» в AI Premium в сервисе подписки Google One.
Одной из ключевых особенностей Gemini Pro является его API, который позволяет разработчикам быстро разрабатывать и интегрировать в свои приложения функции ИИ. API поддерживает различные языки программирования, включая Python, который мы будем использовать в это статье, чтобы показать вам, как начать использовать большую языковую модель Gemini Pro бесплатно (на апрель 2024 года)!
Основы Gemini
Gemini от Google — это набор моделей ИИ, предназначенных для выполнения широкого спектра задач, включая создание контента и решение проблем с использованием текстовых и графических входных данных. Вот краткий обзор различных моделей Gemini, к которым вы можете легко получить доступ через API:
Цены на API Gemini
На данный момент использование API Gemini Pro является бесплатным, но вскоре будет доступен и платный тариф.
Начало работы с Gemini Pro и Python
Давайте начнем с создания базовых функций LLM с использованием API Gemini Pro и Python. Мы покажем вам, как получить ключ API, а затем использовать соответствующие LLM Gemini в Python.
Получение ключа API от Google AI Studio
Google AI Studio — это бесплатный веб-инструмент, который позволяет быстро разрабатывать запросы и получать ключ API для разработки приложений. Вы можете войти в Google AI Studio с помощью своей учетной записи Google и получить ключ API.
Создайте ключ API в Google AI Studio
Не забудьте сохранить ключ в надежном месте и не публиковать его на публичной платформе, такой как GitHub.
Google Gemini Pro по-прежнему пока недоступен в некоторых странах. Проверьте доступные регионы здесь.
Использование API Gemini Pro с Python для текстовых входных данных
Чтобы начать использовать API Gemini Pro, нам нужно установить пакет google-generativeai из PyPI или GitHub
pip install -q -U google-generativeai
Теперь сохраним ключ API в файл YAML, чтобы загрузить его, и нам не придется размещать ключ в открытом виде в своем коде. В переменной сохраним значение своего ключа API следующим образом:
import yaml
with open('gemini_key.yml', 'r') as file:
api_creds = yaml.safe_load(file)
GOOGLE_API_KEY = api_creds['gemini_key']
Следующим шагом является создание соединения с моделью Gemini Pro через API следующим образом, где сначала вам нужно использовать свой API для установки конфигурации, а затем загрузить модель (или скорее создать соединение с моделью на серверах Google).
import google.generativeai as genai
genai.configure(api_key=GOOGLE_API_KEY)
model = genai.GenerativeModel('gemini-pro')
Теперь мы готовы начать использовать Gemini Pro! Давайте выполним базовую задачу получения данных.
response = model.generate_content("Объясните генеративный искусственный интеллект с помощью 3 пунктов")
to_markdown(response.text)
Результат:
1.**Генерирует новый контент:** В отличие от традиционного искусственного интеллекта, который сосредоточен на распознавании и классификации существующих данных, генеративный ИИ способен создавать совершенно новый контент, такой как текст, изображения, музыку и код.
2.**Обучается на данных:** Генеративные модели ИИ обучаются на огромных объемах данных, что позволяет им изучать закономерности и структуры в этих данных. Затем эти знания используются для генерации нового контента, который выглядит и чувствуется так же, как исходные данные.
3.**Используется для различных приложений:** Генеративный ИИ находит применение в самых разных областях, включая:
- **Создание контента:** генерация изображений, написание статей, сочинение музыки
- **Искусство и дизайн:** создание новых художественных стилей, разработка новых продуктов
- **Исследование и разработка:** генерация гипотез, открытие новых лекарственных средств
- **Образование:** создание персонализированных материалов для обучения, автоматизация оценивания
Функция to_markdown(...)
улучшает внешний вид результата.
Теперь попробуем более практический пример. Представьте, что вы автоматизируете IT-поддержку в нескольких регионах с разными языками. Мы заставим LLM попытаться определить исходный язык клиента, перевести ее на русский, ответить на исходном языке клиента.
it_support_queue = [
"Я не могу получить доступ к своей электронной почте. Она постоянно выдает сообщение об ошибке. Пожалуйста, помогите.",
"Tengo problemas con la VPN. No puedo conectarme a la red de la empresa. ¿Pueden ayudarme, por favor?",
"Mon imprimante ne répond pas et n'imprime plus. J'ai besoin d'aide pour la réparer.",
"Eine wichtige Software stürzt ständig ab und beeinträchtigt meine Arbeit. Können Sie das Problem beheben?",
"我无法访问公司的网站。每次都显示错误信息。请帮忙解决。"
]
it_support_queue_msgs = f"""
"""
for i, msg in enumerate(it_support_queue):
it_support_queue_msgs += "\nMessage " + str(i+1) + ": " + msg
prompt = f"""
Выступай в роли агента службы поддержки клиентов. Не забывай запрашивать необходимую информацию по вопросу клиента, чтобы решить проблему.
Не отказывай в помощи, не попросив соответствующей информации. Для каждого сообщения службы поддержки, указанного ниже
в тройных значках, создайте ответ в виде таблицы со следующими столбцами:
orig_msg: Оригинальное сообщение клиента
orig_lang: Обнаруженный язык сообщения клиента, например, испанский
trans_msg: Перевод сообщения клиента на русский язык
response: Ответ клиенту на языке orig_lang
trans_response: Ответ клиенту на русском языке
Messages:
'''{it_support_queue_msgs}'''
"""
Теперь, когда у нас есть запрос, готовый к передаче в LLM, давайте выполним его!
response = model.generate_content(prompt)
to_markdown(response.text)
Ответ на наш запрос от Gemini Pro LLM
orig_msg | orig_lang | trans_msg | response | trans_response |
---|---|---|---|---|
Я не могу получить доступ к своей электронной почте. Она постоянно выдает сообщение об ошибке. Пожалуйста, помогите. | Русский | Я не могу получить доступ к своей электронной почте. Она постоянно выдает сообщение об ошибке. Пожалуйста, помогите. | Возможно, ваша учетная запись была взломана. Укажите, пожалуйста, ваш адрес электронной почты, чтобы мы могли разобраться в этом вопросе. | Возможно, ваша учетная запись была взломана. Укажите, пожалуйста, ваш адрес электронной почты, чтобы мы могли разобраться в этом вопросе. |
Tengo problemas con la VPN. No puedo conectarme a la red de la empresa. ¿Pueden ayudarme, por favor? | Испанский | У меня проблемы с VPN. Я не могу подключиться к сети компании. Вы можете мне помочь, пожалуйста? | Si nos proporciona el modelo y el número de serie del dispositivo que usa para conectarse al VPN, podremos detectar el problema y corregirlo. | Если вы сообщите нам марку и номер модели устройства, которое вы используете для подключения к VPN, мы сможем устранить неполадку и решить проблему. |
Mon imprimante ne répond pas et n'imprime plus. J'ai besoin d'aide pour la réparer. | Французский | Мой принтер не отвечает на запросы и перестал печатать. Мне нужна помощь, чтобы это исправить . | Voudriez-vous nous fournir la marque et le modèle de l'imprimante pour que nous puissions vous aider à déterminer la cause du problème ? | Не могли бы вы сообщить нам марку и модель вашего принтера, чтобы мы могли помочь вам определить причину проблемы? |
Eine wichtige Software stürzt ständig ab und beeinträchtigt meine Arbeit. Können Sie das Problem beheben? | Немецкий | Важное программное обеспечение продолжает сбоить, и это влияет на мою работу. Вы можете это исправить? | Gerne! Um Ihnen zu helfen, benötigen wir den Namen der Software und Version. Möglicherweise können wir außerdem Unterstützung anbieten, wenn Sie uns mitteilen, wann das Problem auftritt. | Мы будем рады помочь! Для этого нам понадобится название и версия программного обеспечения. Мы также сможем помочь, если вы сообщите нам, когда возникла проблема. |
我无法访问公司的网站,每次都会出现错误提示。请帮助解决。 | Китайский | Я не могу получить доступ к веб-сайту компании. Он каждый раз выдает ошибку. Пожалуйста, помогите решить эту проблему. | 好的,为了帮助您解决问题,请发送错误信息的截图,以及您尝试访问网站时使用的设备和浏览器的信息。 | Хорошо, чтобы помочь вам решить эту проблему, пожалуйста, пришлите нам скриншот сообщения об ошибке, а также информацию об устройстве и браузере, которые вы используете при попытке зайти на сайт. |
Отлично! С более подробной информацией или системой RAG ответы могут быть еще более релевантными и полезными.
Использование Gemini Pro Vision API с Python для текстовых и графических входных данных
Google выпустил мультимодальный LLM Gemini Pro Vision, который может принимать в качестве входных данных текст и изображения и возвращать текст в качестве выходных данных. Помните, что это все еще LLM, который выводит только текст. Давайте использовать его с простым вариантом использования для понимания изображения и создания на его основе короткой истории!
Сначала мы загружаем изображение.
import PIL.Image
img = PIL.Image.open('cat_pc.jpg')
img
После этого мы загружаем модель Gemini Pro Vision и отправляем ей следующий запрос, чтобы получить ответ.
model = genai.GenerativeModel('gemini-pro-vision')
prompt = """
Сначала опиши заданную картинку, основываясь на том, что вы видишь.
Затем напиши короткий рассказ, основанный на твоем понимании изображения.
Описание и рассказ должны быть представлены в виде двух отдельных пунктов с соответствующими заголовками
"""
response = model.generate_content(contents=[prompt, img])
to_markdown(response.text)
Ответ на наш запрос от Gemini Pro Vision LLM
Описание:
На картинке изображен рыжий кот, сидящий на компьютерном столе. Кот положил лапу на экран компьютера и пристально смотрит на него. На столе лежат клавиатура и мышь, а перед котом стоит монитор.
Короткий рассказ:
Коту было скучно. Он уже несколько часов сидел на компьютерном столе и наблюдал, как его хозяин играет в видеоигры. Он видел всё это раньше и начинал уставать. Ему хотелось чем-нибудь заняться, но он не знал чем.
Внезапно ему пришла в голову идея. Он попробует сам поиграть в видеоигру! Он протянул лапу и положил ее на клавиатуру. Хозяин посмотрел на него и засмеялся.
"Что ты делаешь, Миттенс?" - спросил он. "Ты же не умеешь играть в видеоигры."
Но Миттенс был полон решимости. Он начал нажимать на клавиши клавиатуры, и хозяин был поражен. Миттенс действительно играл в игру!
Хозяин наблюдал, как Миттенс играет в игру. Он был удивлен, насколько хорошо у него получается. Миттенсу удалось пройти первый уровень игры, и он даже смог добраться до второго уровня.
Хозяин был настолько впечатлен, что решил позволить Миттенсу играть в игру весь оставшийся день. Миттенс получил массу удовольствия и даже прошел игру!
Хозяин был так счастлив, что позволил Миттенсу поиграть. Он понял, что, хотя Миттенс и кот, он все равно может получать удовольствие от видеоигр.
В целом неплохо!
Вы также можете использовать Gemini Pro для создания интерактивных чат-ботов. Это будет выглядеть как отправка сообщений в API и получение ответов, поддерживающих многоходовые разговоры. Ознакомиться с подробной документацией по API для получения примеров.
В заключение, независимо от того, являетесь ли вы опытным разработчиком или только начинаете, Gemini Pro от Google и Python предоставляют довольно простой и мощный способ добавить передовые ИИ технологии в ваши приложения и проекты. Более того, на данный момент API Gemini Pro бесплатный — это приглашение, чтобы изучить возможности LLM без первоначальных вложений. Хотя ожидается будущие изменения цен, возможность начать создавать с таким мощным инструментом бесплатно — это настоящая находка!
Теперь вы получили представление о том, как получить ключ API через Google AI Studio, чтобы использовать API Gemini Pro в Python.