Как объединить поисковую релевантность Elasticsearch с возможностями вопросов и ответов ChatGPT OpenAI для запроса ваших данных? В этом блоге вы узнаете, как использовать Elasticsearch для подключения ChatGPT к собственному хранилищу данных и создавать возможности вопросов и ответов для ваших данных.
В последние месяцы был большой энтузиазм по поводу ChatGPT, революционной модели искусственного интеллекта, созданной OpenAI. Но что такое ChatGPT?
Основанный на мощном GPT Архитектура, ЧатGPT Предназначен для понимания ввода текста и генерации ответов, подобных человеческим. GPT Представляет собой «Генеративный предтренировочный трансформатор». Pre-trained Transformer)”。Transformer это передовая модельная архитектура, которая революционизирует обработку естественного языка. (NLP) поле. Эти модели предварительно обучены на огромных объемах данных и способны понимать контекст, генерировать релевантные ответы и даже вести беседы. Чтобы узнать больше о transformer история модели и Elastic Stack некоторые из NLP базовые знания,Обязательно посмотрите КрутоизИнженер Elastic ML Джош Девинс из выступления。
Основная цель ChatGPT — облегчить значимое и увлекательное взаимодействие между людьми и машинами. Используя последние достижения в области NLP, модель ChatGPT может использоваться в широком спектре приложений: от чат-ботов и виртуальных помощников до генерации контента, завершения кода и многого другого. Эти инструменты на основе искусственного интеллекта быстро стали бесценным ресурсом во многих отраслях, помогая предприятиям оптимизировать процессы и улучшать качество услуг.
Однако, несмотря на невероятный потенциал ChatGPT, пользователям все равно следует знать об определенных ограничениях. Стоит отметить одно ограничение — срок получения знаний. В настоящее время ChatGPT обучается на данных по состоянию на сентябрь 2021 года, что означает, что он не осведомлен о событиях, разработках или изменениях, произошедших с тех пор. Поэтому пользователям следует помнить об этом ограничении, когда они полагаются на ChatGPT для получения самой последней информации. Это может привести к устаревшим или неправильным ответам при обсуждении быстро меняющихся областей знаний, таких как улучшения и функции программного обеспечения или даже мировые события.
ChatGPT, хотя и является впечатляющей языковой моделью искусственного интеллекта, иногда страдает от галлюцинаций в ответах, которые часто усугубляются, когда у него нет доступа к соответствующей информации. Эта чрезмерная самоуверенность может привести к неверным ответам или предоставлению пользователям вводящей в заблуждение информации. Важно помнить об этом ограничении и подходить к ответам, генерируемым ChatGPT, с долей скептицизма, перепроверяя и проверяя информацию, когда это необходимо, для обеспечения точности и надежности.
Еще одним ограничением ChatGPT является отсутствие знаний о контенте, специфичном для конкретного домена. Хотя он может генерировать последовательные и контекстуальные ответы на основе информации, на которой он был обучен, он не может получить доступ к данным, специфичным для предметной области, или предоставить персонализированные ответы, основанные на уникальной базе знаний пользователя. Например, у него может не быть глубокой информации о проприетарном программном обеспечении или внутренней документации организации. Поэтому пользователям следует проявлять осторожность, обращаясь за советом или ответами по таким темам непосредственно в ChatGPT.
Один из способов минимизировать эти ограничения — предоставить ChatGPT доступ к конкретным документам, относящимся к вашему домену и вопросу, а также включить возможности распознавания языка ChatGPT для генерации индивидуальных ответов.
Этого можно добиться, подключив ChatGPT к поисковой системе, такой как Elasticsearch.
Elasticsearch — это эффективная поисковая система, предназначенная для поиска соответствующих документов, гарантирующая пользователям быстрый и точный доступ к необходимой им информации. Основная цель Elasticsearch — предоставить пользователям наиболее релевантные результаты, упростить процесс поиска и улучшить взаимодействие с пользователем.
Elasticsearch Содержит функции, обеспечивающие лучшую в своем классе производительность поиска, включая поддержку традиционного поиска по ключевым словам и текстового поиска. ( BM25 )и точныйсоответствоватьиприблизительныйkNNизAIвекторный поиск(k-Nearest Neighbor)。这些高级功能使 Elasticsearch Вы можете не только получать релевантные результаты, но также получать результаты для запросов, выраженных на естественном языке. Используя традиционный, векторный или гибридный поиск. (BM25 + kNN),Elasticsearch Он обеспечивает беспрецедентно точные результаты, помогая пользователям легко находить нужную информацию.
Одним из основных преимуществ Elasticsearch является его мощный API, который можно легко интегрировать с другими сервисами для расширения и улучшения его функциональности. Интегрируя Elasticsearch с различными сторонними инструментами и платформами, пользователи могут создавать мощные индивидуальные поисковые решения в соответствии со своими конкретными потребностями. Такая гибкость и масштабируемость делают Elasticsearch идеальным решением для компаний, стремящихся улучшить свои возможности поиска и оставаться впереди в конкурентной цифровой среде.
Работая с продвинутыми моделями искусственного интеллекта, такими как ChatGPT, Elasticsearch может предоставить ChatGPT наиболее релевантные документы для использования в своих ответах. Эта синергия между Elasticsearch и ChatGPT гарантирует, что пользователи получают фактические, контекстуальные и актуальные ответы на свои запросы. По сути, возможности поиска Elasticsearch в сочетании с возможностями понимания естественного языка ChatGPT обеспечивают беспрецедентный пользовательский опыт, который устанавливает новый стандарт для поиска информации и помощи на основе искусственного интеллекта.
Генерация гибридных поисковых запросов для Elasticsearch
2. Поисковые запросы отправляются в Elasticsearch.
3. Тело документа и исходный URL-адрес возвращаются в приложение Python.
ElasticDoc ChatGPT использование процесса Python Интерфейс принимает вопросы пользователей и Генерация гибридных поисковых запросов для Elasticsearch, комбинированный BM25 и kNN Метод поиска из Найдите наиболее актуальную документацию в официальной документации Elastic, которая теперь доступна по адресу Elasticsearch Средняя подготовкаиндекс.но,Вам не обязательно использовать гибридный поиск или даже векторный поиск. Имейте гибкость в поиске шаблона, который лучше всего соответствует вашим потребностям и предоставляет наиболее релевантные результаты для вашего конкретного набора данных.。
После получения наилучших результатов программа OpenAI из ChatCompletion API 制делатьPrompt
,указывает на то, что это толькоиспользоватьвыбранодокументсерединаизинформация для ответа пользователямизвопрос。этот提示是确保 ChatGPT Модель содержит только официальную информацию о документах, что является ключом к уменьшению галлюцинаций, создаваемых ChatGPT.
Наконец, программа показывает пользователю API Генерирует ссылки на ответы и исходные документы, обеспечивая бесперебойную и удобную работу, интегрируя взаимодействие с внешним интерфейсом, Elasticsearch. Запрос и OpenAI API использовать для эффективного использования вопросов и ответов.
пожалуйста, обрати внимание,Хотя для простоты мы получили только самый высокий результат из документа.,Но лучшая практика — это появление нескольких документов для ChatGPT Предоставьте больше контекста. Правильный ответ можно найти на нескольких страницах документа, или, если мы хотим, чтобы основной текст был сгенерирован для создания векторов, тогда эти более крупные текстовые тела, возможно, придется разбить на фрагменты и сохранить в нескольких экземплярах. Elasticsearch в документе. используя Elasticsearch Традиционные методы поиска позволяют выполнять совместный поиск в большом количестве векторных полей, и вы можете значительно повысить скорость поиска верхнего уровня.
Технические требования относительно низкие,Но необходимы некоторые шаги для того, чтобы все части сошлись воедино и стали существовать вместе. верно, этот пример,нас Воля КонфигурацияВеб-сканер Elasticsearchк摄取 Elastic документисуществовать При проглатываниидляtitleСоздать вектор。ты可к跟随本文икопироватьэтотнастраивать,Или используйте сами изданных. для Следуйте этой статье,мы должны:
本节серединаиз Эти шаги предполагают, что выкогда Не раньшесуществовать Elastic Cloud серединабегатьиз Elasticsearch кластер. Если у вас уже есть один Elastic Cloud
из кластера вы можете перейти к следующей части.
зарегистрироваться
если у тебя нет Elasticsearch кластер,ты可к通过Elastic Cloudзарегистрироваться Бесплатная пробная версия。
Создать развертывание
После регистрации вам будет предложено создать первую развертку.
Вернуться в облако
Прежде чем продолжить, нам нужно сделать несколько вещей в Cloud Console:
щелкнуть значок навигации в левом верхнем углу и выбрать «Управление этим развертыванием».
Добавьте узел машинного обучения.
перезагрузить Elasticsearch развертыватьпользовательипароль:
Скопируйте идентификатор облака развертывания Elasticsearch.
Далее нам нужно загрузить модель внедрения в Elasticsearch , используемый для создания векторов для заголовка нашего блога и для пользователей для векторов генерации поисковых вопросов. Мы Воляиспользовать по SentenceTransformers Обучены и размещены на Hugging Face Модельсередина心начальствоизмодель all-distilroberta-v1.существоватьэтот示例середина,Причина, по которой мы выбираем эту модель,Потому что он существует и охватывает широкий круг тем, обучаясь на очень большом наборе данных.,Подходит для общего использования. но,Нам не обязательно выбирать эту модель,верно для случаев использования векторного поиска,Точная настройка модели для вашего конкретного набора данных обычно обеспечивает наилучшую корреляцию.。
Для этого мы будем использовать Elastic создаватьизБиблиотека Python Eland.Должен Библиотека Предоставляет широкий спектризвозможности науки о данных,Но мы Воляиспользовать это делает для моста,Воля Модельот Hugging Face Центр моделей загружается в Elasticsearch, чтобы его можно было развернуть на узлах машинного обучения для вывода.
Eland может использоваться как python Сценарий, входящий в состав Project, также можно использовать в командной строке. Магазин Библиотека также хочет пойти по этому пути, предоставляя пользователям Docker контейнер。今天нас Волясуществоватьодинмаленький блокнот на питонесерединабегать Eland , он доступен бесплатно в вашем веб-браузере. Colab середина.
ОткрытьСсылка на программуищелкнутьвершинаиз“существовать Colab кнопка, чтобы открыть в Colab Запустите блокнот в формате .
переменная hf_model_id настройки для имени модели. Эта модель включена в пример кода, но если вам нужна другая модель, вы можете изменить ее самостоятельно:
hf_model_id='sentence-transformers/all-distilroberta-v1'
Запустите раздел облачной аутентификации, и вам будет предложено:
Выполните оставшиеся шаги:
Дальше мы с Волей создаём новый из Elasticsearch Индекс для хранения наших из Elastic Документы, настройте веб-искатель для автоматического сканирования и индексирования этих документов и используйте конвейер приема для создания векторов для заголовков документов.
пожалуйста, обрати внимание,Вы можете продолжить этот шаг, используя свои собственные данные.,чтобы создать опыт вопросов и ответов, адаптированный к вашей области.
возобновлять dense_vector Поле картографирования. (Примечание: верно Ю. Elasticsearch 8.8+ версии, этот шаг должен быть автоматическим. )
dense_vector
целевое полеизкартографирование。ты只需Воля Что粘贴到代码框середина,Затемщелкнуть Нет. 1 Справа от линии есть маленькая стрелка.POST search-elastic-docs/_mapping
{
"properties": {
"title-vector": {
"type": "dense_vector",
"dims": 768,
"index": true,
"similarity": "dot_product"
}
}
}Узнать больше
{
"acknowledged": true
}
Настройте веб-искатель для сканирования официальных документов Elastic:
Disallow | Contains | release-notes |
---|---|---|
Allow | Regex | /guide/en/.*/current/.* |
Disallow | Regex | .* |
Elasticsearch извеб-сканерсейчас существует Воля начал сканировать сайт документов,Вектор генерации поля заголовка,И верные документы векторного индекса построения.
Первое сканирование занимает некоторое время. В то же время мы можем установить OpenAI API Ваучер Python задняя часть.
к ChatGPT Отправьте вопрос по документам, он нам нужен OpenAI API Аккаунт и Ключ. если у тебя нет учетной записи, вы можете создать бесплатную учетную запись и получить начальное количество бесплатных баллов.
После создания учетной записи вам необходимо создать ключ API:
2.настройки аутентификации изоединять переменную среды (например, если она существует в командной строке: экспорт openai_api="123456abcdefg789")
3. Запустите программуstreamlit. связанный streamlit из更多информация可ксуществовать Чтодокументсередина找到。
Как только все будет обработано и интерфейс запущен и заработает, вы можете начать задавать вопросы о Elastic Официальный документизвопрос.
Спросите «Покажи me the API call for an inference процессор" теперь будет возвращать API вызовизпримери有关Конфигурациянастраиватьизинформация。
Спросите о новых интеграциях, добавляемых в Elastic Agent изшаг:
Как уже говорилось ранее, допускается ChatGPT Один из рисков ответов на вопросы, основанных исключительно на обученных данных, заключается в том, что это имеет тенденцию создавать иллюзию неправильных ответов. Одной из целей проекта является ChatGPT Предоставьте данные с нужной информацией и позвольте им сформулировать ответ.
Поэтому, когда мы даем ChatGPT Что происходит, когда издокумент не содержит правильной информации? Например, попросите его рассказать вам, как построить лодку (Эластик из Официальный документ не содержит такого содержания):
когда ChatGPT Если не удается найти ответ на вопрос, мы предоставляем документ, он возвращается к нашим быстрым инструкциям и просто сообщает пользователю, что не может ответить на вопрос.
существуют В этом примере,Мы показываем, насколько сильна Воля Elasticsearch: возможности поиска по поиску, генерация модели GPT, последние разработки и интеграция ответов AI.,от И Воля пользовательский опыт продвигает на совершенно новый уровень.
Эти компоненты могут быть настроены в соответствии с вашими конкретными требованиямирукопривод.,И руководить настроенными, чтобы обеспечить наилучшие результаты. Хотя мы используем Elasticвеб-сканер для сбора общедоступных данных.,Но вы не ограничены этим методом. Не стесняйтесь попробовать другие модели встраивания,Особенно те, которые точно настроены под конкретные данные предметной области.
Вы можете опробовать все функции, обсуждаемые в этом блоге, уже сегодня! Чтобы построить свой собственный ElasticDocs GPT опыт,пожалуйстазарегистрироватьсяодинЭластичный пробный аккаунт,Затем查看этотПример базы кодак开始использовать。
Если вы хотите узнать больше о новых возможностях Elasticsearchсуществовать релевантность поиска, вы можете попробовать следующие два: