RAGLite: эффективный инструмент для расширения поиска (RAG), поддерживающий множество баз данных и языковых моделей.
Общее введение
RAGLite - это инструментарий на языке Python для создания дополненного поиска (Retrieval Augmented Generation, RAG) с поддержкой баз данных PostgreSQL или SQLite. Он предоставляет гибкие возможности настройки, позволяющие пользователям выбирать различные языковые модели и реордеры. RAGLite известен своей легкостью и эффективностью, работает на широком спектре операционных систем и поддерживает различные варианты ускорения, такие как Metal и CUDA.

Список функций
- Поддержка нескольких языковых моделей, включая собственные модели llama-cpp-python
- Поддержка PostgreSQL и SQLite в качестве баз данных для поиска по ключевым словам и векторам
- Доступно несколько вариантов реорганизации, включая многоязычный FlashRank
- Легкие зависимости, не требуется PyTorch или LangChain!
- Поддержка преобразования PDF в Markdown
- Многовекторное встраивание и контекстные заголовки блоков
- Обеспечивает настраиваемую ChatGPT Классный фронт-энд с поддержкой Web, Slack и Teams
- Поддержка вставки и поиска документов для различных типов файлов
- Предоставьте инструменты для поиска и генерирования оценок производительности
Использование помощи
Процесс установки
- Установите многоязычную модель предложений spaCy:
pip install https://github.com/explosion/spacy-models/releases/download/xx_sent_ud_sm-3.7.0/xx_sent_ud_sm-3.7.0-py3-none-any.whl
- Установите ускоренный бинарник llama-cpp-python с предварительной компиляцией (необязательно, но рекомендуется):
LLAMA_CPP_PYTHON_VERSION=0.2.88 PYTHON_VERSION=310 ACCELERATOR=metal | cu121 | cu122 | cu123 | cu124 PLATFORM=macosx_11_0_arm64 | linux_x86_64 | win_amd64 pip install "https://github.com/abetlen/llama-cpp-python/releases/download/v$LLAMA_CPP_PYTHON_VERSION-$ACCELERATOR/llama_cpp_python-$LLAMA_CPP_PYTHON_VERSION-cp$PYTHON_VERSION-cp$PYTHON_VERSION-$PLATFORM.whl"
- Установите RAGLite:
pip install raglite
- Установите настраиваемую фронт-энд-поддержку ChatGPT:
pip install raglite[chainlit]
- Установите поддержку дополнительных типов файлов:
pip install raglite[pandoc]
- Поддержка при оценке установки:
pip install raglite[ragas]
Руководство по использованию
- Настройка RAGLite::
- Настройте базу данных PostgreSQL или SQLite и все поддерживаемые языковые модели:
from raglite import RAGLiteConfig my_config = RAGLiteConfig( db_url="postgresql://my_username:my_password@my_host:5432/my_database", llm="gpt-4o-mini", embedder="text-embedding-3-large" )
- Настройте базу данных PostgreSQL или SQLite и все поддерживаемые языковые модели:
- Вставка документов::
- Вставляйте документы PDF, конвертируйте и встраивайте их:
from pathlib import Path from raglite import insert_document insert_document(Path("On the Measure of Intelligence.pdf"), config=my_config)
- Вставляйте документы PDF, конвертируйте и встраивайте их:
- Извлечение и генерация::
- Используйте для поиска векторный поиск, поиск по ключевым словам или гибридный поиск:
from raglite import hybrid_search, keyword_search, vector_search prompt = "How is intelligence measured?" chunk_ids_hybrid, _ = hybrid_search(prompt, num_results=20, config=my_config)
- Используйте для поиска векторный поиск, поиск по ключевым словам или гибридный поиск:
- Переформулирование и ответы на вопросы::
- Упорядочивайте результаты поиска и генерируйте ответы:
from raglite import rerank_chunks, rag chunks_reranked = rerank_chunks(prompt, chunk_ids_hybrid, config=my_config) stream = rag(prompt, search=chunks_reranked, config=my_config) for update in stream: print(update, end="")
- Упорядочивайте результаты поиска и генерируйте ответы:
- Поиск и формирование оценок::
- Используйте Ragas для поиска и создания оценок эффективности:
from raglite import answer_evals, evaluate, insert_evals insert_evals(num_evals=100, config=my_config) answered_evals_df = answer_evals(num_evals=10, config=my_config) evaluation_df = evaluate(answered_evals_df, config=my_config)
- Используйте Ragas для поиска и создания оценок эффективности:
- Развертывание внешнего интерфейса, подобного ChatGPT::
- Развертывание настраиваемых фронт-эндов, подобных ChatGPT:
raglite chainlit --db_url sqlite:///raglite.sqlite --llm llama-cpp-python/bartowski/Llama-3.2-3B-Instruct-GGUF/*Q4_K_M.gguf@4096 --embedder llama-cpp-python/lm-kit/bge-m3-gguf/*F16.gguf
- Развертывание настраиваемых фронт-эндов, подобных ChatGPT:
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...