File size: 2,209 Bytes
723fe48
 
82871f4
 
48eef38
82871f4
 
723fe48
48eef38
723fe48
48eef38
 
 
723fe48
 
 
 
48eef38
 
723fe48
48eef38
723fe48
 
48eef38
82871f4
48eef38
723fe48
48eef38
723fe48
48eef38
723fe48
 
82871f4
723fe48
82871f4
 
 
723fe48
48eef38
 
 
723fe48
48eef38
 
723fe48
 
 
48eef38
723fe48
 
 
48eef38
 
 
723fe48
 
48eef38
723fe48
48eef38
 
723fe48
 
 
 
 
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
import pandas as pd
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "meta-llama/Llama-2-7b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)

# Dados iniciais
data = {
    'Nome': ['Alice', 'Bob', 'Charlie'],
    'Idade': [25, 30, 35],
    'Cidade': ['Nova York', 'Los Angeles', 'Chicago'],
    'Feedback': [None, None, None]
}
df = pd.DataFrame(data)

# Função para adicionar feedback
def add_feedback(nome, feedback):
    global df
    df.loc[df['Nome'] == nome, 'Feedback'] = feedback
    return df

# Função para obter uma resposta do GPT (substituição para chamada real ao GPT)
def get_gpt_response(query):
    # Converte o DataFrame para string CSV
    csv_data = df.to_csv(index=False)
    # Cria contexto com feedback
    context = f"""
    Aqui estão os dados das pessoas incluindo seus nomes, idades, cidades onde moram e feedback:

    {csv_data}
    
    """
    input_ids = tokenizer(query, return_tensors="pt").input_ids
    output = model.generate(input_ids, max_new_tokens=100)
    return tokenizer.decode(output[0], skip_special_tokens=True)

def ask_question(pergunta):
    resposta = get_gpt_response(pergunta)
    return resposta

def submit_feedback(nome, feedback):
    updated_df = add_feedback(nome, feedback)
    return updated_df

with gr.Blocks() as demo:
    gr.Markdown("# Sistema de Consulta e Feedback de Dados")

    with gr.Row():
        with gr.Column():
            question_input = gr.Textbox(label="Faça uma Pergunta")
            response_output = gr.Textbox(label="Resposta do GPT", interactive=False)
            ask_button = gr.Button("Perguntar")

        with gr.Column():
            name_input = gr.Textbox(label="Nome para Feedback")
            feedback_input = gr.Textbox(label="Feedback")
            submit_button = gr.Button("Enviar Feedback")
            feedback_df = gr.Dataframe(label="DataFrame Atualizado", interactive=False)
    
    ask_button.click(fn=ask_question, inputs=question_input, outputs=response_output)
    submit_button.click(fn=submit_feedback, inputs=[name_input, feedback_input], outputs=feedback_df)

demo.launch()