Как создать чат-бота, обученного на ваших собственных данных, с помощью API OpenAI

7 распространенных ошибок, которых следует избегать при разработке чат-ботов Изучение

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

Зачем делать чат-бота?

Поскольку ИИ произвел революцию в информационных технологиях, многие использовали его, используя поставщиков API, таких как OpenAI, для интеграции ИИ в свои данные.

Особенно хорошим способом использования ИИ для ваших данных является создание собственного чат-бота.

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

Например, вы можете спросить: «У какой компании была самая высокая прибыль в прошлом квартале?» — вопрос, на который обычно приходится отвечать, вручную копаясь в наборе данных. Используя чат-бота, обученного на ваших данных, вы можете получить ответ на этот вопрос за считанные секунды.

Начало работы с OpenAI API

Чтобы начать работу с собственным чат-ботом, вам сначала потребуется доступ к API OpenAI. Чтобы получить ключ API OpenAI, зарегистрируйтесь на сайте OpenAI. Затем щелкните значок своего профиля, расположенный в правом верхнем углу главной страницы, выберите » Просмотреть ключи API» и нажмите «Создать новый секретный ключ», чтобы сгенерировать новый ключ API.

Подготовка ваших данных

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

Создайте новую папку, в которой вы будете создавать своего чат-бота. Затем создайте папку с именем chatbot_docsвнутри папки вашего проекта и вставьте файл набора данных в эту папку. (Название папки не имеет значения, но для этого урока гораздо проще дать ей имя chatbot_docs.)

Читайте также:  Кто изобрел компьютер?

Обучение и тестирование простого чат-бота на ваших данных

Когда у вас есть ключ API и файл набора данных, вы можете приступить к работе с фактическим кодом.

Перейдите в папку вашего проекта и создайте пустой файл Python внутри папки вашего нового проекта.

Как только вы это сделаете, загрузите библиотеки, которые мы собираемся использовать, запустив в терминале следующее:

pip3 install langchain flask llama_index gradio openai pandas numpy glob datetime

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

В этом уроке я использую gpt-3.5-turboмодель OpenAI, так как она самая быстрая и самая экономичная. Как вы могли заметить, если вы смотрели на код, я установил температуру чат-бота на 0. Я сделал это, чтобы сделать чат-бот максимально точным. Параметр температуры определяет креативность чат-бота, где температура 0 означает, что чат-бот всегда фактически точен, а температура 1 означает, что чат-бот имеет полную свободу придумывать ответы и детали ради творчества, даже если они не точны. Чем выше температура, тем более креативен и менее точен чат-бот.

В этом коде я упоминаю слово «встраивание». Это именно то, во что превращается текст в вашем документе Википедии, чтобы чат-бот мог его понять и осмыслить. Каждое вложение представляет собой список чисел в диапазоне от −1 до 1, которые связывают каждую часть информации в зависимости от того, насколько тесно она связана с другой. Если вам интересно, что это text-embedding-ada-002значит, это просто модель, которая используется для встраивания, потому что она наиболее эффективна с точки зрения затрат и времени.

Этот код создает CSV-файл встраивания для каждого документа в вашей chatbot_docsпапке, и, поскольку у вас есть только один (для целей этого руководства), он создает только один файл встраивания. Но если бы у вас было больше документов, код создавал бы файл внедрения для каждого документа. Такой подход делает вашего чат-бота более масштабируемым.

Вы также, вероятно, задаетесь вопросом о части с кусками:

text_splitter = RecursiveCharacterTextSplitter(separators=["\n\n",  "\n"], chunk_size=2000, chunk_overlap=250) 
texts = text_splitter.split_text(content)  # Splitting the document content into chunks

Позволь мне объяснить. Этот код разбивает страницу Википедии о компьютерах на куски по 2000 символов, а фрагменты перекрывают друг друга по 250 символов. Чем больше размер чанка, тем больше контекст чат-бота, но это также может сделать его медленнее, поэтому я выбрал 2000 как хорошее среднее между 0 и 4096 (максимальный размер чанка) для этого урока.

Что касается перекрытия фрагментов, ChatGPT рекомендует поддерживать перекрытие фрагментов в пределах от 10% до 20% от размера фрагмента. Это сохраняет некоторый контекст между различными фрагментами. Это также гарантирует, что фрагменты не являются избыточными, не позволяя им содержать слишком много данных предыдущих фрагментов.

Чем меньше перекрытие фрагментов, тем меньше контекст между фрагментами. Чем больше перекрытие фрагментов, тем больше контекст между фрагментами и тем более избыточны данные фрагмента.

Этот код также разбивает документ на абзацы — разбивая текст каждый раз, когда появляется новая строка ( \nили \n\n). Это делает фрагменты более связными, гарантируя, что фрагменты не будут разделены посередине абзаца.

Создание чат-бота

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

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

Создав новый файл Python, добавьте этот код Python из репозитория.

Теперь, если вы запустите своего чат-бота, вы должны получить следующий вывод через пару секунд обработки.

Теперь, если вы запустите своего чат-бота, вы должны

Теперь, когда у вас есть чат-бот, вы можете экспериментировать с разными вопросами! Вы также можете поэкспериментировать с различными фрагментами и перекрытиями фрагментов, а также с температурой (если вам не нужно, чтобы ваш чат-бот был на 100% точным).

Внедрение вашего чат-бота в веб-приложение

Хотя простой чат-бот — это хорошо, вы, вероятно, ищете реальную сделку — когда у вас есть пользовательский интерфейс для вашего чат-бота, который позволяет пользователям со всего мира использовать его.

Чтобы начать работу с веб-приложением чат-бота, создайте папку templatesв каталоге вашего проекта. Внутри этого создайте файл HTML с именем bot.htmlи файл CSS с именем style.css.

Также не забудьте создать пустую chatпапку внутри каталога вашего проекта. Это будет использоваться для связи между серверной частью и внешним интерфейсом.

Теперь добавьте этот код CSS в свой style.cssфайл.

После того, как вы это сделаете, добавьте этот HTML-код в свой bot.htmlфайл.

Теперь вам нужно изменить скрипт чат-бота Python, чтобы получать запросы с вашей веб-страницы и отправлять ответы с помощью Flask. Измените свой скрипт Python на этот код.

Теперь давайте протестируем ваше веб-приложение чат-бота! Запустите файл Python и откройте localhost:8001. Теперь вы должны увидеть свою веб-страницу, как показано на рисунке ниже.

Теперь давайте протестируем ваше веб-приложение

Теперь, если вы вводите вопрос, вы должны увидеть анимацию загрузки, пока чат-бот его обрабатывает.

Теперь, если вы вводите вопрос, вы должны увидеть анимаци

Наконец, через несколько секунд вы должны получить ответ от чат-бота, как показано на рисунке ниже.

Наконец, через несколько секунд вы должны получит

Заключение

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

Оцените статью
bestprogrammer.ru
Добавить комментарий