Spaces:
Paused
Paused
Update app.py via AI Editor
Browse files
app.py
CHANGED
@@ -12,15 +12,16 @@ from PyPDF2 import PdfReader
|
|
12 |
import logging
|
13 |
import threading
|
14 |
import re
|
15 |
-
import
|
16 |
import sqlite3
|
17 |
import time
|
18 |
|
19 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')
|
20 |
|
21 |
-
|
22 |
-
|
23 |
-
|
|
|
24 |
|
25 |
DB_PATH = "maiko_dash_docs.sqlite"
|
26 |
|
@@ -645,23 +646,31 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
645 |
else:
|
646 |
context += f"\n\n{inputs.get('shred','')}"
|
647 |
full_prompt = f"{prompt}\n\n{context}"
|
648 |
-
logging.info(f"Prompt sent to
|
649 |
result_holder = {}
|
650 |
|
651 |
-
def
|
652 |
try:
|
653 |
-
|
654 |
-
|
655 |
-
|
656 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
657 |
except Exception as e:
|
658 |
-
logging.error(f"Error with
|
659 |
result_holder['result'] = f"Error generating document: {str(e)}"
|
660 |
-
t = threading.Thread(target=
|
661 |
t.start()
|
662 |
-
t.join(timeout=
|
663 |
generated_doc = result_holder.get('result', 'Error: No document generated.')
|
664 |
-
logging.info(f"
|
665 |
|
666 |
set_generated_doc(selected_type, generated_doc)
|
667 |
# Preview with fallback
|
@@ -746,5 +755,7 @@ def unified_handler(contents_lists, n_clicks_generate_list, n_clicks_download, s
|
|
746 |
|
747 |
return stores + [file_list, uploaded_doc_name_shred, preview, dash.no_update, dash.no_update, loader_trigger]
|
748 |
|
749 |
-
if __name__ ==
|
750 |
-
|
|
|
|
|
|
12 |
import logging
|
13 |
import threading
|
14 |
import re
|
15 |
+
import openai
|
16 |
import sqlite3
|
17 |
import time
|
18 |
|
19 |
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(levelname)s %(message)s')
|
20 |
|
21 |
+
OPENAI_KEY = os.environ.get("OPENAI_API_KEY", "")
|
22 |
+
openai.api_key = OPENAI_KEY
|
23 |
+
OPENAI_MODEL = "gpt-4-1106-preview"
|
24 |
+
OPENAI_MAX_TOKENS = 32768
|
25 |
|
26 |
DB_PATH = "maiko_dash_docs.sqlite"
|
27 |
|
|
|
646 |
else:
|
647 |
context += f"\n\n{inputs.get('shred','')}"
|
648 |
full_prompt = f"{prompt}\n\n{context}"
|
649 |
+
logging.info(f"Prompt sent to OpenAI (first 1000 chars): {full_prompt[:1000]}")
|
650 |
result_holder = {}
|
651 |
|
652 |
+
def openai_thread():
|
653 |
try:
|
654 |
+
response = openai.chat.completions.create(
|
655 |
+
model=OPENAI_MODEL,
|
656 |
+
messages=[
|
657 |
+
{"role": "system", "content": "You are a helpful assistant for proposal writing. Always output in markdown, and use markdown tables for spreadsheets if needed."},
|
658 |
+
{"role": "user", "content": full_prompt}
|
659 |
+
],
|
660 |
+
max_tokens=OPENAI_MAX_TOKENS,
|
661 |
+
temperature=0.3,
|
662 |
+
)
|
663 |
+
result_text = response.choices[0].message.content if hasattr(response.choices[0].message, "content") else str(response)
|
664 |
+
result_holder['result'] = result_text
|
665 |
+
logging.info("OpenAI document generated successfully.")
|
666 |
except Exception as e:
|
667 |
+
logging.error(f"Error with OpenAI API: {str(e)}")
|
668 |
result_holder['result'] = f"Error generating document: {str(e)}"
|
669 |
+
t = threading.Thread(target=openai_thread)
|
670 |
t.start()
|
671 |
+
t.join(timeout=120)
|
672 |
generated_doc = result_holder.get('result', 'Error: No document generated.')
|
673 |
+
logging.info(f"OpenAI API returned: {generated_doc[:500]}") # LOGGING LINE
|
674 |
|
675 |
set_generated_doc(selected_type, generated_doc)
|
676 |
# Preview with fallback
|
|
|
755 |
|
756 |
return stores + [file_list, uploaded_doc_name_shred, preview, dash.no_update, dash.no_update, loader_trigger]
|
757 |
|
758 |
+
if __name__ == '__main__':
|
759 |
+
print("Starting the Dash application...")
|
760 |
+
app.run(debug=True, host='0.0.0.0', port=7860)
|
761 |
+
print("Dash application has finished running.")
|