dsRAG: поисковая система для неструктурированных данных и сложных запросов
Общее введение
dsRAG - это высокопроизводительный поисковый механизм, предназначенный для обработки сложных запросов к неструктурированным данным. Он особенно хорошо справляется со сложными запросами в плотных текстах, таких как финансовые отчеты, юридические документы и научные статьи. dsRAG использует три ключевых подхода для повышения производительности: семантическую сегментацию, контекстную автогенерацию и извлечение релевантных сегментов. Благодаря этим подходам dsRAG достигает значительно более высокой точности, чем традиционная базовая версия RAG, в сложных задачах тестирования с открытым текстом. Кроме того, dsRAG поддерживает широкий спектр опций конфигурации, которые могут быть настроены в соответствии с потребностями пользователя. Его модульная конструкция позволяет пользователям легко интегрировать различные компоненты, такие как векторные базы данных, модели встраивания и реордеры, для достижения оптимальных результатов поиска.
По сравнению с традиционной базовой системой RAG (Retrieval-Augmented Generation), dsRAG достигает значительно более высоких показателей точности в сложных заданиях викторины с открытой книгой. Например, в эталонном тесте FinanceBench dsRAG достигает точности 96,61 TP3T по сравнению с 321 TP3T для традиционной базовой версии RAG. dsRAG значительно улучшает производительность поиска благодаря таким ключевым методам, как семантическая сегментация, автоматическое выделение контекста и релевантных сегментов.

Список функций
- семантическая сегментация: Использование LLM для сегментации документов с целью повышения точности поиска.
- Автоматическое создание контекста: Генерируйте заголовки блоков, содержащие контекст на уровне документа и абзаца, чтобы улучшить качество встраивания.
- Выделение релевантного сегмента: Интеллектуальное объединение связанных блоков текста во время запроса для создания более длинных абзацев.
- Поддержка нескольких векторных баз данных: например, BasicVectorDB, WeaviateVectorDB, ChromaDB и т.д.
- Поддержка нескольких встроенных моделей: например, OpenAIEmbedding, CohereEmbedding и т.д.
- Поддержка нескольких реорганизаторов: например, CohereReranker, VoyageReranker и т.д.
- Постоянная база знаний: Поддержка сохранения объектов базы знаний на диске для последующей загрузки и запроса.
- Поддержка нескольких форматов документов: Поддержка PDF, Markdown и других форматов документов, например, синтаксический анализ и обработка.
Использование помощи
монтаж
Чтобы установить пакет Python для dsRAG, выполните следующую команду:
pip install dsrag
Убедитесь, что у вас есть ключи API для OpenAI и Cohere, и установите их в качестве переменных окружения.
Быстрый старт
Вы можете использоватьcreate_kb_from_file
Функция создает новую базу знаний непосредственно из файла:
from dsrag.create_kb import create_kb_from_file
file_path = "dsRAG/tests/data/levels_of_agi.pdf"
kb_id = "levels_of_agi"
kb = create_kb_from_file(kb_id, file_path)
Объекты базы знаний автоматически сохраняются на диске, поэтому их не нужно сохранять явно.
Теперь вы можете лучше понять, что происходит с егоkb_id
Загрузите базу знаний и используйтеquery
Методы запрашиваются:
from dsrag.knowledge_base import KnowledgeBase
kb = KnowledgeBase("levels_of_agi")
search_queries = ["What are the levels of AGI?", "What is the highest level of AGI?"]
results = kb.query(search_queries)
for segment in results:
print(segment)
Базовая настройка
Вы можете настроить конфигурацию базы знаний, например, использовать только OpenAI:
from dsrag.llm import OpenAIChatAPI
from dsrag.reranker import NoReranker
llm = OpenAIChatAPI(model='gpt-4o-mini')
reranker = NoReranker()
kb = KnowledgeBase(kb_id="levels_of_agi", reranker=reranker, auto_context_model=llm)
Затем используйтеadd_document
метод для добавления документа:
file_path = "dsRAG/tests/data/levels_of_agi.pdf"
kb.add_document(doc_id=file_path, file_path=file_path)
построить
Объект базы знаний принимает документы (в виде необработанного текста) и выполняет их разбивку на части, встраивание, а также другие операции предварительной обработки. При вводе запроса система выполняет векторный поиск по базе данных, переупорядочивание и выделение релевантных сегментов, а затем возвращает результат.
Объекты базы знаний по умолчанию постоянны, а их полная конфигурация сохраняется в виде JSON-файла, что упрощает перестройку и обновление.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...