banner
Дом / Блог / Создайте чат-бота, обученного на ваших собственных данных через API OpenAI — SitePoint
Блог

Создайте чат-бота, обученного на ваших собственных данных через API OpenAI — SitePoint

Aug 23, 2023Aug 23, 2023

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

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

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

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

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

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

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

Вы можете скачать набор данных в текстовом формате из репозитория этой статьи на GitHub.

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

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

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

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

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

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

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

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

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

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