Гайд · TNWS AI
Как продолжить диалог в Gemini API через previous_interaction_id
Серверное состояние Gemini Interactions API: создание первого хода, previous_interaction_id, ветвление диалога и защита от смешивания пользователей.
Сохраните interaction.id первого хода и передайте его как previous_interaction_id во втором. API восстановит предыдущий контекст и thought signatures. В базе приложения связывайте ID с конкретным пользователем и беседой: чужой идентификатор нельзя принимать напрямую из формы без проверки владельца.
Рабочий пример
const first = await ai.interactions.create({
model: "gemini-3.8-flash",
input: "Запомни правило: отвечай как редактор и давай один вариант."
});
const second = await ai.interactions.create({
model: "gemini-3.8-flash",
input: "Сократи: Мы осуществляем доставку воды клиентам.",
previous_interaction_id: first.id
});
console.log(second.output_text);
## Что означает каждая важная часть
- Идентификатор предыдущего interaction формирует цепочку, а не глобальную память аккаунта.
- Для нового ответвления можно создать несколько ходов с одним предком; сохраняйте собственную структуру веток.
- По умолчанию запросы сохраняются. Если нужен `store:false`, историю и необходимые thought signatures придётся вести по правилам stateless-режима.
- ID является ссылкой на серверное состояние, но не заменяет вашу авторизацию и разграничение доступа.
## Порядок внедрения
1. Создайте таблицу conversations с владельцем и `last_interaction_id`.
2. Перед продолжением проверьте, что беседа принадлежит текущему авторизованному пользователю.
3. После успешного ответа атомарно замените последний ID новым; при параллельных сообщениях используйте версию записи или очередь.
4. Для кнопки «повторить» создавайте новую ветку от нужного ID, не перезаписывая исходную историю.
## Как проверить результат
Первым ходом задайте уникальное контрольное слово, вторым попросите повторить его. Новый диалог без `previous_interaction_id` не должен знать слово. Затем одновременно отправьте два продолжения и убедитесь, что интерфейс отображает две ветки, а не случайно смешивает порядок.
## Ограничения
Серверное состояние зависит от политики хранения Gemini API и доступности ресурса. Не используйте ID как единственную копию ценных пользовательских данных. При удалении беседы очистите локальные ссылки и выполните предусмотренные API действия, если они доступны.
## Чего не делать
- Не доверяйте `previous_interaction_id`, присланному клиентом, без проверки владельца.
- Не обновляйте последний ID гоняющимися параллельными запросами.
- Не называйте цепочку вечной памятью.
Частые вопросы
Можно ли использовать пример в production?
Как основу — да, но добавьте авторизацию, таймауты, обработку ошибок, лимиты и тесты из статьи.
Где проверять актуальное имя модели?
В официальном каталоге Gemini API и Google AI Studio непосредственно перед развёртыванием.
Нужно ли доверять ответу без проверки?
Нет. Формат проверяется кодом, а важные факты — источником или вашей базой данных.
Что делать при изменении API?
Зафиксировать версию SDK, прочитать release notes и прогнать сохранённый набор интеграционных тестов.
Официальный источник
Документация Google, проверена 11 сентября 2026 года: https://ai.google.dev/gemini-api/docs/interactions-overview
Читайте также
Как перейти с generateContent на Gemini Interactions API и не сломать приложение
Практическая миграция Gemini API: соответствие contents и input, история через previous_interaction_id, store:false и поэтапная проверка.
Как сделать первый запрос к Gemini Interactions API: рабочий пример на JavaScript
Первый запрос к рекомендованному Gemini Interactions API: установка SDK, ключ, interaction.output_text, хранение данных и проверка ошибок.
Как настроить function calling в Gemini API и не выполнить опасную команду
Описание функции для Gemini, чтение аргументов, allowlist, подтверждение операции и возврат результата инструменту.
Комментарии
Пока тихо. Скажите первое слово