| import streamlit as st |
| import requests, json |
|
|
| secret_key = st.secrets["secret_key"] |
| wl_key = st.secrets["wl_key"] |
|
|
| def call_api(url, keyword, wl_key, description_narrative): |
| api_url = "https://api.wordlift.io/quality-rating/score" |
| |
| payload = { |
| "url": url, |
| "keyword": keyword, |
| "wl_key": wl_key, |
| "description_narrative": description_narrative, |
| "text": text |
| } |
| |
| headers = { |
| "Content-Type": "application/json", |
| "User-Agent": "insomnia/8.2.0", |
| "Authorization": "Key " + wl_key |
| } |
|
|
| response = requests.request("POST", api_url, json=payload, headers=headers) |
| return response.json() |
|
|
| |
| 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:") |
| text = st.text_input("Enter the text to be analyzed (as alternative to the URL):") |
|
|
| |
| if st.button("Analyze"): |
| if (url or text) and query and narrative and wl_key: |
| response = call_api(url, query, wl_key, narrative) |
| |
| |
| st.json(response) |
|
|
| try: |
| |
| analyze_data = response["analyze"] |
| if isinstance(analyze_data, str): |
| analyze_data = json.loads(analyze_data) |
|
|
| |
| M = analyze_data[0]["M"] |
| T = analyze_data[0]["T"] |
| |
| |
| if M == 2 and T == 2: |
| st.markdown("<h4 style='text-align: center; color: green;'>π’ Content is highly relevant and trustworthy</h4>", unsafe_allow_html=True) |
| elif M == 0 and T == 2: |
| st.markdown("<h4 style='text-align: center; color: orange;'>π‘ Content is irrelevant even if the webpage is trustworthy</h4>", unsafe_allow_html=True) |
| elif M == 1 or T == 1: |
| st.markdown("<h4 style='text-align: center; color: orange;'>π‘ Content is partly relevant/helpful</h4>", unsafe_allow_html=True) |
| else: |
| st.markdown("<h4 style='text-align: center; color: red;'>π΄ Content is not relevant</h4>", 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 either a URL or Text along with other required inputs!") |
|
|
|
|
|
|