API Gemini может генерировать текстовый вывод из различных типов ввода, включая текст, изображения, видео и аудио. Вы можете использовать генерацию текста для различных приложений, в том числе:
- Творческое письмо
- Описание или интерпретация медиаактивов
- Завершение текста
- Обобщение текста в свободной форме
- Перевод между языками
- Чат-боты
- Ваши собственные новые варианты использования
В этом руководстве показано, как генерировать текст с помощью generateContent
streamGenerateContent
, а также серверного SDK по вашему выбору. Основное внимание уделяется выводу текста из ввода только текста и ввода текста и изображения. Дополнительные сведения о мультимодальных подсказках с помощью видео- и аудиофайлов см. в разделе «Подсказки с помощью медиафайлов» .
Прежде чем начать: настройте проект и ключ API.
Прежде чем вызывать API Gemini, вам необходимо настроить проект и ключ API.
Получите и защитите свой ключ API
Для вызова API Gemini вам понадобится ключ API. Если у вас его еще нет, создайте ключ в Google AI Studio.
Настоятельно рекомендуется не проверять ключ API в вашей системе контроля версий. Вместо этого вам следует хранить свой ключ API в хранилище секретов (например, Secret Manager ).
Установите пакет SDK и настройте свой ключ API.
Python SDK для Gemini API содержится в пакете google-generativeai
.
Установите зависимость с помощью pip:
pip install -U google-generativeai
Импортируйте пакет и настройте сервис с помощью своего ключа API:
import os import google.generativeai as genai genai.configure(api_key=os.environ['API_KEY'])
Генерировать текст из текстового ввода
Самый простой способ сгенерировать текст с помощью API Gemini — предоставить модели один текстовый ввод, как показано в этом примере:
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.")
print(response.text)
В этом случае подсказка («Напишите историю о волшебном рюкзаке») не содержит примеров вывода, системных инструкций или информации о форматировании. Это беспроигрышный подход. В некоторых случаях использование одноразового или нескольких подсказок может привести к выводу, который в большей степени соответствует ожиданиям пользователя. В некоторых случаях вам также может потребоваться предоставить системные инструкции , которые помогут модели понять задачу или следовать конкретным рекомендациям.
Генерация текста из ввода текста и изображения
Gemini API поддерживает мультимодальные входные данные, которые объединяют текст с медиафайлами. В следующем примере показано, как генерировать текст из ввода текста и изображения:
import PIL.Image
model = genai.GenerativeModel("gemini-1.5-flash")
organ = PIL.Image.open(media / "organ.jpg")
response = model.generate_content(["Tell me about this instrument", organ])
print(response.text)
Как и в случае с текстовыми подсказками, мультимодальные подсказки могут включать в себя различные подходы и усовершенствования. В зависимости от результатов этого примера вы можете добавить шаги в приглашение или сделать инструкции более конкретными. Дополнительные сведения см. в разделе Стратегии запроса файлов .
Создать текстовый поток
По умолчанию модель возвращает ответ после завершения всего процесса генерации текста. Вы можете добиться более быстрого взаимодействия, не дожидаясь получения всего результата, а вместо этого используя потоковую передачу для обработки частичных результатов.
В следующем примере показано, как реализовать потоковую передачу с помощью streamGenerateContent
для создания текста из приглашения для ввода только текста.
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content("Write a story about a magic backpack.", stream=True)
for chunk in response:
print(chunk.text)
print("_" * 80)
Создайте интерактивный чат
Вы можете использовать API Gemini для создания интерактивного чата для ваших пользователей. Использование функции чата API позволяет собирать несколько раундов вопросов и ответов, позволяя пользователям постепенно приближаться к ответам или получать помощь при решении сложных проблем. Эта функция идеально подходит для приложений, требующих постоянного общения, таких как чат-боты, интерактивные репетиторы или помощники по поддержке клиентов.
В следующем примере кода показана базовая реализация чата:
model = genai.GenerativeModel("gemini-1.5-flash")
chat = model.start_chat(
history=[
{"role": "user", "parts": "Hello"},
{"role": "model", "parts": "Great to meet you. What would you like to know?"},
]
)
response = chat.send_message("I have 2 dogs in my house.")
print(response.text)
response = chat.send_message("How many paws are in my house?")
print(response.text)
Настроить генерацию текста
Каждое приглашение, которое вы отправляете модели, включает параметры , управляющие тем, как модель генерирует ответы. Вы можете использовать GenerationConfig
для настройки этих параметров. Если вы не настраиваете параметры, модель использует параметры по умолчанию, которые могут различаться в зависимости от модели.
В следующем примере показано, как настроить несколько доступных параметров.
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(
"Tell me a story about a magic backpack.",
generation_config=genai.types.GenerationConfig(
# Only one candidate for now.
candidate_count=1,
stop_sequences=["x"],
max_output_tokens=20,
temperature=1.0,
),
)
print(response.text)
candidateCount
указывает количество сгенерированных ответов, которые нужно вернуть. В настоящее время для этого значения можно установить только значение 1. Если оно не установлено, по умолчанию оно будет равно 1.
stopSequences
определяет набор последовательностей символов (до 5), которые останавливают генерацию вывода. Если указано, API остановится при первом появлении stop_sequence
. Последовательность остановки не будет включена в ответ.
maxOutputTokens
устанавливает максимальное количество токенов, которые можно включить в кандидата.
temperature
контролирует случайность выходного сигнала. Используйте более высокие значения для более творческих ответов и более низкие значения для более детерминированных ответов. Значения могут варьироваться от [0,0, 2,0].
Вы также можете настроить отдельные вызовы generateContent
:
response = model.generate_content(
'Write a story about a magic backpack.',
generation_config = genai.GenerationConfig(
max_output_tokens=1000,
temperature=0.1,
)
)
Любые значения, установленные для отдельных значений переопределения вызова в конструкторе модели.
Что дальше
В этом руководстве показано, как generateContent
streamGenerateContent
для создания текстовых выходных данных из входных данных, состоящих только из текста или текста и изображения. Чтобы узнать больше о создании текста с помощью Gemini API, посетите следующие ресурсы:
- Запросы с помощью медиафайлов . Gemini API поддерживает запросы с текстовыми, графическими, аудио- и видеоданными, также известные как мультимодальные запросы.
- Системные инструкции . Системные инструкции позволяют вам управлять поведением модели в зависимости от ваших конкретных потребностей и вариантов использования.
- Рекомендации по безопасности . Иногда генеративные модели ИИ дают неожиданные результаты, например, неточные, предвзятые или оскорбительные. Постобработка и человеческая оценка необходимы для ограничения риска вреда от таких результатов.