Загрузка 0
ПОДЕЛИТЬСЯ

Мой блог

Листай вниз

Как организовать общение с искусственным интеллектом через обычные SMS

Как организовать общение с искусственным интеллектом через обычные SMS

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

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

Как организовать общение с искусственным интеллектом через обычные SMS
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 6
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 7
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 8
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 9
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 10
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 11
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 12
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 13
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 14
Как организовать общение с искусственным интеллектом через обычные SMS — изображение 15

Что потребуется для реализации проекта

Для создания собственной шлюзовой системы потребуется минимальный набор оборудования и цифровых ресурсов. В первую очередь необходим старый аппарат под управлением операционной системы Android (рекомендуются версии с 8 по 11, хотя подойдут и более ранние сборки), который будет выполнять роль шлюза. Также потребуется отдельная сим-карта с безлимитным пакетом текстовых сообщений для отправки запросов и приема ответов.

Реклама

Кроме мобильного устройства, инфраструктура включает в себя арендованный виртуальный сервер (VPS) в российской юрисдикции с поддержкой KVM-виртуализации, выделенный домен для настройки маршрутизации и бесплатный доступ к API языковой модели. На практике в качестве демонстрационного оборудования использовался старый смартфон, а серверные мощности были развернуты на базе локального хостинг-провайдера.

Архитектура и программное обеспечение

Программная часть разрабатывалась с привлечением ИИ-агента в несколько итераций: написание кода, проверка, исправление ошибок и финальное ревью. Итоговый стек технологий включает в себя язык программирования Python, фреймворк FastAPI для обработки веб-запросов, легковесную базу данных SQLite и веб-сервер Caddy.

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

Архитектурная схема взаимодействия SMS-шлюза и сервера
Схема взаимодействия компонентов программного комплекса

Основные конфигурационные параметры

При работе с текстовыми сообщениями учитываются технические ограничения операторов связи. Одно стандартное кириллическое сообщение вмещает до 70 символов, после чего происходит автоматическая склейка. Для корректной работы системы задаются следующие параметры:

  • System_prompt — базовый системный промт с требованием отвечать на русском языке кратко (до 200 символов), без использования эмодзи и разметки markdown.
  • Max_reply_units — жесткий лимит символов для отправляемого ответа, разбиваемый на части с учетом заголовков конкатенации.
  • Max_tokens — ограничение на длину ответа языковой модели для предотвращения зависания мысли и удержания в рамках заданного объема.
  • Max_sessions — максимальное количество активных сессий (по умолчанию десять), каждая из которых автоматически удаляется при отсутствии активности в течение суток.
  • History_messages — ограничение на количество хранимых в памяти сообщений для сохранения контекста диалога.

Пошаговая инструкция по настройке

Процесс развертывания шлюза делится на несколько последовательных этапов, начиная с регистрации учетных записей и заканчивая установкой мобильного ПО.

Настройка API и домена

Сначала необходимо зарегистрироваться в панели управления GigaChat API и получить ключ авторизации. Затем в настройках DNS вашего домена прописываются две A-записи, указывающие на IP-адрес арендованного виртуального сервера. При использовании сервисов вроде Cloudflare важно отключить режим проксирования (оставить вариант DNS only), чтобы избежать конфликтов с SSL-сертификатами.

Реклама

Подготовка сервера

На приобретенном VPS обновляются системные пакеты и устанавливается Docker. После этого настраивается межсетевой экран (фаервол) с открытием необходимых портов для SSH, веб-трафика и выпуска сертификатов безопасности. Обязательно синхронизируется системное время через протокол NTP, так как расхождение часов более чем на пять минут приведет к отклонению входящих вебхуков.

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

Пример диалога с нейросетью через текстовые сообщения
Пример получения ответов от языковой модели в текстовом интерфейсе

Настройка Android-приложения

На мобильное устройство устанавливается специализированный APK-файл шлюза (например, Android SMS Gateway). В настройках приложения указывается URL-адрес шлюза на вашем домене, приватный токен безопасности, а также параметры пингов и обработки входящих очередей. После успешного подключения генерируются учетные данные для авторизации вебхуков.

Системные логи работы шлюза
Отображение системных логов при обработке входящих запросов

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

Возможные трудности при эксплуатации

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

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

Итоги тестирования

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

01.