Spaces:
Running
Running
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!") | |