streamlit_demo / app.py
Sebbe33's picture
Update app.py
a81a3c5 verified
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}")