Skip to content
Snippets Groups Projects
Commit af5677d4 authored by Sabrina Klett's avatar Sabrina Klett
Browse files

Storys angepasst

parent 1c4fdad1
No related branches found
No related tags found
No related merge requests found
......@@ -352,3 +352,68 @@ class ActionAktuelleKinohits(Action):
dispatcher.utter_message(text=message)
return []
class ActionEmpfehlungNachGenre(Action):
def name(self):
return "action_empfehlung_nach_genre"
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
genre = tracker.get_slot("genre")
if not genre:
dispatcher.utter_message(text="Bitte gib ein Genre an.")
return []
genre_mapping = {
"action": 28,
"abenteuer": 12,
"animation": 16,
"komödie": 35,
"krimi": 80,
"dokumentation": 99,
"drama": 18,
"familie": 10751,
"fantasy": 14,
"geschichte": 36,
"horror": 27,
"musik": 10402,
"mystery": 9648,
"liebesfilm": 10749,
"science-fiction": 878,
"tv-film": 10770,
"thriller": 53,
"kriegsfilm": 10752,
"western": 37
}
genre_id = genre_mapping.get(genre.lower())
if not genre_id:
dispatcher.utter_message(text=f"Das Genre '{genre}' kenne ich leider nicht.")
return []
movies = get_movies_or_series_by_genre(genre_id, "movie")
if movies:
message = f"Hier sind einige Filme im Genre {genre}:\n"
for movie in movies[:5]:
message += f"- {movie['title']} (Bewertung: {movie['vote_average']})\n"
else:
message = f"Ich konnte keine Filme im Genre {genre} finden."
dispatcher.utter_message(text=message)
return []
Hilfsfunktion:
def get_movies_or_series_by_genre(genre_id: int, content_type="movie", language="de") -> List[Dict]:
"""
Ruft Inhalte basierend auf einem Genre ab.
:param genre_id: ID des Genres
:param content_type: "movie" für Filme, "tv" für Serien
:param language: Sprache der Ergebnisse
:return: Liste der Inhalte
"""
endpoint = f"discover/{content_type}"
params = {"language": language, "with_genres": genre_id}
data = fetch_data_from_tmdb(endpoint, params)
return data.get("results", []) if "error" not in data else []
\ No newline at end of file
......@@ -37,17 +37,28 @@ def get_random_movies_or_series(content_type="movie", language="de") -> List[Dic
def get_movies_or_series_by_genre(genre_id: int, content_type="movie", language="de") -> List[Dict]:
"""
Ruft Inhalte basierend auf einem Genre ab.
Ruft Inhalte (Filme oder Serien) basierend auf einem Genre ab.
:param genre_id: ID des Genres
:param content_type: "movie" für Filme, "tv" für Serien
:param language: Sprache der Ergebnisse
:return: Liste der Inhalte
:param language: Sprache der Ergebnisse (Standard: "de")
:return: Liste der Inhalte (Titel, Bewertung, etc.)
"""
if content_type not in ["movie", "tv"]:
raise ValueError("content_type muss 'movie' oder 'tv' sein.")
endpoint = f"discover/{content_type}"
params = {"language": language, "with_genres": genre_id}
data = fetch_data_from_tmdb(endpoint, params)
return data.get("results", []) if "error" not in data else []
# Verarbeite Ergebnisse
results = data.get("results", [])
for item in results:
title_key = "title" if content_type == "movie" else "name"
print(f"{item.get(title_key, 'Unbekannt')} - Bewertung: {item.get('vote_average', 'Keine Bewertung')}")
return results if "error" not in data else []
def get_classic_movies(before_date="1980-01-01", language="de") -> List[Dict]:
"""
......@@ -142,30 +153,56 @@ class ActionEmpfehlungNachGenre(Action):
def run(self, dispatcher: CollectingDispatcher, tracker: Tracker, domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
genre = tracker.get_slot("genre")
content_type = tracker.get_slot("content_type") # "movie" oder "series"
if not genre:
dispatcher.utter_message(text="Bitte gib ein Genre an.")
return []
genre_mapping = {"action": 28, "komödie": 35, "thriller": 53, "drama": 18}
if not content_type:
content_type = "movie" # Standardmäßig Filme
genre_mapping = {
"action": 28,
"abenteuer": 12,
"animation": 16,
"komödie": 35,
"krimi": 80,
"dokumentation": 99,
"drama": 18,
"familie": 10751,
"fantasy": 14,
"geschichte": 36,
"horror": 27,
"musik": 10402,
"mystery": 9648,
"romantik": 10749,
"science-fiction": 878,
"thriller": 53,
"kriegsfilm": 10752,
"western": 37
}
genre_id = genre_mapping.get(genre.lower())
if not genre_id:
dispatcher.utter_message(text=f"Das Genre '{genre}' kenne ich leider nicht.")
return []
movies = get_movies_or_series_by_genre(genre_id, "movie")
if movies:
message = f"Hier sind einige Filme im Genre {genre}:\n"
for movie in movies[:5]:
message += f"- {movie['title']} (Bewertung: {movie['vote_average']})\n"
items = get_movies_or_series_by_genre(genre_id, content_type)
if items:
message = f"Hier sind einige {content_type}s im Genre {genre}:\n"
for item in items[:5]:
message += f"- {item['title']} (Bewertung: {item['vote_average']})\n"
else:
message = f"Ich konnte keine Filme im Genre {genre} finden."
message = f"Ich konnte keine {content_type}s im Genre {genre} finden."
dispatcher.utter_message(text=message)
return []
class ActionWasIstBeliebt(Action):
def name(self):
return "action_was_ist_beliebt"
......
......@@ -176,20 +176,10 @@ nlu:
- intent: gute_stimmung
examples: |
- perfekt
- großartig
- hammer
- mega
- wunderbar
- Ich fühle mich sehr gut
- Mir gehts es super
- ich bin der hammer
- ich bin super
- erstaunlich
- extrem gut
- so gut
- zu gut
- unglaublich
- Mir geht es gut
- Ich fühl mich gut
- ich bin glücklich
......@@ -204,10 +194,8 @@ nlu:
- Ich könnte nich glücklicher sein
- ich bin so glücklich heute
- ich schwebe über den Wolken
- glücklich
- Ich fühle mich super
- Ich fühle mich klasse
- klasse
- Ich fühl mich ganz ok
- mir geht es ganz ok
......
......@@ -59,3 +59,11 @@ nlu:
- Welche [Musicals](genre) kannst du mir empfehlen?
- Gibt es [Historienfilme](genre), die sehenswert sind?
- intent: frage_nach_aktuellen_kinohits
examples: |
- Was läuft gerade im Kino?
- Gibt es aktuelle Kinohits?
- Was sind die aktuellen Kinohits?
- Welche Filme sind momentan in den Kinos beliebt?
- Zeig mir die besten Filme im Kino.
- Was lohnt sich im Kino anzusehen?
\ No newline at end of file
......@@ -52,15 +52,6 @@ nlu:
- Welche Neuerscheinungen kannst du empfehlen?
- Zeig mir die neuesten Filme und Serien.
- intent: frage_nach_aktuellen_kinohits
examples: |
- Was läuft gerade im Kino?
- Gibt es aktuelle Kinohits?
- Welche Filme sind momentan in den Kinos beliebt?
- Zeig mir die besten Filme im Kino.
- Was lohnt sich im Kino anzusehen?
- intent: empfehlung_für_mehrsprachige_inhalte
examples: |
- Gibt es Filme auf Spanisch?
......
......@@ -26,5 +26,107 @@ rules:
steps:
- intent: frag_nach_genre_film
- slot_was_set:
- genre: "Komödie"
- action: action_empfehlung_nach_genre
\ No newline at end of file
- content_type: movie
- action: action_empfehlung_nach_genre
- rule: Empfehle Serien nach Genre
steps:
- intent: frag_nach_genre_serie
- slot_was_set:
- content_type: tv
- action: action_empfehlung_nach_genre
- rule: Dynamische Serienempfehlung
steps:
- intent: serie_empfehlen
- action: action_serie_empfehlen
- rule: Seriendetails anzeigen
steps:
- intent: frag_nach_serie_details
- action: action_serie_details
- rule: Dynamische Filmempfehlung
steps:
- intent: film_empfehlen
- action: action_film_empfehlen
- rule: Seriendetails anzeigen
steps:
- intent: frag_nach_serie_details
- action: action_serie_details
- rule: Filmempfehlung nach Streamingdienst
steps:
- intent: frag_nach_streamingdienst
- action: action_empfehlung_nach_streamingdienst
- rule: Aktuelle Kinohits anzeigen
steps:
- intent: frag_nach_aktuellen_kinohits
- action: action_aktuelle_kinohits
- rule: Feedback hinterlassen wollen
steps:
- intent: feedback
- action: utter_feedback
- rule: Bewertung hinterlassen
steps:
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- rule: FAQ
steps:
- intent: faq
- action: utter_faq
- rule: Fehler melden
steps:
- intent: fehler_melden
- action: utter_fehler_melden
- rule: Was bist du?
steps:
- intent: was_bist_du
- action: utter_was_bist_du
- rule: Lob annehmen
steps:
- intent: lob
- action: utter_lob
- rule: Kritik annehmen
steps:
- intent: kritik
- action: utter_kritik
- rule: Zustimmung
steps:
- intent: zustimmung
- action: utter_zustimmung
- rule: Ablehnung
steps:
- intent: ablehnung
- action: utter_ablehnung
- rule: Frage nach Fähigkeiten
steps:
- intent: frag_nach_fähigkeiten
- action: utter_frag_nach_fähigkeiten
- rule: Frage nach Zweck
steps:
- intent: frag_nach_zweck
- action: utter_frag_nach_zweck
- rule: Neuveröffentlichungen vorschlagen
steps:
- intent: neuveröffentlichungen_empfehlen
- action: utter_neuveröffentlichungen_empfehlen
- rule: Danke und bitte
steps:
- intent: dankeschön
- intent: utter_bitte
\ No newline at end of file
......@@ -3,42 +3,37 @@ version: "3.1"
stories:
#Basics
- story: Lob annehmen
steps:
- intent: lob
- action: utter_lob
- story: Kritik annehmen
- story: Frage nach Name und Entstehung
steps:
- intent: kritik
- action: utter_kritik
- intent: frag_nach_name
- action: utter_frag_nach_name
- intent: frag_nach_entstehung
- action: utter_frag_nach_entstehung
- story: Zustimmung
- story: Frag nach Entstehung
steps:
- intent: frag_nach_entstehung
- action: utter_frag_nach_entstehung
- intent: frag_nach_zweck
- action: utter_frag_nach_zweck
- intent: zustimmung
- action: utter_zustimmung
- story: Ablehnung
steps:
- intent: ablehnung
- action: utter_ablehnung
- story: Frage nach Fähigkeiten
steps:
- intent: frag_nach_fähigkeiten
- action: utter_frag_nach_fähigkeiten
- story: Frage nach Zweck
- story: Was bist du
steps:
- intent: frag_nach_zweck
- action: utter_frag_nach_zweck
- intent: was_bist_du
- action: utter_was_bist_du
- intent: frag_nach_name
- action: utter_frag_nach_name
- story: Frage nach Name und Entstehung
- story: Frag nach Name
steps:
- intent: frag_nach_name
- action: utter_frag_nach_name
- intent: frag_nach_entstehung
- action: utter_frag_nach_entstehung
- intent: frag_nach_technologie
- action: utter_frag_nach_technologie
- intent: was_kannst_du_noch
- action: utter_was_kannst_du_noch
- story: Frage nach Ersteller und Technologie
steps:
......@@ -47,12 +42,52 @@ stories:
- intent: frag_nach_technologie
- action: utter_frag_nach_technologie
- story: was bist du 3
steps:
- intent: was_bist_du
- action: utter_was_bist_du
- intent: frag_nach_zweck
- action: utter_frag_nach_zweck
- intent: frag_nach_themengebiet
- action: utter_frag_nach_themengebiet
- story: Frag nach Empfehlungen
steps:
- intent: begrüßung
- action: utter_begrüßung
- intent: frag_nach_empfehlungen
- action: utter_frag_nach_empfehlungen
- story: Frag nach Empfehlungen 1
steps:
- intent: frag_nach_empfehlungen
- action: utter_frag_nach_empfehlungen
- intent: frag_nach_genre_film
- action: action_empfehlung_nach_genre
- story: Frag nach Empfehlungen 2
steps:
- intent: frag_nach_empfehlungen
- action: utter_frag_nach_empfehlungen
- intent: frag_nach_genre_serie
- action: action_empfehlung_nach_genre
- story: Gute Stimmung
steps:
- intent: begrüßung
- action: utter_begrüßung
- intent: gute_stimmung
- action: utter_gute_stimmung
- story: Gute Stimmung
steps:
- intent: begrüßung
- action: utter_begrüßung
- intent: gute_stimmung
- action: utter_gute_stimmung
- intent: frag_nach_genre_film
- action: action_empfehlung_nach_genre
- story: Schlechte Stimmung
steps:
......@@ -63,20 +98,65 @@ stories:
- action: utter_erzähle_einen_witz
- story: Dynamische Filmempfehlung
steps:
- intent: begrüßung
- action: utter_begrüßung
- intent: film_empfehlen
- action: action_film_empfehlen
- story: Dynamische Filmempfehlung 1
steps:
- intent: film_empfehlen
- action: action_film_empfehlen
- intent: dankeschön
- action: utter_dankeschön
- story: Dynamische Filmempfehlung 2
steps:
- intent: film_empfehlen
- action: action_film_empfehlen
- intent: frag_nach_film_details
- action: action_film_details
- story: Dynamische Filmempfehlung 2
steps:
- intent: film_empfehlen
- action: action_film_empfehlen
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- story: Bewertung hinterlassen
steps:
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- intent: zustimmung
- action: utter_zustimmung
- story: Filmempfehlung nach Genre
steps:
- intent: frag_nach_genre_film
entities:
- genre: "Komödie"
- slot_was_set:
- genre: "Komödie"
- content_type: movie
- action: action_empfehlung_nach_genre
- intent: frag_nach_film_details
- action: action_film_details
- story: Filmdetails
steps:
- intent: frag_nach_film_details
- action: action_film_details
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- story: Filmdetails 2
steps:
- intent: frag_nach_film_details
- action: action_film_details
- intent: dankeschön
- action: utter_dankeschön
- intent: lob
- action: utter_lob
- story: Empfehlungen nach Genre für Serie
steps:
......@@ -85,6 +165,42 @@ stories:
- content_type: tv
- action: action_empfehlung_nach_genre
- story: Seriendetails
steps:
- intent: frag_nach_serie_details
- action: action_serie_details
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- story: Seriendetails 2
steps:
- intent: frag_nach_serie_details
- action: action_serie_details
- intent: dankeschön
- action: utter_dankeschön
- intent: lob
- action: utter_lob
- story: Lob annehmen
steps:
- intent: lob
- action: utter_lob
- intent: was_ist_beliebt
- action: action_was ist_beliebt
- story: Was ist beliebt
steps:
- intent: was_ist_beliebt
- action: action_was_ist_beliebt
- intent: frag_nach_film_details
- action: action_film_details
- story: Was ist beliebt 2
steps:
- intent: was_ist_beliebt
- action: action_was_ist_beliebt
- intent: frag_nach_serie_details
- action: action_serie_details
- story: Beliebte Inhalte anzeigen
steps:
......@@ -104,56 +220,45 @@ stories:
steps:
- intent: filmklassiker_empfehlen
- action: action_filmklassiker_empfehlen
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- story: Neuveröffentlichungen vorschlagen
steps:
- intent: neuveröffentlichungen_empfehlen
- action: utter_neuveröffentlichungen_empfehlen
- story: Filmempfehlung nach Streamingdienst
- story: Wetter und Zeit
steps:
- intent: frag_nach_streamingdienst
- action: action_empfehlung_nach_streamingdienst
- intent: frag_nach_zeit_und_wetter
- action: utter_frag_nach_zeit_und_wetter
- intent: was_kannst_du_noch
- action: utter_was_kannst_du_noch
- story: Filmdetails anzeigen
steps:
- intent: frag_nach_film_details
- action: action_film_details
- story: Aktuelle Kinohits anzeigen
steps:
- intent: frag_nach_aktuellen_kinohits
- action: action_aktuelle_kinohits
- action: action_film_details
- intent: frag_nach_streamingdienst
- action: action_frag_nach_streamingdienst
- story: Dynamische Serienempfehlung
steps:
- intent: serie_empfehlen
- action: action_serie_empfehlen
- story: Streamingdienst
steps:
- intent: frag_nach_streamingdienst
- action: frag_nach streamingdienst
- intent: frag_nach_film_details
- action: action_film_details
- story: Seriendetails anzeigen
steps:
- story: Streamingdienst 2
steps:
- intent: frag_nach_streamingdienst
- action: frag_nach streamingdienst
- intent: frag_nach_serie_details
- action: action_serie_details
- story: Bewertung hinterlassen
steps:
- intent: bewertung_hinterlassen
- action: utter_bewertung_hinterlassen
- story: FAQ
- story: Hilfe
steps:
- intent: faq
- action: utter_faq
- story: Fehler melden
steps:
- intent: fehler_melden
- action: utter_fehler_melden
- story: Was bist du?
steps:
- intent: was_bist_du
- action: utter_was_bist_du
- story: Wie geht es dir? 1
steps:
......@@ -171,26 +276,20 @@ stories:
- intent: erzähle_einen_witz
- action: utter_erzähle_einen_witz
- story: Witz erzählen
steps:
- intent: erzähle_einen_witz
- action: utter_erzähle_einen_witz
- story: Nach Hilfe fragen
steps:
- intent: frag_nach_hilfe
- action: utter_frag_nach_hilfe
- intent: frag_nach_support
- action: utter_frag_nach_support
- story: Feedback hinterlassen wollen
steps:
- intent: feedback
- action: utter_feedback
- story: Empfehlungen geben
steps:
- intent: frag_nach_empfehlungen
- action: utter_frag_nach_empfehlungen
- intent: frag_nach_genre_film
- action: action_empfehlung_nach_genre
- intent: frag_nach_genre_serie
- action: action_empfehlung_nach_genre
......@@ -198,13 +297,12 @@ stories:
steps:
- intent: was_kannst_du_noch
- action: utter_was_kannst_du_noch
- intent: zustimmung
- action: utter_zustimmung
- story: Themengebiet abfragen
steps:
- intent: frag_nach_themengebiet
- action: utter_frag_nach_themengebiet
- story: Danke und Bitte sagen
steps:
- intent: dankeschön
- action: utter_bitte
\ No newline at end of file
- intent: zustimmung
- action: utter_zustimmung
......@@ -39,7 +39,7 @@ intents:
- bewertung_hinterlassen
- filmklassiker_empfehlen
- neuveröffentlichungen_empfehlen
- frag_nach_aktuellen_kinohits
- frage_nach_aktuellen_kinohits
- empfehlung_für_mehrsprachige_inhalte
- nlu_fallback
......@@ -175,11 +175,6 @@ responses:
- text: "Meine Themen sind Filmklassiker, Neuerscheinungen, Serienhits und vieles mehr."
- text: "Frag mich nach deinem Lieblingsgenre oder einer Plattform wie Netflix."
utter_film_empfehlen:
- text: "Wie wäre es mit dem Film 'Inception'? Ein spannender Science-Fiction-Thriller!"
- text: "Ich empfehle dir 'Parasite'. Ein preisgekrönter Mix aus Drama und Thriller."
- text: "Probier doch 'The Dark Knight' aus. Ein großartiger Actionfilm mit Batman."
utter_serie_empfehlen:
- text: "Die Serie 'Breaking Bad' könnte dir gefallen. Spannend und tiefgründig."
- text: "Ich empfehle 'Stranger Things'. Mystery und 80er-Nostalgie in einem."
......@@ -200,11 +195,6 @@ responses:
- text: "Hauptdarsteller von 'Breaking Bad' sind Bryan Cranston und Aaron Paul."
- text: "Die Serie hat eine Bewertung von 9,5 auf IMDb."
utter_was_ist_beliebt:
- text: "Aktuell sind 'Wednesday' und 'House of the Dragon' sehr beliebt."
- text: "Die Leute lieben gerade 'The Last of Us'."
- text: "Beliebt ist aktuell der Film 'Avatar: The Way of Water'."
utter_bewertung_hinterlassen:
- text: "Ich danke dir für deine Bewertung! Ich werde sie in meinen nächsten Vorschlägen berücksichtigen."
- text: "Danke für das Feedback."
......@@ -230,7 +220,7 @@ responses:
- text: "Für französische Filme empfehle ich 'Amélie'."
- text: "Ein sehenswerter deutscher Film ist 'Das Leben der Anderen'."
utter_bitte:
utter_dankeschön:
- text: "Gern geschehen! 😊"
- text: "Kein Problem, immer gerne! 👍"
- text: "Freut mich, dass ich helfen konnte!"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment