{"id":890,"date":"2026-08-25T09:47:32","date_gmt":"2026-08-25T07:47:32","guid":{"rendered":"https:\/\/rhein-ruhr-informatik.de\/?p=890"},"modified":"2026-08-25T09:47:34","modified_gmt":"2026-08-25T07:47:34","slug":"bildanalyse-mit-gpt-4-1-mini-und-structured-outputs","status":"publish","type":"post","link":"https:\/\/rhein-ruhr-informatik.de\/en\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/","title":{"rendered":"Image Analysis with GPT-4.1-mini and Structured Outputs"},"content":{"rendered":"<p>In this tutorial, we will learn how to analyze images using a multimodal AI model and return the results directly as structured data. We will use GPT-4.1-mini with Azure OpenAI and Structured Outputs.<\/p>\n\n\n\n<p>Instead of using a separate service for every task, we can send an image together with our instructions to the model and extract information such as a description, tags, detected objects and OCR text.<\/p>\n\n\n\n<p>The important point is that the AI response should not simply be arbitrary text. Our application needs a defined data structure. For this purpose, we use JSON Schema with Pydantic.<\/p>\n\n\n\n<p><strong>Prerequisites<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Python must be installed on your computer.<\/li>\n\n\n\n<li>An Azure OpenAI deployment with GPT-4.1-mini must be available.<\/li>\n\n\n\n<li>Basic knowledge of Python and FastAPI.<\/li>\n\n\n\n<li>Basic knowledge of REST APIs and JSON.<\/li>\n\n\n\n<li>An Azure OpenAI client must be configured in the backend.<\/li>\n<\/ul>\n\n\n\n<p><strong>Step 1: Define the Pydantic Schema<\/strong><\/p>\n\n\n\n<p>First, we define the structure that our application expects from the AI using Pydantic:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"427\" src=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg\" alt=\"\" class=\"wp-image-891\" srcset=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg 755w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-300x170.jpg 300w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-18x10.jpg 18w\" sizes=\"auto, (max-width: 755px) 100vw, 755px\" \/><\/figure>\n\n\n\n<p>This class defines both the contract for our application and the schema for the model's structured response. This means that we do not need to manually create the JSON Schema as a dictionary.<\/p>\n\n\n\n<p><strong>Step 2: Send the Image and Prompt to the Model<\/strong><\/p>\n\n\n\n<p>The image is read by the backend and then passed to the model as a Base64 Data URL.<\/p>\n\n\n\n<p>In addition, we send a prompt describing which information should be extracted from the image. For example:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"839\" height=\"325\" src=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.png\" alt=\"\" class=\"wp-image-892\" srcset=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.png 839w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-300x116.png 300w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-768x297.png 768w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-18x7.png 18w\" sizes=\"auto, (max-width: 839px) 100vw, 839px\" \/><\/figure>\n\n\n\n<p>The user only sees the upload functionality. The actual instructions used for the image analysis remain in the backend.<\/p>\n\n\n\n<p><strong>Step 3: Use Structured Outputs<\/strong><\/p>\n\n\n\n<p>Now comes the important part. Instead of simply asking the model to return JSON, we use Structured Outputs:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"310\" height=\"154\" src=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-1.png\" alt=\"\" class=\"wp-image-893\" srcset=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-1.png 310w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-1-300x149.png 300w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-1-18x9.png 18w\" sizes=\"auto, (max-width: 310px) 100vw, 310px\" \/><\/figure>\n\n\n\n<p>With text_format=AnalysisResult, we use our Pydantic class as the schema for the response.<\/p>\n\n\n\n<p>The model therefore receives a defined structure, and our backend can use the result directly as an AnalysisResult:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"297\" height=\"36\" src=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-2.png\" alt=\"\" class=\"wp-image-894\" srcset=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-2.png 297w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-2-18x2.png 18w\" sizes=\"auto, (max-width: 297px) 100vw, 297px\" \/><\/figure>\n\n\n\n<p>We no longer need to remove Markdown code fences or manually parse the returned text into JSON.<\/p>\n\n\n\n<p><strong>Step 4: Return the Result to the Frontend<\/strong><\/p>\n\n\n\n<p>Since our FastAPI endpoint also uses AnalysisResult, we can return the result directly:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"464\" height=\"109\" src=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-3.png\" alt=\"\" class=\"wp-image-895\" srcset=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-3.png 464w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-3-300x70.png 300w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-3-18x4.png 18w\" sizes=\"auto, (max-width: 464px) 100vw, 464px\" \/><\/figure>\n\n\n\n<p>The frontend then receives a predictable structure:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"409\" height=\"328\" src=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-4.png\" alt=\"\" class=\"wp-image-896\" srcset=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-4.png 409w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-4-300x241.png 300w, https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image-4-15x12.png 15w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/figure>\n\n\n\n<p><strong>Why Structured Outputs?<\/strong><\/p>\n\n\n\n<p>A simple prompt such as \u201crespond only with JSON\u201d can work, but it is not an ideal contract between an AI model and an application. <\/p>\n\n\n\n<p>With Structured Outputs, we explicitly define the expected structure.<\/p>\n\n\n\n<p>This provides several benefits:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The backend receives a predictable data structure.<\/li>\n\n\n\n<li>The Pydantic model can be used for both the API and the AI response.<\/li>\n\n\n\n<li>Less manual JSON parsing is required.<\/li>\n\n\n\n<li>The frontend can work directly with a defined structure.<\/li>\n\n\n\n<li>The prompt does not need to describe the complete JSON format.<\/li>\n<\/ul>\n\n\n\n<p><strong>Structured Outputs as a Contract<\/strong><\/p>\n\n\n\n<p class=\" translation-block\">While building the application, I noticed that the model could sometimes return information that was not actually present in the image, such as an incorrect price or object. This is a common AI hallucination. Structured Outputs does not prevent hallucinations, but it provides a reliable <strong>contract between the AI and the application<\/strong>.<\/p>\n\n\n\n<p class=\" translation-block\">By defining the expected fields and types with Pydantic, the backend knows exactly what structure to expect. To reduce hallucinations, I also added explicit instructions to the prompt, such as <em>\u201cDo not invent prices or links. If the information cannot be reliably identified, return an empty value.\u201d<\/em><\/p>\n\n\n\n<p class=\" translation-block\">This combination makes the application more predictable: <strong>Structured Outputs protects the structure, while clear prompting and validation help protect the data.<\/strong><\/p>\n\n\n\n<p><strong>OCR or Multimodal AI?<\/strong><\/p>\n\n\n\n<p>For pure text recognition, Azure provides specialized OCR and Document Intelligence solutions. These are particularly useful when the main goal is to reliably extract text, layouts, tables or positions.<\/p>\n\n\n\n<p>In our case, however, we do not only want to recognize text. We want to analyze the entire image and extract different types of information from it.<\/p>\n\n\n\n<p>That makes a multimodal model such as GPT-4.1-mini an interesting alternative:<\/p>\n\n\n\n<p><strong>Image + instructions \u2192 model \u2192 structured data<\/strong><\/p>\n\n\n\n<p>This allows us to combine image understanding and structured data extraction in a single step.<\/p>\n\n\n\n<p><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>With Azure OpenAI and GPT-4.1-mini, we can relatively easily build an application that analyzes images and converts the results directly into a structure that our software can consume.<\/p>\n\n\n\n<p>The key point is not only the model we use, but also the contract between the AI and the application.<\/p>\n\n\n\n<p class=\" translation-block\">With <strong>Pydantic + Structured Outputs<\/strong>, a free-form AI response becomes a structured API response.<\/p>\n\n\n\n<p>This allows AI to do more than just generate text. It can act as an additional processing layer between an image and our application.<\/p>\n\n\n\n<p>I hope this short tutorial was helpful.<\/p>\n\n\n\n<p><strong>Now let\u2019s code!<\/strong><\/p>","protected":false},"excerpt":{"rendered":"<p>In diesem Tutorial lernen wir, wie man Bilder mit einem multimodalen KI-Modell analysiert und die Ergebnisse direkt als strukturierte Daten zur\u00fcckgibt. Dabei verwenden wir GPT-4.1-mini mit Azure OpenAI und Structured Outputs. Anstatt f\u00fcr jede Aufgabe einen separaten Service zu verwenden, k\u00f6nnen wir ein Bild zusammen mit unseren Anweisungen an das [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-890","post","type-post","status-publish","format-standard","hentry","category-articles"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bildanalyse mit GPT-4.1-mini und Structured Outputs - Rhein-Ruhr-Informatik<\/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:\/\/rhein-ruhr-informatik.de\/en\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bildanalyse mit GPT-4.1-mini und Structured Outputs - Rhein-Ruhr-Informatik\" \/>\n<meta property=\"og:description\" content=\"In diesem Tutorial lernen wir, wie man Bilder mit einem multimodalen KI-Modell analysiert und die Ergebnisse direkt als strukturierte Daten zur\u00fcckgibt. Dabei verwenden wir GPT-4.1-mini mit Azure OpenAI und Structured Outputs. Anstatt f\u00fcr jede Aufgabe einen separaten Service zu verwenden, k\u00f6nnen wir ein Bild zusammen mit unseren Anweisungen an das [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rhein-ruhr-informatik.de\/en\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\" \/>\n<meta property=\"og:site_name\" content=\"Rhein-Ruhr-Informatik\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-25T07:47:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-25T07:47:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"755\" \/>\n\t<meta property=\"og:image:height\" content=\"427\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Rhein-Ruhr-Informatik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rhein-Ruhr-Informatik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\"},\"author\":{\"name\":\"Rhein-Ruhr-Informatik\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/person\/29f8c93b2080ee25df204d589a7f2477\"},\"headline\":\"Bildanalyse mit GPT-4.1-mini und Structured Outputs\",\"datePublished\":\"2026-08-25T07:47:32+00:00\",\"dateModified\":\"2026-08-25T07:47:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\"},\"wordCount\":753,\"publisher\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#organization\"},\"image\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg\",\"articleSection\":[\"Artikel\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\",\"url\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\",\"name\":\"Bildanalyse mit GPT-4.1-mini und Structured Outputs - Rhein-Ruhr-Informatik\",\"isPartOf\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg\",\"datePublished\":\"2026-08-25T07:47:32+00:00\",\"dateModified\":\"2026-08-25T07:47:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage\",\"url\":\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg\",\"contentUrl\":\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rhein-ruhr-informatik.de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bildanalyse mit GPT-4.1-mini und Structured Outputs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#website\",\"url\":\"https:\/\/rhein-ruhr-informatik.de\/\",\"name\":\"Rhein-Ruhr-Informatik\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rhein-ruhr-informatik.de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#organization\",\"name\":\"Rhein-Ruhr-Informatik\",\"url\":\"https:\/\/rhein-ruhr-informatik.de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2024\/02\/logo-2.png\",\"contentUrl\":\"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2024\/02\/logo-2.png\",\"width\":570,\"height\":570,\"caption\":\"Rhein-Ruhr-Informatik\"},\"image\":{\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/person\/29f8c93b2080ee25df204d589a7f2477\",\"name\":\"Rhein-Ruhr-Informatik\",\"sameAs\":[\"https:\/\/rhein-ruhr-informatik.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Bildanalyse mit GPT-4.1-mini und Structured Outputs - Rhein-Ruhr-Informatik","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:\/\/rhein-ruhr-informatik.de\/en\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/","og_locale":"en_US","og_type":"article","og_title":"Bildanalyse mit GPT-4.1-mini und Structured Outputs - Rhein-Ruhr-Informatik","og_description":"In diesem Tutorial lernen wir, wie man Bilder mit einem multimodalen KI-Modell analysiert und die Ergebnisse direkt als strukturierte Daten zur\u00fcckgibt. Dabei verwenden wir GPT-4.1-mini mit Azure OpenAI und Structured Outputs. Anstatt f\u00fcr jede Aufgabe einen separaten Service zu verwenden, k\u00f6nnen wir ein Bild zusammen mit unseren Anweisungen an das [&hellip;]","og_url":"https:\/\/rhein-ruhr-informatik.de\/en\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/","og_site_name":"Rhein-Ruhr-Informatik","article_published_time":"2026-08-25T07:47:32+00:00","article_modified_time":"2026-08-25T07:47:34+00:00","og_image":[{"width":755,"height":427,"url":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg","type":"image\/jpeg"}],"author":"Rhein-Ruhr-Informatik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rhein-Ruhr-Informatik","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#article","isPartOf":{"@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/"},"author":{"name":"Rhein-Ruhr-Informatik","@id":"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/person\/29f8c93b2080ee25df204d589a7f2477"},"headline":"Bildanalyse mit GPT-4.1-mini und Structured Outputs","datePublished":"2026-08-25T07:47:32+00:00","dateModified":"2026-08-25T07:47:34+00:00","mainEntityOfPage":{"@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/"},"wordCount":753,"publisher":{"@id":"https:\/\/rhein-ruhr-informatik.de\/#organization"},"image":{"@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage"},"thumbnailUrl":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg","articleSection":["Artikel"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/","url":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/","name":"Bildanalyse mit GPT-4.1-mini und Structured Outputs - Rhein-Ruhr-Informatik","isPartOf":{"@id":"https:\/\/rhein-ruhr-informatik.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage"},"image":{"@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage"},"thumbnailUrl":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg","datePublished":"2026-08-25T07:47:32+00:00","dateModified":"2026-08-25T07:47:34+00:00","breadcrumb":{"@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#primaryimage","url":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg","contentUrl":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2026\/08\/image.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/rhein-ruhr-informatik.de\/2026\/08\/25\/bildanalyse-mit-gpt-4-1-mini-und-structured-outputs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rhein-ruhr-informatik.de\/"},{"@type":"ListItem","position":2,"name":"Bildanalyse mit GPT-4.1-mini und Structured Outputs"}]},{"@type":"WebSite","@id":"https:\/\/rhein-ruhr-informatik.de\/#website","url":"https:\/\/rhein-ruhr-informatik.de\/","name":"Rhein-Ruhr-Informatik","description":"","publisher":{"@id":"https:\/\/rhein-ruhr-informatik.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rhein-ruhr-informatik.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/rhein-ruhr-informatik.de\/#organization","name":"Rhein-Ruhr-Informatik","url":"https:\/\/rhein-ruhr-informatik.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/logo\/image\/","url":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2024\/02\/logo-2.png","contentUrl":"https:\/\/rhein-ruhr-informatik.de\/wp-content\/uploads\/2024\/02\/logo-2.png","width":570,"height":570,"caption":"Rhein-Ruhr-Informatik"},"image":{"@id":"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/rhein-ruhr-informatik.de\/#\/schema\/person\/29f8c93b2080ee25df204d589a7f2477","name":"Rhein-Ruhr-Informatik","sameAs":["https:\/\/rhein-ruhr-informatik.de"]}]}},"_links":{"self":[{"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/posts\/890","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/comments?post=890"}],"version-history":[{"count":1,"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/posts\/890\/revisions"}],"predecessor-version":[{"id":897,"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/posts\/890\/revisions\/897"}],"wp:attachment":[{"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/media?parent=890"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/categories?post=890"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rhein-ruhr-informatik.de\/en\/wp-json\/wp\/v2\/tags?post=890"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}