<p><b>Техническое задание на разработку скрипта для автоматической проверки фактов (Fact-Checking)</b></p><p><b> </b></p><p><b>Общие положения</b></p><ul><li><p><b>Название проекта</b>: Скрипт автоматической проверки фактов (Fact-Checking) с использованием локальных и онлайн-источников.</p></li><li><p><b>Цель проекта</b>: Создать скрипт, который извлекает утверждения из пользовательского текста, проверяет их достоверность с использованием интернет-источников и загруженных локальных файлов.</p></li><li><p><b>Базовый функционал</b>: Опирается на функционал скрипта <a href="https://github.com/Libr-AI/OpenFactVerification">Libr-AI/OpenFactVerification</a> с доработками.</p></li></ul><p><b>Основные задачи</b></p><p>1. <b>Добавление поддержки локальных источников</b>:</p><p>· Возможность загружать локальные файлы (например, .pdf, .docx, .txt .ppt) в систему.</p><p>· Индексирование содержимого локальных файлов для проверки утверждений.</p><p>· Хранение и управление загруженными документами.</p><p>2. <b>Проверка утверждений</b>:</p><p>· Извлечение утверждений из пользовательского текста (клеймов).</p><p>· Проверка утверждений на валидность:</p><p>· Поиск информации в интернете (включая использование Google Search API для анализа результатов, Answer Box).</p><p>· Сравнение с локальными файлами.</p><p>3. <b>Интеграция технологий</b>:</p><p>· Использовать <b>LlamaIndex</b> и <b>LlamaParse</b> для загрузки, обработки и индексирования локальных документов.</p><p>· Реализовать хранение данных через <b>Pinecone</b> для эффективного управления чанками и быстрого доступа.</p><p>4. <b>Реализация интерфейса (</b>Опирается на функционал скрипта <a href="https://github.com/Libr-AI/OpenFactVerification">Libr-AI/OpenFactVerification</a>):</p><p>· Нужно добавить пользовательский интерфейс (по возможности на Django), который позволяет дополнительно к тому, что уже реализовано в скрипте <a href="https://github.com/Libr-AI/OpenFactVerification">Libr-AI/OpenFactVerification</a>:</p><p>· Загружать локальные файлы в базу знаний и удалять их.</p><p>· Создавать и удалять папки из групп файлов по разным базам знаний.</p><p>· Просматривать результаты проверки клеймов с указанием источника из базы знаний.</p><p>· Включать / выключать направление проверки (только по источникам в интернете, только по локальной базе знаний, по обоим путям).</p><p><b>Технические требования</b></p><p>1. <b>Основной стек технологий</b>:</p><p>· Язык программирования: Python.</p><p>· Фреймворк: Django.</p><p>· Библиотеки и инструменты:</p><p>· <a href="https://github.com/jerryjliu/llama_index">LlamaIndex</a> и <a href="https://llamaparse.ai/">LlamaParse</a> для индексирования документов.</p><p>· <a href="https://www.pinecone.io/">Pinecone</a> для хранения и поиска по чанкам.</p><p>· Google Search API для получения данных из интернета.</p><p>· PyPDF2, python-docx python-pptx для работы с файлами.</p><p>2. <b>Форматы загружаемых файлов</b>:</p><p>· Текстовые файлы: .txt, .csv.</p><p>· Документы: .pdf, .docx .pptx</p><p>· Возможность масштабирования для работы с другими форматами.</p><p><b>Порядок разработки</b></p><p>1. <b>Этап 1: Исследование и проектирование</b></p><p>· Ознакомление и установка скрипта локально у вас . (API openAI мы предоставим)</p><p>2. <b>Этап 2: Реализация базового функционала</b></p><p>· Интеграция LlamaIndex и LlamaParse для работы с локальными файлами.</p><p>· Настройка Pinecone для хранения чанков и быстрого поиска (у нас есть API).</p><p>3. <b>Этап 4: Разработка интерфейса</b></p><p>· Пользовательский интерфейс (на Django - загрузка файлов и распределение по папкам, добавление и удаление файлов и папок).</p><p>4. <b>Этап 5: Тестирование</b></p><p><b>Критерии завершенности</b></p><p>1. Скрипт корректно извлекает утверждения из текста и проверяет их достоверность</p><p>1. по интернет-источникам</p><p>2. по локальным файлам.</p><p>3. по интернет-источникам и локальным файлам.</p><p>2. Интерфейс удобен для загрузки файлов и анализа результатов.</p><p>3. Система стабильно работает.</p><p> </p>