amornpan commited on
Commit
4258f5f
1 Parent(s): d3a9651

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +14 -7
app.py CHANGED
@@ -31,6 +31,11 @@ import requests
31
  import base64
32
  import os
33
  import re
 
 
 
 
 
34
 
35
  st.title('🤖 eRAG-PDPA-v1')
36
 
@@ -45,9 +50,11 @@ st.markdown("""
45
 
46
  system_prompt = "คุณเป็นผู้ช่วยที่มีความรู้ด้านกฎหมาย พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล (PDPA) และสามารถให้คำตอบที่เกี่ยวข้องเฉพาะตาม context ที่ได้รับ"
47
 
 
48
  def clean_text_for_search(text):
49
  return ' '.join(re.sub(r'P-\d+\s*$', '', text, flags=re.MULTILINE).split())
50
 
 
51
  def create_highlighted_pdf(pdf_path, search_text, page_number):
52
  try:
53
  search_text = clean_text_for_search(search_text)
@@ -60,7 +67,7 @@ def create_highlighted_pdf(pdf_path, search_text, page_number):
60
  text_instances = page.search_for(word)
61
  for inst in text_instances:
62
  highlight = page.add_highlight_annot(inst)
63
- highlight.set_colors(stroke=(1, 1, 0))
64
  highlight.update()
65
 
66
  new_doc = fitz.open()
@@ -75,6 +82,7 @@ def create_highlighted_pdf(pdf_path, search_text, page_number):
75
  st.error(f"Error in create_highlighted_pdf: {str(e)}")
76
  return None
77
 
 
78
  def format_file_size(size_in_bytes):
79
  for unit in ['B', 'KB', 'MB', 'GB']:
80
  if size_in_bytes < 1024:
@@ -82,6 +90,7 @@ def format_file_size(size_in_bytes):
82
  size_in_bytes /= 1024
83
  return f"{size_in_bytes:.2f} GB"
84
 
 
85
  def display_search_result(result, index):
86
  with st.expander(f"🔍 Search Result #{index + 1} (Score: {result['score']:.4f})"):
87
  st.markdown("#### 📄 Document Information")
@@ -100,7 +109,6 @@ def display_search_result(result, index):
100
  st.write(f"• Modified: {result['metadata']['last_modified_date']}")
101
 
102
  st.markdown("#### 📝 Content")
103
- #st.markdown(f"```\n{result['text']}\n```")
104
  st.markdown("""
105
  <div style="background-color:#d3f9d8; padding: 10px;">
106
  <pre>{}</pre>
@@ -135,6 +143,7 @@ def display_search_result(result, index):
135
  except Exception as e:
136
  st.error(f"Error displaying PDF: {str(e)}")
137
 
 
138
  st.markdown("""
139
  <style>
140
  .stTextInput>div>div>input {
@@ -152,19 +161,17 @@ st.markdown("""
152
  </style>
153
  """, unsafe_allow_html=True)
154
 
155
- # ฟอร์มสำหรับกรอกข้อมูล
156
  with st.form(key="input_form"):
157
  user_input = st.text_input("ป้อนคำ ข้อความ หรือประโยคที่ต้องการค้นหา:", value="ข้อมูลส่วนบุคคล คืออะไร มีกี่ประเภท", key="input")
158
  submit_button = st.form_submit_button("Send")
159
 
160
- # แสดงผลเมื่อปุ่ม 'Send' ถูกคลิก
161
  if submit_button:
162
  st.write(f"คุณป้อนข้อความ: {user_input}")
163
-
164
 
165
  if submit_button and user_input:
166
  try:
167
- response = requests.post("http://113.53.253.50:8002/search", json={"query": user_input})
168
  response.raise_for_status()
169
  data = response.json()
170
  search_results = data["results"]
@@ -176,7 +183,7 @@ if submit_button and user_input:
176
  except requests.RequestException as e:
177
  st.error(f"Error: {str(e)}")
178
 
179
-
180
  st.subheader("📄 ไฟล์เอกสารที่ใช้เป็นคลังข้อมูล PDPA")
181
  st.markdown(
182
  """
 
31
  import base64
32
  import os
33
  import re
34
+ import fitz # PyMuPDF
35
+
36
+ headers = {
37
+ "Authorization": "Bearer eRAG-PDPA-App"
38
+ }
39
 
40
  st.title('🤖 eRAG-PDPA-v1')
41
 
 
50
 
51
  system_prompt = "คุณเป็นผู้ช่วยที่มีความรู้ด้านกฎหมาย พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล (PDPA) และสามารถให้คำตอบที่เกี่ยวข้องเฉพาะตาม context ที่ได้รับ"
52
 
53
+ # Function to clean text for search
54
  def clean_text_for_search(text):
55
  return ' '.join(re.sub(r'P-\d+\s*$', '', text, flags=re.MULTILINE).split())
56
 
57
+ # Function to create highlighted PDF
58
  def create_highlighted_pdf(pdf_path, search_text, page_number):
59
  try:
60
  search_text = clean_text_for_search(search_text)
 
67
  text_instances = page.search_for(word)
68
  for inst in text_instances:
69
  highlight = page.add_highlight_annot(inst)
70
+ highlight.set_colors(stroke=(1, 1, 0)) # Highlight color (yellow)
71
  highlight.update()
72
 
73
  new_doc = fitz.open()
 
82
  st.error(f"Error in create_highlighted_pdf: {str(e)}")
83
  return None
84
 
85
+ # Function to format file size
86
  def format_file_size(size_in_bytes):
87
  for unit in ['B', 'KB', 'MB', 'GB']:
88
  if size_in_bytes < 1024:
 
90
  size_in_bytes /= 1024
91
  return f"{size_in_bytes:.2f} GB"
92
 
93
+ # Function to display search results
94
  def display_search_result(result, index):
95
  with st.expander(f"🔍 Search Result #{index + 1} (Score: {result['score']:.4f})"):
96
  st.markdown("#### 📄 Document Information")
 
109
  st.write(f"• Modified: {result['metadata']['last_modified_date']}")
110
 
111
  st.markdown("#### 📝 Content")
 
112
  st.markdown("""
113
  <div style="background-color:#d3f9d8; padding: 10px;">
114
  <pre>{}</pre>
 
143
  except Exception as e:
144
  st.error(f"Error displaying PDF: {str(e)}")
145
 
146
+ # Custom styles for Streamlit inputs
147
  st.markdown("""
148
  <style>
149
  .stTextInput>div>div>input {
 
161
  </style>
162
  """, unsafe_allow_html=True)
163
 
164
+ # Form for user input
165
  with st.form(key="input_form"):
166
  user_input = st.text_input("ป้อนคำ ข้อความ หรือประโยคที่ต้องการค้นหา:", value="ข้อมูลส่วนบุคคล คืออะไร มีกี่ประเภท", key="input")
167
  submit_button = st.form_submit_button("Send")
168
 
 
169
  if submit_button:
170
  st.write(f"คุณป้อนข้อความ: {user_input}")
 
171
 
172
  if submit_button and user_input:
173
  try:
174
+ response = requests.post("http://113.53.253.50:8002/search", json={"query": user_input}, headers=headers)
175
  response.raise_for_status()
176
  data = response.json()
177
  search_results = data["results"]
 
183
  except requests.RequestException as e:
184
  st.error(f"Error: {str(e)}")
185
 
186
+ # Document repository section
187
  st.subheader("📄 ไฟล์เอกสารที่ใช้เป็นคลังข้อมูล PDPA")
188
  st.markdown(
189
  """