Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FactCheck Agent

Этот проект — мощный ИИ-агент, созданный для проверки фактов в режиме реального времени. Он использует продвинутую архитектуру, комбинируя поиск в интернете с возможностями генеративных моделей (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

Настройка и запуск

1. Переменные окружения

Создайте файл .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

2. Запуск с помощью Docker

Это рекомендуемый способ запуска приложения.

  • Сборка и запуск контейнеров: Выполните команду в корневой директории проекта:
    docker-compose up --build
    Приложение будет доступно по адресу http://localhost:8000.

3. Локальный запуск (без Docker)

  • Установка зависимостей:
    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": "Гелиоцентрическая система мира — представление о том, что Солнце является центральным небесным телом, вокруг которого обращается Земля и другие планеты."
        }
      ]
    }
  ]
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages