AI

Используйте LlamaIndex для создания агентов искусственного интеллекта с веб-доступом к данным

Узнайте, как создавать агентов искусственного интеллекта с навыками работы с веб-данными в режиме реального времени с помощью LlamaIndex и Bright Data – от настройки до интеграции в ваши проекты на Python.
1 мин. чтения
Build AI Agents with LlamaIndex & Bright Data

В этом руководстве вы узнаете:

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

Давайте погрузимся!

Что такое LlamaIndex?

LlamaIndex – это фреймворк данных на Python с открытым исходным кодом для создания приложений на основе LLM.

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

LlamaIndex – одна из самых быстрорастущих библиотек для создания агентов искусственного интеллекта, имеющая более 42 тысяч звезд на GitHub:

Эволюция звезды GitHub для LlamaIndex

Интеграция данных в агента искусственного интеллекта LlamaIndex

По сравнению с другими технологиями создания ИИ-агентов, LlamaIndex фокусируется на данных. Именно поэтому в репозитории проекта на GitHub LlamaIndex определяется как “фреймворк данных”.

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

Чтобы решить эту проблему, LlamaIndex предлагает поддержку инструментов, которые:

  • Обеспечьте коннекторы данных для получения данных из API, PDF-файлов, документов Word, баз данных SQL, веб-страниц и т. д.
  • Структурируйте данные с помощью индексов, графиков и других форматов, оптимизированных для использования в LLM.
  • Включите расширенный поиск, чтобы ввести запрос LLM и получить ответ, дополненный знаниями, с учетом соответствующего контекста.
  • Поддержка бесшовной интеграции с внешними фреймворками, такими как LangChain, Flask, Docker и ChatGPT.

Другими словами, создание на основе LlamaIndex обычно означает объединение основной библиотеки с набором плагинов/интеграций, адаптированных под ваш случай использования. Например, рассмотрим сценарий использования LlamaIndex для веб-скреппинга.

В настоящее время Всемирная паутина является крупнейшим и наиболее полным источником данных на планете. Поэтому в идеале агент ИИ должен иметь к нему доступ, чтобы обосновывать свои ответы и выполнять задачи более эффективно. Именно здесь на помощь приходят инструменты LlamaIndex Bright Data!

С помощью инструментов Bright Data ваш агент искусственного интеллекта LlamaIndex получит дополнительные возможности:

  • Функции веб-скрапинга в режиме реального времени с любой веб-страницы.
  • Структурированные данные о продуктах и платформах с таких сайтов, как Amazon, LinkedIn, Zillow, Facebook и многих других.
  • Возможность получения результатов поисковых систем по любому поисковому запросу.
  • Визуальный захват данных с помощью полностраничных скриншотов, полезных для подведения итогов или визуального анализа.

Узнайте, как работает эта интеграция, в следующей главе!

Постройте агент LlamaIndex, который может искать информацию в Интернете с помощью инструментов Bright Data

В этом пошаговом разделе вы узнаете, как использовать LlamaIndex для создания ИИ-агента на Python, который подключается к инструментам Bright Data.

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

Выполните следующие шаги, чтобы создать своего ИИ-агента на основе Bright Data с помощью LlamaIndex!

Пререквизиты

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

  • На вашем компьютере установленPython 3.9 или выше (рекомендуется последняя версия).
  • Ключ API Bright Data для интеграции с BrightDataToolSpec.
  • API-ключ от поддерживаемого LLM-провайдера (в этом руководстве мы будем использовать Gemini, который является бесплатным для использования через API. Не стесняйтесь использовать любого провайдера, поддерживаемого LlamaIndex).

Не волнуйтесь, если у вас еще нет ключа API Gemini или Bright Data. Мы расскажем вам о том, как их создать, в следующих шагах.

Шаг #1: Создайте свой проект Python

Начните с открытия терминала и создания новой папки для вашего проекта ИИ-агента LlamaIndex:

mkdir llamaindex-bright-data-agent

llamaindex-bright-data-agent/ будет содержать код для вашего агента искусственного интеллекта с возможностями поиска данных в Интернете на основе Bright Data.

