Spaces:
Runtime error
Runtime error
File size: 2,430 Bytes
e1e482a a8ef359 e1e482a a8ef359 e1e482a 6a0caf6 e1e482a 6a0caf6 1b25c1a e1e482a 6a0caf6 e1e482a 6a0caf6 e1e482a 6a0caf6 e1e482a 27c40ee e1e482a 6a0caf6 e1e482a 6a0caf6 e1e482a |
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 |
import gradio as gr
import json
import os
import openai
INIT_PROMPT = """I would like to engage your services as an academic writing consultant to improve my writing.
I will provide you with text that requires refinement, and you will enhance it with more academic language and sentence structures.
The essence of the text should remain unaltered, including any LaTeX commands.
I request that you provide only the improved version of the text without any further explanations."""
PREFIX_PROMPT = "Please refine the following text in academic English:"
def submit(x, api, init_prompt, prefix_prompt, simple=False):
# reset api key everytime, so it won't save api unsafely...?
openai.api_key = api
# restart a new conversation.
if simple:
results = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": prefix_prompt + '\n' + x},
]
)
else:
results = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": init_prompt},
{"role": "user", "content": prefix_prompt + '\n' + x},
]
)
total_tokens = results['usage']['total_tokens']
cost = (total_tokens / 1000) * 0.002 # in dollar
response = results['choices'][0]['message']['content']
return response, cost
print(f'[INFO] Starting Gradio APP...')
with gr.Blocks() as app:
gr.Markdown("### ChatGPT, please help to improve my paper writing!")
# allow setting API key in gui
api_input = gr.Textbox(label="OPENAI_API_KEY", value=openai.api_key, lines=1)
# allow changing prompts
init_prompt_input = gr.Textbox(label="Init Prompt", value=INIT_PROMPT)
prefix_prompt_input = gr.Textbox(label="Prefix Prompt", value=PREFIX_PROMPT)
simple_checkbox = gr.Checkbox(value=False, label='simple mode (only send the prefix prompt, 0.000142$ cheaper per query)')
with gr.Row():
text_input = gr.Textbox(label="Input", lines=12)
with gr.Column():
text_output = gr.Textbox(label="Output", lines=10)
cost = gr.Number(label='cost of this query ($)')
text_button = gr.Button("Submit")
text_button.click(submit, inputs=[text_input, api_input, init_prompt_input, prefix_prompt_input, simple_checkbox], outputs=[text_output, cost])
app.launch() |