Spaces:
Sleeping
Sleeping
import streamlit as st | |
import requests | |
from urllib.parse import quote | |
def search_papers(user_input, max_results=3): | |
url = "https://api.openaire.eu/search/publications?query=" + quote(user_input) | |
try: | |
with requests.Session() as session: | |
response = session.get(url) | |
if response.status_code == 200: | |
data = response.json() | |
if 'response' in data.keys() and 'results' in data['response']: | |
search_results = data["response"]["results"][:max_results] | |
return search_results | |
except requests.exceptions.RequestException as e: | |
st.error(f"An error occurred: {str(e)}") | |
return None | |
st.title('The Substantiator') | |
user_input = st.text_input('Input your claim') | |
if st.button('Substantiate'): | |
search_results = search_papers(user_input) | |
if search_results is not None and len(search_results) > 0: | |
for result in search_results: | |
if 'title' in result.keys() and 'link' in result.keys() and 'url' in result['link']: | |
st.markdown(f"[{result['title']}]({result['link']['url']})", unsafe_allow_html=True) | |
if 'creator' in result.keys(): | |
st.markdown(f"**Author(s):** {result['creator']}") | |
if 'dateofacceptance' in result.keys(): | |
st.markdown(f"**Date of Acceptance:** {result['dateofacceptance']}") | |
st.markdown("---") | |
else: | |
st.write("No results found.") | |