File size: 6,716 Bytes
d3a9651
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3d78302
 
 
4258f5f
85f120c
2022358
1b55844
85f120c
1b55844
 
 
 
 
 
 
5324297
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62005e7
5324297
62005e7
2b88de7
62005e7
2b88de7
f75226b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
62005e7
5324297
c288bb8
5324297
3d78302
62005e7
c288bb8
62005e7
 
 
 
 
c288bb8
62005e7
 
 
5324297
62005e7
 
7210849
2d8d034
4e7d5d6
 
264bbb1
2d8d034
 
 
 
 
1151566
2d8d034
4e7d5d6
 
e819c2a
7210849
 
 
 
 
 
 
 
51f15cd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
"""
⚖️ Title: 🤖 eRAG-PDPA
License: Apache-2.0

This project is licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

For inquiries or contributions, please contact:
amornpan@gmail.com
"""
import streamlit as st
import requests
import os

st.title('eRAG-PDPA-v1')

st.markdown("""
    ##### 🤖 AI เพื่อการเรียนรู้พระราชบัญญัติคุ้มครองข้อมูลส่วนบุคคล (PDPA) 
    ได้รับการออกแบบมาเพื่อช่วยให้ผู้ใช้งานเข้าถึงข้อมูลสำคัญได้อย่างรวดเร็วและเข้าใจง่าย 
    โดยระบบสามารถค้นหาและวิเคราะห์ความหมายในเชิงบริบทได้อย่างลึกซึ้ง 
    ทำให้สามารถเข้าใจความเชื่อมโยงและความหมายของข้อมูลได้อย่างแม่นยำ 
    รองรับการเรียนรู้เชิงลึกในประเด็นเกี่ยวกับ PDPA และการคุ้มครองข้อมูลส่วนบุคคลได้อย่างมีประสิทธิภาพ 
    [Powered by NT Lahnmah]
""", unsafe_allow_html=True)

def format_file_size(size_in_bytes):
    for unit in ['B', 'KB', 'MB', 'GB']:
        if size_in_bytes < 1024:
            return f"{size_in_bytes:.2f} {unit}"
        size_in_bytes /= 1024
    return f"{size_in_bytes:.2f} GB"

def display_search_result(result, index):
    with st.expander(f"🔍 Search Result #{index + 1} (Score: {result['score']:.4f})"):
        st.markdown("#### 📄 Document Information")
        col1, col2 = st.columns(2)

        with col1:
            st.write(f"• File Name: {result['metadata']['file_name']}")
            st.write(f"• Page: {result['metadata']['page_label']}")
            st.write(f"• Type: {result['metadata']['file_type']}")
            st.write(f"• Size: {format_file_size(result['metadata']['file_size'])}")

        with col2:
            st.write(f"• Created: {result['metadata']['creation_date']}")
            st.write(f"• Modified: {result['metadata']['last_modified_date']}")

        st.markdown("#### 📝 Content")
        st.markdown(f"<div style='background-color:#d3f9d8; padding: 10px; color: black;'><pre>{result['text']}</pre></div>", unsafe_allow_html=True)

access_token = os.getenv('eRAG_access_token')
headers = {
    "Authorization": f"Bearer {access_token}"
}

st.markdown("""
    <style>
        .stTextInput>div>div>input {
            background-color: #d3f9d8;  
            color: black;  
            cursor: text;  
            caret-color: black;  
        }
      
        .stTextInput>div>div>input:focus {
            border-color: black;  
            outline-color: black; 
        }
    </style>
""", unsafe_allow_html=True)

api_url = os.getenv('api_url')
with st.form(key="input_form"):
    user_input = st.text_input("ป้อนคำ ข้อความ หรือประโยคที่ต้องการค้นหา:", value="ข้อมูลส่วนบุคคล คืออะไร มีกี่ประเภท", key="input")
    submit_button = st.form_submit_button("Send")

    if submit_button and user_input:
        st.write(f"คุณป้อนข้อความ: {user_input}")
        try:
            response = requests.post(api_url, json={"query": user_input}, headers=headers)
            response.raise_for_status()
            data = response.json()
            search_results = data["results"]

            st.markdown("### 🔎 Search Results")
            for idx, result in enumerate(search_results):
                display_search_result(result, idx)

        except requests.RequestException as e:
            st.error(f"Error: {str(e)}")

st.subheader("📄 ไฟล์เอกสารที่ใช้เป็นคลังข้อมูล PDPA")
st.markdown(
    """
    - [FAQ-เกี่ยวกับการคุ้มครองข้อมูลส่วนบุคคล-PDPA.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/1.FAQ-%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%84%E0%B8%B8%E0%B9%89%E0%B8%A1%E0%B8%84%E0%B8%A3%E0%B8%AD%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5%E0%B8%AA%E0%B9%88%E0%B8%A7%E0%B8%99%E0%B8%9A%E0%B8%B8%E0%B8%84%E0%B8%84%E0%B8%A5-PDPA.pdf) (1.13 MB)
    - [1612025563SummaryPDPA_DigitalCouncilofThailand.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/1612025563SummaryPDPA_DigitalCouncilofThailand.pdf) (1.35 MB)
    - [PDPA_Guideline_v_1.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/PDPA_Guideline_v_1.pdf) (10.7 MB)
    - [T_0024.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/T_0024.pdf) (81.1 kB)
    - [T_0026.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/T_0026.pdf) (82.6 kB)
    - [T_0028.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/T_0028.pdf) (105 kB)
    - [T_0032.pdf](https://huggingface.co/spaces/amornpan/eRAG-PDPA-v1/blob/main/%E0%B9%80%E0%B8%AD%E0%B8%81%E0%B8%AA%E0%B8%B2%E0%B8%A3_PDPA/T_0032.pdf) (103 kB)
    """,
    unsafe_allow_html=True
)

st.subheader("👤 Authors")
st.write("""
- Amornpan Phornchaicharoen (amornpan@gmail.com)
- Aekanun Thongtae (cto@bangkokfirsttech.com)
- Montita Somsoo (montita.fonn@gmail.com)
- Jiranuwat Songpad (jiranuwat.song64@gmail.com)
- Phongsatorn Somjai (ipongdev@gmail.com)
- Benchawan Wangphoomyai (benchaa.27@gmail.com)
""")