Мои социальные каналы полны генеративного ИИ, поэтому, имея в виду fomo, я попытаюсь создать собственного чат-бота с использованием API OpenAI и дополненного пользовательскими данными.

Вариантов слишком много, поэтому в этом упражнении нужно было найти инструменты, чтобы выбрать и соединить их вместе. Я понимаю только основы, так что это пример «привет, мир».

Обзор

Основная проблема заключается в том, как заставить ChatGPT отвечать на вопросы, о которых он не знает? Как и следовало ожидать, пользовательские данные необходимо сделать доступными, проиндексировать, а затем включить в запросы. Ниже показаны эти шаги.

Предпосылка

Индексирование пользовательских данных

Этот процесс известен как создание встраивания, и на выходе получается несколько очень больших векторных файлов. Примечание. Для этой демонстрации я использую общедоступные данные из публичных документов VMware. Он перейдет на OpenAI, поэтому будьте осторожны с тем, что вы используете. Несмотря на то, что ChatGPT является общедоступным, он не имеет этого, поэтому хорошо работает для моего примера. Я использую некоторые файлы PDF, но это может быть любой формат.

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

См. build_index.py, где LlamaIndex вызывает вызовы встраивания OpenAI, а затем сохраняет файлы. Исходные PDF-файлы находятся в local-data, а выходные данные индекса сохраняются в local-index в виде векторных файлов.

Чат-бот

Было бы достаточно простой командной строки, но, учитывая простоту некоторых из этих библиотек, у меня есть интерфейс чата с использованием Gradio. See local-index-chat.py Он загружает созданный ранее локальный индекс и использует LangChain в сочетании с OpenAI для предоставления диалогового интерфейса.

В вашем терминале вы увидите, как он выполняется и когда он решит использовать «инструмент», который является вашим локальным индексом.

> Entering new AgentExecutor chain...
Thought: Do I need to use a tool? No
AI: Hello Rahul! How can I assist you today?

> Finished chain.

> Entering new AgentExecutor chain...
Thought: Do I need to use a tool? Yes
Action: Local Index
Action Input: "cpn vmware"
Observation: 
VMware Cloud Partner Navigator is a unified software-as-a-service (SaaS) delivery platform for Cloud Services Provider partners in the Partner Connect Program. VMware Cloud Partner Navigator simplifies the management and delivery of multi-cloud services and the consumption of infrastructure-as-a-service (IaaS), across an expanding set of cloud endpoints and cross-cloud services. With VMware Cloud Partner Navigator, Cloud Services Providers can bring their VMware cloud estate under a single management umbrella and streamline business operations by getting a unified view and single-sign-on experience across all supported VMware Cloud services and offerings, with the capability to provision cloud resources to end customers from public or private clouds and the option to expand cloud infrastructure on demand.

> Finished chain.

> Entering new AgentExecutor chain...
Thought: Do I need to use a tool? Yes
Action: Local Index
Action Input: "vmware payment method change"
Observation: 
To change the payment method for your Organization, navigate to Billing & Subscriptions > Manage Payment Methods and then add or change a payment method prior to the end of your billing period. You can also select Add Payment Methods and then Confirm to link a PBI account, fund, or credit card in the next screen. To change the default payment method for your Organization, navigate to Manage Payment Methods > Default Payment Method and click Change Default Payment Method. Select an available payment method listed and click Confirm. You can also select Add Payment Methods and then Confirm to link a PBI account, fund, or credit card in the next screen.

> Finished chain.

Нам еще многое предстоит узнать, но я надеюсь, что это поможет вам начать работу!

API-интерфейсы OpenAI

Я занимаюсь облачной коммерцией, поэтому мне всегда интересно, как сервисы монетизируются. OpenAI использует простую модель оплата по мере использования и измеряется сгенерированным ответом — токенами в случае текста. Маркер не обязательно является словом, разделенным пробелом. В качестве механизма токенизации они используют так называемое кодирование пар байтов (BPE). Таким образом, чем больше токенов вы получите, тем дороже это будет стоить. В течение нескольких минут использование оценивается и отображается, так что это впечатляет. Я еще не получил счет, но, учитывая сложность подсчета токенов, мне интересно, как они решают споры о выставлении счетов.

Если эти темы вас интересуют, свяжитесь со мной, и я буду признателен за любой отзыв. Если вы хотите работать над такими проблемами, вы, как правило, также найдете открытые роли! Пожалуйста, обратитесь к LinkedIn.