cyberandy's picture
Update app.py
b9e310b
raw
history blame
2.42 kB
import streamlit as st
import requests, json
secret_key = st.secrets["secret_key"]
def call_api(url, keyword, wl_key, description_narrative):
api_url = "https://wl-quality-rating.eastus2.inference.ml.azure.com/score"
payload = {
"url": url,
"keyword": keyword,
"wl_key": wl_key,
"description_narrative": description_narrative
}
headers = {
"Content-Type": "application/json",
"User-Agent": "insomnia/8.2.0",
"Authorization": "Bearer " + secret_key
}
response = requests.request("POST", api_url, json=payload, headers=headers)
return response.json() # assuming API responds with JSON
# User inputs
url = st.text_input("Enter the URL of the webpage:")
query = st.text_input("Enter the query the content aims at ranking for:")
narrative = st.text_area("Enter the descriptive narrative of the searcher:")
wordlift_key = st.text_input("Enter the WordLift Key:")
# Button to execute analysis
if st.button("Analyze"):
if url and query and narrative and wordlift_key:
response = call_api(url, query, wordlift_key, narrative)
# Display JSON response
st.json(response)
try:
# Check if `response["analyze"]` is a string and parse it if true
analyze_data = response["analyze"]
if isinstance(analyze_data, str):
analyze_data = json.loads(analyze_data)
# Extract M and T values
M = analyze_data[0]["M"]
T = analyze_data[0]["T"]
# Display traffic light system
if M == 2 and T == 2:
st.markdown("<h3 style='text-align: center; color: green;'>🟒 Content is highly relevant and trustworthy</h3>", unsafe_allow_html=True)
elif M == 1 or T == 1:
st.markdown("<h3 style='text-align: center; color: orange;'>🟑 Content is partly relevant/helpful</h3>", unsafe_allow_html=True)
else:
st.markdown("<h3 style='text-align: center; color: red;'>πŸ”΄ Content is not relevant</h3>", unsafe_allow_html=True)
except (KeyError, IndexError, ValueError) as e:
st.error(f"Error extracting analysis results: {str(e)}")
st.error("Please check the API response format and adapt the code accordingly.")
else:
st.warning("Please provide all inputs!")