Представьте, что вы общаетесь с моделью ИИ, скажем, в ChatGPT, и спрашиваете ее: «Кто выиграл чемпионат НБА в этом году?». Можно ожидать немедленного и точного ответа, но есть одна загвоздка. Данные обучения для ChatGPT распространяются только до сентября 2021 года, и после этого он ничего не знает о мире. Таким образом, он может либо сделать предположение на основе данных, на которых он обучался, либо сказать вам, что он не знает.

Но что, если бы у ChatGPT был способ получить доступ к актуальной информации и дать точные ответы даже на вопросы о недавних событиях? Именно здесь вступает в игру взаимодействие между агентами ИИ, такими как LangChain, и внешними инструментами, такими как Wikipedia. В этом блоге мы углубимся в то, как LangChain использует эти инструменты для получения внешней информации и как они взаимодействуют с GPT.

Основы: GPT и LangChain

GPT — это языковая модель на основе преобразователя, разработанная OpenAI. Он обучен на обширном корпусе текстовых данных и может генерировать связные и контекстуально релевантные предложения. Однако GPT по своей природе не имеет возможности взаимодействовать с внешними базами данных или инструментами.

Здесь на помощь приходит агент ИИ, такой как LangChain. LangChain может загружать различные инструменты, включая Wikipedia, и использовать их для получения внешней информации. Агент взаимодействует с GPT, предоставляя ему необходимую информацию для генерации ответов.

Процесс взаимодействия

Давайте разберем процесс взаимодействия между агентом ИИ, GPT и внешним инструментом, таким как Википедия.

Шаг 1: Пользовательский запрос

Процесс начинается с запроса пользователя. Например, пользователь может спросить: «Кто выиграл чемпионат НБА в этом году?».

Шаг 2. Обработка GPT и решение об использовании внешнего инструмента

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

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

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

Основываясь на предложении GPT или собственных алгоритмах принятия решений, агент ИИ решает использовать внешний инструмент для получения необходимой информации. В нашем примере агент может решить использовать инструмент Википедии для поиска чемпионата НБА.

Шаг 3: Взаимодействие с внешним инструментом

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

Инструмент Википедии использует векторную базу данных для обработки запроса. База данных векторов — это тип базы данных, в которой для представления данных используются векторы или математические объекты, имеющие величину и направление. Это позволяет эффективно и точно искать большие объемы данных.

Например, инструмент Википедии может преобразовать запрос «Чемпионат НБА» в вектор, используя процесс, называемый векторизацией. Затем этот вектор сравнивается с векторами всех статей в базе данных Википедии. Сравнение выполняется с использованием косинусного сходства. Статья/абзац с наибольшим косинусным сходством с вектором запроса считается наиболее релевантной и возвращается в качестве результата.

Шаг 4: Обработка полученной информации

Агент ИИ получает информацию из Википедии. Затем он обрабатывает эту информацию и подготавливает ее к отправке в GPT. Это может включать форматирование информации или извлечение соответствующих частей.

Например, агент ИИ может извлечь соответствующее предложение, такое как «Денвер Наггетс — победители чемпионата НБА 2023 года», и отформатировать его так: «Ответьте на вопрос на основе следующей информации. «Денвер Наггетс» — победители чемпионата НБА 2023 года», отправьте это в GPT.

Шаг 5. GPT формирует окончательный ответ

Агент ИИ отправляет полученную информацию в GPT. GPT обрабатывает эту информацию и формирует окончательный ответ. В нашем примере GPT может сгенерировать такой ответ, как «Denver Nuggets — победители чемпионата NBA 2023 года».

Шаг 6: Пользователь получает ответ

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

Реализация процесса с помощью LangChain

С LangChain реализовать описанные выше шаги очень просто. Вот пример кода.

Когда мы не взаимодействуем с внешними источниками:

import os
from langchain.llms import OpenAI

os.environ['OPENAI_API_KEY'] = "XXXXXX" # Put your own openai api key here
llm = OpenAI(temperature=0)
prompt = "Which team is the winner of NBA 2023?"

Выход:

It is impossible to predict the winner of the NBA 2023 season at this time.

Когда мы загружаем инструмент Wikipedia:

import os
from langchain.llms import OpenAI
from langchain.agents import load_tools, initialize_agent

os.environ['OPENAI_API_KEY'] = "XXXXXX" # Put your own openai api key here
llm = OpenAI(temperature=0)
prompt = "Which team is the winner of NBA 2023?"

tools = load_tools(["wikipedia"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
agent.run(prompt)

Выход:

> Entering new AgentExecutor chain...
 I need to find out who won the NBA championship in 2023
Action: Wikipedia
Action Input: NBA 2023
Observation: Page: 2023 NBA Summer League
Summary: The 2023 NBA Summer League (branded as NBA 2K24 Summer League 2023 for sponsorship reasons) is the off-season competition held by the National Basketball Association (NBA) primarily at the Thomas and Mack Center and Cox Pavilion in Las Vegas, Nevada on the campus of University of Nevada, Las Vegas from July 7 to 17, 2023. The summer league consisted of the California Classic, Salt Lake City Summer League, and the Las Vegas NBA Summer League.



Page: 2023 NBA Finals
Summary: The 2023 NBA Finals was the championship series of the National Basketball Association (NBA)'s 2022–23 season and conclusion to the season's playoffs. The best-of-seven playoffs was played between the Eastern Conference champion Miami Heat and the Western Conference champion Denver Nuggets. The series started on June 1, and concluded in a Denver victory on June 12.The Nuggets defeated the Heat in four of five games, winning their first championship in franchise history after 47 seasons in the NBA. Denver's Nikola Jokić was unanimously voted the NBA Finals Most Valuable Player (MVP), after averaging 30.2 points, 14.0 rebounds, 7.2 assists, and 1.4 blocks while shooting 58.3% from the field and 42.1% from the 3-point line. Jokić is the lowest-selected player to ever win Finals MVP, being the 41st pick of the 2014 NBA draft. This marked the first NBA Finals appearance for Denver. This was also the second Finals to feature a No. 8 seed, along with the 1999 NBA Finals.

Page: 2023 NBA playoffs
Summary: The 2023 NBA playoffs was the postseason tournament of the National Basketball Association's 2022–23 season. The playoffs began on April 15 and concluded on June 12 with the Denver Nuggets winning the 2023 NBA Finals.
Thought: I now know the final answer
Final Answer: The Denver Nuggets are the winners of the 2023 NBA championship.

> Finished chain.
The Denver Nuggets are the winners of the 2023 NBA championship.

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