Spaces:
Sleeping
Sleeping
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) |