pedropauletti commited on
Commit
faeb998
·
verified ·
1 Parent(s): 2f8adfe

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -99
app.py CHANGED
@@ -1,103 +1,5 @@
1
  from template.examples import examplesChatbot
2
- # from modules.respond import respond
3
- from modules.config import client, azure_ml_endpoint_url, headers
4
- from modules.search import search
5
- import time
6
- import requests
7
- import json
8
- import gradio as gr
9
- import os
10
-
11
- def respond(
12
- message,
13
- history: list[tuple[str, str]],
14
- model
15
- ):
16
- messages = []
17
-
18
- for val in history:
19
- if val[0]:
20
- messages.append({"role": "user", "content": val[0]})
21
- if val[1]:
22
- messages.append({"role": "assistant", "content": val[1]})
23
-
24
- messages.append({"role": "user", "content": message})
25
-
26
- response = ""
27
-
28
- highlighted_content = search(message)
29
- GROUNDED_PROMPT = f"""
30
- Você é um assistente virtual amigável especializado em responder questões sobre a legislação das Resoluções e Portarias da universidade Unesp. O conteúdo dos atos normativos é de responsabilidade do Grupo Técnico de Informação e Documentação da Secretaria Geral (GTID/SG).
31
-
32
- Instruções:
33
- 1. Responda à pergunta usando **somente** as fontes fornecidas abaixo.
34
- 2. Seja amigável e conciso em suas respostas.
35
- 3. Cite a fonte utilizada durante e ao final da resposta.
36
- 4. Responda **apenas** com os fatos relacionados nas fontes fornecidas.
37
- 5. Se não houver informações suficientes nas fontes abaixo, informe que não sabe.
38
- 6. Não gere respostas que não usem as fontes fornecidas.
39
- 7. Formate o nome do arquivo da fonte para apenas o nome da fonte (exemplo: RESOLUÇÃO_UNESP_Nº_05_DE_07_DE_FEVEREIRO_DE_2024.pdf -> RESOLUÇÃO UNESP Nº05 DE 07 DE FEVEREIRO DE 2024).
40
- 8. Sempre que possível, cite no início da resposta o artigo, parágrafo, inciso, alíneas e/ou itens que foi retirado a resposta.
41
-
42
- Fontes e Trechos Destacados:
43
- {highlighted_content}
44
-
45
- Pergunta:
46
- {message}
47
-
48
- Formato de Resposta:
49
- 1. **Introdução**: Comece com uma saudação amigável e uma breve introdução.
50
- 2. **Resposta**: Forneça a resposta à pergunta de forma clara e concisa.
51
- 3. **Citação de Fontes**: Cite a fonte utilizada durante e ao final da resposta.
52
- 4. **Conclusão**: Termine com uma frase de encerramento amigável.
53
-
54
- Exemplo de Resposta:
55
-
56
- Olá! Obrigado por sua pergunta.
57
-
58
- [resposta]
59
-
60
- Fonte(s): [nome da fonte usada].
61
- """
62
- print("Modelo = ", model)
63
- if model == "gpt-4" or model == "gpt-35-turbo":
64
- completion = client.chat.completions.create(
65
- model="gpt-35-turbo",
66
- messages=[
67
- {
68
- "role": "user",
69
- "content": GROUNDED_PROMPT,
70
- },
71
- ],
72
- )
73
- token = completion.choices[0].message.content
74
- else: #Phi
75
- data = {
76
- "messages": [
77
- {"role": "user", "content": GROUNDED_PROMPT}
78
- ],
79
- "temperature": 0.8,
80
- "top_p": 0.1,
81
- "max_tokens": 2048
82
- }
83
-
84
- # Converta para JSON
85
- payload = json.dumps(data)
86
- # Realizar a inferência
87
- response_api = requests.post(azure_ml_endpoint_url, headers=headers, data=payload)
88
- response_json = response_api.json()
89
- content = response_json['choices'][0]['message']['content']
90
- token = content.strip()
91
-
92
- response += token
93
- # yield response
94
-
95
- # Envia o texto gradualmente (efeito de digitação)
96
- displayed_response = ""
97
- for char in response:
98
- displayed_response += char
99
- time.sleep(0.01) # Intervalo entre os caracteres para o efeito de digitação
100
- yield displayed_response
101
 
102
 
103
  chatbot = gr.Chatbot(
 
1
  from template.examples import examplesChatbot
2
+ from modules.respond import respond
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
 
4
 
5
  chatbot = gr.Chatbot(