{"id":674,"date":"2025-03-23T07:24:32","date_gmt":"2025-03-23T07:24:32","guid":{"rendered":"https:\/\/christoph-schmalfuss.de\/blog\/?p=674"},"modified":"2025-03-23T09:15:08","modified_gmt":"2025-03-23T09:15:08","slug":"openai-websuche-mit-python","status":"publish","type":"post","link":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/","title":{"rendered":"OpenAI-Websuche mit Python + ChatGPT"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche-1024x576.png\" alt=\"Chatgpt + Python Websuche\" class=\"wp-image-677\" srcset=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche-1024x576.png 1024w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche-300x169.png 300w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche-768x432.png 768w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche-1536x864.png 1536w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche-1600x900.png 1600w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Chatgpt + Python Websuche<\/figcaption><\/figure>\n\n\n\n<p>OpenAI hat neulich ein Update rausgebracht, was uns jetzt endlich auch eine automatische Websuche m\u00f6glich macht. Wie ihr diese Websuche in eure Projekte einbauen k\u00f6nnt, das zeige ich euch jetzt. Viel Spa\u00df!<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">API-Key besorgen<\/h1>\n\n\n\n<p>Fangen wir vielleicht erst mal damit an, was ihr f\u00fcr dieses Projekt ben\u00f6tigt. Wichtig ist, dass ihr euch vorab schon einmal bei OpenAI registriert habt und euch einen API Schl\u00fcssel geholt habt. Falls das noch nicht geschehen sein sollte, hier aber auch noch mal eine Kurzfassung:<\/p>\n\n\n\n<p>Zun\u00e4chst gehen wir daf\u00fcr in die Entwickler Plattform Von OpenAI. Daf\u00fcr geht ihr einfach den Link zu Login (<a href=\"https:\/\/auth.openai.com\/log-in\">https:\/\/auth.openai.com\/log-in<\/a>), den ihr aber nat\u00fcrlich auch in der Video-Beschreibung findet. Dort loggt ihr euch ein.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"568\" src=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-1024x568.jpg\" alt=\"\" class=\"wp-image-681\" srcset=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-1024x568.jpg 1024w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-300x166.jpg 300w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-768x426.jpg 768w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-1536x852.jpg 1536w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-2048x1136.jpg 2048w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.14-1600x888.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p>Nach dem Login landet ihr dann im Dashboard, wo ihr auf der linken Seite Zugriff auf den Men\u00fcpunkt API-Keys habt. Da klickt ihr drauf und w\u00e4hlt anschlie\u00dfend &#8222;Create new secret key&#8220;.\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-1024x585.jpg\" alt=\"\" class=\"wp-image-682\" srcset=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-1024x585.jpg 1024w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-300x171.jpg 300w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-768x439.jpg 768w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-1536x878.jpg 1536w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-2048x1170.jpg 2048w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.40-1600x914.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p><div>Ihr w\u00e4hlt einen h\u00fcbschen oder sinnvollen Namen f\u00fcr euren Schl\u00fcssel aus und best\u00e4tigt das Ganze. Anschlie\u00dfend k\u00f6nnt ihr euch den Key in die Zwischenablage mitnehmen.<\/div><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"585\" src=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-1024x585.jpg\" alt=\"\" class=\"wp-image-683\" srcset=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-1024x585.jpg 1024w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-300x171.jpg 300w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-768x439.jpg 768w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-1536x877.jpg 1536w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-2048x1170.jpg 2048w, https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Bildschirmfoto-2025-03-23-um-07.17.48-1600x914.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">API-Key in Projekt ablegen<\/h1>\n\n\n\n<p>Mit diesem Schl\u00fcssel in der Zwischenablage wartet jetzt hier schon der erste Fallstrick auf uns. Wichtig ist n\u00e4mlich, dass wir diesen Schl\u00fcssel nicht einfach in unseren Quellcode schreiben. Es ist \u00fcblich, so einen Schl\u00fcssel in eine eigene Datei zu schreiben, damit wir den Schl\u00fcssel nicht versehentlich mit anderen Personen teilen, wenn wir zum Beispiel unseren Quellcode weiterschicken.<\/p>\n\n\n\n<p>Da gibt es jetzt 1000 M\u00f6glichkeiten, aber die einfachste ist es, den Schl\u00fcssel in eine .env-Datei zu legen. Ich lege mir als eine neue Datei an, gebe ihr den Namen .env und schreibe dort meinen Schl\u00fcssel rein. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">API_KEY=\"sk-proj-1234\"<\/code><\/pre>\n\n\n\n<p>Dort liegt er erstmal gut und wir k\u00f6nnen mit unserem eigentlichen Skript weitermachen.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Module installieren und importieren<\/h1>\n\n\n\n<p>Module stellen uns in Python Funktionen zur Verf\u00fcgung, die in die eigentliche Programmiersprache nicht eingebaut sind. Und wir brauchen heute zwei solcher Zusatzmodule. Eins f\u00fcr die Verbindung zu OpenAI und eins zum Laden unseres API-Keys.<\/p>\n\n\n\n<p>Beide k\u00f6nnen wir ganz einfach \u00fcber das Terminal installieren:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\"># Im Terminal:\npip install python-dotenv\npip install openai<\/code><\/pre>\n\n\n\n<p>Aus diesem Modulen importieren wir jetzt alle Teile, die wir tats\u00e4chlich ben\u00f6tigen. aus openai ben\u00f6tigen wir die Klasse OpenAI.<\/p>\n\n\n\n<p>Um unsere .env-Datei zu \u00f6ffnen, brauchen wir load_dotenv. Und um dort dann den gew\u00fcnschten Key rauszulesen noch die Funktion getenv.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">from openai import OpenAI\nfrom dotenv import load_dotenv\nfrom os import getenv<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p>Wie gerade schon erw\u00e4hnt, m\u00fcssen wir unseren Schl\u00fcssel jetzt noch verf\u00fcgbar machen. Ich lade mir also die Datei und hole mir den Schl\u00fcssel aus der Datei. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">\nfrom openai import OpenAI\nfrom dotenv import load_dotenv\nfrom os import getenv\n\n\nload_dotenv()\nAPI_KEY = getenv(\"API_KEY\")<\/code><\/pre>\n\n\n\n<p>Und das war&#8217;s dann auch schon ein Vorbereitung und wir k\u00f6nnen unsere GPT-Funktion schreiben. <\/p>\n\n\n\n<h1 class=\"wp-block-heading\">GPT-Websuche<\/h1>\n\n\n\n<p>Wir schreiben uns jetzt eine Funktion, die f\u00fcr uns unsere Unterhaltung mit OpenAI b\u00fcndelt. Dieser Funktion gebe ich einen passenden Namen und lege fest, was meine Funktion entgegennehmen soll. Ich will die Funktion so designen, dass ich ihr sp\u00e4ter einfach nur noch die Prompt zuschicken muss und sie mir das Ergebnis zur\u00fcckgibt.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">def get_gpt_answer(prompt):      <\/code><\/pre>\n\n\n\n<p>In dieser Funktion lege ich mir jetzt einen Client an. Der Client ist f\u00fcr uns dann die direkte Schnittstelle zu OpenAI. Er will von uns auch nur eine Sache haben und zwar den API-Key. Klar, denn der wird ja zur Abrechnung gebraucht. Den Key haben wir ja schon eingelesen und k\u00f6nnen ihn also sofort nutzen.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">def get_gpt_answer(prompt):                \n    client = OpenAI(api_key=API_KEY)<\/code><\/pre>\n\n\n\n<p>Ebenso wie auf der Website von ChatGPT k\u00f6nnen wir mit OpenAI einen Chat aufmachen. Daf\u00fcr lege ich jetzt fest, welche Nachrichten geschickt werden sollen. <\/p>\n\n\n\n<p>Dabei muss ich festlegen, mit welcher Rolle die Nachricht geschickt wird und welchen Inhalt sie hat. Die Rolle ist nat\u00fcrlich jetzt gerade der User, denn wir schicken als Nutzer ja eine Anfrage. Und als Content \u00fcbergeben wir die Prompt, die vorher unsere Funktion entgegengenommen hat. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">def get_gpt_answer(prompt):                \n    client = OpenAI(api_key=API_KEY)\n    msg = [{\"role\": \"user\", \"content\": prompt}]<\/code><\/pre>\n\n\n\n<p>\u00dcber die Schnittstelle von Open Air soll uns jetzt dieser Chat vervollst\u00e4ndigt werden. Wir stellen also eine Frage und wollen, dass uns eine Antwort zur\u00fcckgeschickt wird. Das machen wir mit einer Chat-Completion. Die m\u00f6chte von uns zwei Dinge haben, n\u00e4mlich das gew\u00fcnschte Modell und die Nachrichten des Chats. Als Modell nutzen wir das Modell f\u00fcr die Websuche und als Nachricht \u00fcbergeben wir die Nachrichten, die wir gerade schon festgelegt haben.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">response = client.chat.completions.create(\n            model=\"gpt-4o-search-preview\",\n            messages=msg\n    )<\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Antwort auslesen<\/h1>\n\n\n\n<p>Wenn wir im richtigen Format mit OpenAI gesprochen haben, dann bekommen wir sauber strukturiert eine Antwort zur\u00fcck. Aus diesen Daten m\u00fcssen wir uns allerdings nur ein ganz bestimmten Teil holen, n\u00e4mlich den Inhalt der Nachricht, den wir als Antwort erhalten haben. Und den finden wir in den sogenannten Choices.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">    text = response.choices[0].message.content\n    return text<\/code><\/pre>\n\n\n\n<p>Diese Antwort geben wir jetzt zur\u00fcck und damit ist unsere Funktion fertig. Die Funkton k\u00f6nnt ihr jetzt also ganz entspannt aufrufen und sie in alle eure Projekte mit einbauen. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">if __name__ == \"__main__\":\n    res = get_gpt_answer(\"Welches Datum ist heute?\")\n    print(res)\n    <\/code><\/pre>\n\n\n\n<p>Ein kleines Beispielprojekt dazu gibt&#8217;s in Teil zwei des Videos. Ich freu mich, wenn ihr da gleich wieder mit dabei sind und ansonsten w\u00fcnsche ich euch ganz viel Spa\u00df beim Ausprobieren! Bleibt neugierig und bis gleich!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"># \ud83c\udf89 Fertiger Quellcode<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"python\" class=\"language-python\">\nfrom openai import OpenAI\nfrom dotenv import load_dotenv\nfrom os import getenv\n\n\nload_dotenv()\nAPI_KEY = getenv(\"API_KEY\")\n\n\ndef get_gpt_answer(prompt):                \n    client = OpenAI(api_key=API_KEY)\n    msg = [{\"role\": \"user\", \"content\": prompt}]\n    response = client.chat.completions.create(\n            model=\"gpt-4o-search-preview\",\n            messages=msg\n    )\n    \n    text = response.choices[0].message.content\n    return text\n   \n\n\nif __name__ == \"__main__\":\n    res = get_gpt_answer(\"Welches Datum ist heute?\")\n    print(res)\n    <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>OpenAI hat neulich ein Update rausgebracht, was uns jetzt endlich auch eine automatische Websuche m\u00f6glich macht. Wie ihr diese Websuche&hellip;<\/p>\n","protected":false},"author":1,"featured_media":677,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[62,21],"tags":[],"class_list":["post-674","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-ki-machine-learning","category-api"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>OpenAI-Websuche mit Python + ChatGPT &mdash; Programmieren mit Chris<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenAI-Websuche mit Python + ChatGPT &mdash; Programmieren mit Chris\" \/>\n<meta property=\"og:description\" content=\"OpenAI hat neulich ein Update rausgebracht, was uns jetzt endlich auch eine automatische Websuche m\u00f6glich macht. Wie ihr diese Websuche&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/\" \/>\n<meta property=\"og:site_name\" content=\"Programmieren mit Chris\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-23T07:24:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-23T09:15:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@chrischmayt\" \/>\n<meta name=\"twitter:site\" content=\"@chrischmayt\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"chris\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#organization\",\"name\":\"Programmieren mit Chris\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/christoph-schmalfu\\u00df-52a93b209\/\",\"https:\/\/www.youtube.com\/channel\/UC0faHRYVxDn7chW573SSh8A\",\"https:\/\/twitter.com\/chrischmayt\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#logo\",\"inLanguage\":\"de\",\"url\":\"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png\",\"contentUrl\":\"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png\",\"width\":3000,\"height\":3000,\"caption\":\"Programmieren mit Chris\"},\"image\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#website\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/\",\"name\":\"Programmieren lernen mit Chris\",\"description\":\"Tutorials | Vlogs\",\"publisher\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/christoph-schmalfuss.de\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#primaryimage\",\"inLanguage\":\"de\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png\",\"contentUrl\":\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png\",\"width\":1920,\"height\":1080,\"caption\":\"Chatgpt + Python Websuche\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#webpage\",\"url\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/\",\"name\":\"OpenAI-Websuche mit Python + ChatGPT &mdash; Programmieren mit Chris\",\"isPartOf\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#primaryimage\"},\"datePublished\":\"2025-03-23T07:24:32+00:00\",\"dateModified\":\"2025-03-23T09:15:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/christoph-schmalfuss.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenAI-Websuche mit Python + ChatGPT\"}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#webpage\"},\"author\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb\"},\"headline\":\"OpenAI-Websuche mit Python + ChatGPT\",\"datePublished\":\"2025-03-23T07:24:32+00:00\",\"dateModified\":\"2025-03-23T09:15:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#webpage\"},\"wordCount\":848,\"publisher\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png\",\"articleSection\":[\"AI \/ KI \/ Machine Learning\",\"API\"],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb\",\"name\":\"chris\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/christoph-schmalfuss.de\/blog\/#personlogo\",\"inLanguage\":\"de\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g\",\"caption\":\"chris\"},\"sameAs\":[\"http:\/\/christoph-schmalfuss.de\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OpenAI-Websuche mit Python + ChatGPT &mdash; Programmieren mit Chris","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/","og_locale":"de_DE","og_type":"article","og_title":"OpenAI-Websuche mit Python + ChatGPT &mdash; Programmieren mit Chris","og_description":"OpenAI hat neulich ein Update rausgebracht, was uns jetzt endlich auch eine automatische Websuche m\u00f6glich macht. Wie ihr diese Websuche&hellip;","og_url":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/","og_site_name":"Programmieren mit Chris","article_published_time":"2025-03-23T07:24:32+00:00","article_modified_time":"2025-03-23T09:15:08+00:00","og_image":[{"width":1920,"height":1080,"filesize":999998,"url":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png","path":"\/var\/www\/virtual\/schmalin\/html\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png","size":"full","id":677,"alt":"Chatgpt + Python Websuche","pixels":2073600,"type":"image\/png"}],"twitter_card":"summary_large_image","twitter_creator":"@chrischmayt","twitter_site":"@chrischmayt","twitter_misc":{"Verfasst von":"chris","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Organization","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#organization","name":"Programmieren mit Chris","url":"https:\/\/christoph-schmalfuss.de\/blog\/","sameAs":["https:\/\/www.linkedin.com\/in\/christoph-schmalfu\u00df-52a93b209\/","https:\/\/www.youtube.com\/channel\/UC0faHRYVxDn7chW573SSh8A","https:\/\/twitter.com\/chrischmayt"],"logo":{"@type":"ImageObject","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#logo","inLanguage":"de","url":"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png","contentUrl":"http:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2021\/08\/programmieren-mit-chris-logo-ohne-schatten-3000x3000-transparent.png","width":3000,"height":3000,"caption":"Programmieren mit Chris"},"image":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#logo"}},{"@type":"WebSite","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#website","url":"https:\/\/christoph-schmalfuss.de\/blog\/","name":"Programmieren lernen mit Chris","description":"Tutorials | Vlogs","publisher":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/christoph-schmalfuss.de\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de"},{"@type":"ImageObject","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#primaryimage","inLanguage":"de","url":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png","contentUrl":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png","width":1920,"height":1080,"caption":"Chatgpt + Python Websuche"},{"@type":"WebPage","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#webpage","url":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/","name":"OpenAI-Websuche mit Python + ChatGPT &mdash; Programmieren mit Chris","isPartOf":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#primaryimage"},"datePublished":"2025-03-23T07:24:32+00:00","dateModified":"2025-03-23T09:15:08+00:00","breadcrumb":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/christoph-schmalfuss.de\/blog\/"},{"@type":"ListItem","position":2,"name":"OpenAI-Websuche mit Python + ChatGPT"}]},{"@type":"Article","@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#article","isPartOf":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#webpage"},"author":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb"},"headline":"OpenAI-Websuche mit Python + ChatGPT","datePublished":"2025-03-23T07:24:32+00:00","dateModified":"2025-03-23T09:15:08+00:00","mainEntityOfPage":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#webpage"},"wordCount":848,"publisher":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/#organization"},"image":{"@id":"https:\/\/christoph-schmalfuss.de\/blog\/2025\/03\/23\/openai-websuche-mit-python\/#primaryimage"},"thumbnailUrl":"https:\/\/christoph-schmalfuss.de\/blog\/wp-content\/uploads\/2025\/03\/Thumbnail-GPT-Websuche.png","articleSection":["AI \/ KI \/ Machine Learning","API"],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#\/schema\/person\/b64d7415ba9ac63f395509d7097012bb","name":"chris","image":{"@type":"ImageObject","@id":"https:\/\/christoph-schmalfuss.de\/blog\/#personlogo","inLanguage":"de","url":"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/176e906a49456dda30761449564e6e69d6b070f731880e6ace0d8e2d1746f1b6?s=96&d=retro&r=g","caption":"chris"},"sameAs":["http:\/\/christoph-schmalfuss.de\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts\/674","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/comments?post=674"}],"version-history":[{"count":7,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts\/674\/revisions"}],"predecessor-version":[{"id":687,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/posts\/674\/revisions\/687"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/media\/677"}],"wp:attachment":[{"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/media?parent=674"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/categories?post=674"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/christoph-schmalfuss.de\/blog\/wp-json\/wp\/v2\/tags?post=674"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}