File size: 2,003 Bytes
7f9169d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bfc4abe
7f9169d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import gradio as gr
from transformers import pipeline
pipeline = pipeline("text-generation", model="not-lain/PyGPT")

def format_input(instruction,inp):
  prefix = f"Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n"
  txt = prefix + f"### Instruction:\n{instruction}"+ f"\n\n### Input:{inp}"+"\n\n### Output:\n"
  return txt

def process_markdown(out):
  mark = f"""```py
{out}
```"""
  return mark

def generate_text(length,instruction,inp):
    if instruction == None  : 
       instruction = ""
    if inp == None  : 
       inp = ""
    txt = format_input(instruction,inp)
    out =  pipeline(txt, max_length=len(txt)+length)[0]["generated_text"]
    out = out.split("Output:\n")[1]
    mark = process_markdown(out)
    return mark


MARKDOWN_TEXT = """
# PyGPT Text Generation Demo
this is a demo using the [PyGPT model](https://huggingface.co/not-lain/PyGPT) to generate text based on an input instruction and input text.
the model is based on the [GPT-2 model](https://huggingface.co/gpt2) and finetuned on the [python_code_instructions_18k_alpaca](https://huggingface.co/datasets/iamtarun/python_code_instructions_18k_alpaca) dataset.
"""



with gr.Blocks() as iface:
    gr.Markdown(MARKDOWN_TEXT)
    length = gr.Slider(1, 100, 50, label="Max Length")
    instruction = gr.Text(label= "instruction")
    inp = gr.Text(label="input")
    out = gr.Markdown(label="output")
    submit = gr.Button("submit")
    submit.click(generate_text,inputs=[length,instruction,inp],outputs=out)
    gr.Examples([
        [50,"Create a function to calculate the sum of a sequence of integers.","[1, 2, 3, 4, 5]"],
        [50,"Generate a Python code for crawling a website for a specific type of data.","website: www.example.com data to crawl: phone numbers"]],
                inputs = [length,instruction,inp],
                outputs= [out],
                fn=generate_text,
                cache_examples=True)

    

iface.launch(debug=True)