itacaiunas commited on
Commit
879137a
1 Parent(s): e131499

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -47
app.py CHANGED
@@ -1,31 +1,44 @@
1
- import gradio as gr
2
- import os
3
- import requests
4
 
5
- SYSTEM_PROMPT = "O ChatGEO é um assistente virtual especializado em geografia, projetado para ajudar estudantes a explorar e compreender diversos tópicos relacionados ao mundo ao seu redor. Com uma personalidade amigável e conhecimento abrangente, o ChatGEO está pronto para responder suas perguntas geográficas com precisão e clareza."
6
 
7
  TITLE = "ChatGEO"
8
  EXAMPLE_INPUT = "Olá, ChatGEO!"
 
 
 
 
 
 
 
9
 
10
  zephyr_7b_beta = "https://api-inference.huggingface.co/models/HuggingFaceH4/zephyr-7b-beta/"
 
 
11
  HF_TOKEN = os.getenv("HF_TOKEN")
12
  HEADERS = {"Authorization": f"Bearer {HF_TOKEN}"}
13
 
14
  def build_input_prompt(message, chatbot, system_prompt):
15
- input_prompt = "\n" + system_prompt + "</s>\n\n"
16
- if chatbot:
17
- for interaction in chatbot:
18
- input_prompt = input_prompt + str(interaction[0]) + "</s>\n\n" + str(interaction[1]) + "\n</s>\n\n"
19
- input_prompt = input_prompt + str(message) + "</s>\n"
 
 
 
20
  return input_prompt
21
 
 
22
  def post_request_beta(payload):
 
 
 
23
  response = requests.post(zephyr_7b_beta, headers=HEADERS, json=payload)
24
- response.raise_for_status()
25
  return response.json()
26
 
27
- def predict_beta(message, chatbot=None, system_prompt=""):
28
- chatbot = [] if chatbot is None else chatbot
29
  input_prompt = build_input_prompt(message, chatbot, system_prompt)
