main
8. Самописный поисковый агент на основе deep agents from scratch
Описание проекта
В этом проекте реализован самописный поисковый агент с использованием библиотеки LangChain и OpenAI LLM.
Агент умеет:
- Принимать запрос от пользователя через консоль.
- Искать нужную информацию в интернете (через встроенные инструменты LangChain).
- Создавать виртуальные файлы, заполняя их содержимым найденной информации.
- Выводить содержимое файлов в красивом формате с помощью
rich. - Сохранять созданные файлы на диск.
Проект демонстрирует практическое применение deep agents – агентов, которые могут использовать внешние инструменты и сохранять промежуточные результаты в виде файлов.
Предварительные требования
| Пакет | Версия |
|---|---|
| Python | 3.10+ |
| langchain | ≥0.1.0 |
| langchain-openai | ≥0.1.0 |
| questionary | ≥1.10.0 |
| rich | ≥13.0.0 |
Важно: Для работы с OpenAI понадобится API‑ключ, который можно получить на openai.com.
Установите переменную окруженияOPENAI_API_KEYперед запуском.
Установка
# 1. Клонируйте репозиторий (или скачайте файлы)
git clone https://github.com/<ваш-аккаунт>/deep-agent-search.git
cd deep-agent-search
# 2. Создайте виртуальное окружение (рекомендовано)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 3. Установите зависимости
pip install -r requirements.txt
requirements.txt содержит:
langchain>=0.1.0
langchain-openai>=0.1.0
questionary>=1.10.0
rich>=13.0.0
Запуск
# Установите переменную окружения с вашим ключом OpenAI
export OPENAI_API_KEY="sk-..."
# Запустите скрипт
python solution.py
После запуска вы увидите интерактивный запрос:
Введите ваш поисковый запрос:
Вводите любой вопрос, например: Какой самый быстрый млекопитающий?.
Агент выполнит поиск, создаст виртуальный файл с ответом и отобразит его содержимое. Далее будет предложено сохранить файлы на диск.
Пример работы
$ python solution.py
Введите ваш поисковый запрос: Какой самый быстрый млекопитающий?
[+] Ищу информацию...
[+] Создаю виртуальный файл "fastest_mammal.txt"...
Содержимое файла:
----------------------------------------
Самым быстрым млекопитающим считается гепард (Acinonyx jubatus). Он способен развивать скорость до 120 км/ч на коротких дистанциях.
----------------------------------------
Хотите сохранить файлы на диск? [y/N]: y
Файл сохранён: ./fastest_mammal.txt
Как это работает
- LangChain управляет агентом и инструментами поиска (например,
SerpAPI). - ChatOpenAI отвечает за генерацию текста и интерпретацию запросов.
- questionary обеспечивает интерактивный ввод/вывод в консоли.
- rich форматирует вывод, делая его более читаемым.
Возможные улучшения
- Добавить поддержку нескольких языков.
- Интегрировать другие источники данных (Wikipedia API, DuckDuckGo и т.д.).
- Сохранять файлы в формате Markdown или PDF.
- Реализовать кэширование результатов для ускорения повторных запросов.
Лицензия
MIT License – см. файл LICENSE.
Description
Languages
Python
100%