chat_livraria / app.py
Francisco135700's picture
Update app.py
22cab84 verified
import os
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
import gradio as gr
# 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.9
)
# Função com prompt de contexto
def responder(mensagem):
try:
prompt_inicial = (
"Você é um assistente de professor altamente qualificado, especializado em ensinar programação em Python para iniciantes e estudantes de nível intermediário. "
"Seu papel é atuar como tutor, respondendo dúvidas de forma didática, com explicações passo a passo, exemplos práticos e sugestões de exercícios. "
"Sempre que possível, utilize analogias simples, linguagem acessível e boas práticas de programação. "
"Evite respostas muito técnicas sem explicação. Sua missão é ensinar, não apenas responder.\n\n"
"Estudante: " + mensagem + "\n"
"Tutor:"
)
resposta = llm.invoke(prompt_inicial)
return resposta.content
except Exception as e:
import traceback
return f"❌ Erro:\n{traceback.format_exc()}"
# Interface Gradio adaptada
app = gr.Interface(
fn=responder,
inputs=gr.Textbox(placeholder="Ex: Gosto de thrillers psicológicos como os de Gillian Flynn.", label="Preferência do Cliente"),
outputs=gr.Textbox(label="Sugestão de Livros"),
title="Tutor Especialista em Python",
description="Um assistente de IA especializado em sugerir livros com base nos seus gostos literários.",
)
app.launch(share=True)