Converse com seus documentos pessoais em PDF.

Visão geral do alto nível deste aplicativo Streamlit por arquivo.
Clique aqui para pular as instruções de instalação



Huxley.py A função main() é responsável por lidar com a interface do usuário e o processamento do arquivo PDF carregado. Aqui está um detalhamento do código:
A função render_header() é chamada para exibir a seção de cabeçalho do aplicativo. Inclui o título, a descrição e uma imagem.
A função sidebar() é chamada para exibir a seção da barra lateral do aplicativo. Inclui informações sobre o HuxLeypDF, instruções sobre como usá -lo e campos de entrada para a tecla API OpenAI.
A função setup_environment() é chamada para configurar o ambiente. Atualmente, ele imprime apenas uma mensagem indicando que a configuração está em andamento.
A função st.file_uploader() é usada para fazer upload de um arquivo PDF. O usuário é solicitado a selecionar um arquivo com a descrição "Faça o upload do seu PDF" e o filtro do tipo de arquivo definido como "PDF".
O código busca um arquivo PDF remoto usando a classe OnlinePDFLoader da biblioteca não estruturada. Isso é comentado por enquanto.
Se um arquivo PDF for enviado, o código extrairá o texto do PDF usando a classe PdfReader da biblioteca pymupdf.
O texto extraído é dividido em pedaços usando a classe CharacterTextSplitter da biblioteca Langchain. O tamanho do pedaço é definido como 400 caracteres e a sobreposição entre os pedaços é definida como 80 caracteres.
A classe OpenAIEmbeddings é usada para criar incorporações para os pedaços de texto.
A função FAISS.from_texts() é usada para criar um índice FAISS a partir dos pedaços do texto e de suas incorporações. Isso é comentado por enquanto.
O usuário é solicitado a inserir uma pergunta sobre o PDF usando a função st.text_input() .
Se uma pergunta for inserida, o código recuperará os documentos do índice FAISS que são mais semelhantes à pergunta do usuário usando o método similarity_search() .
A classe OpenAI() é usada para criar uma instância da API OpenAI.
A função load_qa_chain() é usada para criar uma cadeia de resposta a perguntas usando a API OpenAI e o tipo de cadeia "Stuff".
O gerenciador de contexto get_openai_callback() é usado para capturar as informações de retorno de chamada da API do OpenAI.
O método chain.run() é usado para executar a cadeia de resposta a perguntas nos documentos de entrada e na pergunta do usuário. A resposta está impressa.
A resposta é exibida usando a função st.write() .
No geral, o código da função main() lida com a interface do usuário, processa o arquivo PDF carregado e executa uma tarefa de resposta a perguntas usando a API do OpenAI e a biblioteca Langchain.