Spaces:
Runtime error
Runtime error
File size: 2,656 Bytes
8a3759d 7c6aa59 ac000e9 7c6aa59 033c928 7c6aa59 d4f0069 b1ce02e d4f0069 033c928 b80550c b1ce02e 833008d 7c6aa59 d4f0069 833008d d4f0069 a4db61c 7c6aa59 a4db61c 7c6aa59 033c928 7c6aa59 167d317 833008d 167d317 7c6aa59 167d317 ac000e9 167d317 ac000e9 167d317 033c928 b80550c |
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 |
import streamlit as st
import requests
import json
import time
st.title("Transaction Summarizer")
# Input for selecting model
model_selection = st.radio("Select model to use:", ["Tinyllama", "Gemma"])
# Input for submitting new transactions
new_transactions_input = st.text_area("Enter your transactions (comma-separated)", key="input_area")
submit_button = st.button("Submit New Transactions", type="primary")
if submit_button:
# Split transactions and strip whitespace
new_transactions = [i.strip() for i in new_transactions_input.split(',') if i.strip()]
else:
new_transactions = []
# Determine URL based on model selection
if model_selection == "Gemma":
base_url = "https://api.runpod.ai/v2/cdvoxheesm31dc/"
elif model_selection == "Tinyllama":
base_url = "https://api.runpod.ai/v2/0wnm75vx5o77s1/"
# When submit button is clicked and there are transactions to process
if submit_button and new_transactions:
url = base_url + "run"
# Retrieve API key from Streamlit secrets
api_key = st.secrets["api_key"]
headers = {
'Content-Type': 'application/json',
'Authorization': api_key
}
data = {
'input': {
'transaction': new_transactions
}
}
json_data = json.dumps(data)
# Show a spinner while waiting for the response
with st.spinner("Processing..."):
try:
# Send POST request to start processing
response = requests.post(url, headers=headers, data=json_data)
response.raise_for_status() # Raise an error for bad status codes
# Parse response to get job ID
result = response.json()
job_id = result['id']
st.write(f"New Job ID: {job_id}")
# Keep checking status until it's no longer 'IN_QUEUE'
status_url = f"{base_url}status/{job_id}"
status = "IN_QUEUE"
while status != "COMPLETED":
status_response = requests.get(status_url, headers=headers)
status_data = status_response.json()
status = status_data.get('status', '')
time.sleep(2) # Adjust interval as needed
# Once status changes, display final status
st.write("Final status:", status_data)
except requests.exceptions.RequestException as e:
st.error(f"An error occurred: {e}")
finally:
st.spinner(False) # Turn off the spinner after response is received
if st.button("Reset", key="reset_button"):
st.text_area("Enter your transactions (comma-separated)", value="", key="reset_area")
|