From 36b15d74e4ce05750839f2d09fc84d2e2ba466bd Mon Sep 17 00:00:00 2001 From: hubobel Date: Wed, 24 Dec 2025 11:31:39 +0100 Subject: [PATCH] =?UTF-8?q?CPT=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Simbriefimport.example | 11 ++++++---- Simbriefimport.py | 47 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 49 insertions(+), 9 deletions(-) diff --git a/Simbriefimport.example b/Simbriefimport.example index a9ddc15..d0c22f6 100644 --- a/Simbriefimport.example +++ b/Simbriefimport.example @@ -1,10 +1,13 @@ { "AI": { "Model": "gpt-4.1-mini", - "Token": "SECRET TOKE" + "Token": "SECRET TOKEN" }, "Prompt": { - "CptPrompt": "Du bist der Pilot auf einem Linienflug und begrüßt deine Fluggäste am Startflughafen.", - "PurserPrompt": "Du bist Purser auf einem Flug an das in der METAR genannte Ziel.Der Flug ist noch nicht vollendet! Informiere die Fluggäste im Zuge der bevorstehenden Landung über die aktuelle Wetterlage hinsichtlich Temperatur, Wind und Sonne. Verhalte dich dabei wie die Wetterfee aus den Nachrichten und beschränke die Antwort auf maximal 2 kurze Sätze. Die Windrichtung bitte ignorieren. Nenne dabei den Zielflughafen mit Namen. Vermeide Aussagen wie 'Willkommen'. Sei dabei freundlich und kundenorientiert." - } + "CptPrompt": "Du bist der Pilot auf einem Linienflug und begrüßt deine Fluggäste am Startflughafen.Du informierst über den Zielflughafen, die Reisedauer und den getankten Treibstoff", + "PurserPrompt": "Du bist Purser auf einem Flug an das in der METAR genannte Ziel.Der Flug ist noch nicht vollendet! Informiere die Fluggäste im Zuge der bevorstehenden Landung über die aktuelle Wetterlage hinsichtlich Temperatur, Wind und Sonne. Verhalte dich dabei wie die Wetterfee aus den Nachrichten und beschränke die Antwort auf maximal 2 kurze Sätze. Die Windrichtung bitte ignorieren. Nenne dabei den Zielflughafen mit Namen. Vermeide Aussagen wie 'Willkommen'. Sei dabei freundlich und kundenorientiert.", + "CptName":"Hubobel", + "tone": ["ernst", "seriös", "lustig", "gehetzt", "witzig", "übertrieben witzig", "ängstlich", "überheblich", + "dankbar", "übertrieben dankbar", "arrogant"] + } } \ No newline at end of file diff --git a/Simbriefimport.py b/Simbriefimport.py index 9a5b8b4..47eacca 100644 --- a/Simbriefimport.py +++ b/Simbriefimport.py @@ -5,6 +5,7 @@ from datetime import datetime, timezone from openai import OpenAI import os import sys +import random USERNAME = "hubobel" @@ -29,7 +30,8 @@ def conf(): passw = {'Prompt': { "PurserPrompt": "", - "CptPrompt": "" + "CptPrompt": "", + "CptName":"" }, 'AI': @@ -90,9 +92,22 @@ def replacedynamic(message): return (message) def unix_to_datetime(timestamp: int) -> str: return datetime.fromtimestamp(timestamp, tz=timezone.utc).strftime("%d.%m.%Y %H:%M:%S") +def ai(prompt): + completion = client.chat.completions.create( + model="gpt-4.1-mini", + messages=[ + {"role": "user", "content": prompt} + ] + ) + return completion +def stimmung(): + tone = (passw['Prompt']['tone']) + tone = random.choice(list(tone)) + return tone - - +passw = conf() +client = OpenAI( + api_key=passw['AI']['Token']) resp = requests.get(URL, params=params, timeout=15) resp.raise_for_status() data = resp.json() # dict @@ -157,5 +172,27 @@ for datei in Path(Pfad).glob("*.txt"): with open(dateineu,'w', encoding="utf-8") as e: e.write(inhalt_neu) -passw = conf() -print(passw['AI']['Token']) \ No newline at end of file +prompt_org = passw['Prompt']['PurserPrompt'] +prompt2 = prompt_org + 'Die METAR lautet ' + metar_dest +antwort_AI = ai(prompt2) +print(antwort_AI.choices[0].message.content) + +prompt_org = passw['Prompt']['CptPrompt'] + +info = {"Der Zielflughafen ist: " + dest.get("icao_code"), "Die Reisedauer beträgt ungefähr: " + block, + "Die Entfernung: " + distance + "nm", + "Der getankte Sprit: " + fuel + "kg", + "An Bord befinden sich " + pax + "Passagiere", + "Das Flugzeug ist eine " + aircraft_name, + "Du freust dich auf den Flug und bedankst dich, das man sich für " + airline + " entschieden hat.", + "Dein Name lautet " + passw['Prompt']['CptName'], + "Startflughafen: " + origin.get("icao_code"), + "sei dabei " + str(stimmung()), + "Wetter am Ziel" + metar_dest, + "Wetter am Start" + metar_origin} + +for i in info: + prompt_org = prompt_org + i +antwort_AI = ai(prompt_org) +print(antwort_AI.choices[0].message.content) +print(str(stimmung())) \ No newline at end of file