Este sistema de pequeno porte foi concebido com base em princípios de aprendizado, buscando emular a eficácia do 'lanchain', com o propósito de minimizar os períodos de espera, enquanto aplicava conhecimentos técnicos avançados, como embedding, clusterização e análise de similaridade, entre outros.
Esta concepção pragmática demandou um período considerável de desenvolvimento, contudo, resultou na aquisição de novos insights e em uma compreensão mais abrangente das tecnologias subjacentes, tais como LLM, NTK e NLP, incluindo todas as suas metodologias associadas. Estou incluindo este projeto em meu portfólio, e adicionalmente, pretendo compartilhá-lo com a comunidade.
Installs, precisa instalar as libs. Algumas eu desativei, pois parei com o desenvolvimento por um tempo. Em tools.py adiciona a sua chave openai.api_key = ""
pip install streamlit
pip install -U scikit-learn
pip install tensorflow==2.2.0
pip install transformers
pip install nltk
python -m nltk.downloader punkt
Sobre o documento document.json, funciona assim: a chave, índex, key, seja o que você prefere chamar, está localizada abaixo com o nome 'ola'. Ela pode ser personalizada. As demais chaves, como field_contexto, field_titulo e field_lista, devem ser iguais.
"ola": {
"field_contexto": "Bem vindo, é a frase mais preferida de quando se inicia uma conversa.",
"field_titulo": "Bem vindo ao Chat Bot do Naelson.",
"field_lista": [
"Seja bem vindo, ao Chatbot"
]
}
- Conforme evidenciado na imagem acima e na estrutura do JSON, ocorreu uma correspondência (match) em que o título foi exibido junto com um item da lista.
- Uma das características interessantes, que procurei preservar, é que quando ele encontra a chave pai, ele exibe precisamente o conteúdo presente no array.
- Como você pode observar aqui, realizei uma pesquisa sem contexto, resultando na resposta que me foi fornecida.
- Logo em seguida, adicionei mais contexto para obter uma correspondência na similaridade com o campo "field_contexto
- Uma das enormes vantagens desse pequeno protótipo é a economia de tokens, onde, quando comparado ao uso do langchain, o consumo é três vezes maior.