Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
import streamlit as st
|
| 2 |
from PIL import Image
|
| 3 |
-
|
|
|
|
| 4 |
import random
|
| 5 |
import time
|
| 6 |
from dotenv import load_dotenv
|
|
@@ -17,8 +18,6 @@ from langchain.callbacks import get_openai_callback
|
|
| 17 |
import os
|
| 18 |
import uuid
|
| 19 |
import json
|
| 20 |
-
|
| 21 |
-
|
| 22 |
import pandas as pd
|
| 23 |
import pydeck as pdk
|
| 24 |
from urllib.error import URLError
|
|
@@ -50,6 +49,8 @@ index_name = "canopy--document-uploader" # Replace with your chosen index name
|
|
| 50 |
|
| 51 |
index = pc.Index(name=index_name)
|
| 52 |
|
|
|
|
|
|
|
| 53 |
|
| 54 |
# Step 1: Clone the Dataset Repository
|
| 55 |
repo = Repository(
|
|
@@ -254,16 +255,11 @@ 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 |
-
|
| 258 |
-
from sentence_transformers import SentenceTransformer
|
| 259 |
-
|
| 260 |
-
# Initialize the model
|
| 261 |
-
model = SentenceTransformer('all-MiniLM-L6-v2')
|
| 262 |
-
|
| 263 |
def text_to_vector(text):
|
| 264 |
-
# Convert input text to vector
|
| 265 |
-
embedding =
|
| 266 |
-
return embedding
|
|
|
|
| 267 |
|
| 268 |
|
| 269 |
def page1():
|
|
@@ -510,68 +506,48 @@ def page2():
|
|
| 510 |
|
| 511 |
def page3():
|
| 512 |
try:
|
| 513 |
-
|
| 514 |
-
hide_streamlit_style = """
|
| 515 |
<style>
|
| 516 |
#MainMenu {visibility: hidden;}
|
| 517 |
footer {visibility: hidden;}
|
| 518 |
</style>
|
| 519 |
-
"""
|
| 520 |
-
st.markdown(hide_streamlit_style, unsafe_allow_html=True)
|
| 521 |
|
| 522 |
-
# Create columns for layout
|
| 523 |
col1, col2 = st.columns([3, 1])
|
| 524 |
-
|
| 525 |
with col1:
|
| 526 |
st.title("Kosten- und Strukturdaten der Krankenhäuser")
|
| 527 |
-
|
| 528 |
with col2:
|
| 529 |
-
|
| 530 |
-
|
| 531 |
-
|
| 532 |
-
|
| 533 |
-
# Check if the PDF file exists
|
| 534 |
-
pdf_path3 = "Private_Book/Kosten_Strukturdaten_RAG_vorbereited.pdf"
|
| 535 |
-
if not os.path.exists(pdf_path3):
|
| 536 |
-
st.error("File not found. Please check the file path.")
|
| 537 |
-
return
|
| 538 |
|
| 539 |
display_chat_history(st.session_state['chat_history_page3'])
|
| 540 |
|
| 541 |
-
# Spacer
|
| 542 |
-
st.write("<!-- Start Spacer -->", unsafe_allow_html=True)
|
| 543 |
-
st.write("<div style='flex: 1;'></div>", unsafe_allow_html=True)
|
| 544 |
-
st.write("<!-- End Spacer -->", unsafe_allow_html=True)
|
| 545 |
-
|
| 546 |
-
# New messages placeholder
|
| 547 |
-
new_messages_placeholder = st.empty()
|
| 548 |
-
|
| 549 |
-
# User query input
|
| 550 |
query = st.text_input("Geben Sie hier Ihre Frage ein / Enter your question here:")
|
| 551 |
|
| 552 |
-
# Query buttons
|
| 553 |
-
col1, col2 = st.columns(2)
|
| 554 |
-
# Define buttons and their queries here as before
|
| 555 |
-
|
| 556 |
-
|
| 557 |
if query:
|
| 558 |
-
# Convert the query text to a vector
|
| 559 |
-
query_vector =
|
| 560 |
-
|
| 561 |
-
# Query Pinecone with the vector
|
| 562 |
-
matches = query_pinecone(query_vector, index, top_k=5)
|
| 563 |
|
| 564 |
-
|
| 565 |
-
# Display the results
|
| 566 |
for match in matches:
|
| 567 |
-
matched_text = match["metadata"].get("
|
| 568 |
similarity_score = match["score"]
|
| 569 |
-
|
| 570 |
|
| 571 |
-
#
|
|
|
|
| 572 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 573 |
except Exception as e:
|
| 574 |
-
st.error(f"
|
| 575 |
|
| 576 |
|
| 577 |
|
|
|
|
| 1 |
import streamlit as st
|
| 2 |
from PIL import Image
|
| 3 |
+
import pinecone
|
| 4 |
+
import pinecone_text
|
| 5 |
import random
|
| 6 |
import time
|
| 7 |
from dotenv import load_dotenv
|
|
|
|
| 18 |
import os
|
| 19 |
import uuid
|
| 20 |
import json
|
|
|
|
|
|
|
| 21 |
import pandas as pd
|
| 22 |
import pydeck as pdk
|
| 23 |
from urllib.error import URLError
|
|
|
|
| 49 |
|
| 50 |
index = pc.Index(name=index_name)
|
| 51 |
|
| 52 |
+
# Initialize Pinecone Text Client for embedding
|
| 53 |
+
encoder = pinecone_text.OpenAIEncoder()
|
| 54 |
|
| 55 |
# Step 1: Clone the Dataset Repository
|
| 56 |
repo = Repository(
|
|
|
|
| 255 |
query_results = index.query(vector=vector, top_k=top_k)
|
| 256 |
return query_results["matches"]
|
| 257 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 258 |
def text_to_vector(text):
|
| 259 |
+
# Convert input text to vector using Pinecone Text Client
|
| 260 |
+
embedding = encoder.encode([text])[0] # Assume single text input; adjust accordingly
|
| 261 |
+
return embedding
|
| 262 |
+
|
| 263 |
|
| 264 |
|
| 265 |
def page1():
|
|
|
|
| 506 |
|
| 507 |
def page3():
|
| 508 |
try:
|
| 509 |
+
st.markdown("""
|
|
|
|
| 510 |
<style>
|
| 511 |
#MainMenu {visibility: hidden;}
|
| 512 |
footer {visibility: hidden;}
|
| 513 |
</style>
|
| 514 |
+
""", unsafe_allow_html=True)
|
|
|
|
| 515 |
|
|
|
|
| 516 |
col1, col2 = st.columns([3, 1])
|
|
|
|
| 517 |
with col1:
|
| 518 |
st.title("Kosten- und Strukturdaten der Krankenhäuser")
|
|
|
|
| 519 |
with col2:
|
| 520 |
+
image_path = 'BinDoc Logo (Quadratisch).png'
|
| 521 |
+
if os.path.exists(image_path):
|
| 522 |
+
image = Image.open(image_path)
|
| 523 |
+
st.image(image, use_column_width='always')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 524 |
|
| 525 |
display_chat_history(st.session_state['chat_history_page3'])
|
| 526 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 527 |
query = st.text_input("Geben Sie hier Ihre Frage ein / Enter your question here:")
|
| 528 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 529 |
if query:
|
| 530 |
+
# Convert the query text to a vector using Pinecone Text Client
|
| 531 |
+
query_vector = encoder.encode([query])[0]
|
| 532 |
+
matches = query_pinecone(query_vector, top_k=5)
|
|
|
|
|
|
|
| 533 |
|
| 534 |
+
response_messages = []
|
|
|
|
| 535 |
for match in matches:
|
| 536 |
+
matched_text = match["metadata"].get("summary", "Detailed information not available.")
|
| 537 |
similarity_score = match["score"]
|
| 538 |
+
response_messages.append((f"Pinecone Match - Score: {similarity_score:.2f}", matched_text))
|
| 539 |
|
| 540 |
+
# Update session state with the new chat and response
|
| 541 |
+
st.session_state['chat_history_page3'].extend([(query, "User Query")] + response_messages)
|
| 542 |
|
| 543 |
+
# Display the new responses
|
| 544 |
+
display_chat_history([(query, "User Query")] + response_messages)
|
| 545 |
+
|
| 546 |
+
# Save the updated conversation to a file
|
| 547 |
+
save_conversation(st.session_state['chat_history_page3'], st.session_state['session_id'])
|
| 548 |
+
|
| 549 |
except Exception as e:
|
| 550 |
+
st.error(f"An unexpected error occurred: {e}")
|
| 551 |
|
| 552 |
|
| 553 |
|