Затем перейдите в каталог проекта и создайте в нем виртуальное окружение:

cd llamaindex-bright-data-agent
python -m venv venv

Теперь откройте папку с проектом в вашей любимой среде разработки Python. Мы рекомендуем Visual Studio Code (с расширением Python) или PyCharm Community Edition.

Создайте новый файл agent.py в корне папки. Теперь структура вашего проекта должна выглядеть следующим образом:

llamaindex-bright-data-agent/
├── venv/
└── agent.py

В терминале активируйте виртуальную среду. В Linux или macOS выполните эту команду:

source venv/bin/activate

Аналогично, в Windows выполните команду:

venv/Scripts/activate

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

pip install python-dotenv llama-index-tools-brightdata llama-index-llms-gemini llama-index

Примечание: Мы устанавливаем llama-index-llms-gemini, потому что в этом руководстве в качестве провайдера LLM используется Gemini. Если вы планируете использовать другой провайдер, обязательно установите соответствующую интеграцию LlamaIndex для него.

Все готово! Теперь у вас есть среда разработки на Python, готовая к созданию агента искусственного интеллекта с помощью инструментов LlamaIndex и Bright Data.

Шаг #2: Настройка чтения переменных окружения

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

Чтобы упростить работу с переменными окружения, установите библиотеку python-dotenv. В активированной виртуальной среде выполните команду:

pip install python-dotenv

Затем откройте файл agent.py и добавьте следующие строки в верхней части, чтобы загрузить переменные из файла .env:

from dotenv import load_dotenv

load_dotenv()

Функция load_dotenv() ищет файл .env в корневом каталоге проекта и автоматически загружает его значения в окружение.

Теперь создайте файл .env рядом с файлом agent.py, например, так:

llamaindex-bright-data-agent/
├── venv/
├── .env # <-------------
└── agent.py

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

Шаг № 3: Начните работу с Bright Data

На данный момент BrightDataToolSpec открывает следующие инструменты в LlamaIndex:

  • scrape_as_markdown: Соскребает необработанное содержимое любой веб-страницы и возвращает его в формате Markdown.
  • get_screenshot: Делает снимок экрана веб-страницы на всю страницу и сохраняет его локально.
  • search_engine: Выполняет поисковый запрос в таких поисковых системах, как Google, Bing, Yandex и других. Возвращает весь SERP или JSON-структурированную версию этих данных.
  • web_data_feed: Получает структурированные JSON-данные с известных платформ.

Первые три инструмента – scrape_as_markdown, get_screenshot и search_engine - используют API Web Unlocker от Bright Data. Это решение открывает доступ к веб-скраппингу и скриншотам с любого сайта, даже со строгой защитой от ботов. Кроме того, оно поддерживает доступ к веб-данным SERP всех основных поисковых систем.

В отличие от этого, web_data_feed использует API Web Scraper компании Bright Data. Эта конечная точка возвращает предварительно структурированные данные из заранее определенного списка поддерживаемых платформ, таких как Amazon, Instagram, LinkedIn, ZoomInfo и др.

Чтобы интегрировать эти инструменты, вам потребуется:

  1. Включите решение Web Unlocker на панели управления Bright Data.
  2. Получите свой токен Bright Data API, который предоставляет доступ к API Web Unlocker и Web Scraper.

Выполните следующие шаги, чтобы завершить настройку!

Во-первых, если у вас еще нет учетной записи Bright Data, перейдите к ее созданию (). Если у вас уже есть учетная запись, войдите в систему и откройте панель управления. Нажмите кнопку “Получить прокси-продукты”:

Нажав кнопку "Получить прокси-продукты" в своей учетной записи Bright Data

Вы будете перенаправлены на страницу “Прокси и инфраструктура скрапинга”:

Обратите внимание на зону API Web Unlocker

Если вы уже видите активную зону API Web Unlocker (как показано выше), значит, вы готовы к работе. Имя зоны(в данном случаеunlocker) очень важно, так как оно понадобится вам позже в коде.

