Assistant de chiffon de portefeuille de carrière
Un système de génération (RAG) de la récupération (RAG) qui permet la requête en langage naturel des données de portefeuille de carrière stockées dans les bases de données de notion. Le système utilise les services d'intégration / LLM de Llamaindex et OpenAI pour fournir des réponses intelligentes sur l'expérience de travail, les projets et les compétences.
Aperçu
Ce système se compose de deux composantes principales:
Pipeline ETL : extrait les données des bases de données de notion, la traite dans des intégres et les stocke dans une base de données vectorielle
Interface de requête : une application Web rationalisée qui permet une interaction en langage naturel avec les données de portefeuille
Caractéristiques clés
- Interrogation en langue naturelle intelligente des données de portefeuille
- Architecture à double index (texte et mots clés) pour une récupération améliorée
- Streaming de réponse en temps réel
- Débogage du panel pour la transparence dans le processus de chiffon
- Exemples de requêtes pour démontrer les capacités
- Configurable via les variables d'environnement
Structure du projet
Fichiers de base
notion_data_etl.ipynb : cahier Jupyter pour extraire et traitement des données de notion
- Gère les connexions d'authentification et de base de données
- Traite les documents dans le texte et les nœuds de mots clés
- Crée des indices vectoriels pour une récupération efficace
streamlit_app_rag.py : interface d'application Web principale
- Implémente l'assistant de chiffon ui
- Gère l'historique du chat et le débogage
- Gère le streaming de réponse en temps réel
prompts.py : contient des invites système pour:
- Paramètre de contexte pour le LLM
- Extraction de mots clés
Composants clés
Classe de notion deprocesseur
Une classe de traitement des données complète qui:
- Extrait les données des bases de données de notion
- Gère les structures de contenu imbriquées
- Traite le texte et les métadonnées
- Prend en charge plusieurs modes d'extraction (en-tête, entier, granulaire)
Classe de ragapp
La classe d'application principale qui:
- Gère l'interface rationalisée
- Gère les interactions de chat
- Fournit des capacités de débogage
- Maintient l'état de session
Exigences de configuration
Variables d'environnement
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
Dépendances
- Python 3.10+
- Llamaindex
- Openai
- Rationaliser
- Qdrant
- Client de l'API de notion
Usage
- Configurer les variables d'environnement
- Exécutez le cahier ETL pour traiter les données de notion
- Exécutez l'application Streamlit pour interagir avec les données
streamlit run streamlit_app_rag.py
Architecture
Le système utilise une architecture à double index:
- Index de texte : stocke le contenu complet pour une récupération détaillée
- Index des mots clés : les magasins ont extrait des mots clés pour une meilleure correspondance sémantique
Les requêtes sont traitées par les deux indices pour fournir des réponses complètes et précises.
Déboguez les fonctionnalités
Le système comprend un panneau de débogage complet qui montre:
- Étapes de traitement des requêtes
- Détails du processus de récupération
- Génération de réponse
- Toutes les erreurs ou avertissements