Este é um chatbot que implementa o padrão de 'Augmented Retrieval' para recuperar informações em fontes de dados privadas usando o gpt-3.5-turbo (ChatGPT) é construído usando o Streamlit, uma estrutura de aplicativo da web Python que permite criar aplicativos da web interativos com facilidade.
A partir do prompt to seu sistema operacional
$ git clone https://github.com/rcsousa/LangChainLab.git
❗ NOTA IMPORTANTE |
---|
A versão do Python utilizada nesse projecto está declarada no arquivo runtime.txt. Assegure-se de ter a mesma versão (ou superior) instalada e que ela é a versão 'linkada' ao comando 'python'
$ python --version
Python 3.10.4
$ python -m venv .venv
Linux version
$ source .venv/bin/activate
Windows Version
No cmd.exec:\venv\Scripts\activate.bat
No PowerShell
PS C:\venv\Scripts\Activate.ps1
Para instalar as dependências do projeto, execute o seguinte comando:
pip install -r requirements.txt
Troque o nome do template .env_template para .env:
$ mv .env_template .env
em seguida atualize o arquivo e inclua a sua API key e o deployment ID, e API endpoint do modelo implementado no Azure OpenAI Sevices. O aquivo final deve ter esse formato.
OPENAI_API_KEY="<<Sua API Key no Azure OpenAI Service>>"
OPENAI_API_BASE="<<Endpoint da sua API no Azure OpenAI Services>>"
OPENAI_API_TYPE="azure"
OPENAI_API_VERSION="2023-05-15"
MODEL_DEPLOYMENT_ID="<<Deployment ID do Azure OpenAI Service>>"
Para executar o aplicativo da web, execute o seguinte comando:
streamlit run copilot.py
Isso iniciará o aplicativo da web e abrirá uma nova janela do navegador. Você pode então usar o chatbot para pesquisar informações nos documentos fornecidos.
O código já tem scrappers para criar 2 vectorDBs (FAISS) baseados em informações públicas. São elas:
- Site Reliability Engineering (https://sre.google/sre-book/table-of-contents/)
- Building Secure & Reliable Systems (https://google.github.io/building-secure-and-reliable-systems/raw/toc.html)
:winki: Já precisei esperar até 10 minutos...tenha paciência!
Dependendo da velocidade da rede e do rate limit para uso das APIs de embedding o processo de carregamento das bases fundamentais pode demorar alguns minutos. Não precisa carregar a cada interação, o programa irá salvar uma versão local do vectorDB.
Se você quiser contribuir para este projeto, sinta-se à vontade para enviar um pull request. Certifique-se de seguir as diretrizes de contribuição e de teste.
Este projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para obter mais informações.
Este projeto foi criado por Ricardo Coelho de Sousa (rcsousa) para comunidade #SREBrasil.