В этом руководстве вы узнаете:
- Что такое LlamaIndex и почему он так широко используется.
- Что делает его уникальным для разработки ИИ-агентов, так это встроенная поддержка интеграции данных.
- Как использовать LlamaIndex для создания агента искусственного интеллекта с возможностью поиска данных как на общих сайтах, так и в специальных поисковых системах.
Давайте погрузимся!
Что такое LlamaIndex?
LlamaIndex – это фреймворк данных на Python с открытым исходным кодом для создания приложений на основе LLM.
Он поможет вам создать готовые к производству рабочие процессы и агентов искусственного интеллекта, способных находить и извлекать необходимую информацию, синтезировать выводы, создавать подробные отчеты, выполнять автоматические действия и многое другое.
LlamaIndex – одна из самых быстрорастущих библиотек для создания агентов искусственного интеллекта, имеющая более 42 тысяч звезд на GitHub:
Интеграция данных в агента искусственного интеллекта 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 и др.
Чтобы интегрировать эти инструменты, вам потребуется:
- Включите решение Web Unlocker на панели управления Bright Data.
- Получите свой токен Bright Data API, который предоставляет доступ к API Web Unlocker и Web Scraper.
Выполните следующие шаги, чтобы завершить настройку!
Во-первых, если у вас еще нет учетной записи Bright Data, перейдите к ее созданию (). Если у вас уже есть учетная запись, войдите в систему и откройте панель управления. Нажмите кнопку “Получить прокси-продукты”:
Вы будете перенаправлены на страницу “Прокси и инфраструктура скрапинга”:
Если вы уже видите активную зону API Web Unlocker (как показано выше), значит, вы готовы к работе. Имя зоны(
в данном случаеunlocker
) очень важно, так как оно понадобится вам позже в коде.
Если у вас еще нет такой зоны, прокрутите страницу вниз до раздела “Web Unlocker API” и нажмите “Создать зону”:
Дайте новой зоне имя, например 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” и представляет собой интерактивный шаблон программирования, в котором вы можете вводить команды, получать их оценку и сразу же видеть результаты. В этом контексте вы:
- Введите команду или задание.
- Позвольте агенту ИИ оценить и обработать его.
- Смотрите ответ.
Этот цикл продолжается бесконечно, пока вы не наберете "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:
- Считывает ввод пользователя из командной строки с помощью функции
input()
. - Оценивает его агент LlamaIndex, работающий на базе Gemini и Bright Data, с помощью
agent.chat()
. - Выводит ответ на консоль.
Потрясающе! Агент искусственного интеллекта 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
Когда скрипт запустится, вы увидите что-то вроде этого:
Введите в терминал следующий запрос:
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/"
Результат будет таким:
Это было довольно быстро, так что давайте разберемся, что произошло:
- Агент определяет, что для выполнения задачи требуются данные о товарах Amazon, и вызывает инструмент
web_data_feed
с такими входными данными:{"source_type": "amazon_product", "url": "https://www.amazon.com/Death-Stranding-2-Beach-PlayStation-5/dp/B0F19GPDW3/"}
- Этот инструмент асинхронно запрашивает API Amazon Web Scraper компании Bright Data для получения структурированных данных о продуктах.
- После получения ответа в формате JSON агент передает его в Gemini LLM.
- Близнецы обрабатывают свежие данные и составляют четкое и точное резюме.
Другими словами, получив подсказку, агент разумно выбирает лучший инструмент. В данном случае это 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. Это происходит потому, что:
- Выбранный продукт Amazon – это новый продукт, а LLM не обучаются на таких свежих данных.
- Магистранты не смогут самостоятельно скреативить или получить доступ к веб-страницам в режиме реального времени.
- Скрап товаров Amazon, как известно, затруднен из-за строгих систем защиты от ботов, таких как пресловутая Amazon CAPTCHA.
Важно: Если вы попробуете другие запросы, вы увидите, что агент автоматически выбирает и использует соответствующие настроенные инструменты для получения данных, необходимых ему для создания обоснованных ответов.
И вуаля! Теперь у вас есть агент LlamaIndex AI с первоклассными функциями доступа к веб-данным, работающий на основе интеграции с Bright Data.
Заключение
В этой статье вы узнали, как использовать LlamaIndex для создания агента искусственного интеллекта с доступом к веб-данным в режиме реального времени благодаря инструментам Bright Data.
Такая интеграция дает вашему агенту возможность получать публичный веб-контент в формате Markdown, структурированном формате JSON и даже в виде скриншотов. Это касается как веб-сайтов, так и поисковых систем.
Помните, что представленная здесь интеграция – лишь базовый пример. Если вы планируете создать более продвинутых агентов, вам понадобятся надежные инструменты для получения, проверки и преобразования живых веб-данных. Именно для этого создана инфраструктура искусственного интеллекта Bright Data.
Создайте бесплатную учетную запись Bright Data и начните изучать наши инструменты для работы с данными, готовыми к искусственному интеллекту, уже сегодня!