Интеграция Claude, ИИ-ассистента Anthropic, с Twilio Voice с использованием Conversation Relay

Источник: Twilio•

Интеграция Claude, ИИ-ассистента Anthropic, с Twilio Voice с использованием Conversation Relay

Узнайте, как интегрировать LLM Claude от Anthropic с Twilio Voice с помощью Conversation Relay в этой базовой демонстрации голосового ИИ на базе Node.js и библиотеки TypeScript от Anthropic.

28 октября 2026 г.

Автор

Рецензент

Conversation Relay от Twilio позволяет создавать голосовые приложения в реальном времени, похожие на человеческую речь, с использованием больших языковых моделей (LLM) ИИ, к которым можно обращаться через Twilio Voice. Conversation Relay подключается к управляемому вами WebSocket, позволяя интегрировать выбранного провайдера LLM по быстрому двунаправленному соединению.

В этом руководстве демонстрируется базовая интеграция Claude, языковой модели Anthropic, с Twilio Voice с использованием Conversation Relay. К концу этого руководства у вас будет работающий голосовой ассистент Claude на базе сервера Node.js, который позволяет позвонить на номер телефона Twilio и пообщаться с моделью Anthropic!

Предварительные требования

Для развертывания этого руководства вам понадобятся:

  • Node.js 24+ (я использовал 24.22.0 для создания этого руководства)

24+ (я использовал 24.22.0 для создания этого руководства)

  • Аккаунт Twilio (вы можете зарегистрироваться бесплатно здесь) и номер телефона с поддержкой голосовой связи

Аккаунт Twilio (вы можете зарегистрироваться бесплатно здесь) и номер телефона с поддержкой голосовой связи

Аккаунт Anthropic и API-ключ

  • Ngrok или другое решение для туннелирования, чтобы предоставить вашему локальному серверу доступ к интернету для тестирования

или другое решение для туннелирования, чтобы предоставить вашему локальному серверу доступ к интернету для тестирования

  • Телефон для совершения исходящего вызова в Twilio

Телефон для совершения исходящего вызова в Twilio

  • Ваш любимый редактор кода или IDE

Ваш любимый редактор кода или IDE

Перед использованием Conversation Relay вам необходимо пройти шаги адаптации (onboarding), а также согласиться с Дополнением к функциям предиктивного и генеративного ИИ/МО (Predictive and Generative AI/ML Features Addendum), если вы с ним согласны. В консоли Twilio перейдите в Communications > Voice > Settings > Privacy & Security. Дополнительные сведения см. в Руководстве по адаптации Conversation Relay.

Отлично! Давайте начнем.

Настройка проекта

В следующих шагах рассматриваются настройка проекта и зависимости, которые необходимо установить. Затем вы создадите код сервера (а я объясню наиболее интересные моменты).

Создание каталога проекта

Сначала создайте новую папку проекта:

Копировать код

Инициализация проекта Node.js

Затем инициализируйте новый проект Node.js и установите необходимые пакеты:

Копировать код

Вы будете использовать Fastify для создания сервера, который обрабатывает как WebSocket, необходимый для Conversation Relay, так и эндпоинт для инструкций Twilio, требуемый Twilio Voice. Вы будете использовать библиотеку TypeScript от Anthropic для управления беседой с Claude.

Настройка переменных окружения

Создайте файл .env для хранения вашего API-ключа Anthropic. Добавьте следующую строку:

Копировать код

Если вы работаете с git, добавьте .env в файл .gitignore, чтобы предотвратить раскрытие конфиденциальной информации.

Написание кода

Потрясающе, дело идет полным ходом. Перейдем к коду сервера.

Создайте файл с именем server.js и добавьте следующие импорты и константы:

Копировать код

Здесь вы заметите, что мы определяем WELCOME_GREETING. Это первое, что услышит человек при звонке вашему ассистенту.

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

Реализация функции ответа ИИ

На следующем этапе вы определите, как ваше приложение подключается к API Anthropic и обрабатывает ответы. Вставьте этот код ниже предыдущего:

Копировать код

Здесь вы добавляете то, что необходимо для подключения к Anthropic. process.env.ANTHROPIC_API_KEY получит наш API-ключ из файла .env для аутентификации нашего использования Anthropic, после чего функция aiResponse используется для управления поведением каждого ответа LLM.

Для этой демонстрации вы будете использовать claude-sonnet-5-5 с низким уровнем усилий (low effort) для тестирования сборки. Вы можете найти поддерживаемые модели Claude в документации Anthropic.

Мы протестировали это руководство как с Claude Sonnet 5.5, так и с Claude Haiku 5.5, и обе модели хорошо справились с реальным голосовым общением при низком уровне усилий. В коде мы используем Sonnet 5.5, но правильный выбор зависит от вашего варианта использования. Таблица сравнения моделей Anthropic и руководство по выбору модели — отличные места для начала.

Настройка Fastify и определение маршрутов

Теперь, когда вы определили взаимодействие с Claude, пришло время перейти к Twilio. На этом шаге вы настроите два эндпоинта:

  • /twiml — для управления поведением Twilio при входящем вызове на наш приобретенный номер. Здесь используется язык разметки Twilio Markup Language (TwiML) для дальнейших инструкций Twilio.
  • /ws — для соединения WebSocket, которое Conversation Relay будет использовать для связи с вашим приложением. Здесь вы будете получать сообщения от Twilio, а также передавать сообщения от вашей LLM обратно в Twilio для запуска шага преобразования текста в речь (ретрансляции, если можно так выразиться).

Ниже кода с предыдущего шага вставьте следующее:

Копировать код

И это весь код, необходимый для базовой интеграции — теперь давайте запустим все и подключим к Twilio!

Запуск ngrok и сервера

Откройте терминал (или новую вкладку терминала) и запустите ngrok с помощью ngrok http 8080.

Скопируйте URL-адрес ngrok без схемы (то есть отбросьте «https://» или «http://») и обновите файл .env, добавив новую строку:

Копировать код

На этом скриншоте показан URL-адрес, который я выбрал для своей переменной окружения:

Наконец, запустите сервер. В исходном терминале (не в том, где запущен ngrok), выполните:

Копировать код

Настройка Twilio

В консоли Twilio настройте свой номер телефона с помощью веб-хука конфигурации голосовой связи (Voice Configuration Webhook) для события A калл поступает (A call comes in), установив значение https://[your-ngrok-subdomain].ngrok.app/twiml.

Вот пример из моей консоли:

Сохраните изменения, теперь вы готовы к тестированию.

Тестирование интеграции

Чувствуете ли вы трепет в предвкушении? Пора!

Позвоните на свой номер Twilio. ИИ должен поприветствовать вас сообщением WELCOME_MESSAGE и быть готовым к разговору — обязательно попросите его рассказать шутки про сову!

Дальнейшие шаги с Twilio и Claude

Я надеюсь, вам понравилась эта базовая интеграция Twilio Voice с Claude от Anthropic с использованием Conversation Relay — голосовая LLM по звонку менее чем за 100 строк кода!

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

Но до тех пор развлекайтесь с каркасом… ознакомьтесь с документацией по Conversation Relay от Twilio, документацией по API Anthropic и SDK TypeScript от Anthropic, чтобы узнать больше.

Пол Камп — технический главный редактор блога Twilio. Он с энтузиазмом обсуждал с LLM рецепты… но был немного разочарован тем, что успел приготовить лишь несколько предложений (когда же агенты начнут готовить еду?). Вы можете связаться с Полом по адресу pkamp [at] twilio.com.

О чём эта статья

Ещё в разделе «Телеком и сети»

Все →

Ещё от Twilio