https://github.com/idushii/llm_search
ext Mind Search
https://github.com/idushii/llm_search
Last synced: about 1 month ago
JSON representation
ext Mind Search
- Host: GitHub
- URL: https://github.com/idushii/llm_search
- Owner: idushii
- Created: 2025-03-15T13:56:11.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-03-15T14:05:02.000Z (about 2 months ago)
- Last Synced: 2025-03-15T14:34:28.084Z (about 2 months ago)
- Language: Python
- Size: 0 Bytes
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mind Search - Система интеллектуального поиска и обработки информации
## Результаты
Этот проект был разработан как проверка того, какие ответы можно получить из сети в "наивном" виде.
По итогам я узнал:
- Искать по сети можно через SearchXNG API, но при этом могут быть проблемы с тем, что нужно жестко выдержать лимиты на количество запросов в минуту; есть настройки для прокси на уровне сервера SearchXNG.
- Что LLM можно условно поделить на два типа:
- Стоимость 10 рублей за запрос.
- Стоимость 10 копеек за запрос.
- С моей точки зрения "наивная" реализация поиска может дать информацию качеством лучше, чем Perplexity. Лично моя точка зрения, конкретно мой случай. Кроме того, скорее всего оценка субъективная.
- Стоимость запроса по этой системе составялет порядка 15 рублей за запрос с учетом цен в рублях.
- Я думаю мысль о переработке поискового процесса, так как даже в таком виде я ожидал более качественные ответы.
- Данный проект разрабатывался с использованием Cursor IDE с наивным подходом к реализации и контрольными проверками кода.
- Как дальнейший шаг я возможно перенесу текущую систему поиска на n8n для использования его в качестве API. Для того, чтобы было проще заниматься в том числе "промптинженеригом".## Описание
Mind Search - это интеллектуальная система поиска и обработки информации, разработанная для глубокого и всестороннего анализа заданных тем. Система выполняет многоуровневый поиск по запросу пользователя, обрабатывает найденную информацию и генерирует структурированный, содержательный ответ на основе наиболее релевантных источников.
## Ключевые особенности
- **Планирование запросов**: Автоматическое формирование подзапросов на основе исходного запроса пользователя
- **Многоязычный поиск**: Генерация поисковых запросов на русском и английском языках
- **Интеллектуальное ранжирование**: Оценка результатов поиска с использованием языковой модели (LLM) по 5 критериям
- **Эффективное использование ресурсов**: Скрапинг и обработка только наиболее релевантных источников
- **Саммаризация контента**: Создание качественных сжатых саммари для каждого отобранного документа
- **Комплексный ответ**: Генерация структурированного ответа с разделами, подразделами и ссылками на источники
- **Кэширование данных**: Сохранение промежуточных результатов для повторного использования## Процесс работы
1. **Ввод запроса**: Пользователь вводит запрос через консольный интерфейс
2. **Генерация подзапросов**: Система создает до 3-х подзапросов, охватывающих разные аспекты темы
3. **Генерация поисковых запросов**: Для каждого подзапроса формируются поисковые запросы на русском и английском языках
4. **Поиск информации**: Выполнение поисковых запросов через API поисковой системы
5. **Ранжирование результатов**: Оценка релевантности каждого результата с использованием LLM по 5 критериям:
- Соответствие исходному запросу
- Соответствие направлению поиска (подзапросу)
- Полнота информации
- Точность данных
- Читабельность и структура текста
6. **Отбор топ-5 результатов**: На основе LLM-ранжирования отбираются 5 наиболее релевантных результатов
7. **Скрапинг контента**: Получение содержимого только для отобранных топ-5 результатов
8. **Саммаризация**: Создание сжатых саммари для каждого документа
9. **Ранжирование саммари**: Выбор наиболее информативных саммари для финального ответа
10. **Генерация ответа**: Формирование структурированного ответа на основе отобранных саммари## Технические требования
- Python 3.8+
- API ключи:
- AITUNNEL_API_KEY для доступа к языковой модели
- Личный экземпляр SearchXNG с включенным свойством format=json.
- Стабильное интернет-соединение## Основные зависимости
- requests
- python-dotenv
- aiohttp
- asyncio
- BeautifulSoup4## Улучшенный процесс ранжирования и выбора топ-5 результатов
Важной особенностью системы является двухэтапный процесс обработки результатов поиска:
1. **Этап поиска**: Система собирает все результаты поиска по запросам, но не выполняет скрапинг содержимого на этом этапе.
2. **Этап ранжирования**: Все найденные результаты ранжируются с использованием языковой модели по 5 критериям, каждый оценивается по шкале от 0 до 10:
- Соответствие исходному запросу (0-10) – насколько результат отвечает на поставленный вопрос
- Соответствие направлению поиска (0-10) – насколько результат соответствует текущему подзапросу
- Полнота информации (0-10) – охватывает ли результат ключевые аспекты темы
- Точность (0-10) – содержит ли результат корректные, актуальные и точные данные
- Читабельность и структура (0-10) – насколько текст логично организован и легко воспринимается3. **Выбор топ-5**: На основе итогового рейтинга (среднее значение по всем критериям) выбираются 5 наиболее релевантных результатов.
4. **Скрапинг топ-5**: Только для этих 5 отобранных результатов система выполняет скрапинг содержимого веб-страниц.
Такой подход позволяет:
- Экономить ресурсы, выполняя скрапинг только для наиболее релевантных результатов
- Повысить качество итогового ответа за счет использования только лучших источников
- Сократить время обработки и объем потребляемого трафика
- Улучшить релевантность итогового ответа благодаря интеллектуальному ранжированию## Установка и настройка
1. Клонируйте репозиторий:
```bash
git clone https://github.com/your-username/mind-search.git
cd mind-search
```2. Создайте и активируйте виртуальное окружение:
```bash
python -m venv venv
# Для Windows
venv\Scripts\activate
# Для Linux/Mac
source venv/bin/activate
```3. Установите зависимости:
```bash
pip install -r requirements.txt
```4. Создайте файл .env на основе .env.example и заполните необходимые API ключи.
## Использование
Запустите программу:
```bash
python main.py
```Следуйте инструкциям в интерактивной консоли.
## Сборка exe
- Поломана, может не запуститься на других машинах.
```bash
pyinstaller --noconfirm --onedir --console --name "Mind Search" "main.py"
```## Структура проекта
- `main.py` - точка входа в приложение
- `/src/` - исходный код системы
- `/core/` - базовые компоненты и утилиты
- `/search/` - модули поиска и скрапинга
- `/processing/` - модули обработки и ранжирования
- `/storage/` - модули управления данными и кэширования
- `/cache/` - директория для кэширования данных## Примеры запросов
- "Расскажи об Mixture of Tokens, в том числе где используется и какие есть улучшения"
- "Объясни концепцию квантовых вычислений и их применение в криптографии"
- "Сравни различные архитектуры нейронных сетей для задач компьютерного зрения"## Лицензия
MIT