Этот проект — мощный ИИ-агент, созданный для проверки фактов в режиме реального времени. Он использует продвинутую архитектуру, комбинируя поиск в интернете с возможностями генеративных моделей (LLM), чтобы вы могли не просто искать информацию, а получать готовые, взвешенные ответы на ваши вопросы.
Задайте вопрос или утверждение, и этот ИИ-агент просканирует веб-пространство, проанализирует найденные источники и вынесет вердикт, подкрепляя его доказательствами.
В основе агента лежат современные языковые модели из Hugging Face, что позволяет ему глубоко понимать контекст и генерировать точные, основанные на фактах объяснения.
- Бэкенд: FastAPI для создания асинхронных API и Uvicorn в качестве ASGI-сервера.
- Оркестрация и работа с LLM: LangChain для управления логикой агента.
- Веб-поиск и скрейпинг:
ddgs(DuckDuckGo) для поиска информации в вебе.trafilaturaиBeautifulSoupдля извлечения основного контента со страниц.httpxиaiohttpдля выполнения асинхронных HTTP-запросов.
- Модели:
- Hugging Face Hub для доступа к предобученным моделям.
- Контейнеризация: Docker и Docker Compose для простоты развертывания и изоляции окружения.
/
├── app/
│ ├── __init__.py
│ ├── api.py # Определяет API-эндпоинты и логику обработки запросов
│ ├── config.py # Загружает и хранит конфигурационные переменные
│ ├── llms.py # Содержит логику для взаимодействия с LLM
│ ├── net.py # Утилиты для работы с сетью: выполнение HTTP-запросов и извлечение контента
│ ├── search.py # Реализует функции поиска в вебе и скрейпинга данных
│ └── text_utils.py # Утилиты для обработки и очистки текста
│
├── .env
├── .gitignore
├── docker-compose.yml
├── Dockerfile
├── main.py # Точка входа в FastAPI-приложение
└── requirements.txt
Создайте файл .env в корневом каталоге проекта и добавьте в него следующие переменные:
# Токен для доступа к Hugging Face API
HF_TOKEN="ваш_токен_hugging_face"
# ID модели для генерации ответов (например, "deepseek-ai/DeepSeek-V3.2-Exp")
LLM_ID="ID_вашей_модели"
# --- Опциональные переменные ---
# Порт, на котором будет работать приложение
PORT=8000
# Максимальное количество источников для поиска
SEARCH_RESULTS=6
# Таймаут для HTTP-запросов
HTTP_TIMEOUT=12Это рекомендуемый способ запуска приложения.
- Сборка и запуск контейнеров: Выполните команду в корневой директории проекта:
Приложение будет доступно по адресу
docker-compose up --build
http://localhost:8000.
- Установка зависимостей:
pip install -r requirements.txt
- Запуск приложения:
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
Вы можете взаимодействовать с API через документацию Swagger, доступную по адресу http://localhost:8000/docs, или отправляя прямые запросы.
Это основной и единственный эндпоинт для взаимодействия с агентом.
- Эндпоинт:
/factcheck - Метод:
POST - Тело запроса (JSON):
{ "question": "Ваш вопрос или утверждение для проверки?", "max_sources": 5 }question(str): Ваш вопрос.max_sources(int, опционально): Количество источников, которые агент будет использовать для анализа. По умолчанию6.
Пример ответа:
{
"items": [
{
"claim": "Солнце вращается вокруг Земли.",
"verdict": "refuted",
"explanation": "На основе научных данных и астрономических наблюдений, Земля и другие планеты Солнечной системы вращаются вокруг Солнца. Эта модель известна как гелиоцентрическая система мира.",
"confidence": 1.0,
"evidence": [
{
"title": "Гелиоцентрическая система мира — Википедия",
"url": "https://ru.wikipedia.org/wiki/Гелиоцентрическая_система_мира",
"snippet": "Гелиоцентрическая система мира — представление о том, что Солнце является центральным небесным телом, вокруг которого обращается Земля и другие планеты."
}
]
}
]
}