Spaces:
Runtime error
Runtime error
| import os | |
| import google.generativeai as genai | |
| import gradio as gr | |
| from dotenv import load_dotenv | |
| # Carrega variáveis de ambiente | |
| load_dotenv() | |
| # Configura a API do Gemini | |
| GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY") | |
| genai.configure(api_key=GOOGLE_API_KEY) | |
| # Configurações do modelo | |
| generation_config = { | |
| "temperature": 0.7, | |
| "top_p": 0.95, | |
| "top_k": 40, | |
| "max_output_tokens": 2048, | |
| } | |
| # Inicializa o modelo | |
| model = genai.GenerativeModel( | |
| model_name="gemini-1.5-pro", # ou "gemini-1.5-flash" para mais rápido | |
| generation_config=generation_config, | |
| ) | |
| def chat_with_gemini(message, history): | |
| """ | |
| Função para interagir com o Gemini | |
| """ | |
| try: | |
| # Inicia uma conversa | |
| chat = model.start_chat(history=[]) | |
| # Envia a mensagem e obtém resposta | |
| response = chat.send_message(message) | |
| return response.text | |
| except Exception as e: | |
| return f"Erro: {str(e)}" | |
| # Cria a interface com Gradio | |
| def create_interface(): | |
| with gr.Blocks(theme=gr.themes.Soft(), title="Chat com Gemini") as demo: | |
| gr.Markdown(""" | |
| # 🤖 Chat com Google Gemini | |
| ### Converse com o modelo Gemini do Google AI | |
| """) | |
| chatbot = gr.Chatbot(label="Conversa", height=500) | |
| with gr.Row(): | |
| msg = gr.Textbox( | |
| label="Sua mensagem", | |
| placeholder="Digite sua pergunta aqui...", | |
| scale=9 | |
| ) | |
| send_btn = gr.Button("Enviar", variant="primary", scale=1) | |
| clear_btn = gr.Button("Limpar conversa", variant="secondary") | |
| def respond(message, chat_history): | |
| if not message: | |
| return "", chat_history | |
| # Obtém resposta do Gemini | |
| response = chat_with_gemini(message, chat_history) | |
| # Adiciona à conversa | |
| chat_history.append((message, response)) | |
| return "", chat_history | |
| def clear_chat(): | |
| return [] | |
| # Conecta os eventos | |
| send_btn.click( | |
| respond, | |
| inputs=[msg, chatbot], | |
| outputs=[msg, chatbot] | |
| ) | |
| msg.submit( | |
| respond, | |
| inputs=[msg, chatbot], | |
| outputs=[msg, chatbot] | |
| ) | |
| clear_btn.click( | |
| clear_chat, | |
| outputs=[chatbot] | |
| ) | |
| return demo | |
| # Executa a aplicação | |
| if __name__ == "__main__": | |
| demo = create_interface() | |
| demo.launch(server_name="0.0.0.0", server_port=7860) |