Spaces:
Paused
Paused
Update app.py via AI Editor
Browse files
app.py
CHANGED
@@ -295,8 +295,8 @@ def get_right_col_content(selected_type,
|
|
295 |
loaded_preview = markdown_narrative_preview(red_doc) if red_doc else html.Div("No Red document loaded.")
|
296 |
elif src == "red_review":
|
297 |
label = "Red Review"
|
298 |
-
store_var =
|
299 |
-
loaded_preview =
|
300 |
elif src == "gold":
|
301 |
label = "Gold Document"
|
302 |
store_var = gold_doc
|
@@ -580,7 +580,6 @@ def master_callback(
|
|
580 |
global uploaded_files, uploaded_doc_contents
|
581 |
ctx = callback_context
|
582 |
|
583 |
-
# Get lengths for all wildcard outputs for correct no_update list length
|
584 |
wildcard_lengths = [
|
585 |
len(upload_shred_ids) if upload_shred_ids is not None else 0,
|
586 |
len(upload_pink_ids) if upload_pink_ids is not None else 0,
|
@@ -640,10 +639,12 @@ def master_callback(
|
|
640 |
# --- File upload/remove logic ---
|
641 |
if ctx.triggered and ctx.triggered[0]['prop_id'].startswith('upload-document'):
|
642 |
new_files = []
|
|
|
643 |
if upload_contents is not None:
|
644 |
for i, (content, name) in enumerate(zip(upload_contents, upload_filenames)):
|
645 |
file_content = process_document(content, name)
|
646 |
uploaded_files[name] = file_content
|
|
|
647 |
new_files.append(
|
648 |
dbc.Row([
|
649 |
dbc.Col(
|
@@ -661,7 +662,8 @@ def master_callback(
|
|
661 |
elif not isinstance(existing_files, list):
|
662 |
existing_files = [existing_files]
|
663 |
outputs[0] = existing_files + new_files
|
664 |
-
|
|
|
665 |
return outputs
|
666 |
|
667 |
if ctx.triggered and ctx.triggered[0]['prop_id'].startswith("{\"type\":\"remove-file\""):
|
@@ -704,7 +706,6 @@ def master_callback(
|
|
704 |
if content is not None:
|
705 |
uploaded_doc_contents[(src, ids[i]['index'])] = (content, filenames[i])
|
706 |
logging.info(f"{ids[i]['index']} {src} file uploaded: {filenames[i]}")
|
707 |
-
# For wildcard outputs, always return a list with the correct length
|
708 |
name_list = ["" for _ in range(len(contents))]
|
709 |
content_list = [None for _ in range(len(contents))]
|
710 |
radio_list = ["loaded" for _ in range(len(contents))]
|
@@ -716,7 +717,6 @@ def master_callback(
|
|
716 |
outputs[radio_idx] = radio_list
|
717 |
return outputs
|
718 |
|
719 |
-
# --- Document generation/chat/download logic ---
|
720 |
def gemini_generate(prompt, max_tokens=32798, temperature=0.4):
|
721 |
result_holder = {}
|
722 |
def run_gemini():
|
@@ -798,11 +798,11 @@ Now, generate the {document_type}:
|
|
798 |
return loaded_var
|
799 |
|
800 |
if doc_type == "Shred":
|
801 |
-
if not
|
802 |
outputs[20] = html.Div("Please upload a document before shredding.")
|
803 |
outputs[21] = ""
|
804 |
return outputs
|
805 |
-
file_contents =
|
806 |
try:
|
807 |
generated = generate_document(doc_type, file_contents)
|
808 |
outputs[1] = generated
|
|
|
295 |
loaded_preview = markdown_narrative_preview(red_doc) if red_doc else html.Div("No Red document loaded.")
|
296 |
elif src == "red_review":
|
297 |
label = "Red Review"
|
298 |
+
store_var = red_doc
|
299 |
+
loaded_preview = markdown_narrative_preview(red_doc) if red_doc else html.Div("No Red Review document loaded.")
|
300 |
elif src == "gold":
|
301 |
label = "Gold Document"
|
302 |
store_var = gold_doc
|
|
|
580 |
global uploaded_files, uploaded_doc_contents
|
581 |
ctx = callback_context
|
582 |
|
|
|
583 |
wildcard_lengths = [
|
584 |
len(upload_shred_ids) if upload_shred_ids is not None else 0,
|
585 |
len(upload_pink_ids) if upload_pink_ids is not None else 0,
|
|
|
639 |
# --- File upload/remove logic ---
|
640 |
if ctx.triggered and ctx.triggered[0]['prop_id'].startswith('upload-document'):
|
641 |
new_files = []
|
642 |
+
last_processed_content = None
|
643 |
if upload_contents is not None:
|
644 |
for i, (content, name) in enumerate(zip(upload_contents, upload_filenames)):
|
645 |
file_content = process_document(content, name)
|
646 |
uploaded_files[name] = file_content
|
647 |
+
last_processed_content = file_content
|
648 |
new_files.append(
|
649 |
dbc.Row([
|
650 |
dbc.Col(
|
|
|
662 |
elif not isinstance(existing_files, list):
|
663 |
existing_files = [existing_files]
|
664 |
outputs[0] = existing_files + new_files
|
665 |
+
# Always set the latest uploaded Shred document as store-shred
|
666 |
+
outputs[1] = last_processed_content
|
667 |
return outputs
|
668 |
|
669 |
if ctx.triggered and ctx.triggered[0]['prop_id'].startswith("{\"type\":\"remove-file\""):
|
|
|
706 |
if content is not None:
|
707 |
uploaded_doc_contents[(src, ids[i]['index'])] = (content, filenames[i])
|
708 |
logging.info(f"{ids[i]['index']} {src} file uploaded: {filenames[i]}")
|
|
|
709 |
name_list = ["" for _ in range(len(contents))]
|
710 |
content_list = [None for _ in range(len(contents))]
|
711 |
radio_list = ["loaded" for _ in range(len(contents))]
|
|
|
717 |
outputs[radio_idx] = radio_list
|
718 |
return outputs
|
719 |
|
|
|
720 |
def gemini_generate(prompt, max_tokens=32798, temperature=0.4):
|
721 |
result_holder = {}
|
722 |
def run_gemini():
|
|
|
798 |
return loaded_var
|
799 |
|
800 |
if doc_type == "Shred":
|
801 |
+
if not store_shred:
|
802 |
outputs[20] = html.Div("Please upload a document before shredding.")
|
803 |
outputs[21] = ""
|
804 |
return outputs
|
805 |
+
file_contents = [store_shred]
|
806 |
try:
|
807 |
generated = generate_document(doc_type, file_contents)
|
808 |
outputs[1] = generated
|