ceadibc commited on
Commit
6aa5ead
·
verified ·
1 Parent(s): 11173a4

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +41 -12
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 daCoordenaçã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,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
- # Constrói o prompt manualmente com o contexto
19
- prompt = f"{system_prompt}\n\n"
 
 
 
 
 
 
 
 
 
 
 
20
 
21
- resposta = client.text_generation(
22
- prompt,
23
- max_new_tokens=512,
24
- temperature=0.3,
25
- top_p=0.8,
26
- stop=["\n\n"]
27
- )
28
-
29
- return resposta.strip()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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)",