respostaCliente / app.py
vitordigitizing's picture
Update app.py
9cb3072 verified
from openai import OpenAI
import gradio as gr
import os
# Inicializa cliente OpenAI com chave do ambiente
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def traduzir_en_para_pt(texto):
if not texto.strip():
return "Por favor, insira um texto em inglês."
resposta = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "Você é um tradutor profissional de inglês para português."},
{"role": "user", "content": f"Traduza para português:\n\n{texto}"}
]
)
return resposta.choices[0].message.content.strip()
def traduzir_pt_para_en(texto):
if not texto.strip():
return "Por favor, insira um texto em português."
resposta = client.chat.completions.create(
model="gpt-4",
messages=[
{
"role": "system",
"content": (
"Você é um assistente de atendimento ao cliente especialista em bordados. Traduza mensagens do português para o inglês com tom caloroso, positivo e proativo. "
"Sempre inclua uma frase acolhedora no final, como: 'I'm here to help!', 'Feel free to reach out if anything needs fixing.', ou 'Just give me a shout if there's anything I can help with.'. "
"Use expressões gentis e humanas como: 'I hope the embroidery turned out wonderfully!', 'I'd love to hear how it went!', 'Let me know if everything turned out well!'. "
"Evite traduções literais. Fale como se estivesse cuidando de um cliente querido com muito carinho."
)
},
{"role": "user", "content": f"Traduza para inglês:\n\n{texto}"}
]
)
return resposta.choices[0].message.content.strip()
def resposta_curta(texto):
if not texto.strip():
return "Por favor, insira um texto em português."
resposta = client.chat.completions.create(
model="gpt-4",
messages=[
{
"role": "system",
"content": (
"Você é um assistente de atendimento ao cliente. Traduza mensagens do português para o inglês de forma simpática, breve e direta, ideal para chats rápidos."
)
},
{"role": "user", "content": f"Traduza para inglês:\n\n{texto}"}
]
)
return resposta.choices[0].message.content.strip()
def sugerir_outra_resposta(texto):
return traduzir_pt_para_en(texto)
with gr.Blocks(css="""
.custom-copy-box textarea + button {
background-color: #3b82f6 !important;
color: white !important;
font-size: 16px !important;
padding: 10px !important;
border-radius: 6px !important;
font-weight: bold;
transition: background-color 0.3s ease;
}
.custom-copy-box textarea + button:hover {
background-color: #2563eb !important;
}
""") as app:
gr.Markdown("## 🌍 Tradutor de Conversas PT ↔ EN")
with gr.Row():
with gr.Column():
gr.Markdown("### 📨 Cliente escreveu em inglês")
input_en = gr.Textbox(label="Texto em inglês", lines=4, placeholder="Cole a mensagem do cliente aqui...")
output_pt = gr.Textbox(label="Tradução para português", lines=4)
btn1 = gr.Button("Traduzir para Português")
with gr.Column():
gr.Markdown("### 📝 Resposta em português")
input_pt = gr.Textbox(label="Texto em português", lines=4, placeholder="Escreva sua resposta em português...")
output_en = gr.Textbox(label="Tradução para inglês", lines=4, show_copy_button=True, elem_classes=["custom-copy-box"])
btn2 = gr.Button("Traduzir para Inglês")
btn6 = gr.Button("⚡ Resposta Curta")
btn3 = gr.Button("🎲 Outra resposta")
btn1.click(fn=traduzir_en_para_pt, inputs=input_en, outputs=output_pt)
btn2.click(fn=traduzir_pt_para_en, inputs=input_pt, outputs=output_en)
btn6.click(fn=resposta_curta, inputs=input_pt, outputs=output_en)
btn3.click(fn=sugerir_outra_resposta, inputs=input_pt, outputs=output_en)
app.launch()