# Самописный поисковый агент на основе deep agents from scratch ## Описание Это простая реализация поискового агента, использующего трансформерный энкодер для векторизации документов и запросов. Поиск осуществляется по косинусному сходству между векторами. ## Структура проекта ``` src/ ├── index.py # Основной код агента и API data/ └── documents.txt # Текстовый файл с документами (один документ на строку) README.md ``` > **Важно**: файл `data/documents.txt` должен существовать и содержать хотя бы несколько строк текста. Если его нет, агент не запустится. ## Установка ```bash # Создайте виртуальное окружение (рекомендуется) 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. ## Запуск ```bash python src/index.py ``` Сервер будет доступен по адресу `http://0.0.0.0:8000`. ## API ### POST `/search` **Запрос** ```json { "query": "пример запроса", "top_k": 5 } ``` - `query` – строка запроса. - `top_k` – количество возвращаемых документов (по умолчанию 5). **Ответ** ```json { "results": [ { "document": "текст найденного документа", "score": 0.8723 }, ... ] } ``` ## Пример использования ```bash 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. Перезапустите сервер, чтобы обновления вступили в силу. ## Тесты Тестов в проекте нет, но вы можете быстро проверить работу: ```python from src.index import SearchAgent agent = SearchAgent() print(agent.search("пример", top_k=3)) ``` ## Лицензия MIT License