awacke1 commited on
Commit
c3c1014
·
verified ·
1 Parent(s): c497db8

Delete backup.09042024.deleteworking.app.py

Browse files
Files changed (1) hide show
  1. backup.09042024.deleteworking.app.py +0 -193
backup.09042024.deleteworking.app.py DELETED
@@ -1,193 +0,0 @@
1
- import streamlit as st
2
- from azure.cosmos import CosmosClient, PartitionKey, exceptions
3
- import os
4
- import pandas as pd
5
-
6
- st.set_page_config(layout="wide")
7
-
8
- # Cosmos DB configuration
9
- ENDPOINT = "https://acae-afd.documents.azure.com:443/"
10
- SUBSCRIPTION_ID = "003fba60-5b3f-48f4-ab36-3ed11bc40816"
11
- # You'll need to set these environment variables or use Azure Key Vault
12
- DATABASE_NAME = os.environ.get("COSMOS_DATABASE_NAME")
13
- CONTAINER_NAME = os.environ.get("COSMOS_CONTAINER_NAME")
14
- Key = os.environ.get("Key")
15
-
16
- def insert_record(record):
17
- try:
18
- response = container.create_item(body=record)
19
- return True, response
20
- except exceptions.CosmosHttpResponseError as e:
21
- return False, f"HTTP error occurred: {str(e)}. Status code: {e.status_code}"
22
- except Exception as e:
23
- return False, f"An unexpected error occurred: {str(e)}"
24
-
25
- def call_stored_procedure(record):
26
- try:
27
- response = container.scripts.execute_stored_procedure(
28
- sproc="processPrompt",
29
- params=[record],
30
- partition_key=record['id']
31
- )
32
- return True, response
33
- except exceptions.CosmosHttpResponseError as e:
34
- error_message = f"HTTP error occurred: {str(e)}. Status code: {e.status_code}"
35
- return False, error_message
36
- except Exception as e:
37
- error_message = f"An unexpected error occurred: {str(e)}"
38
- return False, error_message
39
-
40
- def fetch_all_records():
41
- try:
42
- query = "SELECT * FROM c"
43
- items = list(container.query_items(query=query, enable_cross_partition_query=True))
44
- return pd.DataFrame(items)
45
- except exceptions.CosmosHttpResponseError as e:
46
- st.error(f"HTTP error occurred while fetching records: {str(e)}. Status code: {e.status_code}")
47
- return pd.DataFrame()
48
- except Exception as e:
49
- st.error(f"An unexpected error occurred while fetching records: {str(e)}")
50
- return pd.DataFrame()
51
-
52
- def delete_record(name, id):
53
- try:
54
- container.delete_item(item=id, partition_key=id)
55
- return True, f"Successfully deleted record with name: {name} and id: {id}"
56
- except exceptions.CosmosResourceNotFoundError:
57
- return False, f"Record with id {id} not found. It may have been already deleted."
58
- except exceptions.CosmosHttpResponseError as e:
59
- return False, f"HTTP error occurred: {str(e)}. Status code: {e.status_code}"
60
- except Exception as e:
61
- return False, f"An unexpected error occurred: {str(e)}"
62
-
63
- # Streamlit app
64
- st.title("🌟 Cosmos DB Record Management")
65
-
66
- # Initialize session state for selected records
67
- if 'selected_records' not in st.session_state:
68
- st.session_state.selected_records = []
69
-
70
- # Login section
71
- if 'logged_in' not in st.session_state:
72
- st.session_state.logged_in = False
73
-
74
- if not st.session_state.logged_in:
75
- st.subheader("🔐 Login")
76
- input_key = Key # Use the predefined Key instead of asking for user input
77
- if st.button("🚀 Login"):
78
- if input_key:
79
- st.session_state.primary_key = input_key
80
- st.session_state.logged_in = True
81
- st.rerun()
82
- else:
83
- st.error("Invalid key. Please check your environment variables.")
84
- else:
85
- # Initialize Cosmos DB client
86
- try:
87
- client = CosmosClient(ENDPOINT, credential=st.session_state.primary_key)
88
- database = client.get_database_client(DATABASE_NAME)
89
- container = database.get_container_client(CONTAINER_NAME)
90
- except exceptions.CosmosHttpResponseError as e:
91
- st.error(f"Failed to connect to Cosmos DB. HTTP error: {str(e)}. Status code: {e.status_code}")
92
- st.stop()
93
- except Exception as e:
94
- st.error(f"An unexpected error occurred while connecting to Cosmos DB: {str(e)}")
95
- st.stop()
96
-
97
- # Fetch and display all records
98
- st.subheader("📊 All Records")
99
- df = fetch_all_records()
100
-
101
- if df.empty:
102
- st.write("No records found in the database.")
103
- else:
104
- for index, row in df.iterrows():
105
- col1, col2, col3 = st.columns([3, 1, 1])
106
-
107
- with col1:
108
- st.write(f"ID: {row['id']}, Name: {row['name']}")
109
-
110
- with col2:
111
- key = f"select_{row['id']}"
112
- if st.checkbox("Select", key=key, value=row.to_dict() in st.session_state.selected_records):
113
- if row.to_dict() not in st.session_state.selected_records:
114
- st.session_state.selected_records.append(row.to_dict())
115
- else:
116
- st.session_state.selected_records = [r for r in st.session_state.selected_records if r['id'] != row['id']]
117
-
118
- with col3:
119
- if st.button(f"Delete", key=f"delete_{row['id']}"):
120
- success, message = delete_record(row['name'], row['id'])
121
- if success:
122
- st.success(message)
123
- st.rerun()
124
- else:
125
- st.error(message)
126
-
127
- # Display selected records
128
- st.subheader("Selected Records")
129
- if st.session_state.selected_records:
130
- for record in st.session_state.selected_records:
131
- st.markdown(f"- Name: {record['name']}, ID: {record['id']}")
132
- else:
133
- st.write("No records selected")
134
-
135
- # Input fields for new record
136
- st.subheader("📝 Enter New Record Details")
137
- new_id = st.text_input("ID")
138
- new_name = st.text_input("Name")
139
- new_document = st.text_area("Document")
140
- new_evaluation_text = st.text_area("Evaluation Text")
141
- new_evaluation_score = st.number_input("Evaluation Score", min_value=0, max_value=100, step=1)
142
-
143
- col1, col2 = st.columns(2)
144
-
145
- # Insert Record button
146
- with col1:
147
- if st.button("💾 Insert Record"):
148
- record = {
149
- "id": new_id,
150
- "name": new_name,
151
- "document": new_document,
152
- "evaluationText": new_evaluation_text,
153
- "evaluationScore": new_evaluation_score
154
- }
155
-
156
- success, response = insert_record(record)
157
- if success:
158
- st.success("✅ Record inserted successfully!")
159
- st.json(response)
160
- else:
161
- st.error(f"❌ Failed to insert record: {response}")
162
- st.rerun()
163
-
164
- # Call Procedure button
165
- with col2:
166
- if st.button("🔧 Call Procedure"):
167
- record = {
168
- "id": new_id,
169
- "name": new_name,
170
- "document": new_document,
171
- "evaluationText": new_evaluation_text,
172
- "evaluationScore": new_evaluation_score
173
- }
174
-
175
- success, response = call_stored_procedure(record)
176
- if success:
177
- st.success("✅ Stored procedure executed successfully!")
178
- st.json(response)
179
- else:
180
- st.error(f"❌ Failed to execute stored procedure: {response}")
181
-
182
- # Logout button
183
- if st.button("🚪 Logout"):
184
- st.session_state.logged_in = False
185
- st.session_state.selected_records.clear() # Clear selected records on logout
186
- st.rerun()
187
-
188
- # Display connection info
189
- st.sidebar.subheader("🔗 Connection Information")
190
- st.sidebar.text(f"Endpoint: {ENDPOINT}")
191
- st.sidebar.text(f"Subscription ID: {SUBSCRIPTION_ID}")
192
- st.sidebar.text(f"Database: {DATABASE_NAME}")
193
- st.sidebar.text(f"Container: {CONTAINER_NAME}")