force structured response format
This commit is contained in:
4
.gitignore
vendored
4
.gitignore
vendored
@@ -1,8 +1,10 @@
|
|||||||
## general
|
## general
|
||||||
|
shelf/
|
||||||
|
.idea/
|
||||||
*.pyc
|
*.pyc
|
||||||
|
workspace.xml
|
||||||
|
|
||||||
## data
|
## data
|
||||||
_data/api_keys.py
|
_data/api_keys.py
|
||||||
angebote_traegerMail_iteration/dict_*.json
|
angebote_traegerMail_iteration/dict_*.json
|
||||||
openAI_validate_data/2024-12 gpt-4o-mini/*.csv
|
openAI_validate_data/2024-12 gpt-4o-mini/*.csv
|
||||||
|
|
||||||
|
3
openAI_validate_data/.idea/.gitignore
generated
vendored
Normal file
3
openAI_validate_data/.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
@@ -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))"}
|
@@ -1,12 +1,101 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
from typing import Optional
|
||||||
|
from pydantic import BaseModel
|
||||||
from openai import OpenAI
|
from openai import OpenAI
|
||||||
client = OpenAI()
|
|
||||||
|
|
||||||
response = client.responses.create(
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '_data')))
|
||||||
model="gpt-4o-mini",
|
from api_keys import OPENAI_API_KEY
|
||||||
tools=[{"type": "web_search_preview"}],
|
|
||||||
input="Wie gingen die letzten beiden Spiele der Frauen-Fußball-EM aus?"
|
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("\n\nOk ciao")
|
||||||
|
|
||||||
print("Ok ciao")
|
|
||||||
|
Reference in New Issue
Block a user