Spaces:
Running
Running
Upload app.py
Browse files
app.py
CHANGED
@@ -2,18 +2,23 @@ import gradio as gr
|
|
2 |
from huggingface_hub import InferenceClient
|
3 |
import urllib.request
|
4 |
import xml.etree.ElementTree as ET
|
|
|
5 |
|
6 |
# HuggingFace Inference Client
|
7 |
#client = InferenceClient("meta-llama/Llama-3.3-70B-Instruct")
|
8 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
9 |
|
|
|
|
|
10 |
|
11 |
-
# Funktion
|
12 |
def generate_query(input_text):
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
|
|
|
|
17 |
|
18 |
# Funktion, um relevante Studien von arXiv zu suchen
|
19 |
def fetch_arxiv_summary(query, sort_by="relevance", sort_order="descending", max_results=20):
|
@@ -26,13 +31,14 @@ def fetch_arxiv_summary(query, sort_by="relevance", sort_order="descending", max
|
|
26 |
summaries = []
|
27 |
for entry in root.findall(".//{http://www.w3.org/2005/Atom}entry"):
|
28 |
title = entry.find("{http://www.w3.org/2005/Atom}title")
|
29 |
-
|
30 |
summary = entry.find("{http://www.w3.org/2005/Atom}summary")
|
31 |
-
|
32 |
-
|
|
|
33 |
return summaries if summaries else ["Keine relevanten Studien gefunden."]
|
34 |
except Exception as e:
|
35 |
-
return [f"Fehler beim Abrufen der Studie: {str(e)
|
36 |
|
37 |
# Chatbot-Logik mit arXiv-Integration
|
38 |
def respond(
|
@@ -59,7 +65,7 @@ def respond(
|
|
59 |
if val[1]:
|
60 |
messages.append({"role": "assistant", "content": val[1]})
|
61 |
|
62 |
-
messages.append({"role": "user", "content": f"{message}\
|
63 |
|
64 |
# Antwort vom Modell generieren
|
65 |
response = ""
|
|
|
2 |
from huggingface_hub import InferenceClient
|
3 |
import urllib.request
|
4 |
import xml.etree.ElementTree as ET
|
5 |
+
from transformers import pipeline
|
6 |
|
7 |
# HuggingFace Inference Client
|
8 |
#client = InferenceClient("meta-llama/Llama-3.3-70B-Instruct")
|
9 |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
|
10 |
|
11 |
+
# Hugging Face Pipeline für Named Entity Recognition (NER)
|
12 |
+
nlp = pipeline("ner", model="dslim/bert-base-NER")
|
13 |
|
14 |
+
# Funktion zur Extraktion von Keywords ohne Füllwörter
|
15 |
def generate_query(input_text):
|
16 |
+
entities = nlp(input_text)
|
17 |
+
keywords = [entity['word'] for entity in entities if entity['entity_group'] in ['MISC', 'ORG', 'LOC', 'PER']]
|
18 |
+
return " ".join(keywords).strip()
|
19 |
+
|
20 |
+
|
21 |
+
|
22 |
|
23 |
# Funktion, um relevante Studien von arXiv zu suchen
|
24 |
def fetch_arxiv_summary(query, sort_by="relevance", sort_order="descending", max_results=20):
|
|
|
31 |
summaries = []
|
32 |
for entry in root.findall(".//{http://www.w3.org/2005/Atom}entry"):
|
33 |
title = entry.find("{http://www.w3.org/2005/Atom}title")
|
34 |
+
link_element = entry.find("{http://www.w3.org/2005/Atom}link[@rel='alternate']")
|
35 |
summary = entry.find("{http://www.w3.org/2005/Atom}summary")
|
36 |
+
link = link_element.attrib.get("href") if link_element is not None else "Kein Link verfügbar"
|
37 |
+
if summary is not None and title is not None:
|
38 |
+
summaries.append(f"Titel: {title.text.strip()}\nLink: {link}\nZusammenfassung: {summary.text.strip()}")
|
39 |
return summaries if summaries else ["Keine relevanten Studien gefunden."]
|
40 |
except Exception as e:
|
41 |
+
return [f"Fehler beim Abrufen der Studie: {str(e)}"]
|
42 |
|
43 |
# Chatbot-Logik mit arXiv-Integration
|
44 |
def respond(
|
|
|
65 |
if val[1]:
|
66 |
messages.append({"role": "assistant", "content": val[1]})
|
67 |
|
68 |
+
messages.append({"role": "user", "content": f"{message}\nUse this Kontext:\n{study_info}"})
|
69 |
|
70 |
# Antwort vom Modell generieren
|
71 |
response = ""
|