Este projeto utiliza a Langchain e a OpenAI para criar Lex, uma assistente legislativa. Lex é projetada para auxiliar em uma ampla variedade de tarefas legislativas e políticas, e este sistema inclui suporte para carregar e indexar documentos em Weaviate, além de responder perguntas com base nos documentos indexados.
As seguintes dependências são necessárias para executar o projeto:
- langchain
- openai
- google-search-results (opcional)
- unstructured
- tiktoken
- weaviate-client
- pdf2image
- pdfminer.six
- python-dotenv
- twilio
- firebase_admin
- langchain_openai
- langchain-community
- langchain-openai
Instale as dependências usando:
pip install -r requirements.txt
Certifique-se de configurar as variáveis de ambiente necessárias:
OPENAI_API_KEY
: Sua chave de API OpenAI.WEAVIATE_URL
: A URL para a instância Weaviate.WEAVIATE_API_KEY
: A chave de API para Weaviate.LIBRARY_DIR
: (Opcional) Caminho para a pasta da biblioteca.
Salve a chave da conta de serviço do Firebase em app/keys/politicalai-lex.json
- Indexar Documentos: Utilize a classe
Library
no arquivolibrary.py
para indexar documentos em Weaviate. - Iniciar Conversação: Execute o arquivo principal para iniciar o loop de conversação. Responda às perguntas e digite "Exit" para sair.
O código principal configura um agente de conversação, define a memória e as ferramentas, e entra em um loop para processar a entrada do usuário.
O arquivo library.py
contém classes e métodos para trabalhar com documentos, incluindo a indexação em Weaviate e a construção de ferramentas para o sistema de conversação.
Este arquivo define os prompts usados pela assistente Lex, incluindo um PREFIX descritivo sobre a assistente, instruções de FORMAT_INSTRUCTIONS para interação com as ferramentas, e um SUFFIX para controlar a saída.
Este projeto está aberto a contribuições. Sinta-se à vontade para abrir issues ou pull requests.
Ainda não definida.