Используем естественный язык, OpenAI, LangChain и пользовательский API CoinDesk

51

12/6/2023

Знали ли вы, что ваши приложения можно сделать более мощными, используя естественный язык (Natural Language Processing, NLP). Когда мы используем телефоны и компьютеры, часто хочется общаться с приложениями так, как будто мы разговариваем с другим человеком.

Вадим Пашаев

Вадим Пашаев

CEO PXSTUDIO_

Используем естественный язык, OpenAI, LangChain и пользовательский API CoinDesk

Обработка естественного языка (NLP) и OpenAI

Знали ли вы, что ваши приложения можно сделать более мощными, используя естественный язык (Natural Language Processing, NLP). Когда мы используем телефоны и компьютеры, часто хочется общаться с приложениями так, как будто мы разговариваем с другим человеком. NLP позволяет приложениям понимать и отвечать на естественном языке, делая использование приложений более интуитивным и удобным для пользователей.

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

Что такое LangChain

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

Для справки

LangChain - это фреймворк, который помогает объединять разные части (такие как LLM, API, поиск документов, сохранение и т.д.) вместе, чтобы можно было делать более сложные приложения на основе языковых моделей.

Объединив LangChain и OpenAI мы можем создать приложения, которые будут не только общаться, но и выполнять какие-либо реальные полезные действия.

Что такое APIChain

APIChain - это класс в LangChain, который позволяет вашему приложению понимать естественный язык и переводить его в вызовы API. Это означает, что вы можете использовать возможности API вашего приложения для предоставления пользователям доступа к данным в режиме реального времени. Представьте себе приложение, которое не требует от пользователей настраивать множество фильтров только для того, чтобы иметь возможность находить данные. Например, на сайте объявлений вам нужно указать фильтры, чтобы сузить область поиска и найти конкретный товар, который вам нужен.

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

Пример: вывод стоимости биткоина исходя из данных API CoinDesk

Давайте воспользуемся классом APIChain от LangChain, чтобы отправить запрос в CoinDesk API и затем вывести ответ на естественном языке. Для этого нам необходимо создать экземпляр OpenAI и вызвать функцию APIChain.fromLLMAndAPIDocs с соответствующими параметрами API.

Мы будем использовать экземпляр класса APIChain от LangChain, чтобы преобразовать текстовую просьбу пользователя о выводе стоимости биткоина в вызов функции CoinDesk API.

Как работает APIChain
Как работает APIChain

После этого CoinDesk вернет нам информацию, которую LangChain обработает и вернет пользователю в формате естественного языка. Например, LangChain может ответить: “Стоимость биткоина в долларах на текущий момент составляет $43,945.1750”.

Результатом работы API является объект JSON. Но мы можем использовать Langchain для извлечения желаемой информации из этого объекта и выдачи ее пользователю в форме естественного языка.

Конечная точка API CoinDesk

Конечная точка API CoinDesk выглядит следующим образом:

GET https://api.coindesk.com/v1/bpi/currentprice.json

Ответом на этот запрос будет объект JSON:

{
  "time": {
    "updated": "Dec 6, 2023 18:53:00 UTC",
    "updatedISO": "2023-12-06T18:53:00+00:00",
    "updateduk": "Dec 6, 2023 at 18:53 GMT"
  },
  "disclaimer": "This data was produced from the CoinDesk Bitcoin Price Index (USD). Non-USD currency data converted using hourly conversion rate from openexchangerates.org",
  "chartName": "Bitcoin",
  "bpi": {
    "USD": {
      "code": "USD",
      "symbol": "$",
      "rate": "43,945.4766",
      "description": "United States Dollar",
      "rate_float": 43945.4766
    },
    "GBP": {
      "code": "GBP",
      "symbol": "£",
      "rate": "36,720.4886",
      "description": "British Pound Sterling",
      "rate_float": 36720.4886
    },
    "EUR": {
      "code": "EUR",
      "symbol": "€",
      "rate": "42,809.3102",
      "description": "Euro",
      "rate_float": 42809.3102
    }
  }
}

Далее напишем код:

// ./index.js
const { OpenAI } = require('langchain/llms/openai')
const { APIChain } = require("langchain/chains")

const openAIApiKey = "sk-..."

const apiSpec = `API documentation:
Base URL: https://api.coindesk.com
Endpoint: https://api.coindesk.com/v1/bpi/currentprice.json
Пример вызова API: /v1/bpi/currentprice.json

Возвращает индекс цен на биткоин (BPI) в режиме реального времени.

ИНСТРУКЦИИ ДЛЯ ОТВЕТА
Ответь пользователю взяв результаты запроса с API. Если данные пусты, так и скажи, что данные не доступны и вы приносите извинения.
Не говори, что ты берешь данные из API. Ответ напиши на русском языке.
`

async function run() {
  const model = new OpenAI({ modelName: "gpt-3.5-turbo-instruct", openAIApiKey })
  const chain = APIChain.fromLLMAndAPIDocs(model, apiSpec)

  const res = await chain.call({
    question: "Сколько стоит сейчас биткоин в долларах?",
  })
  console.log({ res })
}

run()

Для запуска скрипта набираем в терминале:

node index.js

Ниже приведены примеры ответов, которые мы можем получить от LLM:

Ответ от LLM
Ответ от LLM

или

Другой ответ от LLM
Другой ответ от LLM

Использование CoinDesk API в предыдущем примере было всего лишь иллюстрацией. APIChain можно использовать с любым API, который принимает ввод на естественном языке и возвращает данные в структурированном формате. Возможности безграничны, и разработчики могут выбрать интеграцию с любым API, отвечающим их конкретным потребностям.

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

Потенциал APIChain

APIChain обладает огромным потенциалом для широкого применения, помимо простого извлечения информации о стоимости биткоина, вот еще несколько примеров того, как можно использовать APIChain:

Интернет-магазины:

С помощью APIChain компании могли бы позволить клиентам использовать естественный язык для поиска товаров и получения релевантных результатов из API магазина.

Финансы:

Пользователи могли бы задавать вопросы на естественном языке, например “Какова текущая цена акций Amazon?”, а APIChain мог бы использовать соответствующий финансовый API для получения информации и возврата ее в удобочитаемом формате.

Путешествия:

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

Медицина:

APIChain можно использовать для извлечения медицинской информации из различных API-интерфейсов здравоохранения и предоставления персонализированных ответов на запросы пользователей о симптомах, состояниях и методах лечения.

Образование:

APIChain можно использовать для предоставления учащимся персонализированного обучения путем интеграции с различными образовательными API и предоставления ответов на вопросы в режиме реального времени.

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

Использованные ресурсы:

  1. https://js.langchain.com/docs/modules/chains/popular/api
  2. https://www.melvinvivas.com/chatgpt-openai-natural-language-to-api-call
  3. https://github.com/maciokeks/Coindesk-api/blob/main/README.md
  4. https://pxstudio.pw/blog/15-besplatnyh-api-dlya-napisaniya-testovyh-prilozhenij

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Оценка проекта

Хотите быструю оценку Вашего проекта?

Василий Иванов
Максим Насенников
Виктория Мальцева
Vadim Pashaev

Заполните форму справа и наша команда экспертов поможет найти для Вас оптимальное решение вашей идеи или задачи

Есть интересная идея?

И вы очень хотите ее реализовать, пишите нам и получите подробное коммерческое предложение и быструю реализацию