File size: 1,885 Bytes
54f25c9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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

import gradio as gr
from transformers import pipeline

# Load the pre-trained model from Hugging Face

import torch
from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizer, pipeline

peft_model_id = "jinhybr/code-llama-7b-text-to-sql"
# peft_model_id = args.output_dir

# Load Model with PEFT adapter
model = AutoPeftModelForCausalLM.from_pretrained(
  peft_model_id,
  device_map="auto",
  torch_dtype=torch.float16
)
tokenizer = AutoTokenizer.from_pretrained(peft_model_id)
# load into pipeline
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)


# Define the Gradio interface
def translate_to_sql(question):
    strA = 'You are a text to SQL query translator. Users will ask you questions in English and you will generate a SQL query based on the provided SCHEMA.\nSCHEMA:\nCREATE TABLE table_17429402_7 (school VARCHAR, last_occ_championship VARCHAR)'
    combined_json_data = [{'content': strA, 'role': 'system'}, {'content': question, 'role': 'user'}]
    prompt = pipe.tokenizer.apply_chat_template(combined_json_data, tokenize=False, add_generation_prompt=True)
    outputs = pipe(prompt, max_new_tokens=256, do_sample=False, temperature=0.1, top_k=50, top_p=0.1, eos_token_id=pipe.tokenizer.eos_token_id, pad_token_id=pipe.tokenizer.pad_token_id)
    return outputs[0]['generated_text'][len(prompt):].strip()

question_input = gr.inputs.Textbox(lines=7, label="Enter your question")
output_text = gr.outputs.Textbox(label="Generated SQL Query")

# Create the Gradio interface
gr.Interface(fn=translate_to_sql, inputs=question_input, outputs=output_text, title="Text to SQL Translator", description="Translate English questions to SQL queries.").launch()

# Create the Gradio interface
gr.Interface(fn=classify_text, inputs=inputs, outputs=outputs, title="Sentiment Analysis", description="Predict the sentiment of text.").launch()