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!") | |