kuzakhmetovartur b186e2f395
CI / build (3.1) (push) Has been cancelled
CI / build (3.11) (push) Has been cancelled
CI / build (3.8) (push) Has been cancelled
CI / build (3.9) (push) Has been cancelled
feat: solution for '8. Самописный поисковый агент на основе deep agents from scratch'
2026-06-30 16:35:09 +03:00

Самописный поисковый агент на основе deep agents from scratch

Описание

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

Структура проекта

src/
├── index.py          # Основной код агента и API
data/
└── documents.txt     # Текстовый файл с документами (один документ на строку)
README.md

Важно: файл data/documents.txt должен существовать и содержать хотя бы несколько строк текста. Если его нет, агент не запустится.

Установка

# Создайте виртуальное окружение (рекомендуется)
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate

# Установите зависимости
pip install -U pip
pip install torch transformers fastapi uvicorn pydantic numpy

Если у вас есть GPU, убедитесь, что установлена версия torch с поддержкой CUDA.

Запуск

python src/index.py

Сервер будет доступен по адресу http://0.0.0.0:8000.

API

POST /search

Запрос

{
  "query": "пример запроса",
  "top_k": 5
}
  • query строка запроса.
  • top_k – количество возвращаемых документов (по умолчанию 5).

Ответ

{
  "results": [
    {
      "document": "текст найденного документа",
      "score": 0.8723
    },
    ...
  ]
}

Пример использования

curl -X POST "http://0.0.0.0:8000/search" \
     -H "Content-Type: application/json" \
     -d '{"query":"машинное обучение", "top_k":3}'

Как добавить документы

  1. Откройте файл data/documents.txt.
  2. Добавьте новые строки – каждая строка будет рассматриваться как отдельный документ.
  3. Перезапустите сервер, чтобы обновления вступили в силу.

Тесты

Тестов в проекте нет, но вы можете быстро проверить работу:

from src.index import SearchAgent

agent = SearchAgent()
print(agent.search("пример", top_k=3))

Лицензия

MIT License

S
Description
BroJS: 8. Самописный поисковый агент на основе deep agents from scratch
Readme MIT 102 KiB
Languages
Python 80.3%
JavaScript 19.7%