Spaces:
Running
Running
import streamlit as st | |
from huggingface_hub import InferenceClient | |
from langchain_community.document_loaders import ArxivLoader | |
st.title("📝 Arxiv Summaries mit Zephyr 7B Beta") | |
# Sidebar optional, falls du hier ggf. einen Hugging Face Token abfragen möchtest | |
with st.sidebar: | |
st.markdown("## Einstellungen") | |
hf_api_token = st.text_input("Hugging Face API Token (optional)", type="password") | |
# Eingabe für den Arxiv-Suchbegriff | |
arxiv_query = st.text_input( | |
"Gib einen Suchbegriff für Arxiv ein", | |
placeholder="Beispiel: 'reasoning'", | |
) | |
# Button zum Ausführen | |
if st.button("Arxiv durchsuchen und zusammenfassen"): | |
if not arxiv_query: | |
st.warning("Bitte einen Suchbegriff eingeben.") | |
else: | |
try: | |
# 1) ArxivLoader initialisieren | |
loader = ArxivLoader( | |
query=arxiv_query, | |
load_max_docs=2 | |
) | |
# 2) Dokumente laden (Summaries) | |
docs = loader.get_summaries_as_docs() | |
if not docs: | |
st.warning("Keine Dokumente gefunden.") | |
else: | |
# Wir nehmen hier exemplarisch nur das erste Dokument | |
doc_content = docs[0].page_content | |
# 3) Verbindung zum Zephyr-7B-Beta-Modell | |
# Falls du einen Token verwendest, kannst du den hier übergeben: | |
# client = InferenceClient("HuggingFaceH4/zephyr-7b-beta", token=hf_api_token) | |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") | |
# Prompt erstellen: Kontext = Inhalt der Summaries | |
prompt = f""" | |
Bitte fasse den folgenden Inhalt prägnant zusammen (auf Deutsch): | |
{doc_content} | |
Gib mir eine gut strukturierte Zusammenfassung der Studien. | |
""" | |
# 4) Anfrage an das Modell (2048 Tokens als Richtwert) | |
response = client.text_generation( | |
prompt, | |
max_new_tokens=2048, | |
# Weitere Parameter nach Bedarf, z.B.: | |
# temperature=0.7, | |
# do_sample=True, | |
) | |
# Ausgabe in Streamlit | |
st.write("### Zusammenfassung") | |
st.write(response) | |
except Exception as e: | |
st.error(f"Fehler beim Laden oder Zusammenfassen: {e}") | |