Карьерный портфель Rag Assistant
Система поиска с аугментированным поколением (RAG), которая позволяет запросить на естественный язык данных портфеля карьерного карьерного база данных. Система использует услуги LmamainDex и Openai Entriding/LLM для предоставления интеллектуальных ответов на опыт работы, проекты и навыки.
Обзор
Эта система состоит из двух основных компонентов:
ETL Pipeline : извлекает данные из баз данных понятий, обрабатывает их в встраивание и хранит их в векторной базе данных
Интерфейс запроса : веб -приложение Streamlit, которое обеспечивает взаимодействие естественного языка с данными портфеля
Ключевые функции
- Интеллектуальные запросы на естественный язык данных портфеля
- Двойная архитектура (текст и ключевые слова) для улучшения поиска
- Потоковая передача ответов в реальном времени
- Панель отладки для прозрачности в процесс RAG
- Пример запросов для демонстрации возможностей
- Настраивается через переменные среды
Структура проекта
Основные файлы
notion_data_etl.ipynb : Notebook Jupyter для извлечения и обработки данных понятия
- Обрабатывает аутентификацию и подключения к базе данных
- Процессы документов в узлы текста и ключевые слова
- Создает векторные индексы для эффективного поиска
streamlit_app_rag.py : основной интерфейс веб -приложения
- Реализует пользовательский интерфейс Rag Assistant
- Управляет истории чата и вывода отладки
- Обрабатывает потоковую передачу ответов в реальном времени
prompts.py : содержит системные подсказки для:
- Настройка контекста для LLM
- Извлечение ключевых слов
Ключевые компоненты
Участок понятия
Комплексный класс обработки данных, который:
- Извлекает данные из баз данных понятий
- Обрабатывает вложенные структуры контента
- Обрабатывает текст и метаданные
- Поддерживает несколько режимов экстракции (заголовок, целый, гранулированный)
Класс Ragapp
Основной класс приложений, который:
- Управляет интерфейсом потока
- Обрабатывает взаимодействие в чате
- Предоставляет возможности отладки
- Поддерживает состояние сессии
Требования к настройке
Переменные среды
NOTION_TOKEN=your_notion_api_token
NOTION_PROJECTS_DATABASE_ID=notion_database_id_for_projects
NOTION_EXPERIENCE_DATABASE_ID=notion_database_id_for_experiences
QDRANT_URL=your_qdrant_url
QDRANT_API_KEY=your_qdrant_api_key
OPENAI_API_KEY=your_openai_api_key
Зависимости
- Python 3.10+
- Lmamaindex
- Openai
- Поток
- Qdrant
- Понятие клиент API
Использование
- Установите переменные среды
- Запустите ноутбук ETL, чтобы обработать данные понятия
- Запустите приложение Streamlit для взаимодействия с данными
streamlit run streamlit_app_rag.py
Архитектура
Система использует двойную архитектуру:
- Текстовый индекс : хранит полный контент для подробного поиска
- Индекс ключевых слов : хранилище извлеченные ключевые слова для улучшения семантического сопоставления
Запросы обрабатываются с помощью обоих индексов для обеспечения комплексных и точных ответов.
Отладочные функции
Система включает в себя комплексную панель отладки, которая показывает:
- Запрос шаги обработки
- Детали процесса поиска
- Генерация ответов
- Любые ошибки или предупреждения