Если у вас еще нет такой зоны, прокрутите страницу вниз до раздела “Web Unlocker API” и нажмите “Создать зону”:

Нажмите кнопку "Создать зону" на карточке "Web Unlocker API".

Дайте новой зоне имя, например unlocker, включите расширенные функции для повышения производительности и нажмите “Добавить”:

Настройка новой зоны API Web Unlocker

После создания зоны вы будете перенаправлены на страницу ее конфигурации:

Страница зоны API Web Unlocker "unlocker"

Убедитесь, что тумблер активации установлен в положение “Активно”. Это подтверждает, что зона правильно настроена и готова к использованию.

Далее следуйте официальному руководству Bright Data, чтобы сгенерировать ключ API. Как только он будет получен, надежно сохраните его в файле .env следующим образом:

BRIGHT_DATA_API_KEY="<YOUR_BRIGHT_DATA_API_KEY>"

Замените на фактическое значение ключа API.

Потрясающе! Пора интегрировать инструменты Bright Data в сценарий агента LlamaIndex.

Шаг #4: Установка и настройка инструментов для работы с яркими данными LlamaIndex

В файле agent.py начните с загрузки ключа Bright Data API из среды:

BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")

Не забудьте импортировать os из стандартной библиотеки Python:

import os

Активировав виртуальную среду, установите пакет инструментов LlamaIndex Bright Data:

pip install llama-index-tools-brightdata

В файле agent.py импортируйте класс BrightDataToolSpec:

from llama_index.tools.brightdata import BrightDataToolSpec

Затем создайте экземпляр BrightDataToolSpec, используя свой ключ API и имя зоны:

brightdata_tool_spec = BrightDataToolSpec(
    api_key=BRIGHT_DATA_API_KEY,
    zone="<BRIGHT_DATA_WEB_UNLOCKER_API_ZONE_NAME>", # Replace with the actual value
    verbose=True, # Useful while developing
)

Замените на имя зоны API Web Unlocker, которую вы настроили ранее. В данном случае это unlocker:

brightdata_tool_spec = BrightDataToolSpec(
    api_key=BRIGHT_DATA_API_KEY,
    zone="unlocker",
    verbose=True,
)

Обратите внимание, что для параметра verbose установлено значение True. Это полезно при разработке, так как выводит полезную информацию о том, что происходит, когда агент LlamaIndex делает запросы через Bright Data.

Затем преобразуйте спецификацию инструментов в список инструментов, которые можно использовать в вашем агенте:

brightdata_tools = brightdata_tool_spec.to_tool_list()

Фантастика! Инструменты Bright Data теперь интегрированы и готовы к работе с вашим агентом LlamaIndex. Следующим шагом будет подключение вашего LLM.

Шаг #5: Подготовьте модель LLM

Чтобы использовать Gemini (выбранный провайдер LLM), начните с установки необходимого пакета интеграции:

pip install llama-index-llms-google-genai

Затем импортируйте класс GoogleGenAI из установленного пакета:

from llama_index.llms.google_genai import GoogleGenAI

Теперь инициализируйте Gemini LLM следующим образом:

llm = GoogleGenAI(
    model="models/gemini-2.5-flash",
)

В этом примере мы используем модель gemini-2.5-flash. При необходимости вы можете заменить ее на любую другую поддерживаемую модель Gemini.

За кулисами GoogleGenAI автоматически ищет переменную окружения с именем GEMINI_API_KEY. Чтобы установить ее, откройте файл .env и добавьте следующую строку:

GEMINI_API_KEY="<YOUR_GEMINI_API_KEY>"

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

Примечание: Если вы предпочитаете использовать другой LLM-провайдер, LlamaIndex поддерживает множество вариантов. Просто обратитесь к официальной документации LlamaIndex за инструкциями по настройке.

Отличная работа! Теперь у вас есть все основные компоненты для создания агента LlamaIndex с возможностью получения данных из Интернета.

Шаг #6: Создание агента LlamaIndex

Сначала установите основной пакет LlamaIndex:

pip install  llama-index

Затем в файле agent.py импортируйте класс FunctionCallingAgent:

