Проект представляет собой ИИ-агента для факт-чека новостей. Используется Koog для создания ИИ-агента и Spring Boot для REST API.
- Java 17+
- Gradle
- Docker & Docker Compose
Для работы ИИ агента и Google поиска создайте файл .env в корне проекта со следующими переменными:
# Ключ для Koog / ИИ агента
AGENTS_API_KEY=sk-proj-xxx-xxx
# Настройки Google Custom Search
GOOGLE_CX=80e7exxx1aff454e
GOOGLE_API_KEY=AIzaSyxxxxxxxmz1F0-
Сборка проекта:
./gradlew build -x test -
Запуск через Docker Compose:
docker compose up --build -d
API будет доступно по адресу:
http://127.0.0.1:80
Endpoint:
GET /fact/check?news=новость
Параметры:
| Параметр | Описание |
|---|---|
| news | Текст новости для проверки |
Пример запроса:
curl "http://127.0.0.1:80/fact/check?news=Some news text"Ответ:
{
"isReliable": true,
"explanation": "This news is verified based on multiple sources.",
"sources": [
"https://example.com/source1",
"https://example.com/source2"
]
}src/main/kotlin/com/yooshyasha/factcheckerpet/
├─ FactCheckerPetApplication.kt # main
├─ agent/
│ ├─ common/ # провайдеры и общие инструменты
│ │ ├─ AgentProvider.kt
│ │ └─ tool/GoogleSearchTool.kt
│ └─ fact/checking/ # ИИ агент для факт-чекинга
│ ├─ FactCheckingAgentProvider.kt
│ └─ FactCheckingTools.kt
├─ controller/CheckController.kt # REST контроллер
├─ dto/ # модели данных
│ ├─ FactCheckResult.kt
│ ├─ GoogleSearchDTO.kt
│ ├─ News.kt
│ └─ RequestFactCheck.kt
└─ service/ # сервисы
├─ FactCheckingService.kt
└─ GoogleApiService.kt
FactCheckController— REST API endpointFactCheckService— логика взаимодействия с Koog ИИ агентом
- Для корректной работы Koog требуется подключение к интернету.
- API может возвращать статус
uncertain, если ИИ не может определить достоверность.