File size: 1,709 Bytes
3428039
 
 
 
 
 
 
 
9bb881d
 
3428039
 
9bb881d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3428039
 
 
 
 
 
 
9bb881d
 
 
 
 
 
3428039
9bb881d
3428039
 
 
 
 
 
 
 
 
 
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
import streamlit as st
from upload import upload_file_to_vectara
from query import process_queries
import os

# Ensure set_page_config is the first Streamlit command
st.set_page_config(page_title="STC Bank Assistant", layout="centered")

# Load external CSS for custom styling
with open("style.css", "r") as f:
    st.markdown(f"<style>{f.read()}</style>", unsafe_allow_html=True)

# Main UI layout
st.markdown(
    """
    <h1>Welcome to the STC Bank Assistant</h1>

    <div class="icon-container">
        <!-- This yellowish box is the icon background -->
        <div class="icon-box">💼</div>
        <p class="icon-text">How may I help you?</p>
    </div>

    <h4>Add additional files here</h4>
    """,
    unsafe_allow_html=True
)

# Fetch credentials from environment variables
customer_id = os.getenv("VECTARA_CUSTOMER_ID", "")
api_key = os.getenv("VECTARA_API_KEY", "")
corpus_id = os.getenv("VECTARA_CORPUS_ID", "")
corpus_key = os.getenv("VECTARA_CORPUS_KEY", "")

# File uploader with drag-and-drop text + limit note
uploaded_files = st.file_uploader(
    "Drag and drop file here\nLimit 200MB per file",
    type=["pdf", "docx", "xlsx"],
    accept_multiple_files=True
)

# If credentials exist and files are uploaded, handle them
if uploaded_files and customer_id and api_key and corpus_id and corpus_key:
    for file in uploaded_files:
        response = upload_file_to_vectara(file, customer_id, api_key, corpus_key)
        st.write(f"Uploaded {file.name}: {response}")

    if st.button("Run Queries"):
        results = process_queries(customer_id, api_key, corpus_key)
        for question, answer in results.items():
            st.subheader(question)
            st.write(answer)