Files
8.-samopisnyy-poiskovyy-age…/README.md
T
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

98 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Самописный поисковый агент на основе 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