Portfólio de carreira Assistente de trapo
Um sistema de geração de recuperação de recuperação (RAG) que permite a consulta de linguagem natural dos dados do portfólio de carreira armazenados em bancos de dados de noções. O sistema usa os serviços de incorporação/LLM da Llandeindex e Openai para fornecer respostas inteligentes sobre experiência, projetos e habilidades de trabalho.
Visão geral
Este sistema consiste em dois componentes principais:
ETL Pipeline : extrai dados de bancos de dados de noção, processa -os em incorporação e os armazena em um banco de dados vetorial
Interface de consulta : um aplicativo da Web simplit que permite a interação da linguagem natural com os dados do portfólio
Principais recursos
- Consulta de linguagem natural inteligente dos dados do portfólio
- Arquitetura de índice duplo (texto e palavras-chave) para recuperação aprimorada
- Streaming de resposta em tempo real
- Painel de depuração para transparência para o processo de RAG
- Amostra de consultas para demonstrar recursos
- Configurável através de variáveis de ambiente
Estrutura do projeto
Arquivos principais
notion_data_etl.ipynb : Notebook Jupyter para extrair e processamento de dados
- Lida com conexões de autenticação e banco de dados
- Processos documentos em nós de texto e palavras -chave
- Cria índices vetoriais para recuperação eficiente
streamlit_app_rag.py : Interface de aplicativo da web principal
- Implementa a interface do usuário assistente de trapo
- Gerencia o histórico de bate -papo e a saída de depuração
- Lida com o streaming de resposta em tempo real
prompts.py : contém solicitações de sistema para:
- Configuração de contexto para o LLM
- Extração de palavras -chave
Componentes -chave
NotionProcessor Class
Uma classe abrangente de processamento de dados que:
- Extrair dados de bancos de dados de noções
- Lida com estruturas de conteúdo aninhadas
- Processa texto e metadados
- Suporta vários modos de extração (cabeçalho, inteiro, granular)
Classe Ragapp
A principal classe de aplicativo que:
- Gerencia a interface simplitada
- Lida com interações de bate -papo
- Fornece recursos de depuração
- Mantém o estado da sessão
Requisitos de configuração
Variáveis de ambiente
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
Dependências
- Python 3.10+
- Llamaindex
- Openai
- Simplit
- QDRANT
- Cliente da API de noção
Uso
- Configure as variáveis do ambiente
- Execute o notebook ETL para processar dados de noção
- Execute o aplicativo StreamLit para interagir com os dados
streamlit run streamlit_app_rag.py
Arquitetura
O sistema usa uma arquitetura de dupla índice:
- Índice de texto : armazena conteúdo completo para recuperação detalhada
- Índice de palavras -chave : lojas palavras -chave extraídas para melhor correspondência semântica
As consultas são processadas nos dois índices para fornecer respostas abrangentes e precisas.
Recursos de depuração
O sistema inclui um painel de depuração abrangente que mostra:
- Etapas de processamento de consultas
- Detalhes do processo de recuperação
- Geração de resposta
- Quaisquer erros ou avisos