|
import gradio as gr |
|
from functionality import get_collection, predict |
|
|
|
def read_file(file): |
|
if file is not None: |
|
with open(file.name, 'r') as f: |
|
file_data = f.read() |
|
return file_data |
|
else: |
|
return None |
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("# **π AI-powered Academic Research Assistant π**") |
|
gr.Markdown("""**AI-powered Academic Research Assistant** is a tool which helps to |
|
ensure the *correct grammar* and *academic style* in the scientific papers. |
|
|
|
It also could help with *writing needed parts* or *proposing possible ideas* |
|
for describing what you want in appropriate way. |
|
|
|
## π₯ Down bellow you should choose appropriate parameters for your goals and then wait a little for the responce!""") |
|
|
|
gr.Markdown('π¨ Write the text you what to expand or upload corresponding text file.') |
|
|
|
with gr.Tab('Write Text π'): |
|
gr.Markdown("βοΈ *Hint*: to ensure more effective work of 'Fix Academic Style' try to make your sentences not too long (<= 20 words).") |
|
input_prompt = gr.Textbox(label='Initial Text π', |
|
placeholder='Write here your research text!', |
|
lines=9,) |
|
with gr.Tab('Upload File π©'): |
|
gr.Markdown("βοΈ *Hint*: to ensure more effective work of 'Fix Academic Style' try to make your sentences not too long (<= 20 words).") |
|
txt_file = gr.File(file_types=['text',], label='Upload Text File',) |
|
txt_file.change(read_file, inputs=txt_file, outputs=input_prompt) |
|
|
|
|
|
gr.Markdown('βοΈ Fill parameters for your needs') |
|
with gr.Row(variant='panel', equal_height=True): |
|
request_goal = gr.Radio(label='π€ Specify the purpose of your request.', |
|
info="Pick one:", |
|
choices=['Write Text (Part)', 'Fix Academic Style', 'Fix Grammar', ], |
|
value='Write Text (Part)',) |
|
|
|
with gr.Accordion("βοΈ In case you need to Write Text (Part) choose appropriate option!", open=False): |
|
part_to_write = gr.CheckboxGroup(label="""π What part for Assistant to write? (here you need to |
|
specify what part of your research you need to complete.)""", |
|
info="""You may chose as many as needed:""", |
|
choices=['Abstract', 'Introduction', |
|
'Methodology', 'Discussion', 'Conclusion', 'Full Text',], |
|
value='Abstract',) |
|
|
|
with gr.Row(equal_height=True): |
|
submit_btn = gr.Button('Confirm! β
') |
|
clear_btn = gr.Button('Clear β', min_width=611) |
|
|
|
gr.Markdown('##### π Assistant Responce') |
|
gr.Markdown("In case you did not satisfy with the responce try to paraphrase!") |
|
|
|
responce = gr.Textbox(label="Generated Text π¨πΌβπ»", |
|
info="""You may face some page jumps, it is a bug which will be fixed. Just wait for the completion of text generation. |
|
Sorry for inconvenience(""", |
|
lines=9, |
|
placeholder='Here the generated text will appear!', |
|
show_label=True, |
|
show_copy_button=True, |
|
autofocus=True, |
|
autoscroll=True,) |
|
|
|
submit_btn.click(fn=predict, |
|
inputs=[request_goal, part_to_write, input_prompt,], |
|
outputs=[responce], |
|
scroll_to_output=True, queue=True) |
|
clear_btn.click(lambda: (None, None, 'Write Text (Part)', 'Abstract', None), None, |
|
outputs=[input_prompt, txt_file, request_goal, part_to_write, responce]) |
|
|
|
if __name__ == "__main__": |
|
get_collection() |
|
demo.launch() |
|
|