jose-fe-neto commited on
Commit
e92f3bd
·
1 Parent(s): 83cedc2

Upload 6 files

Browse files
Files changed (6) hide show
  1. .env.example +3 -0
  2. .gitignore +3 -0
  3. GitHub_exercise2_i2a2-main.zip +3 -0
  4. README.md +82 -0
  5. chatbot.py +44 -0
  6. requirements.txt +3 -0
.env.example ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ OPENAI_API_KEY = _here you insert your openai api key_
2
+
3
+ # you will create a file named .env and in this file you insert your api key from openai without quotes, like the example above
.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ __pycache__/
2
+ therapybot/
3
+ .env
GitHub_exercise2_i2a2-main.zip ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b3f545d53c739601c366ef4475e34434c56c49d9ab1aa24d71ba662d8a74fa42
3
+ size 189770
README.md ADDED
@@ -0,0 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Projeto em Grupo CHALLENGE 2 - Redes Generativas - I2A2 Academy
2
+
3
+ <b>Este projeto foi elaborado por:</b>
4
+
5
+ <ul>
6
+ <li>Robson da Costa - robsondacosta@gmail.com</li>
7
+ <li>Sidnei Agostini - jsribeiro123@gmail.com</li>
8
+ <li>Daniel Vidiri Neto - dvn.face@gmail.com</li>
9
+ <li>Vinícius Reis - viniciusreis@gmail.com</li>
10
+ <li>José Neto - jose.fe.neto@gmx.com</li>
11
+ </ul>
12
+
13
+ ---
14
+
15
+ ## Descrição do desafio
16
+
17
+ #### Desenvolver um chatbot de uso terapêutico, semelhante ao Eliza Bot (só que uma versão melhorada) com a ajuda das LLMs disponíveis.
18
+
19
+ ---
20
+
21
+ ## Ferramentas utilizadas
22
+
23
+ :heavy_check_mark: <b>Python</b><br>
24
+ Linguagem de programação utilizada para programar.<br>
25
+
26
+ :heavy_check_mark: <b>Gradio</b><br>
27
+ Biblioteca Python para gerar a interface do ChatBot.<br>
28
+
29
+ :heavy_check_mark: <b>OpenAI</b><br>
30
+ Biblioteca Python para fazer a integração com o ChatGPT (necessário uma API paga).<br>
31
+
32
+ :heavy_check_mark: <b>decouple</b><br>
33
+ Biblioteca Python para fazer a separação de parãmetros de ambiente de configuração.<br>
34
+
35
+ :heavy_check_mark: <b>Hugging Face</b><br>
36
+ Ambiente para fazer o deploy da aplicação, no momento está como privado.<br>
37
+
38
+ ---
39
+
40
+ ## Como utilizar
41
+
42
+ ### 1-Pré-requisitos
43
+
44
+ O projeto foi desenvolvido dentro do VSCode<br>
45
+
46
+ - Instalar a biblioteca Python dentro do VSCode.
47
+
48
+ - O arquivo "requirements.txt" deve ser colocado no mesmo diretório do arquivo python principal.<br>
49
+ Comando para instalar as bibliotecas do requirements.txt:<br>
50
+
51
+ ```shell
52
+ $ pip install -r requirements.txt
53
+ ```
54
+
55
+ - A biblioteca decouple é utilizada para esconder a API Key.<br>
56
+ Para isso ele necessita de um arquivo ".env".<br>
57
+ Baixar o arquivo ".env.example", renomear para somente ".env".<br>
58
+ Dentro do arquivo, colocar uma API Key da OpenAI válida na variável OPENAI_API_KEY (sem aspas).<br>
59
+
60
+ ### 2-Baixar a tarefa do GitHub
61
+
62
+ - Estando no repositório do projeto, clicar no botão "Code" (botão verde) e selecionar "Download ZIP".
63
+
64
+ - O arquivo virá compactado, descompactar o arquivo.<br>
65
+
66
+ ### 3-Para executar o projeto no VSCode
67
+
68
+ - Clique no ícone de play "Run Python file", no canto superior direito.
69
+
70
+ - O terminal começará a exibir um log.
71
+
72
+ - O gradio irá gerar uma URL local.
73
+
74
+ - Segurar a tecla Ctrl do teclado e clicar com o mouse em cima da URL que ele gerou para abrir a aplicação no navegador.
75
+
76
+ - O aplicativo executará com sucesso.
77
+
78
+ ---
79
+
80
+ <p>
81
+ <img src="src/assets/to_readme/Autopin.gif">
82
+ </p>
chatbot.py ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import openai
2
+ import gradio as gr
3
+ from decouple import config
4
+
5
+ # Definindo a chave da API OpenAI
6
+ openai.api_key = config("OPENAI_API_KEY")
7
+
8
+ messages = [
9
+ {
10
+ "role": "system",
11
+ "content": "Você é a Dra. Elfrida Ravenscroft, uma terapeuta muito famosa e experiente e irá responder as questões dos seus pacientes.",
12
+ }
13
+ ]
14
+
15
+
16
+ def chatWithBot(user_input):
17
+ messages.append({"role": "user", "content": user_input})
18
+ response = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=messages)
19
+ ChatGPT_reply = response["choices"][0]["message"]["content"]
20
+ messages.append({"role": "assistant", "content": ChatGPT_reply})
21
+ return ChatGPT_reply
22
+
23
+
24
+ # Crie a interface Gradio para o chatbot terapêutico
25
+ iface = gr.Interface(
26
+ fn=chatWithBot,
27
+ title="Terapeuta Virtual",
28
+ description="Converse com nosso terapeuta virtual para compartilhar seus pensamentos e sentimentos.",
29
+ inputs=gr.Textbox(placeholder="Escreva aqui...", label="Escreva aqui sua questão."),
30
+ outputs=gr.Textbox(label="Resposta da Terapeuta."),
31
+ examples=[
32
+ ["Olá, estou me sentindo um pouco triste hoje."],
33
+ ["Como lidar com o estresse do dia a dia?"],
34
+ ["Quem é você?"],
35
+ ],
36
+ theme="freddyaboulton/dracula_revamped",
37
+ buttons=[
38
+ gr.Button(label="Enviar"),
39
+ gr.Button(label="Limpar"),
40
+ ],
41
+ )
42
+
43
+ # Inicie a interface
44
+ iface.launch()
requirements.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ openai==0.27.8
2
+ gradio
3
+ python-decouple==3.8