ceadibc commited on
Commit
ec3bc0e
·
verified ·
1 Parent(s): 682ea63

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -74
app.py CHANGED
@@ -1,83 +1,10 @@
1
- import gradio as gr
2
- import google.generativeai as genai
3
- import os
4
-
5
- # Configurar a API do Gemini
6
- # Você pode obter sua chave de API em https://aistudio.google.com/app/apikey
7
- # É altamente recomendável armazenar sua chave de API como uma variável de ambiente
8
- # Ex: export GOOGLE_API_KEY="SUA_API_KEY_AQUI"
9
- API_KEY = os.getenv("GOOGLE_API_KEY") # Obtém a chave de API da variável de ambiente
10
- if not API_KEY:
11
- # Se a variável de ambiente não estiver definida, use o valor direto (apenas para testes, não recomendado em produção)
12
- API_KEY = "SUA_API_KEY_AQUI"
13
-
14
- genai.configure(api_key=API_KEY)
15
-
16
- # Inicializar o modelo Gemini
17
- # Escolha um modelo adequado, por exemplo, "gemini-pro" para texto
18
- model = genai.GenerativeModel('gemini-pro')
19
-
20
- # Função para processar a conversa com a API do Gemini
21
- def responder_gemini(mensagem, historico):
22
- chat = model.start_chat(history=[])
23
-
24
- # Adicionar histórico da conversa para o Gemini
25
- # O formato do histórico para a API do Gemini é diferente
26
- for item in historico:
27
- if isinstance(item, list) and len(item) == 2:
28
- user_msg, bot_msg = item
29
- chat.send_message(user_msg)
30
- chat.send_message(bot_msg) # Gemini intercala user/model, então tratamos como "model"
31
-
32
- resposta_completa = ""
33
- try:
34
- response = chat.send_message(mensagem, stream=True)
35
- for chunk in response:
36
- if hasattr(chunk, 'text'):
37
- resposta_completa += chunk.text
38
- yield resposta_completa
39
- else:
40
- # Tratar casos onde o chunk pode não ter 'text' imediatamente
41
- # Isso pode acontecer com blocos de segurança ou outras informações
42
- pass
43
-
44
- except Exception as e:
45
- print(f"Erro inesperado ao chamar a API do Gemini: {e}")
46
- yield "Ocorreu um erro ao gerar a resposta. Verifique sua chave de API e conexão."
47
-
48
- if not resposta_completa.strip():
49
- yield "Nenhuma resposta gerada. Tente novamente."
50
-
51
-
52
- # Interface do chat com labels em português
53
- demo = gr.ChatInterface(
54
- responder_gemini, # Usar a nova função para o Gemini
55
- title="Benjamin – Assistente Virtual da CEaD - IBC. Tire dúvidas com minha inteligência artificial (minha base de dados vai até 2021)",
56
- textbox=gr.Textbox(placeholder="Digite uma mensagem e depois tecle Enter"),
57
- examples=[
58
- "O que é o IBC?",
59
- "Qual a missão da CEaD?",
60
- "Quem foi Louis Braille?",
61
- "Qual a importância da educação inclusiva?"
62
- ],
63
- theme="soft", # Um tema mais suave para a interface
64
- fill_height=True,
65
- retry_btn="Tentar novamente",
66
- undo_btn="Desfazer",
67
- clear_btn="Limpar conversa"
68
- )
69
-
70
- if __name__ == "__main__":
71
- demo.launch()
72
-
73
- ------------------
74
-
75
  import gradio as gr
76
  from huggingface_hub import InferenceClient
77
 
78
  # Cliente de inferência com modelo de IA pública
79
  client = InferenceClient(model="meta-llama/Llama-3.3-70B-Instruct") # Modelo gratuito e avançado
80
 
 
81
  # Função para processar a conversa
82
  def responder(mensagem, historico):
83
  mensagens = []
@@ -92,6 +19,7 @@ def responder(mensagem, historico):
92
  mensagens.append({"role": "assistant", "content": bot_msg})
93
 
94
  mensagens.append({"role": "user", "content": mensagem})
 
95
  resposta = ""
96
 
97
  try:
@@ -127,6 +55,7 @@ demo = gr.ChatInterface(
127
  title="Benjamin – Assistente Virtual da CEaD - IBC. Tire dúvidas com minha inteligência artificial (minha base de dados vai até 2021)",
128
  textbox=gr.Textbox(placeholder="Digite uma mensagem e depois tecle Enter"),
129
  type="messages"
 
130
  )
131
 
132
  if __name__ == "__main__":
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
 
4
  # Cliente de inferência com modelo de IA pública
5
  client = InferenceClient(model="meta-llama/Llama-3.3-70B-Instruct") # Modelo gratuito e avançado
6
 
7
+
8
  # Função para processar a conversa
9
  def responder(mensagem, historico):
10
  mensagens = []
 
19
  mensagens.append({"role": "assistant", "content": bot_msg})
20
 
21
  mensagens.append({"role": "user", "content": mensagem})
22
+
23
  resposta = ""
24
 
25
  try:
 
55
  title="Benjamin – Assistente Virtual da CEaD - IBC. Tire dúvidas com minha inteligência artificial (minha base de dados vai até 2021)",
56
  textbox=gr.Textbox(placeholder="Digite uma mensagem e depois tecle Enter"),
57
  type="messages"
58
+
59
  )
60
 
61
  if __name__ == "__main__":