Spaces:
Running
Running
sc_ma
commited on
Commit
•
6fe5041
1
Parent(s):
a0d1776
add anoncement. remove some comments.
Browse files- app.py +17 -12
- auto_backgrounds.py +1 -3
- utils/storage.py +1 -1
app.py
CHANGED
@@ -4,6 +4,12 @@ import openai
|
|
4 |
from auto_backgrounds import generate_backgrounds, fake_generator
|
5 |
from auto_draft import generate_draft
|
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
openai_key = os.getenv("OPENAI_API_KEY")
|
8 |
access_key_id = os.getenv('AWS_ACCESS_KEY_ID')
|
9 |
secret_access_key = os.getenv('AWS_SECRET_ACCESS_KEY')
|
@@ -17,7 +23,6 @@ if openai_key is None:
|
|
17 |
print("OPENAI_API_KEY is not found in environment variables. The output may not be generated.\n")
|
18 |
IS_OPENAI_API_KEY_AVAILABLE = False
|
19 |
else:
|
20 |
-
# todo: check if this key is available or not
|
21 |
openai.api_key = openai_key
|
22 |
try:
|
23 |
openai.Model.list()
|
@@ -55,7 +60,7 @@ def wrapped_generator(title, description, openai_key = None,
|
|
55 |
return file_name
|
56 |
else:
|
57 |
# generate the result.
|
58 |
-
# output = fake_generate_backgrounds(title, description, openai_key)
|
59 |
output = generate_backgrounds(title, description, template, "gpt-4")
|
60 |
upload_file(file_name)
|
61 |
return output
|
@@ -66,29 +71,28 @@ def wrapped_generator(title, description, openai_key = None,
|
|
66 |
|
67 |
|
68 |
theme = gr.themes.Monochrome(font=gr.themes.GoogleFont("Questrial")).set(
|
69 |
-
background_fill_primary='#
|
70 |
-
|
71 |
-
|
72 |
)
|
73 |
|
74 |
with gr.Blocks(theme=theme) as demo:
|
75 |
gr.Markdown('''
|
76 |
-
# Auto-Draft:
|
77 |
|
78 |
本Demo提供对[Auto-Draft](https://github.com/CCCBora/auto-draft)的auto_backgrounds功能的测试。通过输入一个领域的名称(比如Deep Reinforcement Learning),即可自动对这个领域的相关文献进行归纳总结.
|
79 |
|
80 |
-
***2023-
|
81 |
-
|
82 |
-
|
83 |
|
84 |
## 用法
|
85 |
|
86 |
-
输入一个领域的名称(比如Deep Reinforcement Learning), 点击Submit, 等待大概十分钟,
|
87 |
''')
|
88 |
with gr.Row():
|
89 |
with gr.Column(scale=2):
|
90 |
key = gr.Textbox(value=openai_key, lines=1, max_lines=1, label="OpenAI Key", visible=not IS_OPENAI_API_KEY_AVAILABLE)
|
91 |
-
# key = gr.Textbox(value=openai_key, lines=1, max_lines=1, label="OpenAI Key", visible=False)
|
92 |
title = gr.Textbox(value="Deep Reinforcement Learning", lines=1, max_lines=1, label="Title")
|
93 |
description = gr.Textbox(lines=5, label="Description (Optional)")
|
94 |
|
@@ -100,7 +104,8 @@ with gr.Blocks(theme=theme) as demo:
|
|
100 |
availability_mapping = {True: "AVAILABLE", False: "NOT AVAILABLE"}
|
101 |
gr.Markdown(f'''## Huggingface Space Status
|
102 |
当`OpenAI API`显示AVAILABLE的时候这个Space可以直接使用.
|
103 |
-
当`OpenAI API`显示NOT AVAILABLE的时候这个Space可以通过在左侧输入OPENAI KEY来使用.
|
|
|
104 |
`OpenAI API`: <span style="{style_mapping[IS_OPENAI_API_KEY_AVAILABLE]}">{availability_mapping[IS_OPENAI_API_KEY_AVAILABLE]}</span>. `Cache`: <span style="{style_mapping[IS_CACHE_AVAILABLE]}">{availability_mapping[IS_CACHE_AVAILABLE]}</span>.''')
|
105 |
file_output = gr.File(label="Output")
|
106 |
|
|
|
4 |
from auto_backgrounds import generate_backgrounds, fake_generator
|
5 |
from auto_draft import generate_draft
|
6 |
|
7 |
+
# todo:
|
8 |
+
# 1. update README.md and introduction in app.py
|
9 |
+
# 2. update QQ group and Organization cards
|
10 |
+
# 3. update autodraft.py to generate a whole paper
|
11 |
+
# 4. add auto_polishing function
|
12 |
+
|
13 |
openai_key = os.getenv("OPENAI_API_KEY")
|
14 |
access_key_id = os.getenv('AWS_ACCESS_KEY_ID')
|
15 |
secret_access_key = os.getenv('AWS_SECRET_ACCESS_KEY')
|
|
|
23 |
print("OPENAI_API_KEY is not found in environment variables. The output may not be generated.\n")
|
24 |
IS_OPENAI_API_KEY_AVAILABLE = False
|
25 |
else:
|
|
|
26 |
openai.api_key = openai_key
|
27 |
try:
|
28 |
openai.Model.list()
|
|
|
60 |
return file_name
|
61 |
else:
|
62 |
# generate the result.
|
63 |
+
# output = fake_generate_backgrounds(title, description, openai_key) # todo: use `generator` to control which function to use.
|
64 |
output = generate_backgrounds(title, description, template, "gpt-4")
|
65 |
upload_file(file_name)
|
66 |
return output
|
|
|
71 |
|
72 |
|
73 |
theme = gr.themes.Monochrome(font=gr.themes.GoogleFont("Questrial")).set(
|
74 |
+
background_fill_primary='#E5E4E2',
|
75 |
+
background_fill_secondary = '#F6F6F6',
|
76 |
+
button_primary_background_fill="#281A39"
|
77 |
)
|
78 |
|
79 |
with gr.Blocks(theme=theme) as demo:
|
80 |
gr.Markdown('''
|
81 |
+
# Auto-Draft: 文献整理辅助工具
|
82 |
|
83 |
本Demo提供对[Auto-Draft](https://github.com/CCCBora/auto-draft)的auto_backgrounds功能的测试。通过输入一个领域的名称(比如Deep Reinforcement Learning),即可自动对这个领域的相关文献进行归纳总结.
|
84 |
|
85 |
+
***2023-05-03 Update***: 在这个版本中为大家提供了输入OpenAI API Key的地址, 如果有GPT-4的API KEY的话可以在这里体验!
|
86 |
+
我也会在近期提供一定的免费体验在这个Huggingface Organization里: [AUTO-ACADEMIC](https://huggingface.co/organizations/auto-academic/share/HPjgazDSlkwLNCWKiAiZoYtXaJIatkWDYM).
|
87 |
+
如果有更多想法和建议欢迎加入QQ群里交流, 如果我在Space里更新了Key我会第一时间通知大家. 群号: ***249738228***.
|
88 |
|
89 |
## 用法
|
90 |
|
91 |
+
输入一个领域的名称(比如Deep Reinforcement Learning), 点击Submit, 等待大概十分钟, 下载.zip格式的输出,在Overleaf上编译浏览.
|
92 |
''')
|
93 |
with gr.Row():
|
94 |
with gr.Column(scale=2):
|
95 |
key = gr.Textbox(value=openai_key, lines=1, max_lines=1, label="OpenAI Key", visible=not IS_OPENAI_API_KEY_AVAILABLE)
|
|
|
96 |
title = gr.Textbox(value="Deep Reinforcement Learning", lines=1, max_lines=1, label="Title")
|
97 |
description = gr.Textbox(lines=5, label="Description (Optional)")
|
98 |
|
|
|
104 |
availability_mapping = {True: "AVAILABLE", False: "NOT AVAILABLE"}
|
105 |
gr.Markdown(f'''## Huggingface Space Status
|
106 |
当`OpenAI API`显示AVAILABLE的时候这个Space可以直接使用.
|
107 |
+
当`OpenAI API`显示NOT AVAILABLE的时候这个Space可以通过在左侧输入OPENAI KEY来使用. 需要有GPT-4的API权限, 不然会报错.
|
108 |
+
当`Cache`显示AVAILABLE的时候, 所有的输入和输出会被备份到我的云储存中. 显示NOT AVAILABLE的时候可以正常使用.
|
109 |
`OpenAI API`: <span style="{style_mapping[IS_OPENAI_API_KEY_AVAILABLE]}">{availability_mapping[IS_OPENAI_API_KEY_AVAILABLE]}</span>. `Cache`: <span style="{style_mapping[IS_CACHE_AVAILABLE]}">{availability_mapping[IS_CACHE_AVAILABLE]}</span>.''')
|
110 |
file_output = gr.File(label="Output")
|
111 |
|
auto_backgrounds.py
CHANGED
@@ -49,19 +49,17 @@ def generate_backgrounds(title, description="", template="ICLR2022", model="gpt-
|
|
49 |
|
50 |
paper["title"] = title
|
51 |
paper["description"] = description
|
52 |
-
paper["references"] = ref.to_prompts()
|
53 |
paper["body"] = paper_body
|
54 |
paper["bibtex"] = bibtex_path
|
55 |
|
56 |
for section in ["introduction", "related works", "backgrounds"]:
|
57 |
try:
|
58 |
-
# usage = pipeline(paper, section, destination_folder, model=model)
|
59 |
usage = section_generation_bg(paper, section, destination_folder, model=model)
|
60 |
log_usage(usage, section)
|
61 |
except Exception as e:
|
62 |
print(f"Failed to generate {section} due to the error: {e}")
|
63 |
print(f"The paper {title} has been generated. Saved to {destination_folder}.")
|
64 |
-
# shutil.make_archive("output.zip", 'zip', save_to_path)
|
65 |
|
66 |
input_dict = {"title": title, "description": description, "generator": "generate_backgrounds"}
|
67 |
filename = hash_name(input_dict) + ".zip"
|
|
|
49 |
|
50 |
paper["title"] = title
|
51 |
paper["description"] = description
|
52 |
+
paper["references"] = ref.to_prompts()
|
53 |
paper["body"] = paper_body
|
54 |
paper["bibtex"] = bibtex_path
|
55 |
|
56 |
for section in ["introduction", "related works", "backgrounds"]:
|
57 |
try:
|
|
|
58 |
usage = section_generation_bg(paper, section, destination_folder, model=model)
|
59 |
log_usage(usage, section)
|
60 |
except Exception as e:
|
61 |
print(f"Failed to generate {section} due to the error: {e}")
|
62 |
print(f"The paper {title} has been generated. Saved to {destination_folder}.")
|
|
|
63 |
|
64 |
input_dict = {"title": title, "description": description, "generator": "generate_backgrounds"}
|
65 |
filename = hash_name(input_dict) + ".zip"
|
utils/storage.py
CHANGED
@@ -33,7 +33,7 @@ if (access_key_id is not None) and (secret_access_key is not None):
|
|
33 |
return [obj.key for obj in bucket.objects.all()]
|
34 |
|
35 |
def download_file(file_name):
|
36 |
-
''' Download `file_name` from the bucket.
|
37 |
Bucket (str) – The name of the bucket to download from.
|
38 |
Key (str) – The name of the key to download from.
|
39 |
Filename (str) – The path to the file to download to.
|
|
|
33 |
return [obj.key for obj in bucket.objects.all()]
|
34 |
|
35 |
def download_file(file_name):
|
36 |
+
''' Download `file_name` from the bucket.
|
37 |
Bucket (str) – The name of the bucket to download from.
|
38 |
Key (str) – The name of the key to download from.
|
39 |
Filename (str) – The path to the file to download to.
|