from llama_index.core.agent import FunctionCallingAgent

FunctionCallingAgent – это особый тип агента LlamaIndex AI, который может взаимодействовать с внешними инструментами, такими как инструменты Bright Data, которые вы настроили ранее.

Инициализируйте агента с помощью инструментов LLM и Bright Data следующим образом:

agent = FunctionCallingAgent.from_tools(
    tools=brightdata_tools,
    llm=llm,
    verbose=True, # Useful while developing
)

Это устанавливает агент искусственного интеллекта, который обрабатывает пользовательские данные с помощью вашего LLM и может вызывать инструменты Bright Data для получения необходимой информации. Флаг verbose=True удобен при разработке, так как показывает, какие инструменты использует агент для каждого запроса.

Отлично! Интеграция LlamaIndex + Bright Data завершена. Следующий шаг – создание REPL для интерактивного использования.

Шаг #7: Реализация REPL

REPL расшифровывается как “Read-Eval-Print Loop” и представляет собой интерактивный шаблон программирования, в котором вы можете вводить команды, получать их оценку и сразу же видеть результаты. В этом контексте вы:

  1. Введите команду или задание.
  2. Позвольте агенту ИИ оценить и обработать его.
  3. Смотрите ответ.

Этот цикл продолжается бесконечно, пока вы не наберете "exit".

При работе с агентами ИИ использование REPL оказывается более практичным, чем отправка изолированных запросов. Причина в том, что он позволяет агенту LlamaIndex поддерживать контекст сессии, улучшая свои ответы за счет обучения на основе предыдущих взаимодействий.

Теперь реализуйте логику REPL в файле agent.py, как показано ниже:

# Implement the REPL interaction loop
print("Gemini-powered Agent with Bright Data tools for web data retrieval. Type 'exit' to quit.\n")

while True:
    # Read the user request for the AI agent from the CLI
    request = input("Request -> ")

    # Terminate the execution if the user type "exit"
    if request.strip().lower() == "exit":
        print("\nAgent terminated")
        break

    try:
        # Execute the request
        response = agent.chat(request)
        print(f"\nResponse ->:\n{response}\n")
    except Exception as e:
        print(f"\nError: {str(e)}\n")

Это REPL:

  1. Считывает ввод пользователя из командной строки с помощью функции input().
  2. Оценивает его агент LlamaIndex, работающий на базе Gemini и Bright Data, с помощью agent.chat().
  3. Выводит ответ на консоль.

Потрясающе! Агент искусственного интеллекта LlamaIndex готов.

Шаг #8: Соберите все вместе и запустите агента

Вот что теперь должен содержать ваш файл agent.py:

from dotenv import load_dotenv
import os
from llama_index.tools.brightdata import BrightDataToolSpec
from llama_index.llms.google_genai import GoogleGenAI
from llama_index.core.agent import FunctionCallingAgent

# Load environment variables from the .env file
load_dotenv()

# Read the Bright Data API key from the envs
BRIGHT_DATA_API_KEY = os.getenv("BRIGHT_DATA_API_KEY")

# Set up the Bright Data Tools
brightdata_tool_spec = BrightDataToolSpec(
    api_key=BRIGHT_DATA_API_KEY,
    zone="unlocker",
    verbose=True, # Useful while developing
)
brightdata_tools = brightdata_tool_spec.to_tool_list()

# Configure the connection to Gemini
llm = GoogleGenAI(
    model="models/gemini-2.5-flash",
)

# Create the LlamaIndex agent powered by Gemini and connected to Bright Data tools
agent = FunctionCallingAgent.from_tools(
    tools=brightdata_tools,
    llm=llm,
    verbose=True, # Useful while developing
)

# Implement the REPL interaction loop
print("Gemini-powered Agent with Bright Data tools for web data retrieval. Type 'exit' to quit.\n")

while True:
    # Read the user request for the AI agent from the CLI
    request = input("Request -> ")

    # Terminate the execution if the user type "exit"
    if request.strip().lower() == "exit":
        print("\nAgent terminated")
        break

    try:
        # Execute the request
        response = agent.chat(request)
        print(f"\nResponse ->:\n{response}\n")
    except Exception as e:
        print(f"\nError: {str(e)}\n")

