import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI import gradio as gr import pybase64 # Carrega a chave do .env load_dotenv() api_key = os.getenv("OPENROUTER_API_KEY") # Verifica se a chave está disponível if not api_key: raise ValueError("❌ Variável OPENROUTER_API_KEY não encontrada.") # Define as variáveis que o LangChain espera os.environ["OPENAI_API_KEY"] = api_key os.environ["OPENAI_API_BASE"] = "https://openrouter.ai/api/v1" # Instancia o modelo llm = ChatOpenAI( model="deepseek/deepseek-r1:free", temperature=0.5 ) # 1. Função de resposta (mantida igual à original) def responder(mensagem): try: instrucao = 'Responder em Portugues. ' resposta = llm.invoke(instrucao+mensagem) return resposta.content except Exception as e: import traceback return f"❌ Erro:\n{traceback.format_exc()}" # Leitura da imagem try: with open("./robo.png", "rb") as img_file: logo_base64 = pybase64.b64encode(img_file.read()).decode('utf-8') # Imagen no canto superior esquerdo #img_html = f""" #
# #
#""" # Imagem centraliza img_html = f"""
""" except: with open("./aprender.png", "rb") as img_file: error_base64 = pybase64.b64encode(img_file.read()).decode('utf-8') img_html = """
""" # 3. CSS customizado para o layout #custom_css = """ #logo-container { # display: flex; # align-items: center; # margin-bottom: 15px; #} #.title { # flex-grow: 1; # text-align: center; #} #""" # 4. Criar a interface com Blocks #with gr.Blocks(css=custom_css) as app: with gr.Blocks() as app: # Container para logo e título with gr.Column():#elem_id="logo-container"): gr.HTML(img_html) gr.Markdown("""

Chatbot com IA Generativa

Modelo DeepSeek via OpenRouter com retorno direto.

""") # Área de chat (simulando a Interface original) with gr.Row(): message = gr.Textbox(placeholder="Digite sua pergunta aqui", label="Mensagem") output = gr.Textbox(label="Resposta do Chatbot", interactive=False) message.submit( responder, inputs=message, outputs=output ) # 5. Lançar o aplicativo app.launch(share=True)