Sebbe33 commited on
Commit
6d58aa4
·
verified ·
1 Parent(s): 0e4e73c

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +66 -0
app.py ADDED
@@ -0,0 +1,66 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ from huggingface_hub import InferenceClient
3
+ from langchain_community.document_loaders import ArxivLoader
4
+
5
+ st.title("📝 Arxiv Summaries mit Zephyr 7B Beta")
6
+
7
+ # Sidebar optional, falls du hier ggf. einen Hugging Face Token abfragen möchtest
8
+ with st.sidebar:
9
+ st.markdown("## Einstellungen")
10
+ hf_api_token = st.text_input("Hugging Face API Token (optional)", type="password")
11
+
12
+ # Eingabe für den Arxiv-Suchbegriff
13
+ arxiv_query = st.text_input(
14
+ "Gib einen Suchbegriff für Arxiv ein",
15
+ placeholder="Beispiel: 'quantum computing'",
16
+ )
17
+
18
+ # Button zum Ausführen
19
+ if st.button("Arxiv durchsuchen und zusammenfassen"):
20
+ if not arxiv_query:
21
+ st.warning("Bitte einen Suchbegriff eingeben.")
22
+ else:
23
+ try:
24
+ # 1) ArxivLoader initialisieren
25
+ loader = ArxivLoader(
26
+ query=arxiv_query,
27
+ load_max_docs=2
28
+ )
29
+
30
+ # 2) Dokumente laden (Summaries)
31
+ docs = loader.get_summaries_as_docs()
32
+ if not docs:
33
+ st.warning("Keine Dokumente gefunden.")
34
+ else:
35
+ # Wir nehmen hier exemplarisch nur das erste Dokument
36
+ doc_content = docs[0].page_content
37
+
38
+ # 3) Verbindung zum Zephyr-7B-Beta-Modell
39
+ # Falls du einen Token verwendest, kannst du den hier übergeben:
40
+ # client = InferenceClient("HuggingFaceH4/zephyr-7b-beta", token=hf_api_token)
41
+ client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
42
+
43
+ # Prompt erstellen: Kontext = Inhalt der Summaries
44
+ prompt = f"""
45
+ Bitte fasse den folgenden Inhalt prägnant zusammen (auf Deutsch):
46
+
47
+ {doc_content}
48
+
49
+ Gib mir eine gut strukturierte Zusammenfassung der Studien.
50
+ """
51
+
52
+ # 4) Anfrage an das Modell (2048 Tokens als Richtwert)
53
+ response = client.text_generation(
54
+ prompt,
55
+ max_new_tokens=2048,
56
+ # Weitere Parameter nach Bedarf, z.B.:
57
+ # temperature=0.7,
58
+ # do_sample=True,
59
+ )
60
+
61
+ # Ausgabe in Streamlit
62
+ st.write("### Zusammenfassung")
63
+ st.write(response)
64
+
65
+ except Exception as e:
66
+ st.error(f"Fehler beim Laden oder Zusammenfassen: {e}")