|
import gradio as gr |
|
import subprocess |
|
import openapi |
|
import time |
|
|
|
def translate(text_input, openapi_key): |
|
openai.api_key = openapi_key |
|
|
|
text_list = text_input.split('\n')[12:] |
|
|
|
reply = [] |
|
|
|
for i in range(0,len(text_list)+9,10): |
|
content = """What do these sentences about Hugging Face Transformers (a machine learning library) mean in Korean? Please do not translate the word after a π€ emoji as it is a product name. Please ignore the video and image and translate only the sentences I provided. Ignore the contents of the iframe tag. |
|
```md |
|
%s"""%'\n'.join(text_list[i:i+10]) |
|
|
|
chat = openai.ChatCompletion.create( |
|
model = "gpt-3.5-turbo-0301", messages=[ |
|
{"role": "system", |
|
"content": content},]) |
|
|
|
print("μ§λ¬Έ") |
|
print(content) |
|
print("μλ΅") |
|
print(chat.choices[0].message.content) |
|
|
|
reply.append(chat.choices[0].message.content) |
|
|
|
time.sleep(20) |
|
|
|
return reply |
|
|
|
inputs = [ |
|
gr.inputs.Textbox(lines=2, label="Input Open API Key"), |
|
gr.inputs.File(label="Upload MDX File") |
|
] |
|
|
|
outputs = gr.outputs.Textbox(label="Translation") |
|
|
|
def translate_with_upload(text, file): |
|
|
|
openapi_key = text |
|
|
|
if file is not None: |
|
|
|
filename = os.path.basename(file.name) |
|
|
|
new_filename = f"text_{filename}" |
|
|
|
subprocess.run(f"sed '/```/,/```/d' {filename} | sed '/^|.*|$/d' | sed '/^$/N;/^\n$/D' > {new_filename}", shell=True) |
|
|
|
with open(new_filename, 'r') as f: |
|
text_input = f.read() |
|
else: |
|
|
|
text_input = "" |
|
|
|
return translate(text_input, openapi_key) |
|
|
|
prompt_translate = gr.Interface( |
|
fn=translate_with_upload, |
|
inputs=inputs, |
|
outputs=outputs, |
|
title="ChatGPT Korean Prompt Translation", |
|
description="Translate your text into Korean using the GPT-3 model.", |
|
theme="compact" |
|
) |
|
|
|
prompt_translate.launch() |
|
|