Spaces:
Sleeping
Sleeping
import gradio as gr | |
from transformers import pipeline | |
import pandas as pd | |
import os | |
# Carregando o modelo pré-treinado | |
qa_pipeline = pipeline("question-answering", model="pierreguillou/bert-base-cased-squad-v1.1-portuguese") | |
# Função para ler o arquivo XLSX | |
def ler_ficha_tecnica(): | |
caminho_arquivo = "FTMO-AV21 - 6' MM BMD (04 FIGURAS).xlsx" | |
if os.path.exists(caminho_arquivo): | |
try: | |
df = pd.read_excel(caminho_arquivo) | |
info = df.to_string(index=False) | |
return info | |
except Exception as e: | |
return f"Erro ao ler o arquivo: {str(e)}" | |
else: | |
return "Arquivo da ficha técnica não encontrado." | |
ficha_tecnica = ler_ficha_tecnica() | |
# Dividindo o contexto em partes menores | |
contexto_geral = """ | |
SOBRE A EMPRESA: | |
A INTERCAST S.A. é uma empresa renomada no setor de fundição e metalurgia, fundada em 1970. Especializada na produção de peças fundidas em ferro e aço, atende principalmente os setores automotivo, agrícola e de construção. Localizada em Itaúna, Minas Gerais, Brasil, faz parte do grupo industrial norte-americano American, fundado em 1905. | |
SEGMENTOS DA EMPRESA: | |
A INTERCAST está presente em diversos segmentos, incluindo: | |
Caminhões, Equipamentos agrícolas, Máquinas para construção, Componentes para saneamento | |
CLIENTES: | |
A empresa atende clientes no Brasil, América do Norte e Europa. | |
CONTATO: | |
E-mail: [email protected] | |
Telefone: +55 37 3249 7000 | |
Site: www.intercast.com.br | |
Instagram: @intercastsa | |
""" | |
contexto_produtos = """ | |
LINHA DE PEÇAS: | |
A INTERCAST desenvolve peças fundidas técnicas (Midcastings) de 20 a 250 kg, em ferro cinzento ou nodular. Alguns produtos incluem: | |
Trombeta, Carcaça Central de Transmissão, Suporte, Cárter de Óleo, Quinta Roda, Hub Case, Caixa do Diferencial, Bottom Hidrante, Valvulas | |
""" | |
def responder_pergunta(message, history): | |
try: | |
if "ficha técnica" in message.lower() or "código 289" in message.lower(): | |
resposta = qa_pipeline(question=message, context=ficha_tecnica) | |
elif any(palavra in message.lower() for palavra in ["peça", "produto", "linha"]): | |
resposta = qa_pipeline(question=message, context=contexto_produtos) | |
else: | |
resposta = qa_pipeline(question=message, context=contexto_geral) | |
return resposta['answer'] | |
except Exception as e: | |
return f"Desculpe, ocorreu um erro ao processar sua pergunta: {str(e)}" | |
interface = gr.ChatInterface( | |
responder_pergunta, | |
title="Assistente INTERCAST S.A.", | |
description="Faça perguntas sobre a INTERCAST S.A., seus produtos, história, informações gerais e detalhes da ficha técnica." | |
) | |
interface.launch() |