📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

Build Your Own AI Voice Assistant with RAG & Python (Step-by-Step)

TechieTalksAI8:06

Transcription

Расскажите о про-плане. >> Основываясь на предоставленном контексте, про-план стоит 25 долларов в месяц и предлагает неограниченное хранилище, расширенную аналитику и приоритетную поддержку. >> Мы собираемся создать голосовой и текстовый чат-бот. Сегодня голосовой API, который мы будем использовать, — это браузерный API речи, который является бесплатным. Таким образом, нам не нужно платить за токены. Этот проект — больше, чем просто одно приложение. Это пошаговое путешествие, демонстрирующее эволюцию простого чат-бота в сложного ИИ-агента. Каждая лаборатория вводит новую критически важную концепцию, основываясь на предыдущей. Давайте пройдемся по эволюции. Лабораторная работа один, основа, простой тестовый чат-бот. Первая лаборатория закладывает основу для всего последующего. Она устанавливает основную клиент-серверную архитектуру. У нее есть фронтенд, который обслуживается через статический веб-сервер Nginx. И у нас есть виджет.htm HTML, который действует как веб-страница-заполнитель, и на этой веб-странице мы встраиваем наш чат-бот. При нажатии на него открывается интерфейс чата, и здесь все, что мы набираем, просто отражается обратно, чтобы мы могли протестировать взаимодействие клиента и сервера. Фронтенд работает с JavaScript, а бэкенд — Python. И ключевой вывод заключается в том, что это устанавливает базовую связь между фронтендом и бэкендом, на которую будут опираться все будущие лаборатории. Если быстро взглянуть на код лабораторной работы один, у нас есть main.py, который имеет простой ответ агента, который просто отражает все, что мы говорим. Вот и все. Таким образом, этот конечный пункт чата — это то, что вызывает ответ агента. Вот и все. Мы не вдаемся в подробности. Код предоставлен в описании. Очень просто. Эхо-чат-бот. Давайте перейдем в лабораторную работу 2, docker compose up build. Итак, давайте обновим страницу. Это интерфейс лабораторной работы 2. Он выглядит похоже, верно? Видимых отличий нет. Но если вы нажмете на систему чата, вы видите это? Вы видите это? Это аудиоввод. Он может говорить. Он может понимать, что мы говорим, и он также может говорить в ответ. Позвольте мне нажать на него. Я Шри. >> Я не смог найти конкретную информацию в моей базе данных, но вы спросили. Я Шри. >> Видите, он отражает [смех] обратно, говоря, что ничего об этом не смог найти. Что такое 2 + 2? >> Я не смог найти конкретную информацию в моей базе данных, но вы спросили, что такое 2 + 2. >> Видите это? Итак, это аудиоввод, и он говорит в ответ. Итак, это работает с использованием API веб-речи браузера. Речь в текст. Когда пользователь нажимает на микрофон, браузер слушает, транскрибирует его речь в текст и отправляет его на бэкенд. И у него также есть текст в речь. Если сообщение было инициировано голосом, фронтенд использует API для озвучивания текстового ответа бэкенда вслух. И бэкенд похож, но немного изменен, чтобы распознавать флаг голосового режима из фронтенда, но его основная логика остается простым эхом. Ключевой вывод заключается в том, что это демонстрирует, как создать мультимодальный текстовый и голосовой пользовательский интерфейс с использованием стандартного браузерного API. Так что, если вы посмотрите на папку, мы быстро увидим изменение бэкенда. На самом деле нет никаких изменений в widget.html фронтенда. У нас есть раздел распознавания речи. Он получает, он транскрибирует то, что мы говорим, и отправляет это на бэкенд здесь, и у него также есть функция speak text, которая озвучивает ответ, полученный от бэкенда. Вот и все. Вы можете просто скопировать и поиграть с этим. Код предоставлен в описании. [смех] Итак, в лабораторной работе 3 мы интегрируем LLM. Итак, вместо того, чтобы просто отражать все, что мы говорим, мы будем передавать наш запрос в LLM и получать ответ обратно от LLM. Итак, давайте спросим, что такое 2 + 2. >> 2 + 2 равно 4. >> Видите это, мы также можем набирать и спрашивать. Итак, он принимает голосовой ввод и текстовый ввод. Хорошо, у нас есть ответ. Итак, в фронтенде бэкенда нет изменений. Вместо того, чтобы отражать сообщение пользователя, он теперь делает вызов Google Gemini API. Он принимает вопрос пользователя, отправляет вопрос модели Gemini. Он получает сгенерированный текстовый ответ от LLM. Он пересылает этот интеллектуальный ответ обратно на фронтенд. Таким образом, чат-бот больше не является скриптовым или упрощенным. Теперь он может понимать и генерировать человекоподобный текст по широкому кругу тем. Итак, добро пожаловать в лабораторную работу 4, где мы добавляем RAG — наши собственные знания. Итак, если вы посмотрите на наш бэкенд, у нас есть образец knowledge kb.ext. Итак, давайте спросим что-нибудь из базы знаний. Мы подробно рассмотрели векторные базы данных в наших предыдущих видео. Мы хотим сохранить это как просто демонстрационное видео. Итак, мы спросим, что такое стандартный план? Это из базы знаний. Это крошечные практические примеры того, как реализовать эти механизмы в вашем ИИ-чат-боте. Если вы хотите знать, как это работает в Gemini, мы опубликовали видео два дня назад, используя Google Collab notebook, и как мы обрабатываем базу знаний и преобразуем ее в эмбеддинги, и как мы выполняем поиск по сходству. Посмотрите здесь, основываясь на предоставленном, стандартный план включает 10 ГБ хранилища. Давайте спросим что-нибудь еще. Расскажите мне о про-плане. >> Основываясь на предоставленном контексте, про-план стоит 25 долларов в месяц и предлагает неограниченное хранилище, расширенную аналитику и приоритетную поддержку. >> Итак, подводя итог, хотя LLM является интеллектуальным, он не знает о наших частных или конкретных данных. Таким образом, эта лабораторная работа 4 решает эту проблему, реализуя генерацию с дополненным поиском или RAG, давая чат-боту долговременную память. Итак, у нас есть конечный пункт /est, с помощью которого мы можем добавлять знания в базу знаний. Если вы посмотрите на main.py, у нас есть конечный пункт /indis, который считывает файл, который мы загружаем, и сначала выполняет рекурсивный разделитель текста по символам. Это стратегия разбиения на части, используемая здесь. И он преобразует это в эмбеддинги и сохраняет в нашем векторном хранилище Quadrant. И в интерфейсе чата мы сначала выполняем поиск по сходству по запросу, который мы передаем, и включаем его в контекст здесь. Таким образом, подсказка будет включать наш запрос, а также контекст для получения соответствующего ответа. Итак, здесь мы говорим: ответьте на вопрос пользователя на основе [очищает горло] предоставленного контекста. Это очень короткая демонстрация "создай свой собственный чат-бот", и ссылка на код предоставлена в описании. Пожалуйста, не забудьте поставить лайк, поделиться и подписаться. Увидимся снова в другом видео. Пока-пока. Спасибо за просмотр. Пожалуйста, поставьте лайк, поделитесь и подпишитесь. Ваша поддержка очень помогает. Есть идеи или предложения? Оставьте их в комментариях. Давайте строить вместе. В Shoguni мы предлагаем экспертные консультации по автоматизации no-code.com и Python с готовыми модулями для быстрого старта ваших проектов. Оставайтесь на связи и подписывайтесь на новые видео.