IAMTFRMZA commited on
Commit
57d0c38
Β·
verified Β·
1 Parent(s): 3bbf4ab

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -33
app.py CHANGED
@@ -6,7 +6,6 @@ import json
6
  import requests
7
  from PIL import Image
8
  from openai import OpenAI
9
- from io import BytesIO
10
 
11
  # ------------------ App Configuration ------------------
12
  st.set_page_config(page_title="Document AI Assistant", layout="wide")
@@ -55,8 +54,7 @@ show_image = st.sidebar.checkbox("πŸ“– Show Document Image", value=True)
55
 
56
  # ------------------ Assistant Query Function ------------------
57
  def query_assistant(prompt):
58
- st.session_state.messages.append({"role": "user", "content": prompt})
59
- st.chat_message("user").write(prompt)
60
 
61
  try:
62
  if st.session_state.thread_id is None:
@@ -90,8 +88,7 @@ def query_assistant(prompt):
90
  for message in reversed(messages.data):
91
  if message.role == "assistant":
92
  assistant_message = message.content[0].text.value
93
- st.chat_message("assistant").write(assistant_message)
94
- st.session_state.messages.append({"role": "assistant", "content": assistant_message})
95
 
96
  # Extract GitHub image URL if available
97
  image_match = re.search(
@@ -108,7 +105,24 @@ def query_assistant(prompt):
108
  return None
109
 
110
  # ------------------ Layout ------------------
111
- left, center, right = st.columns([1, 2, 1])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
 
113
  # ------------------ Left Column: Document Image ------------------
114
  with left:
@@ -120,30 +134,3 @@ with left:
120
  st.session_state.image_updated = False
121
  except Exception as e:
122
  st.warning("⚠️ Could not load image.")
123
-
124
- # ------------------ Center Column: Chat UI ------------------
125
- with center:
126
- st.subheader("πŸ’¬ Document AI Assistant")
127
- for message in reversed(st.session_state.messages):
128
- role, content = message["role"], message["content"]
129
- st.chat_message(role).write(content)
130
-
131
- if prompt := st.chat_input("Type your question about the document..."):
132
- query_assistant(prompt)
133
-
134
- # ------------------ Right Column: Structured Summary + FAQ (Trigger Assistant) ------------------
135
- with right:
136
- st.subheader("πŸ“Œ Summary & FAQ (from Assistant)")
137
-
138
- col1, col2 = st.columns(2)
139
- show_summary = col1.button("πŸ“ Load Summary")
140
- show_faq = col2.button("❓ Load FAQ")
141
-
142
- if st.session_state.image_url:
143
- match = re.search(r'/(\d{3})\.png', st.session_state.image_url)
144
- if match:
145
- page_number = int(match.group(1))
146
- if show_summary:
147
- query_assistant(f"Summarize the section on page {page_number}.")
148
- if show_faq:
149
- query_assistant(f"Provide FAQs for the section on page {page_number}.")
 
6
  import requests
7
  from PIL import Image
8
  from openai import OpenAI
 
9
 
10
  # ------------------ App Configuration ------------------
11
  st.set_page_config(page_title="Document AI Assistant", layout="wide")
 
54
 
55
  # ------------------ Assistant Query Function ------------------
56
  def query_assistant(prompt):
57
+ st.session_state.messages.insert(0, {"role": "user", "content": prompt}) # insert at top
 
58
 
59
  try:
60
  if st.session_state.thread_id is None:
 
88
  for message in reversed(messages.data):
89
  if message.role == "assistant":
90
  assistant_message = message.content[0].text.value
91
+ st.session_state.messages.insert(0, {"role": "assistant", "content": assistant_message})
 
92
 
93
  # Extract GitHub image URL if available
94
  image_match = re.search(
 
105
  return None
106
 
107
  # ------------------ Layout ------------------
108
+ left, center = st.columns([1, 2])
109
+
110
+ # ------------------ Center Column: Chat UI with Static Input on Top ------------------
111
+ with center:
112
+ st.subheader("πŸ’¬ Document AI Assistant")
113
+
114
+ # Static Chat Input Bar
115
+ with st.container():
116
+ prompt = st.text_input("πŸ’‘ Ask a question about the document:", key="chat_input")
117
+ if prompt:
118
+ query_assistant(prompt)
119
+ st.experimental_rerun()
120
+
121
+ # Show messages: latest at top
122
+ for message in st.session_state.messages:
123
+ role = message["role"]
124
+ with st.chat_message(role):
125
+ st.markdown(message["content"])
126
 
127
  # ------------------ Left Column: Document Image ------------------
128
  with left:
 
134
  st.session_state.image_updated = False
135
  except Exception as e:
136
  st.warning("⚠️ Could not load image.")