Chatbot
Чат-бот — это программа, которая общается на естественном языке в текстовом или голосовом формате: от скриптов вроде ELIZA, сопоставляющих ключевые слова, до чат-приложений на базе LLM, таких как ChatGPT.
Чат-бот — это компьютерная программа, которая ведёт диалог с людьми на естественном языке — в текстовом или голосовом формате. Обычно первым чат-ботом считают ELIZA Джозефа Вейценбаума, написанную в MIT и опубликованную в 1966 году: её сценарий DOCTOR имитировал психотерапевта, сопоставляя ключевые слова и превращая высказывания пользователя в вопросы. Вейценбаума встревожило, что пользователи, в том числе его секретарь, доверяли программе свои переживания, словно она их понимала. С тех пор чат-боты прошли через три поколения: от сценариев на основе правил к ботам на основе намерений и затем к большим языковым моделям (LLMs). ChatGPT от OpenAI, запущенный 30 ноября 2022 года, сделал третье поколение массовым, и теперь под «чат-ботом» обычно понимают интерфейс для общения с LLM, например ChatGPT, Claude или Gemini.
Как работают чат-боты#
- Чат-боты на основе правил: Сопоставляют слова пользователя с заранее написанными шаблонами и отвечают готовыми фразами. Их поведение предсказуемо, а стоимость низкая, но они не справляются с формулировками, которые авторы не предусмотрели.
- Чат-боты на основе намерений: Классификатор понимания естественного языка (NLU) определяет намерение каждого сообщения, например проверить баланс, и извлекает подробности, например номер счёта или дату; затем сценарии диалога, заданные разработчиками, определяют ответ. Банки, авиакомпании и телекоммуникационные компании создавали таким способом ботов для обслуживания клиентов, поскольку каждый ответ можно было заранее проверить.
- Чат-боты на базе LLM: Генерируют каждый ответ по одному токену, опираясь на предшествующую беседу. Системный промпт задаёт роль и правила бота, а модель справляется с формулировками, которые никто не предусмотрел.
В основе чат-бота на базе LLM лежит трансформер, обученный вести диалог с помощью настройки на инструкциях и обучения с подкреплением на основе отзывов людей (RLHF); между вызовами у него нет памяти. Приложение хранит беседу и при каждом новом сообщении отправляет её целиком, отформатировав с помощью шаблона чата модели:
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-135M-Instruct")
# Чат-бот хранит беседу и отправляет её целиком при каждом новом ходе диалога
messages = [
{"role": "system", "content": "You are a support assistant for an online store."},
{"role": "user", "content": "Where is my order?"},
{"role": "assistant", "content": "Could you share your order number?"},
{"role": "user", "content": "It's 4417."},
]
# Шаблон чата сводит историю к одному промпту, который модель должна продолжить
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
print(prompt)Выведенный промпт оборачивает каждый ход в маркеры <|im_start|> и <|im_end|> с указанием роли и заканчивается незавершённой строкой <|im_start|>assistant, поэтому следующие токены модели становятся ответом, а фраза «Это 4417» имеет смысл только потому, что предыдущий вопрос содержится в том же промпте. С каждым ходом промпт становится длиннее, поэтому длинные беседы обрезают или суммируют, прежде чем они превысят контекстное окно, а кэширование промптов позволяет не обрабатывать заново неизменившуюся историю при каждом ходе.
Привязка к источникам, инструменты и изображения#
Если чат-бот поддержки отвечает, опираясь только на свои обучающие данные, он может уверенно сообщать неверные правила. Поэтому в рабочих системах сначала находят релевантные документы и данные учётной записи с помощью генерации с дополнением извлечённой информацией (RAG), проверяют входные данные и черновики с помощью защитных механизмов ИИ, а если ответ нельзя подтвердить — передают запрос человеку:
Чат-боты, которые вызывают инструменты через вызов функций, например для проверки заказа, превращаются в ИИ-агентов, а мультимодальные чат-боты принимают фотографии и снимки экрана в рамках одного хода с помощью визуально-языковых моделей (VLMs). Интерфейс LLM Ultralytics отправляет промпт, изображение или полную историю сообщений любой чат-модели, совместимой с OpenAI, и возвращает собственный объект ответа провайдера. Поэтому конвейер YOLO26 может попросить мультимодальную модель описать сцену только после того, как детектор обнаружит в ней человека.
Риски#
Галлюцинации приобретают юридическую значимость, когда компания внедряет чат-бота. В деле Moffatt v. Air Canada, решение по которому вынесли в феврале 2024 года, чат-бот на сайте авиакомпании сообщил скорбящему пассажиру, что скидку на перелёт в связи со смертью родственника можно получить после поездки, хотя это противоречило реальным правилам компании. Трибунал по урегулированию гражданских споров Британской Колумбии отклонил довод Air Canada о том, что чат-бот сам отвечал за свои высказывания, и обязал авиакомпанию выплатить разницу. Чат-боты также подвергаются попыткам внедрения промптов и джейлбрейка, а модели, настроенные угождать пользователям, могут скатиться к подхалимству ИИ, соглашаясь с ложными утверждениями вместо того, чтобы исправить их.
Чат-боты и смежные понятия#
- Виртуальный помощник: Программа, например Siri или Alexa, которая выполняет запросы в разных приложениях и на устройствах. Чат-бот обычно работает на одном сайте, в одном приложении или канале обмена сообщениями и сосредоточен на диалоге.
- ИИ-агент: Система, которая достигает цели, выбирая и выполняя действия, часто в несколько этапов и без участия человека. Чат-бот становится агентом, когда не только отвечает, но и действует с помощью инструментов.
- Разговорный ИИ: Более широкая область технологий, лежащих в основе чат-ботов и помощников. Она включает распознавание речи, NLU, управление диалогом и синтез речи.










