File size: 2,351 Bytes
6d58aa4
 
 
 
 
 
 
 
 
 
 
 
 
 
a81a3c5
6d58aa4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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}")