diff --git a/.gitignore b/.gitignore index 9f95195..f6b779f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,10 @@ ## general +shelf/ +.idea/ *.pyc +workspace.xml ## data _data/api_keys.py angebote_traegerMail_iteration/dict_*.json openAI_validate_data/2024-12 gpt-4o-mini/*.csv - diff --git a/openAI_validate_data/.idea/.gitignore b/openAI_validate_data/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/openAI_validate_data/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/openAI_validate_data/2025-07_gpt03_web-search-preview/input_history.txt b/openAI_validate_data/2025-07_gpt03_web-search-preview/input_history.txt new file mode 100644 index 0000000..70d81d9 --- /dev/null +++ b/openAI_validate_data/2025-07_gpt03_web-search-preview/input_history.txt @@ -0,0 +1,21 @@ +Wie ging das letztes Spiel der Frauen-Fußball-EM aus? +>> falsche Antwort + +Wie ging das letztes Spiel der Frauen-Fußball-EM 2025 aus? Fasse es in 2 Sätzen bitte zusammen. +>> falsche Antwort + +Wie ging das gestrige Spiel der Frauen-Fußball-EM 2025 aus? Fasse es in 2 Sätzen bitte zusammen. +>> korrekte Antwort + +Hier sind Daten einer psychologischen Anlaufstation. Stimmen Webseite und Adresse noch? Psychologische Psychotherapeutin Karen Strohband, Düsseldorf / Goethestr. 38 / 40237 Düsseldorf / 021191737280 / praxis@dr-strohband.de / www.dr-strohband.de +>> korrekte Antwort mit GoogleMaps-Adresslink + +Hier sind Daten einer psychologischen Anlaufstation. Wann sind die Telefonsprechzeiten, wie lauten Telefonnummer und Webseite? Kinder- u. Jugendlichenpsychotherapeutin Kristina van Leewen, Düsseldorf Achenbachstr. 40 40237 Düsseldorf +>> teil-korrekte Antwort mit Weblink; 1 von 3 Sprechzeiten ist haluziniert + +Hier sind Daten einer psychologischen Anlaufstation. Wann sind die Telefonsprechzeiten, wie lauten Telefonnummer und Webseite? Psychologische Psychotherapeutin Alexandra Wegener, Bochum Brückstr. 33 44787 Bochum +>> korrekte Antwort - Webseite und Telefonnummern gefunden + +Hier sind Daten einer psychologischen Anlaufstation. Kannst du fehlende Daten ergänzen und fehlerhafte ggf. ersetzen? Wichtig wäre die Angabe der korrekten Webseite. Kinder- u. Jugendlichenpsychotherapeutin Stephanie Eckmann, Lünen Birkenweg 9 44532 Lünen +>> korrekte Antwort - + {"name":"Dipl.-Päd. Stephanie Eckmann","beschreibung":"Kinder- und Jugendlichenpsychotherapeutin","strasse":"Birkenweg","hausNr":"9","plz":"44532","ort":"Lünen","adresseZusatz":"Deutschland","web":"https://kjp-eckmann.de","mail":"kontakt@kjp-eckmann.de","telefon":"0176-67052327","fax":null,"kategorie":"Psychotherapie","unterkategorie":"Kinder- und Jugendlichenpsychotherapie","themen":"Depressionen, Ängste, Phobien, posttraumatische Belastungsstörungen, Anpassungsstörungen, Zwänge, Schlafstörungen, Essstörungen, AD(H)S, Einnässen, Einkoten, Probleme in der Emotionsregulation, Probleme in der Interaktion mit anderen, schulvermeidendes Verhalten","traeger":"Privatpraxis","zielgruppe":"Kinder und Jugendliche","angebote":"Psychotherapie, Verhaltenstherapie","oeffnungsZeiten":"Termine nur nach Vereinbarung","kostenuebernahme":"Die Kosten für die Behandlung werden von allen gesetzlichen Krankenkassen übernommen.","sprache":"Deutsch","barrierefreiheit":"Nicht angegeben","konstellation":"Einzelpraxis","restInput":"([kjp-eckmann.de](https://kjp-eckmann.de/kontakt?utm_source=openai))","completeInput":"([kjp-eckmann.de](https://kjp-eckmann.de/kontakt?utm_source=openai))"} \ No newline at end of file diff --git a/openAI_validate_data/2025-07_gpt03_web-search-preview/request.py b/openAI_validate_data/2025-07_gpt03_web-search-preview/request.py index 935a837..d1328fe 100644 --- a/openAI_validate_data/2025-07_gpt03_web-search-preview/request.py +++ b/openAI_validate_data/2025-07_gpt03_web-search-preview/request.py @@ -1,12 +1,101 @@ +import os +import sys +from typing import Optional +from pydantic import BaseModel from openai import OpenAI -client = OpenAI() -response = client.responses.create( - model="gpt-4o-mini", - tools=[{"type": "web_search_preview"}], - input="Wie gingen die letzten beiden Spiele der Frauen-Fußball-EM aus?" +sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '_data'))) +from api_keys import OPENAI_API_KEY + +client = OpenAI(api_key=OPENAI_API_KEY) + +preliminary_angebot_schema = { + "name": "create_preliminary_angebot", + "description": "Erstellt ein strukturiertes PreliminaryAngebot", + "parameters": { + "type": "object", + "properties": { + "name": {"type": "string"}, + "beschreibung": {"type": "string"}, + "strasse": {"type": "string"}, + "hausNr": {"type": "string"}, + "plz": {"type": "string"}, + "ort": {"type": "string"}, + "adresseZusatz": {"type": "string"}, + + "web": {"type": "string"}, + "mail": {"type": "string"}, + "telefon": {"type": "string"}, + "fax": {"type": "string"}, + + "kategorie": {"type": "string"}, + "unterkategorie": {"type": "string"}, + "themen": {"type": "string"}, + + "traeger": {"type": "string"}, + "zielgruppe": {"type": "string"}, + "angebote": {"type": "string"}, + "oeffnungsZeiten": {"type": "string"}, + "kostenuebernahme": {"type": "string"}, + "sprache": {"type": "string"}, + "barrierefreiheit": {"type": "string"}, + "konstellation": {"type": "string"}, + + "restInput": {"type": "string"}, + "completeInput": {"type": "string"}, + }, + "required": ["name", "beschreibung", "plz", "ort", "adresseZusatz", "web", "restInput", "completeInput"] + } +} + + +class PreliminaryAngebot(BaseModel): + name: str = "" + beschreibung: str = "" + strasse: Optional[str] = "" + hausNr: Optional[str] = "" + plz: str = "" + ort: str = "" + adresseZusatz: str = "" + + web: str = "" + mail: Optional[str] = "" + telefon: Optional[str] = "" + fax: Optional[str] = "" + + kategorie: Optional[str] = "" + unterkategorie: Optional[str] = "" + themen: Optional[str] = "" + + traeger: Optional[str] = "" + zielgruppe: Optional[str] = "" + angebote: Optional[str] = "" + oeffnungsZeiten: Optional[str] = "" + kostenuebernahme: Optional[str] = "" + sprache: Optional[str] = "" + barrierefreiheit: Optional[str] = "" + konstellation: Optional[str] = "" + + restInput: str = "" + completeInput: str = "" + + +inputText = ''' +Hier sind Daten einer psychologischen Anlaufstation. +Kannst du fehlende Daten ergänzen und fehlerhafte ggf. ersetzen? Wichtig wäre die Angabe der korrekten Webseite. + +Kinder- u. Jugendlichenpsychotherapeutin Stephanie Eckmann, Lünen +Birkenweg 9 +44532 Lünen +''' + +response = client.responses.parse( + model="gpt-4o-mini", + tools=[{"type": "web_search_preview"}], + input=inputText, + text_format=PreliminaryAngebot, ) +print('### Input ###\n', inputText.replace('\r', '').replace('\n', ' ')) +print('\n\n### Response ###\n', response.output_text) -print(response.output_text) - -print("Ok ciao") +print("\n\nOk ciao")