Spaces:
Running
Running
File size: 3,664 Bytes
0f4fe40 899f8ae 0f4fe40 20e4932 0f4fe40 899f8ae 0f38549 899f8ae 0f4fe40 899f8ae 0f4fe40 0df8b02 0f4fe40 9ae9c63 0f4fe40 899f8ae 0f4fe40 899f8ae 0f38549 899f8ae 0f38549 899f8ae 0f38549 899f8ae 0f38549 899f8ae 0f4fe40 0f38549 0f4fe40 |
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
import streamlit as st
from azure.cosmos import CosmosClient
import os
# Cosmos DB configuration
ENDPOINT = "https://acae-afd.documents.azure.com:443/"
SUBSCRIPTION_ID = "003fba60-5b3f-48f4-ab36-3ed11bc40816"
# You'll need to set these environment variables or use Azure Key Vault
DATABASE_NAME = os.environ.get("COSMOS_DATABASE_NAME")
CONTAINER_NAME = os.environ.get("COSMOS_CONTAINER_NAME")
Key = os.environ.get("Key")
def insert_record(record):
try:
response = container.create_item(body=record)
return True, response
except Exception as e:
return False, str(e)
def call_stored_procedure(container, long_text):
try:
result = container.scripts.execute_stored_procedure(
sproc='processQTPrompts', # Replace with your actual stored procedure name
params=[long_text],
partition_key=None # You may need to adjust this based on your container's partition key
)
return True, result
except Exception as e:
return False, str(e)
# Streamlit app
st.title("π Cosmos DB Record Insertion and Stored Procedure")
# Login section
if 'logged_in' not in st.session_state:
st.session_state.logged_in = False
if not st.session_state.logged_in:
st.subheader("π Login")
#input_key = st.text_input("Enter your Cosmos DB Primary Key", type="password")
input_key = Key
if st.button("π Login"):
if input_key:
st.session_state.primary_key = input_key
st.session_state.logged_in = True
st.rerun()
else:
st.error("Please enter a valid key")
else:
# Initialize Cosmos DB client
client = CosmosClient(ENDPOINT, credential=st.session_state.primary_key)
database = client.get_database_client(DATABASE_NAME)
container = database.get_container_client(CONTAINER_NAME)
# Input fields for record insertion
st.subheader("π Enter Record Details")
id = st.text_input("ID")
name = st.text_input("Name")
age = st.number_input("Age", min_value=0, max_value=150)
city = st.text_input("City")
# Submit button for record insertion
if st.button("πΎ Insert Record"):
record = {
"id": id,
"name": name,
"age": age,
"city": city
}
success, response = insert_record(record)
if success:
st.success("β
Record inserted successfully!")
st.json(response)
else:
st.error(f"β Failed to insert record: {response}")
# Separator
st.markdown("---")
# Input field for long text
st.subheader("π Enter Long Text for Stored Procedure")
long_text = st.text_area("Long Text", height=200)
# Button to call stored procedure
if st.button("π Call Stored Procedure"):
if long_text:
success, result = call_stored_procedure(container, long_text)
if success:
st.success("β
Stored procedure executed successfully!")
st.json(result)
else:
st.error(f"β Failed to execute stored procedure: {result}")
else:
st.warning("Please enter some text before calling the stored procedure.")
# Logout button
if st.button("πͺ Logout"):
st.session_state.logged_in = False
st.rerun()
# Display connection info
st.sidebar.subheader("π Connection Information")
st.sidebar.text(f"Endpoint: {ENDPOINT}")
st.sidebar.text(f"Subscription ID: {SUBSCRIPTION_ID}")
st.sidebar.text(f"Database: {DATABASE_NAME}")
st.sidebar.text(f"Container: {CONTAINER_NAME}") |