app.py
Browse files
app.py
CHANGED
@@ -1,15 +1,9 @@
|
|
1 |
import os
|
2 |
-
import gradio as gr
|
3 |
-
import subprocess
|
4 |
import streamlit as st
|
5 |
-
from openai import OpenAI
|
6 |
import time
|
7 |
-
import PyPDF2
|
8 |
-
from docx import Document
|
9 |
-
from datetime import datetime
|
10 |
-
from pydub import AudioSegment
|
11 |
-
from io import BytesIO
|
12 |
import json
|
|
|
|
|
13 |
|
14 |
# Streamlit Page Config
|
15 |
st.set_page_config(page_title="Schlager ContractAi", layout="wide")
|
@@ -53,9 +47,7 @@ if not OPENAI_API_KEY:
|
|
53 |
# Tabs
|
54 |
tab1, tab2 = st.tabs(["Contract", "Technical"])
|
55 |
|
56 |
-
|
57 |
-
SUPPORTED_TEXT_FORMATS = (".txt", ".docx", ".csv", ".xlsx", ".pdf")
|
58 |
-
|
59 |
def save_flagged_response(user_query, ai_response):
|
60 |
flagged_data = {
|
61 |
"query": user_query,
|
@@ -70,7 +62,6 @@ def save_flagged_response(user_query, ai_response):
|
|
70 |
def contract_chat_section(tab, assistant_id, session_key, input_key):
|
71 |
with tab:
|
72 |
st.subheader("Chat")
|
73 |
-
|
74 |
client = OpenAI(api_key=OPENAI_API_KEY)
|
75 |
|
76 |
if session_key not in st.session_state:
|
@@ -80,15 +71,15 @@ def contract_chat_section(tab, assistant_id, session_key, input_key):
|
|
80 |
st.session_state[session_key] = []
|
81 |
st.rerun()
|
82 |
|
83 |
-
for message in st.session_state[session_key]:
|
84 |
role, content = message["role"], message["content"]
|
85 |
if role == "assistant":
|
86 |
col1, col2 = st.columns([5, 1])
|
87 |
with col1:
|
88 |
st.chat_message(role).write(content)
|
89 |
with col2:
|
90 |
-
if st.button("🚩 Flag", key=f"flag_{session_key}_{
|
91 |
-
save_flagged_response(st.session_state[session_key][-
|
92 |
else:
|
93 |
st.chat_message(role).write(content)
|
94 |
|
@@ -123,8 +114,9 @@ def contract_chat_section(tab, assistant_id, session_key, input_key):
|
|
123 |
except Exception as e:
|
124 |
st.error(f"Error: {str(e)}")
|
125 |
|
|
|
126 |
ASSISTANT_CONTRACT_ID = "asst_rd9h8PfYuOmHbkvOF3RTmVfn"
|
127 |
ASSISTANT_TECHNICAL_ID = "asst_xizNZBCJuy4TqdjqjwkxbAki"
|
128 |
|
129 |
contract_chat_section(tab1, ASSISTANT_CONTRACT_ID, "contract_messages", "contract_input")
|
130 |
-
contract_chat_section(tab2, ASSISTANT_TECHNICAL_ID, "technical_messages", "technical_input")
|
|
|
1 |
import os
|
|
|
|
|
2 |
import streamlit as st
|
|
|
3 |
import time
|
|
|
|
|
|
|
|
|
|
|
4 |
import json
|
5 |
+
from datetime import datetime
|
6 |
+
from openai import OpenAI
|
7 |
|
8 |
# Streamlit Page Config
|
9 |
st.set_page_config(page_title="Schlager ContractAi", layout="wide")
|
|
|
47 |
# Tabs
|
48 |
tab1, tab2 = st.tabs(["Contract", "Technical"])
|
49 |
|
50 |
+
# Function to save flagged responses
|
|
|
|
|
51 |
def save_flagged_response(user_query, ai_response):
|
52 |
flagged_data = {
|
53 |
"query": user_query,
|
|
|
62 |
def contract_chat_section(tab, assistant_id, session_key, input_key):
|
63 |
with tab:
|
64 |
st.subheader("Chat")
|
|
|
65 |
client = OpenAI(api_key=OPENAI_API_KEY)
|
66 |
|
67 |
if session_key not in st.session_state:
|
|
|
71 |
st.session_state[session_key] = []
|
72 |
st.rerun()
|
73 |
|
74 |
+
for idx, message in enumerate(st.session_state[session_key]):
|
75 |
role, content = message["role"], message["content"]
|
76 |
if role == "assistant":
|
77 |
col1, col2 = st.columns([5, 1])
|
78 |
with col1:
|
79 |
st.chat_message(role).write(content)
|
80 |
with col2:
|
81 |
+
if st.button("🚩 Flag", key=f"flag_{session_key}_{idx}"):
|
82 |
+
save_flagged_response(st.session_state[session_key][idx-1]["content"], content)
|
83 |
else:
|
84 |
st.chat_message(role).write(content)
|
85 |
|
|
|
114 |
except Exception as e:
|
115 |
st.error(f"Error: {str(e)}")
|
116 |
|
117 |
+
# Assign Assistant IDs
|
118 |
ASSISTANT_CONTRACT_ID = "asst_rd9h8PfYuOmHbkvOF3RTmVfn"
|
119 |
ASSISTANT_TECHNICAL_ID = "asst_xizNZBCJuy4TqdjqjwkxbAki"
|
120 |
|
121 |
contract_chat_section(tab1, ASSISTANT_CONTRACT_ID, "contract_messages", "contract_input")
|
122 |
+
contract_chat_section(tab2, ASSISTANT_TECHNICAL_ID, "technical_messages", "technical_input")
|