Запустите сценарий агента с помощью следующей команды:

python agent.py

Когда скрипт запустится, вы увидите что-то вроде этого:

REPL вашего агента выводится в терминале

Введите в терминал следующий запрос:

Generate a report summarizing the most important information about the product "Death Stranding 2" using data from its Amazon page: "https://www.amazon.com/Death-Stranding-2-Beach-PlayStation-5/dp/B0F19GPDW3/"

Результат будет таким:

Как агент искусственного интеллекта LlamaIndex + Bright Data решает эту задачу

Это было довольно быстро, так что давайте разберемся, что произошло:

  1. Агент определяет, что для выполнения задачи требуются данные о товарах Amazon, и вызывает инструмент web_data_feed с такими входными данными: {"source_type": "amazon_product", "url": "https://www.amazon.com/Death-Stranding-2-Beach-PlayStation-5/dp/B0F19GPDW3/"}
  2. Этот инструмент асинхронно запрашивает API Amazon Web Scraper компании Bright Data для получения структурированных данных о продуктах.
  3. После получения ответа в формате JSON агент передает его в Gemini LLM.
  4. Близнецы обрабатывают свежие данные и составляют четкое и точное резюме.

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

В этом случае агент ИИ вернулся:

Here's a summary report for "Death Stranding 2: On The Beach - PS5" based on its Amazon product page:

**Product Report: Death Stranding 2: On The Beach - PS5**

*   **Title:** Death Stranding 2: On The Beach - PS5
*   **Brand/Manufacturer:** Sony Interactive Entertainment
*   **Price:** $69.99 USD
*   **Release Date:** June 26, 2025
*   **Availability:** Available for pre-order.

**Description:**
"Death Stranding 2: On The Beach" is an upcoming PlayStation 5 title from legendary game creator Hideo Kojima. Players will embark on a new journey with Sam and his companions to save humanity from extinction, traversing a world filled with otherworldly enemies and obstacles. The game explores the question of human connection and promises to once again change the world through its unique narrative and gameplay.

**Key Features:**
*   **Pre-order Bonus:** Includes Quokka Hologram, Battle Skeleton Silver (LV1,LV2,LV3), Boost Skeleton Silver (LV1,LV2,LV3), and Bokka Silver (LV1,LV2,LV3).
*   **Open World:** Features large, varied open-world environments with unique challenges.
*   **Gameplay Choices:** Offers multiple approaches to combat and stealth, allowing players to choose between aggressive tactics, sneaking, or avoiding danger.
*   **New Story:** Continues the narrative from the original Death Stranding, following Sam on a fresh journey with unexpected twists.
*   **Player Interaction:** Player actions can influence how other players interact with the game's world.

**Category & Ranking:**
*   **Categories:** Video Games, PlayStation 5, Games
*   **Best Sellers Rank:** #10 in Video Games, #1 in PlayStation 5 Games

**Sales Performance:**
*   **Bought in past month:** 7,000 units

Обратите внимание, что агент ИИ не смог бы достичь такого результата без инструментов Bright Data. Это происходит потому, что:

  1. Выбранный продукт Amazon – это новый продукт, а LLM не обучаются на таких свежих данных.
  2. Магистранты не смогут самостоятельно скреативить или получить доступ к веб-страницам в режиме реального времени.
  3. Скрап товаров Amazon, как известно, затруднен из-за строгих систем защиты от ботов, таких как пресловутая Amazon CAPTCHA.

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

И вуаля! Теперь у вас есть агент LlamaIndex AI с первоклассными функциями доступа к веб-данным, работающий на основе интеграции с Bright Data.

Заключение

В этой статье вы узнали, как использовать LlamaIndex для создания агента искусственного интеллекта с доступом к веб-данным в режиме реального времени благодаря инструментам Bright Data.

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

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

Создайте бесплатную учетную запись Bright Data и начните изучать наши инструменты для работы с данными, готовыми к искусственному интеллекту, уже сегодня!