Update app.py
Browse files
app.py
CHANGED
@@ -6,7 +6,7 @@ client = InferenceClient(model="meta-llama/Meta-Llama-3-8B-Instruct")
|
|
6 |
# Simulação do system prompt (já que não podemos usar role="system")
|
7 |
system_prompt = (
|
8 |
"Você é Benjamin, um assistente virtual especializado em acessibilidade digital, deficiência visual, "
|
9 |
-
"educação especial, tecnologia assistiva, tecnologia assistiva digital, cursos a distância
|
10 |
"Você representa a Coordenação de Educação a Distância do Instituto Benjamin Constant, uma instituição de referência nacional na área da deficiência visual. "
|
11 |
"Responda perguntas relacionadas a esses temas. "
|
12 |
"Se a pergunta estiver fora desses assuntos, diga que não pode responder. "
|
@@ -14,20 +14,49 @@ system_prompt = (
|
|
14 |
"Seja claro, objetivo e técnico nas suas respostas, usando linguagem adequada ao público educacional."
|
15 |
)
|
16 |
|
|
|
17 |
def responder(mensagem, historico):
|
18 |
-
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
|
|
|
|
|
|
|
31 |
demo = gr.ChatInterface(
|
32 |
responder,
|
33 |
title="Benjamin – Assistente Virtual com Inteligência Artificial da CEaD - IBC - Tire dúvidas, receba orientações e aproveite melhor com minha ajuda (minha base de dados vai até 2021)",
|
|
|
6 |
# Simulação do system prompt (já que não podemos usar role="system")
|
7 |
system_prompt = (
|
8 |
"Você é Benjamin, um assistente virtual especializado em acessibilidade digital, deficiência visual, "
|
9 |
+
"educação especial, tecnologia assistiva, tecnologia assistiva digital, cursos a distância da Coordenação de Educação a Distância do Instituto Benjamin Constant, leitor de tela e educação a distância. "
|
10 |
"Você representa a Coordenação de Educação a Distância do Instituto Benjamin Constant, uma instituição de referência nacional na área da deficiência visual. "
|
11 |
"Responda perguntas relacionadas a esses temas. "
|
12 |
"Se a pergunta estiver fora desses assuntos, diga que não pode responder. "
|
|
|
14 |
"Seja claro, objetivo e técnico nas suas respostas, usando linguagem adequada ao público educacional."
|
15 |
)
|
16 |
|
17 |
+
# Função para processar a conversa
|
18 |
def responder(mensagem, historico):
|
19 |
+
mensagens = []
|
20 |
+
if historico is None:
|
21 |
+
historico = []
|
22 |
+
|
23 |
+
for item in historico:
|
24 |
+
if isinstance(item, list) and len(item) == 2:
|
25 |
+
user_msg, bot_msg = item
|
26 |
+
mensagens.append({"role": "user", "content": user_msg})
|
27 |
+
if bot_msg:
|
28 |
+
mensagens.append({"role": "assistant", "content": bot_msg})
|
29 |
+
|
30 |
+
mensagens.append({"role": "user", "content": mensagem})
|
31 |
+
resposta = ""
|
32 |
|
33 |
+
try:
|
34 |
+
for mensagem in client.chat_completion(
|
35 |
+
mensagens,
|
36 |
+
max_tokens=512,
|
37 |
+
stream=True,
|
38 |
+
temperature=0.3,
|
39 |
+
top_p=0.8,
|
40 |
+
):
|
41 |
+
if not mensagem or not isinstance(mensagem, dict):
|
42 |
+
continue
|
43 |
+
|
44 |
+
try:
|
45 |
+
conteudo = mensagem["choices"][0]["delta"].get("content", "")
|
46 |
+
if conteudo.strip():
|
47 |
+
resposta += conteudo
|
48 |
+
yield resposta
|
49 |
+
except (AttributeError, IndexError, KeyError) as e:
|
50 |
+
print(f"Erro ao processar mensagem: {e}")
|
51 |
+
continue
|
52 |
+
|
53 |
+
except Exception as e:
|
54 |
+
print(f"Erro inesperado: {e}")
|
55 |
+
yield "Ocorreu um erro ao gerar a resposta."
|
56 |
|
57 |
+
if not resposta.strip():
|
58 |
+
yield "Nenhuma resposta gerada. Tente novamente.
|
59 |
+
|
60 |
demo = gr.ChatInterface(
|
61 |
responder,
|
62 |
title="Benjamin – Assistente Virtual com Inteligência Artificial da CEaD - IBC - Tire dúvidas, receba orientações e aproveite melhor com minha ajuda (minha base de dados vai até 2021)",
|