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)