Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
|
@@ -145,7 +145,40 @@ def process_document(contents, filename):
|
|
| 145 |
return f"Unsupported file format: {filename}. Please upload a PDF or DOCX file."
|
| 146 |
except Exception as e:
|
| 147 |
return f"Error processing document: {str(e)}"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 148 |
|
|
|
|
|
|
|
| 149 |
@app.callback(
|
| 150 |
Output('file-list', 'children'),
|
| 151 |
Output('status-bar', 'children'),
|
|
@@ -154,6 +187,7 @@ def process_document(contents, filename):
|
|
| 154 |
State('file-list', 'children')
|
| 155 |
)
|
| 156 |
def update_output(list_of_contents, list_of_names, existing_files):
|
|
|
|
| 157 |
global uploaded_files, shredded_document
|
| 158 |
if list_of_contents is not None:
|
| 159 |
new_files = []
|
|
@@ -170,6 +204,7 @@ def update_output(list_of_contents, list_of_names, existing_files):
|
|
| 170 |
return existing_files + new_files, "Document uploaded. Please select a document type to proceed."
|
| 171 |
return existing_files, "Please upload a document to begin."
|
| 172 |
|
|
|
|
| 173 |
@app.callback(
|
| 174 |
Output('file-list', 'children', allow_duplicate=True),
|
| 175 |
Output('status-bar', 'children', allow_duplicate=True),
|
|
@@ -217,6 +252,7 @@ def show_document_options(*args):
|
|
| 217 |
prevent_initial_call=True
|
| 218 |
)
|
| 219 |
def generate_document_preview(n_clicks, doc_source, uploaded_doc_name, *args):
|
|
|
|
| 220 |
global current_document, document_type, shredded_document, generated_documents
|
| 221 |
ctx = dash.callback_context
|
| 222 |
if not ctx.triggered:
|
|
@@ -353,5 +389,8 @@ def download_document(n_clicks):
|
|
| 353 |
|
| 354 |
if __name__ == '__main__':
|
| 355 |
print("Starting the Dash application...")
|
| 356 |
-
|
|
|
|
|
|
|
|
|
|
| 357 |
print("Dash application has finished running.")
|
|
|
|
| 145 |
return f"Unsupported file format: {filename}. Please upload a PDF or DOCX file."
|
| 146 |
except Exception as e:
|
| 147 |
return f"Error processing document: {str(e)}"
|
| 148 |
+
def generate_document(document_type, file_contents):
|
| 149 |
+
print(f"Generating document for {document_type}") # Debug print
|
| 150 |
+
prompt = f"""Generate a {document_type} based on the following project artifacts:
|
| 151 |
+
{' '.join(file_contents)}
|
| 152 |
+
Instructions:
|
| 153 |
+
1. Create the {document_type} as a detailed document.
|
| 154 |
+
2. Use proper formatting and structure.
|
| 155 |
+
3. Include all necessary sections and details.
|
| 156 |
+
4. Start the output immediately with the document content.
|
| 157 |
+
5. IMPORTANT: If the document type is Pink, Red, Gold and not review type, loe or board
|
| 158 |
+
then your goal is to be compliant and compelling based on the
|
| 159 |
+
requirements, write in paragraph in active voice as
|
| 160 |
+
MicroHealth, limit bullets, answer the
|
| 161 |
+
requirement with what MicroHealth will do
|
| 162 |
+
to satisfy the requirement, the technical
|
| 163 |
+
approach with innovation for efficiency,
|
| 164 |
+
productivity, quality and measurable
|
| 165 |
+
outcomes, the industry standard that
|
| 166 |
+
methodology is based on if applicable,
|
| 167 |
+
detail the workflow or steps to accomplish
|
| 168 |
+
the requirement with labor categories that
|
| 169 |
+
will do those tasks in that workflow,
|
| 170 |
+
reference reputable research like gartner,
|
| 171 |
+
forrester, IDC, Deloitte, Accenture etc
|
| 172 |
+
with measures of success and substantiation
|
| 173 |
+
of MicroHealth's approach. Never use soft words
|
| 174 |
+
like maybe, could be, should, possible be definitive in your language and confident.
|
| 175 |
+
6. you must also take into account section L&M of the document which is the evaluation criteria
|
| 176 |
+
to be sure we address them.
|
| 177 |
+
Now, generate the {document_type}:
|
| 178 |
+
"""
|
| 179 |
|
| 180 |
+
response = model.generate_content(prompt)
|
| 181 |
+
return response.text
|
| 182 |
@app.callback(
|
| 183 |
Output('file-list', 'children'),
|
| 184 |
Output('status-bar', 'children'),
|
|
|
|
| 187 |
State('file-list', 'children')
|
| 188 |
)
|
| 189 |
def update_output(list_of_contents, list_of_names, existing_files):
|
| 190 |
+
print("update_output callback triggered") # Debug print
|
| 191 |
global uploaded_files, shredded_document
|
| 192 |
if list_of_contents is not None:
|
| 193 |
new_files = []
|
|
|
|
| 204 |
return existing_files + new_files, "Document uploaded. Please select a document type to proceed."
|
| 205 |
return existing_files, "Please upload a document to begin."
|
| 206 |
|
| 207 |
+
|
| 208 |
@app.callback(
|
| 209 |
Output('file-list', 'children', allow_duplicate=True),
|
| 210 |
Output('status-bar', 'children', allow_duplicate=True),
|
|
|
|
| 252 |
prevent_initial_call=True
|
| 253 |
)
|
| 254 |
def generate_document_preview(n_clicks, doc_source, uploaded_doc_name, *args):
|
| 255 |
+
print("generate_document_preview callback triggered") # Debug print
|
| 256 |
global current_document, document_type, shredded_document, generated_documents
|
| 257 |
ctx = dash.callback_context
|
| 258 |
if not ctx.triggered:
|
|
|
|
| 389 |
|
| 390 |
if __name__ == '__main__':
|
| 391 |
print("Starting the Dash application...")
|
| 392 |
+
try:
|
| 393 |
+
app.run(debug=True, host='0.0.0.0', port=7860)
|
| 394 |
+
except Exception as e:
|
| 395 |
+
print(f"An error occurred while running the app: {str(e)}")
|
| 396 |
print("Dash application has finished running.")
|