File size: 3,579 Bytes
0841a1b 9a3f681 0841a1b 5e292fc 9a3f681 5e292fc 6f28eab 9a3f681 5e292fc 9a3f681 0841a1b 5e292fc 9a3f681 5e292fc 9a3f681 5e292fc 354eea2 5e292fc 354eea2 5e292fc 6f28eab 5e292fc 6f28eab 5e292fc 6f28eab 5e292fc 6f28eab 0841a1b 5e292fc 0841a1b 9a3f681 5e292fc 9a3f681 0841a1b 5e292fc 0841a1b 5e292fc 0841a1b 9a3f681 5e292fc 9a3f681 5e292fc 6f28eab 9a3f681 5e292fc 0841a1b 5e292fc 0841a1b 5e292fc 6f28eab 9a3f681 6f28eab 5e292fc 6f28eab 5e292fc 6f28eab 9a3f681 5e292fc 6f28eab |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
import gradio as gr
from huggingface_hub import InferenceClient
from datasets import load_dataset
# Função para carregar o dataset `aicoder69/aicoder69` com tratamento de erros
def load_aicoder_dataset():
try:
print("Carregando o dataset...")
dataset = load_dataset("aicoder69/aicoder69")
print("Dataset carregado com sucesso!")
return dataset
except Exception as e:
print(f"Erro ao carregar o dataset: {e}")
return None
aicoder_dataset = load_aicoder_dataset()
# Função para recuperar um exemplo do dataset com segurança
def get_example_from_aicoder(dataset, index):
if dataset and "train" in dataset:
try:
return dataset["train"][index]
except IndexError:
print("Índice fora do intervalo no dataset.")
return {"text": "Nenhum exemplo disponível."}
else:
print("O dataset não foi carregado corretamente.")
return {"text": "Dataset não disponível."}
# Inicializar o cliente de inferência com tratamento de erros
def initialize_client():
try:
print("Inicializando o cliente de inferência...")
client = InferenceClient("unsloth/Llama-3.2-1B-Instruct")
print("Cliente de inferência inicializado com sucesso!")
return client
except Exception as e:
print(f"Erro ao inicializar o cliente de inferência: {e}")
return None
client = initialize_client()
# Função de resposta do chatbot
def respond(
message,
history: list[tuple[str, str]],
system_message,
max_tokens,
temperature,
top_p,
):
if not client:
return "Erro: O cliente de inferência não foi inicializado."
messages = [{"role": "system", "content": system_message}]
# Adicionar interações históricas
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
# Adicionar mensagem do usuário
messages.append({"role": "user", "content": message})
try:
print("Enviando solicitação ao modelo...")
response = client.chat_completion(
messages,
max_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
).choices[0].message.content
print("Resposta recebida com sucesso!")
return response
except Exception as e:
print(f"Erro durante a inferência: {e}")
return "Ocorreu um erro ao gerar uma resposta."
# Exemplo: Recuperar uma entrada do dataset
example_data = get_example_from_aicoder(aicoder_dataset, 0)
print("Exemplo do dataset:", example_data)
# Interface Gradio
def launch_demo():
try:
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Textbox(value="Você é um chatbot amigável. Seu nome é Juninho.", label="Mensagem do sistema"),
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Máximo de novos tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperatura"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (amostragem núcleo)",
),
],
)
demo.launch()
except Exception as e:
print(f"Erro ao iniciar o aplicativo Gradio: {e}")
if __name__ == "__main__":
launch_demo() |