dsRAG: поисковая система для неструктурированных данных и сложных запросов

Общее введение

dsRAG - это высокопроизводительный поисковый механизм, предназначенный для обработки сложных запросов к неструктурированным данным. Он особенно хорошо справляется со сложными запросами в плотных текстах, таких как финансовые отчеты, юридические документы и научные статьи. dsRAG использует три ключевых подхода для повышения производительности: семантическую сегментацию, контекстную автогенерацию и извлечение релевантных сегментов. Благодаря этим подходам dsRAG достигает значительно более высокой точности, чем традиционная базовая версия RAG, в сложных задачах тестирования с открытым текстом. Кроме того, dsRAG поддерживает широкий спектр опций конфигурации, которые могут быть настроены в соответствии с потребностями пользователя. Его модульная конструкция позволяет пользователям легко интегрировать различные компоненты, такие как векторные базы данных, модели встраивания и реордеры, для достижения оптимальных результатов поиска.

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

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-файла, что упрощает перестройку и обновление.

© заявление об авторских правах

Похожие статьи

AgentClientDemo:演示智能体运行过程的Python客户端,提供直观的图形用户界面

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...