b186e2f395434ee5f270e51cf50ccbde044b342a
Самописный поисковый агент на основе 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}'
Как добавить документы
- Откройте файл
data/documents.txt. - Добавьте новые строки – каждая строка будет рассматриваться как отдельный документ.
- Перезапустите сервер, чтобы обновления вступили в силу.
Тесты
Тестов в проекте нет, но вы можете быстро проверить работу:
from src.index import SearchAgent
agent = SearchAgent()
print(agent.search("пример", top_k=3))
Лицензия
MIT License
Languages
Python
80.3%
JavaScript
19.7%