File size: 6,137 Bytes
a1bc39d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7f2ec6d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3eb58cd
 
7f2ec6d
3fbe817
21d804e
3eb58cd
9224ffd
 
4ca8440
9224ffd
 
4ca8440
3fbe817
9224ffd
4ca8440
17291f6
4ca8440
b24494c
4ca8440
21d804e
 
 
3fbe817
 
 
21d804e
3eb58cd
 
fd71939
17291f6
3eb58cd
 
 
 
 
 
 
fd71939
 
3eb58cd
21d804e
9907d16
9224ffd
3fbe817
9224ffd
 
 
 
 
5b4db95
3fbe817
 
9907d16
5b4db95
 
 
 
9224ffd
9907d16
9224ffd
 
 
 
 
5b4db95
9907d16
5b4db95
 
 
9808a5f
9224ffd
9808a5f
9224ffd
 
 
 
 
3eb58cd
9907d16
3eb58cd
 
 
9808a5f
9907d16
9224ffd
 
 
 
 
 
9907d16
 
 
 
 
4ca8440
 
 
f076e4f
 
4ca8440
 
 
 
b24494c
4ca8440
 
f076e4f
 
 
5da4835
e5a45fc
99c33b8
e5a45fc
 
 
 
 
 
7f2ec6d
e5a45fc
a1bc39d
7f2ec6d
a1bc39d
8e7188b
bef2a73
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
import gradio as gr

def add_text(history, text):
    history = history + [(text, None)]
    return history, ""

def add_file(history, file):
    history = history + [((file.name,), None)]
    return history

def bot(history):
    response = "**That's cool!**"
    history[-1][1] = response
    return history

"""

Alpaca model trained: example (n.b. can upload mine as a HF model to load from?)

"""
'''
from peft import PeftModel
from transformers import LLaMATokenizer, LLaMAForCausalLM, GenerationConfig

tokenizer = LLaMATokenizer.from_pretrained("chavinlo/alpaca-native")

model = LLaMAForCausalLM.from_pretrained(
    "chavinlo/alpaca-native",
    load_in_8bit=True,
    device_map="auto",
)
'''


def generateresponse(history):
    """
    Model definition here:
    """
    '''
    global model
    global tokenizer

    PROMPT = f"""Below is an instruction that describes a task. Write a response that appropriately completes the request.
    ### Instruction:
    {user}
    ### Response:"""

    inputs = tokenizer(
        PROMPT,
        return_tensors="pt",
    )
    input_ids = inputs["input_ids"].cuda()

    generation_config = GenerationConfig(
        temperature=0.6,
        top_p=0.95,
        repetition_penalty=1.15,
    )
    print("Generating...")
    generation_output = model.generate(
        input_ids=input_ids,
        generation_config=generation_config,
        return_dict_in_generate=True,
        output_scores=True,
        max_new_tokens=256,
    )
    output = []
    for s in generation_output.sequences:
        outputs.append(tokenizer.decode(s))
        print(tokenizer.decode(s))
    
    output = (outputs[0].split('### Response:'))[1]

    '''

    user = history[-1][0]
    
    response = f"you asked: {user}"
    history[-1][1] = response
    print(history)
    return history

theme = gr.themes.Base(
    primary_hue="indigo",
).set(
    prose_text_size='*text_sm'
)

with gr.Blocks(title='Claimed', theme=theme) as demo:

    gr.Markdown("""
    ### CLAIMED - A GENERATIVE TOOLKIT FOR PATENT ATTORNEYS 
    
    Hey there, genius!

    Welcome to our demo! We've trained Meta's Llama on almost 200k data entries in the question/answer format.


    In the future, we are looking to expand our model's capabilities further to assist in a range of IP related tasks.


    If you are interested in using a more powerful model that we have trained, or you have any suggestions of features you would like to see us add, please get in touch!


    As far as data is concerned, you have nothing to worry about! We don't store any of your inputs to use for further training, we're not OpenAI 👀. We'd just like to know if this is something people would be interested in using! 

    Please note that this is for research purposes and shouldn't be used commercially. 

    None of the outputs should be taken as solid legal advice. If you are an inventor looking to patent an invention, always seek the help of a registered patent attorney.


    If you



    
    """)
    
    with gr.Tab("Text Drafter"):
        gr.Markdown(""" 
        You can use this tool to expand your idea using Claim Language.

        Example input: A device to help the visually impaired using proprioception.

        Output: 
        """)
        text_input = gr.Textbox()
        text_output = gr.Textbox()
        text_button = gr.Button("")
   
    with gr.Tab("Description Generator"):
        gr.Markdown(""" 
        Patent descriptions are loooonggg and boring! You can use this tool to 

        Example input: A device to help the visually impaired using proprioception.

        Output: 
        """)        
        with gr.Row(scale=1, min_width=600):
            
            
            text1 = gr.Textbox(label="Input",
                              placeholder='Type in your idea here!')
            text2 = gr.Textbox(label="Output")

    with gr.Tab("Knowledge Graph"):
        gr.Markdown(""" 
        Are you more of a visual type? Use this tool to generate graphical representations of your ideas and how their features interlink.

        Example input: A device to help the visually impaired using proprioception.

        Output: 
        """)
        with gr.Row(scale=1, min_width=600):
            text1 = gr.Textbox(label="Input",
                              placeholder='Type in your idea here!')
            text2 = gr.Textbox(label="Output")

    with gr.Tab("Prosecution Ideator"):
        gr.Markdown(""" 
        Below is our 

        Example input: A device to help the visually impaired using proprioception.

        Output: 
        """)
        with gr.Row(scale=1, min_width=600):
            text1 = gr.Textbox(label="Input",
                              placeholder='Type in your idea here!')
            text2 = gr.Textbox(label="Output")

    with gr.Tab("Claimed Infill"):
        gr.Markdown(""" 
        Below is our 

        Example input: A device to help the visually impaired using proprioception.

        Output: 
        """)
        with gr.Row(scale=1, min_width=600):
            text1 = gr.Textbox(label="Input",
                              placeholder='Type in your idea here!')
            text2 = gr.Textbox(label="Output")


    gr.Markdown(""" 

    # THE CHATBOT

    Do you want a bit more freedom over the outputs you generate? No worries, you can use a chatbot version of our model below. You can ask it anything by the way, just try to keep it PG.

    If you're concerned about an output from the model, hit the flag button and we will use that information to improve the model.

   

    """)


    
    
    chatbot = gr.Chatbot([], elem_id="Claimed Assistant").style(height=500)
    with gr.Row():
        with gr.Column(scale=0.85):
            txt = gr.Textbox(
                show_label=False,
                placeholder="Enter text and press enter, or upload an image",
            ).style(container=False)
        with gr.Column(scale=0.15, min_width=0):
            btn = gr.Button("Submit")

    txt.submit(add_text, [chatbot, txt], [chatbot, txt]).then(
        generateresponse, chatbot, chatbot
    )

demo.launch()