Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,4 +1,5 @@
|
|
| 1 |
import streamlit as st
|
|
|
|
| 2 |
from PIL import Image
|
| 3 |
import pinecone
|
| 4 |
import pinecone_text
|
|
@@ -48,8 +49,6 @@ index_name = "canopy--document-uploader" # Replace with your chosen index name
|
|
| 48 |
|
| 49 |
index = pc.Index(name=index_name)
|
| 50 |
|
| 51 |
-
# Initialize Pinecone Text Client for embedding
|
| 52 |
-
encoder = pinecone_text.OpenAIEncoder()
|
| 53 |
|
| 54 |
# Step 1: Clone the Dataset Repository
|
| 55 |
repo = Repository(
|
|
@@ -254,10 +253,15 @@ def query_pinecone(vector, index, top_k=5):
|
|
| 254 |
query_results = index.query(vector=vector, top_k=top_k)
|
| 255 |
return query_results["matches"]
|
| 256 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 257 |
def text_to_vector(text):
|
| 258 |
-
# Convert input text to vector
|
| 259 |
-
embedding =
|
| 260 |
-
return embedding
|
| 261 |
|
| 262 |
|
| 263 |
|
|
@@ -505,6 +509,7 @@ def page2():
|
|
| 505 |
|
| 506 |
def page3():
|
| 507 |
try:
|
|
|
|
| 508 |
st.markdown("""
|
| 509 |
<style>
|
| 510 |
#MainMenu {visibility: hidden;}
|
|
@@ -512,6 +517,7 @@ def page3():
|
|
| 512 |
</style>
|
| 513 |
""", unsafe_allow_html=True)
|
| 514 |
|
|
|
|
| 515 |
col1, col2 = st.columns([3, 1])
|
| 516 |
with col1:
|
| 517 |
st.title("Kosten- und Strukturdaten der Krankenhäuser")
|
|
@@ -521,32 +527,38 @@ def page3():
|
|
| 521 |
image = Image.open(image_path)
|
| 522 |
st.image(image, use_column_width='always')
|
| 523 |
|
|
|
|
| 524 |
display_chat_history(st.session_state['chat_history_page3'])
|
| 525 |
|
|
|
|
| 526 |
query = st.text_input("Geben Sie hier Ihre Frage ein / Enter your question here:")
|
| 527 |
|
| 528 |
if query:
|
| 529 |
-
# Convert the query text to a vector
|
| 530 |
-
query_vector =
|
| 531 |
-
|
|
|
|
|
|
|
| 532 |
|
| 533 |
-
|
| 534 |
for match in matches:
|
| 535 |
matched_text = match["metadata"].get("summary", "Detailed information not available.")
|
| 536 |
similarity_score = match["score"]
|
| 537 |
-
|
|
|
|
|
|
|
|
|
|
| 538 |
|
| 539 |
-
#
|
| 540 |
-
st.session_state['chat_history_page3'].
|
| 541 |
-
|
| 542 |
-
# Display the new responses
|
| 543 |
-
display_chat_history([(query, "User Query")] + response_messages)
|
| 544 |
|
| 545 |
-
# Save the updated
|
| 546 |
-
|
|
|
|
| 547 |
|
| 548 |
except Exception as e:
|
| 549 |
st.error(f"An unexpected error occurred: {e}")
|
|
|
|
| 550 |
|
| 551 |
|
| 552 |
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
+
from sentence_transformers import SentenceTransformer
|
| 3 |
from PIL import Image
|
| 4 |
import pinecone
|
| 5 |
import pinecone_text
|
|
|
|
| 49 |
|
| 50 |
index = pc.Index(name=index_name)
|
| 51 |
|
|
|
|
|
|
|
| 52 |
|
| 53 |
# Step 1: Clone the Dataset Repository
|
| 54 |
repo = Repository(
|
|
|
|
| 253 |
query_results = index.query(vector=vector, top_k=top_k)
|
| 254 |
return query_results["matches"]
|
| 255 |
|
| 256 |
+
from sentence_transformers import SentenceTransformer
|
| 257 |
+
|
| 258 |
+
# Initialize the Sentence Transformer model
|
| 259 |
+
model = SentenceTransformer('all-MiniLM-L6-v2')
|
| 260 |
+
|
| 261 |
def text_to_vector(text):
|
| 262 |
+
# Convert input text to vector
|
| 263 |
+
embedding = model.encode(text)
|
| 264 |
+
return embedding # No need to convert to list, depending on how you use it later
|
| 265 |
|
| 266 |
|
| 267 |
|
|
|
|
| 509 |
|
| 510 |
def page3():
|
| 511 |
try:
|
| 512 |
+
# Style adjustments for the Streamlit page
|
| 513 |
st.markdown("""
|
| 514 |
<style>
|
| 515 |
#MainMenu {visibility: hidden;}
|
|
|
|
| 517 |
</style>
|
| 518 |
""", unsafe_allow_html=True)
|
| 519 |
|
| 520 |
+
# Layout configuration
|
| 521 |
col1, col2 = st.columns([3, 1])
|
| 522 |
with col1:
|
| 523 |
st.title("Kosten- und Strukturdaten der Krankenhäuser")
|
|
|
|
| 527 |
image = Image.open(image_path)
|
| 528 |
st.image(image, use_column_width='always')
|
| 529 |
|
| 530 |
+
# Display existing chat history
|
| 531 |
display_chat_history(st.session_state['chat_history_page3'])
|
| 532 |
|
| 533 |
+
# Input for new user query
|
| 534 |
query = st.text_input("Geben Sie hier Ihre Frage ein / Enter your question here:")
|
| 535 |
|
| 536 |
if query:
|
| 537 |
+
# Convert the query text to a vector
|
| 538 |
+
query_vector = text_to_vector(query)
|
| 539 |
+
|
| 540 |
+
# Query the Pinecone index with the vector
|
| 541 |
+
matches = index.query(queries=[query_vector], top_k=5)["matches"][0]
|
| 542 |
|
| 543 |
+
# Display the results and update chat history
|
| 544 |
for match in matches:
|
| 545 |
matched_text = match["metadata"].get("summary", "Detailed information not available.")
|
| 546 |
similarity_score = match["score"]
|
| 547 |
+
response_message = f"Matched Text: {matched_text} - Score: {similarity_score:.2f}"
|
| 548 |
+
st.write(response_message)
|
| 549 |
+
# Append the response to the chat history
|
| 550 |
+
st.session_state['chat_history_page3'].append(("Eve", response_message))
|
| 551 |
|
| 552 |
+
# Append the user query to the chat history
|
| 553 |
+
st.session_state['chat_history_page3'].append(("User", query))
|
|
|
|
|
|
|
|
|
|
| 554 |
|
| 555 |
+
# Save the updated chat history to a session or external storage as needed
|
| 556 |
+
# This is a placeholder for where you might save the chat history
|
| 557 |
+
# save_conversation(st.session_state['chat_history_page3'], st.session_state['session_id'])
|
| 558 |
|
| 559 |
except Exception as e:
|
| 560 |
st.error(f"An unexpected error occurred: {e}")
|
| 561 |
+
|
| 562 |
|
| 563 |
|
| 564 |
|