Spaces:
Runtime error
Runtime error
abc
Browse files- .idea/.name +1 -0
- app.py +36 -10
.idea/.name
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
app.py
|
app.py
CHANGED
|
@@ -26,17 +26,25 @@ def add_details(lst):
|
|
| 26 |
|
| 27 |
|
| 28 |
prompt_template = "Instructions: Compose a comprehensive reply to the query using the search results given. " \
|
| 29 |
-
"Make sure to cite results using [number] notation after the reference. " \
|
| 30 |
"If the search results mention multiple subjects " \
|
| 31 |
"with the same name, create separate answers for each. Only include information found in the results and " \
|
| 32 |
"don't add any additional information. Make sure the answer is correct and don't output false content. " \
|
| 33 |
"Ignore outlier search results which has nothing to do with the question. Only answer what is asked. " \
|
| 34 |
-
"The answer should be short and concise
|
| 35 |
|
| 36 |
-
# MODELS = ["universal-sentence-encoder", "instructor-large"]
|
| 37 |
MODELS = ["text-davinci-001", "text-davinci-002", "text-davinci-003"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
-
|
| 40 |
def add_source_numbers(lst):
|
| 41 |
return [item[:3] + '\t' + item[3:] for item in (lst)]
|
| 42 |
|
|
@@ -60,11 +68,11 @@ def preprocess(text):
|
|
| 60 |
def pdf_to_text(files_src, start_page=1, end_page=None):
|
| 61 |
text_list = []
|
| 62 |
for file in files_src:
|
| 63 |
-
if os.path.splitext(file.name)[1] == ".pdf":
|
| 64 |
doc = fitz.open(file.name)
|
| 65 |
total_pages = doc.page_count
|
| 66 |
-
if end_page is None:
|
| 67 |
-
|
| 68 |
for i in range(start_page - 1, end_page):
|
| 69 |
text = doc.load_page(i).get_text("text")
|
| 70 |
text = preprocess(text)
|
|
@@ -124,6 +132,7 @@ def predict(
|
|
| 124 |
chatbot,
|
| 125 |
inputs,
|
| 126 |
temperature,
|
|
|
|
| 127 |
selected_model=MODELS[0],
|
| 128 |
files=None
|
| 129 |
):
|
|
@@ -142,7 +151,7 @@ def predict(
|
|
| 142 |
for c in topn_chunks:
|
| 143 |
prompt += c + '\n\n'
|
| 144 |
prompt += prompt_template
|
| 145 |
-
prompt += f"Query: {inputs}\nAnswer:"
|
| 146 |
inputs = prompt
|
| 147 |
reference_results = add_source_numbers(topn_chunks)
|
| 148 |
display_reference = add_details(reference_results)
|
|
@@ -215,7 +224,7 @@ with gr.Blocks(css=customCSS, theme=beautiful_theme) as demo:
|
|
| 215 |
with gr.Column(scale=5):
|
| 216 |
with gr.Row():
|
| 217 |
chatbot = gr.Chatbot(elem_id="chatbot").style(height="100%")
|
| 218 |
-
with gr.Row():
|
| 219 |
with gr.Column(scale=12):
|
| 220 |
user_input = gr.Textbox(
|
| 221 |
show_label=False, placeholder="Enter here"
|
|
@@ -227,12 +236,21 @@ with gr.Blocks(css=customCSS, theme=beautiful_theme) as demo:
|
|
| 227 |
with gr.Column(min_width=50, scale=1):
|
| 228 |
with gr.Tab(label="ChatGPT"):
|
| 229 |
gr.Markdown(f'<p style="text-align:center">Get your Open AI API key <a '
|
|
|
|
| 230 |
f'href="https://platform.openai.com/account/api-keys">here</a></p>')
|
| 231 |
openAI_key=gr.Textbox(label='Enter your OpenAI API key here')
|
|
|
|
|
|
|
|
|
|
|
|
|
| 232 |
model_select_dropdown = gr.Dropdown(
|
| 233 |
label="Select model", choices=MODELS, multiselect=False, value=MODELS[0]
|
| 234 |
)
|
|
|
|
|
|
|
|
|
|
| 235 |
index_files = gr.Files(label="Files", type="file", multiple=True)
|
|
|
|
| 236 |
gr.Markdown(
|
| 237 |
"⚠️Be careful to change ⚠️\n\nIf you can't use it, please restore the default settings")
|
| 238 |
with gr.Tab(label="Advanced"):
|
|
@@ -245,10 +263,18 @@ with gr.Blocks(css=customCSS, theme=beautiful_theme) as demo:
|
|
| 245 |
interactive=True,
|
| 246 |
label="Temperature",
|
| 247 |
)
|
|
|
|
| 248 |
user_input.submit(predict, inputs=[openAI_key, history, chatbot, user_input, temperature, model_select_dropdown, index_files],
|
| 249 |
outputs=[chatbot, history])
|
| 250 |
user_input.submit(lambda: "", None, user_input)
|
| 251 |
submitBtn.click(predict, inputs=[openAI_key, history, chatbot, user_input, temperature, model_select_dropdown, index_files],
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 252 |
outputs=[chatbot, history])
|
| 253 |
submitBtn.click(lambda: "", None, user_input)
|
| 254 |
-
demo.queue(concurrency_count=10).launch(server_name="0.0.0.0",
|
|
|
|
| 26 |
|
| 27 |
|
| 28 |
prompt_template = "Instructions: Compose a comprehensive reply to the query using the search results given. " \
|
|
|
|
| 29 |
"If the search results mention multiple subjects " \
|
| 30 |
"with the same name, create separate answers for each. Only include information found in the results and " \
|
| 31 |
"don't add any additional information. Make sure the answer is correct and don't output false content. " \
|
| 32 |
"Ignore outlier search results which has nothing to do with the question. Only answer what is asked. " \
|
| 33 |
+
"The answer should be short and concise. \n\nQuery: {question}\nAnswer: "
|
| 34 |
|
|
|
|
| 35 |
MODELS = ["text-davinci-001", "text-davinci-002", "text-davinci-003"]
|
| 36 |
+
LANGUAGES = [
|
| 37 |
+
"English",
|
| 38 |
+
"简体中文",
|
| 39 |
+
"日本語",
|
| 40 |
+
"Deutsch",
|
| 41 |
+
"Vietnamese"
|
| 42 |
+
]
|
| 43 |
+
def set_openai_api_key(my_api_key):
|
| 44 |
+
openai.api_key = my_api_key
|
| 45 |
+
return gr.update(visible = True)
|
| 46 |
|
| 47 |
+
|
| 48 |
def add_source_numbers(lst):
|
| 49 |
return [item[:3] + '\t' + item[3:] for item in (lst)]
|
| 50 |
|
|
|
|
| 68 |
def pdf_to_text(files_src, start_page=1, end_page=None):
|
| 69 |
text_list = []
|
| 70 |
for file in files_src:
|
| 71 |
+
if (os.path.splitext(file.name)[1]).lower() == ".pdf":
|
| 72 |
doc = fitz.open(file.name)
|
| 73 |
total_pages = doc.page_count
|
| 74 |
+
# if end_page is None:
|
| 75 |
+
end_page = total_pages
|
| 76 |
for i in range(start_page - 1, end_page):
|
| 77 |
text = doc.load_page(i).get_text("text")
|
| 78 |
text = preprocess(text)
|
|
|
|
| 132 |
chatbot,
|
| 133 |
inputs,
|
| 134 |
temperature,
|
| 135 |
+
lang = LANGUAGES[0],
|
| 136 |
selected_model=MODELS[0],
|
| 137 |
files=None
|
| 138 |
):
|
|
|
|
| 151 |
for c in topn_chunks:
|
| 152 |
prompt += c + '\n\n'
|
| 153 |
prompt += prompt_template
|
| 154 |
+
prompt += f"Query: {inputs}. Reply in {lang}\nAnswer:"
|
| 155 |
inputs = prompt
|
| 156 |
reference_results = add_source_numbers(topn_chunks)
|
| 157 |
display_reference = add_details(reference_results)
|
|
|
|
| 224 |
with gr.Column(scale=5):
|
| 225 |
with gr.Row():
|
| 226 |
chatbot = gr.Chatbot(elem_id="chatbot").style(height="100%")
|
| 227 |
+
with gr.Row(visible=False) as input_raws:
|
| 228 |
with gr.Column(scale=12):
|
| 229 |
user_input = gr.Textbox(
|
| 230 |
show_label=False, placeholder="Enter here"
|
|
|
|
| 236 |
with gr.Column(min_width=50, scale=1):
|
| 237 |
with gr.Tab(label="ChatGPT"):
|
| 238 |
gr.Markdown(f'<p style="text-align:center">Get your Open AI API key <a '
|
| 239 |
+
<<<<<<< HEAD
|
| 240 |
f'href="https://platform.openai.com/account/api-keys">here</a></p>')
|
| 241 |
openAI_key=gr.Textbox(label='Enter your OpenAI API key here')
|
| 242 |
+
=======
|
| 243 |
+
f'href="https://platform.openai.com/account/api-keys">here</a></p>')
|
| 244 |
+
openAI_key=gr.Textbox(label='Enter your OpenAI API key here and press Enter')
|
| 245 |
+
>>>>>>> 2cb7b56a3054d0b5febf8ed9db8c59395b2d0327
|
| 246 |
model_select_dropdown = gr.Dropdown(
|
| 247 |
label="Select model", choices=MODELS, multiselect=False, value=MODELS[0]
|
| 248 |
)
|
| 249 |
+
language_select_dropdown = gr.Dropdown(
|
| 250 |
+
label="Select reply language", choices=LANGUAGES, multiselect=False, value=LANGUAGES[0]
|
| 251 |
+
)
|
| 252 |
index_files = gr.Files(label="Files", type="file", multiple=True)
|
| 253 |
+
with gr.Tab(label="Advanced"):
|
| 254 |
gr.Markdown(
|
| 255 |
"⚠️Be careful to change ⚠️\n\nIf you can't use it, please restore the default settings")
|
| 256 |
with gr.Tab(label="Advanced"):
|
|
|
|
| 263 |
interactive=True,
|
| 264 |
label="Temperature",
|
| 265 |
)
|
| 266 |
+
<<<<<<< HEAD
|
| 267 |
user_input.submit(predict, inputs=[openAI_key, history, chatbot, user_input, temperature, model_select_dropdown, index_files],
|
| 268 |
outputs=[chatbot, history])
|
| 269 |
user_input.submit(lambda: "", None, user_input)
|
| 270 |
submitBtn.click(predict, inputs=[openAI_key, history, chatbot, user_input, temperature, model_select_dropdown, index_files],
|
| 271 |
+
=======
|
| 272 |
+
openAI_key.submit(set_openai_api_key, [openAI_key], [input_raws])
|
| 273 |
+
user_input.submit(predict, inputs=[history, chatbot, user_input, temperature, language_select_dropdown, model_select_dropdown, index_files],
|
| 274 |
+
outputs=[chatbot, history])
|
| 275 |
+
user_input.submit(lambda: "", None, user_input)
|
| 276 |
+
submitBtn.click(predict, inputs=[history, chatbot, user_input, temperature, language_select_dropdown, model_select_dropdown, index_files],
|
| 277 |
+
>>>>>>> 2cb7b56a3054d0b5febf8ed9db8c59395b2d0327
|
| 278 |
outputs=[chatbot, history])
|
| 279 |
submitBtn.click(lambda: "", None, user_input)
|
| 280 |
+
demo.queue(concurrency_count=10).launch(server_name="0.0.0.0", server_port=7862)
|