Rodando
Construir o banco vetorial
Executar uma única vez, antes do primeiro uso (ou sempre que a fonte de dados mudar):
Esse script lê data/biblia.json, agrupa os versículos por capítulo em blocos de até 1.500 caracteres, gera o embedding de cada bloco via NVIDIA NIM e popula o Chroma em chroma-db/ (via upsert, então rodar de novo não duplica registros).
Iniciar a aplicação
Rodar os testes
Só testa core/ — sem rede nem Streamlit, roda em segundos (é o que o GitHub Actions executa a cada push). tests/integration/teste_conexao.py faz uma chamada real à API e roda manualmente, fora do CI:
Como usar
A tela inicial traz a caixa de busca e o versículo do dia. Ao perguntar algo:
- A pergunta é transformada em embedding e comparada com os blocos de texto no Chroma — até 40 resultados voltam, descartando qualquer um abaixo de 40% de similaridade.
- Os trechos encontrados entram no prompt enviado ao modelo de chat da NVIDIA NIM, que responde usando exclusivamente esse contexto.
- A resposta aparece na tela, com botões para ouvir em áudio, copiar ou compartilhar, seguida da lista de referências consultadas na barra lateral.
- Dá pra continuar a conversa com perguntas de acompanhamento, sem precisar repetir a busca.
Pela barra lateral também é possível escolher um livro e capítulo para ler o texto completo, com áudio narrado e barra de progresso.
Sem invenção
O prompt instrui o modelo a responder só com base nos trechos fornecidos, e a dizer explicitamente quando eles não respondem à pergunta.