30
  data = {
31
  "inputs": input_prompt
@@ -52,10 +65,11 @@ def predict_beta(message, chatbot=None, system_prompt=""):
52
 
53
  def test_preview_chatbot(message, history):
54
  response = predict_beta(message, history, SYSTEM_PROMPT)
55
- text_start = response.rfind("", ) + len("")
56
  response = response[text_start:]
57
  return response
58
 
 
59
  welcome_preview_message = f"""
60
  Bem vindo ao **{TITLE}**! Diga algo como:
61
  "{EXAMPLE_INPUT}"
@@ -64,38 +78,9 @@ Um projeto oferecido por <a href="https://mundodageografia.com.br/chatgeo">Mundo
64
 
65
  """
66
 
67
- # Configurando o layout com cor verde
68
- custom_css = """
69
- body {
70
- background-color: #3D9970;
71
- font-family: Arial, sans-serif;
72
- }
73
- .text-box {
74
- background-color: #2ECC40;
75
- color: #111111;
76
- }
77
- .input-box {
78
- background-color: #2ECC40;
79
- color: #111111;
80
- }
81
- .output-box {
82
- background-color: #FFFFFF;
83
- color: #111111;
84
- }
85
- .output-box a {
86
- color: #0074cc;
87
- }
88
- """
89
 
90
- # Criando a interface Gradio
91
- demo = gr.Interface(
92
- fn=test_preview_chatbot,
93
- inputs=gr.Textbox(scale=7, placeholder=EXAMPLE_INPUT, label="Digite sua mensagem:"),
94
- outputs=gr.Textbox(scale=7, label="Resposta do ChatGEO:"),
95
- live=True,
96
- examples=[[EXAMPLE_INPUT]],
97
- title=f"<span style='color: #FFFFFF;'>{TITLE}</span>",
98
- css=custom_css
99
- )
100
-
101
- demo.launch()
 
 
 
 
1
 
2
+ SYSTEM_PROMPT = "O ChatGEO é um assistente virtual especializado em geografia, projetado para ajudar estudantes a explorar e compreender diversos tópicos relacionados ao mundo ao seu redor. Com uma personalidade amigável e conhecimento abrangente, o ChatGEO está pronto para responder suas perguntas geográficas com precisão e clareza. Exemplos de Perguntas para ChatGEO: Qual é a capital do Brasil? Descreva o processo de formação de uma cadeia de montanhas. Quais são os principais rios da América do Sul? Explique o conceito de zonas climáticas e suas características. Como a globalização impacta as relações entre os países? Quais são as diferenças entre latitude e longitude? Liste os países que fazem parte da União Europeia. O que são fenômenos naturais e como eles afetam o ambiente?Fale sobre as características geográficas da África Subsaariana. Como os vulcões se formam e quais são seus efeitos na paisagem? Ao utilizar o ChatGEO, sinta-se à vontade para fazer perguntas sobre mapas, países, climas, fenômenos naturais, e outros temas geográficos. O ChatGEO está aqui para tornar a aprendizagem de geografia divertida e informativa!"
3
 
4
  TITLE = "ChatGEO"
5
  EXAMPLE_INPUT = "Olá, ChatGEO!"
6
+ from typing import Iterator
7
+
8
+ import gradio as gr
9
+ import os
10
+ import requests
11
+ import matplotlib
12
+ matplotlib.use('agg')
13
 
14
  zephyr_7b_beta = "https://api-inference.huggingface.co/models/HuggingFaceH4/zephyr-7b-beta/"
15
+
16
+
17
  HF_TOKEN = os.getenv("HF_TOKEN")
18
  HEADERS = {"Authorization": f"Bearer {HF_TOKEN}"}
19
 
20
  def build_input_prompt(message, chatbot, system_prompt):
21
+ """
22
+ Constrói a string do prompt de entrada a partir das interações do chatbot e da mensagem atual.
23
+ """
24
+ input_prompt = "<|system|>\n" + system_prompt + "</s>\n<|user|>\n"
25
+ for interaction in chatbot:
26
+ input_prompt = input_prompt + str(interaction[0]) + "</s>\n<|assistant|>\n" + str(interaction[1]) + "\n</s>\n<|user|>\n"
27
+
28
+ input_prompt = input_prompt + str(message) + "</s>\n<|assistant|>"
29
  return input_prompt
30
 
31
+
32
  def post_request_beta(payload):
33
+ """
34
+ Sends a POST request to the predefined Zephyr-7b-Beta URL and returns the JSON response.
35
+ """
36
  response = requests.post(zephyr_7b_beta, headers=HEADERS, json=payload)
37
+ response.raise_for_status() # Will raise an HTTPError if the HTTP request returned an unsuccessful status code
38
  return response.json()
39
 
40
+
41
+ def predict_beta(message, chatbot=[], system_prompt=""):
42
  input_prompt = build_input_prompt(message, chatbot, system_prompt)
43
  data = {
44
  "inputs": input_prompt
 
65
 
66
  def test_preview_chatbot(message, history):
67
  response = predict_beta(message, history, SYSTEM_PROMPT)
68
+ text_start = response.rfind("<|assistant|>", ) + len("<|assistant|>")
69
  response = response[text_start:]
70
  return response
71
 
72
+
73
  welcome_preview_message = f"""
74
  Bem vindo ao **{TITLE}**! Diga algo como:
75
  "{EXAMPLE_INPUT}"
 
78
 
79
  """
80
 
81
+ chatbot_preview = gr.Chatbot(layout="panel", value=[(None, welcome_preview_message)])
82
+ textbox_preview = gr.Textbox(scale=7, container=False, value=EXAMPLE_INPUT)
83
+
84
+ demo = gr.ChatInterface(test_preview_chatbot, chatbot=chatbot_preview, textbox=textbox_preview)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85
 
86
+ demo.launch()