{"id":565,"date":"2022-04-03T20:02:00","date_gmt":"2022-04-03T18:02:00","guid":{"rendered":"https:\/\/programmier-workshops.de\/blog\/?page_id=565"},"modified":"2025-12-25T16:38:40","modified_gmt":"2025-12-25T15:38:40","slug":"courese-learning-ai-app-development","status":"publish","type":"page","link":"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/","title":{"rendered":"Praktischer Einstieg in KI-App-Entwicklung"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"KI-App_Entwicklung_mit_Python_Ollama_Streamlit\"><\/span>KI-App Entwicklung mit Python, Ollama &amp; Streamlit<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#KI-App_Entwicklung_mit_Python_Ollama_Streamlit\" >KI-App Entwicklung mit Python, Ollama &amp; Streamlit<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Installationsanleitung\" >Installationsanleitung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Voraussetzungen\" >Voraussetzungen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Python_311_installieren\" >Python 3.11 installieren<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Git_Installieren\" >Git Installieren<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Ollama_installieren\" >Ollama installieren<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#VS_Code_Insiders_installieren\" >VS Code Insiders installieren<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Dienst_starten\" >Dienst starten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Modell_herunterladen_und_testen\" >Modell herunterladen und testen<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Projektordner_und_Virtuelle_Umgebung\" >Projektordner und Virtuelle Umgebung<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Aktivieren\" >Aktivieren<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#pip_und_Tools_aktualisieren\" >pip und Tools aktualisieren<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Installation_ueber_requirementstxt\" >Installation \u00fcber requirements.txt<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Streamlit_testen\" >Streamlit testen<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#VS_Code_starten\" >VS Code starten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Streamlit_aus_VSCode_starten\" >Streamlit aus VSCode starten<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Test_mit_Python_und_Ollama\" >Test mit Python und Ollama<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Streamlit_Ollama_Beispiel-App\" >Streamlit + Ollama Beispiel-App<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Typische_Projektstruktur\" >Typische Projektstruktur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/programmier-workshops.de\/blog\/courese-learning-ai-app-development\/#Naechste_Schritte\" >N\u00e4chste Schritte<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<p>In diesem 4-t\u00e4gigen Programmierkurs (mit einem optionalen Zusatztag am Anfang f\u00fcr Python und Streamlit Grundlagen) begleite ich Dich auf Deinem Weg in die Entwicklung eigener KI-Anwendungen.<\/p>\n\n\n\n<p>Gemeinsam starten wir mit einem Einf\u00fchrungstag zu Python und Streamlit, sodass Du schnell die wichtigsten Grundlagen beherrschst.<\/p>\n\n\n\n<p>An den folgenden vier Tagen setzen wir Schritt f\u00fcr Schritt spannende KI-Projekte um:<\/p>\n\n\n\n<p>Du<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>entwickelst einen Chat-Client mit lokalem KI-Modell,<\/li>\n\n\n\n<li>baust eine Bildanalyse-App,<\/li>\n\n\n\n<li>erstellst ein Tool zur automatischen Blog-Gliederung,<br>und<\/li>\n\n\n\n<li>programmierst eine Anwendung f\u00fcr Zusammenfassungen und Quizfragen zu Deinen Wunschthemen.<\/li>\n<\/ul>\n\n\n\n<p>Dabei lernst Du, wie Du Ollama in Deine Projekte einbindest, Prompts richtig formulierst und mit Streamlit interaktive Oberfl\u00e4chen gestaltest.<\/p>\n\n\n\n<p>Am Ende des Kurses hast Du nicht nur das Wissen, sondern auch fertige Beispiele in der Hand, mit denen Du Deine eigenen Ideen weiterentwickeln kannst.<\/p>\n\n\n\n<p>Hier nochmals die Zeitlanung:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>08.11: Zus\u00e4tzlicher Einf\u00fchrungstag &#8211; Crashcourse in Python und Streamlit<\/li>\n\n\n\n<li>15.11<\/li>\n\n\n\n<li>13.12<\/li>\n\n\n\n<li>10.01<\/li>\n\n\n\n<li>24.01<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installationsanleitung\"><\/span><strong> Installationsanleitung<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p><strong>Python 3.11 \u00b7 VS Code Insiders \u00b7 Ollama \u00b7 Streamlit<\/strong><\/p>\n\n\n\n<p>Diese Anleitung zeigt Schritt f\u00fcr Schritt, wie Du Deine Entwicklungsumgebung f\u00fcr den Kurs einrichtest.<\/p>\n\n\n\n<p>Du lernst, Python 3.11, VS Code Insiders, Ollama und Streamlit zu installieren und mit einer virtuellen Umgebung zu arbeiten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Voraussetzungen\"><\/span>Voraussetzungen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ein Terminal (macOS: <strong>Terminal<\/strong>, Windows: <strong>PowerShell<\/strong>, Linux: <strong>Konsole<\/strong>)<\/li>\n\n\n\n<li>Administratorrechte f\u00fcr Softwareinstallationen<\/li>\n\n\n\n<li>Ca. 15 \u2013 20 GB freier Speicherplatz<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Python_311_installieren\"><\/span><strong>Python 3.11 installieren<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-91160bb2 atbs-tabs-862b68e9 atbs-tabs-7d4f5f53 atbs-tabs-e64d2c02 atbs-tabs-abc5d4d9 atbs-tabs-b64a6eac atbs-tabs-255dca2b atbs-tabs-c056c614 atbs-tabs-d5d28e26 atbs-tabs-267b83a6 atbs-tabs-3160d3af\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-91160bb2\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">winget install \"Python.Python.3.11\"\n\npy -3.11 --version<\/pre>\n\n\n\n<p>Wenn der Befehl nicht gefunden wird, PowerShell neu starten.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-91160bb2\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\nsudo apt install -y software-properties-common\nsudo add-apt-repository ppa:deadsnakes\/ppa -y\nsudo apt update\nsudo apt install -y python3.11 python3.11-venv python3.11-distutils\n\npython3.11 --version<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-91160bb2\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">brew install python@3.11\npython3.11 --version<\/pre>\n\n\n\n<p>Alternative: Installer von https:\/\/www.python.org\/downloads\/<\/p>\n\n\n\n<p>Falls Build-Tools fehlen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">xcode-select --install<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Git_Installieren\"><\/span>Git Installieren<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-c0137357 atbs-tabs-08ec1687 atbs-tabs-3c7c7d16 atbs-tabs-50135e61 atbs-tabs-dfac17d9 atbs-tabs-bed13b86 atbs-tabs-4a21bdcb atbs-tabs-53ab34b4 atbs-tabs-0a2bb8d8 atbs-tabs-efff1972 atbs-tabs-eb73b9cc\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-c0137357\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">winget install \"Microsoft.Git\"<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-c0137357\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update\nsudo apt install git<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-c0137357\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">brew install git<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Ollama_installieren\"><\/span><strong>Ollama installieren<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-fbf39180 atbs-tabs-54c51cc6 atbs-tabs-20495b21 atbs-tabs-84c5a36e atbs-tabs-db25b215 atbs-tabs-bed13b86 atbs-tabs-4a21bdcb atbs-tabs-53ab34b4 atbs-tabs-0a2bb8d8 atbs-tabs-efff1972 atbs-tabs-eb73b9cc\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-fbf39180\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">winget install \"Ollama.Ollama\"\n\nollama --version<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-fbf39180\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -fsSL https:\/\/ollama.com\/install.sh | sh\n\nollama --version<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-fbf39180\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">brew install ollama\n\nollama --version<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VS_Code_Insiders_installieren\"><\/span><strong>VS Code Insiders installieren<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-6710db4d atbs-tabs-a4f25d6d atbs-tabs-d2300b78 atbs-tabs-0ae505b7 atbs-tabs-df68793d atbs-tabs-b2e9dab5 atbs-tabs-eb67b073 atbs-tabs-e16690e3 atbs-tabs-058bd330 atbs-tabs-8e15d3c8 atbs-tabs-f74d303e\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-6710db4d\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">winget install \"Microsoft.VisualStudioCode.Insiders\"<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-6710db4d\">\n<p>Lade das `.deb`- oder `.rpm`-Paket von<\/p>\n\n\n\n<p><a href=\"https:\/\/code.visualstudio.com\/insiders\" data-type=\"link\" data-id=\"https:\/\/code.visualstudio.com\/insiders\">https:\/\/code.visualstudio.com\/insiders<\/a><\/p>\n\n\n\n<p>oder nutze deinen Paketmanager.<\/p>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-6710db4d\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">brew install --cask visual-studio-code@insiders<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p><strong>Empfohlene Erweiterungen<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Python<\/strong> (Microsoft)<\/li>\n\n\n\n<li><strong>Pylance<\/strong> (IntelliSense)<\/li>\n\n\n\n<li>Optional: <strong>Black<\/strong>, <strong>autopep8<\/strong>, <strong>Ruff<\/strong> <\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Dienst_starten\"><\/span><strong>Dienst starten<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ollama serve<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Modell_herunterladen_und_testen\"><\/span><strong>Modell herunterladen und testen<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ollama pull phi4<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ollama run phi4\n\n>>> Wieviel is 2+2?\n>>> \/exit<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Projektordner_und_Virtuelle_Umgebung\"><\/span><strong>Projektordner <\/strong>und V<strong>irtuelle Umgebung<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-f67d4683 atbs-tabs-f1098892 atbs-tabs-8168a59b atbs-tabs-6f194ef0 atbs-tabs-8b789c4d atbs-tabs-4dcf58a6 atbs-tabs-4f6ac3cd atbs-tabs-a1c1c9ad atbs-tabs-539829e3 atbs-tabs-18a21189 atbs-tabs-4e8b6189\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-f67d4683\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">C:\ncd \\\nmkdir Enrichment\ncd Enrichment<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone https:\/\/github.com\/r14r\/Enrichment_AI-App  . <\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pwd<\/pre>\n\n\n\n<p>Der angezeigte Name ist das Verzeichnis, in dem wir in diesem Kurs arbeiten. Bitte Merken<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">py -3.11 -m venv .venv<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-f67d4683\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir -p ~\/Enrichment\ncd ~\/Enrichment<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone https:\/\/github.com\/r14r\/Enrichment_AI-App .<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pwd<\/pre>\n\n\n\n<p>Der angezeigte Name ist das Verzeichnis, in dem wir in diesem Kurs arbeiten. Bitte Merken<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python3.11 -m venv .venv<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-f67d4683\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir -p ~\/Enrichment\ncd ~\/Enrichment<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone https:\/\/github.com\/r14r\/Enrichment_AI-App .<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pwd<\/pre>\n\n\n\n<p>Der angezeigte Name ist das Verzeichnis, in dem wir in diesem Kurs arbeiten. Bitte Merken<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python3.11 -m venv .venv<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Aktivieren\"><\/span><strong>Aktivieren<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-2282e5e6 atbs-tabs-67fc9cff atbs-tabs-eb2f0044 atbs-tabs-1cd8a93d atbs-tabs-4c7226d7 atbs-tabs-142b1da8 atbs-tabs-96a472f7 atbs-tabs-5442c741 atbs-tabs-449c610f atbs-tabs-7579d7b6 atbs-tabs-920968b6\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-2282e5e6\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\\.venv\\Scripts\\Activate.ps1\n\npython --version<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-2282e5e6\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">source .venv\/bin\/activate\n\npython --version<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-2282e5e6\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">source .venv\/bin\/activate\n\npython --version<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"pip_und_Tools_aktualisieren\"><\/span><strong>pip und Tools aktualisieren<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pip install --upgrade pip<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Installation_ueber_requirementstxt\"><\/span><strong> Installation \u00fcber <code>requirements.txt<\/code><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pip install -r requirements.txt<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Streamlit_testen\"><\/span><strong>Streamlit testen<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">streamlit hello<\/pre>\n\n\n\n<p>Ein Browserfenster \u00f6ffnet sich \u2013 Streamlit funktioniert! \u2705<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VS_Code_starten\"><\/span>VS Code starten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-atbs-tabs atbs-tabs-ce4d6abc atbs-tabs-d6a2500e atbs-tabs-7a3e7490 atbs-tabs-7e748ae1 atbs-tabs-f3111618 atbs-tabs-142b1da8 atbs-tabs-96a472f7 atbs-tabs-5442c741 atbs-tabs-449c610f atbs-tabs-7579d7b6 atbs-tabs-920968b6\"><div class=\"tabs-container\"><div class=\"tabs-nav\"><ul class=\"tabs-titles\"><li class=\"tab-title icon_left\" data-title-tab-id=\"1\" role=\"button\"><span class=\"tab-title-text\">Windows<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"2\" role=\"button\"><span class=\"tab-title-text\">Linux<\/span><\/li><li class=\"tab-title icon_left\" data-title-tab-id=\"3\" role=\"button\"><span class=\"tab-title-text\">Mac OS<\/span><\/li><\/ul><\/div><div class=\"tabs-content\">\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"1\" data-tab-parent-id=\"atbs-tabs-ce4d6abc\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"powershell\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd \\Enrichment\ncode-insiders  Workspace.code-workspace<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"2\" data-tab-parent-id=\"atbs-tabs-ce4d6abc\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd ~\/Enrichment\ncode-insiders  Workspace.code-workspace<\/pre>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-atbs-tab\"><div class=\"single-tab\" data-tab-id=\"3\" data-tab-parent-id=\"atbs-tabs-ce4d6abc\">\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd ~\/Enrichment\ncode-insiders  Workspace.code-workspace<\/pre>\n<\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p class=\"has-luminous-vivid-amber-background-color has-background has-medium-font-size\"><strong>Wichtig<\/strong>:<br>Beim Aufruf den Dateinamen nicht vergessen: <code>Workspace.code-workspace<\/code><\/p>\n\n\n\n<p>Es \u00f6ffnet sich VS Code. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"554\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/01-VSCode-Startbildschirm-1024x554.png\" alt=\"\" class=\"wp-image-1329\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/01-VSCode-Startbildschirm-1024x554.png 1024w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/01-VSCode-Startbildschirm-300x162.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/01-VSCode-Startbildschirm-768x415.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/01-VSCode-Startbildschirm-1536x831.png 1536w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/01-VSCode-Startbildschirm-2048x1108.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nach einer kurzen Zeit solltest du rechts unten den Hinweis sehen, das du empfohlene Extensions installieren kannst.<\/p>\n\n\n\n<p>Klicke bitte hierzu auf <code>INSTALL<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"962\" height=\"276\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/20-Install-Extensions.png\" alt=\"\" class=\"wp-image-1295\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/20-Install-Extensions.png 962w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/20-Install-Extensions-300x86.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/20-Install-Extensions-768x220.png 768w\" sizes=\"auto, (max-width: 962px) 100vw, 962px\" \/><\/figure>\n\n\n\n<p>Es kommt dann eine Nachfrage, ob du den Installationsquellen vertraust.<\/p>\n\n\n\n<p>Klicke ebenfalls auf <code>OK<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"658\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/21-Trust-Publisher-and-Install-1024x658.png\" alt=\"\" class=\"wp-image-1296\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/21-Trust-Publisher-and-Install-1024x658.png 1024w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/21-Trust-Publisher-and-Install-300x193.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/21-Trust-Publisher-and-Install-768x494.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/21-Trust-Publisher-and-Install.png 1052w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Nachdem du dann alle Register der installierten Extensions geschlossen hast, solltest Du dieses Fenster sehen. Klicke hierzu auf den Namen eines Registers mit der Rechten Maustaste und w\u00e4hle &#8222;Close All&#8220;<\/p>\n\n\n\n<p>Klicke hierzu auch auf der linken Seite zuerst auf das Symbol um alle Dateien anzuzeigen, und dann auf die Datei <code>Hello\/App.py<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"551\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/31-Hello-App-1-1024x551.png\" alt=\"\" class=\"wp-image-1332\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/31-Hello-App-1-1024x551.png 1024w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/31-Hello-App-1-300x161.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/31-Hello-App-1-768x413.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/31-Hello-App-1-1536x826.png 1536w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/31-Hello-App-1-2048x1102.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Streamlit_aus_VSCode_starten\"><\/span>Streamlit aus VSCode starten<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Klicke auf das Symbol f\u00fcr &#8222;Run and Debug&#8220;<\/li>\n\n\n\n<li>Klicke in der Kopfzeile neben dem &#8222;RUN AND DEBUG&#8220; auf den Text neben dem gr\u00fcne Dreieck<\/li>\n\n\n\n<li>Selektiere dann &#8222;S: Hello (workspace)<\/li>\n\n\n\n<li>Dr\u00fccke die Taste <code>F5<\/code> oder auf das gr\u00fcne Dreieck<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"556\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/32-Hello-App-starten-1024x556.png\" alt=\"\" class=\"wp-image-1333\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/32-Hello-App-starten-1024x556.png 1024w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/32-Hello-App-starten-300x163.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/32-Hello-App-starten-768x417.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/32-Hello-App-starten-1536x834.png 1536w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/32-Hello-App-starten.png 2034w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Wenn eine Antwort kommt, l\u00e4uft alles richtig.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"562\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/33-Hello-App-running-1-1024x562.png\" alt=\"\" class=\"wp-image-1347\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/33-Hello-App-running-1-1024x562.png 1024w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/33-Hello-App-running-1-300x165.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/33-Hello-App-running-1-768x421.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/33-Hello-App-running-1-1536x843.png 1536w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/33-Hello-App-running-1-2048x1123.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Test_mit_Python_und_Ollama\"><\/span><strong>Test mit Python und Ollama<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">pip install ollama<\/pre>\n\n\n\n<p>Dann erstelle die Datei <code>ollama_test.py<\/code> mit diesem Inhalt:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"886\" height=\"280\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/51-ollama_test.py-erstellen.png\" alt=\"\" class=\"wp-image-1340\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/51-ollama_test.py-erstellen.png 886w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/51-ollama_test.py-erstellen-300x95.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/51-ollama_test.py-erstellen-768x243.png 768w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><\/figure>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import ollama\n\nr = ollama.chat(model=\"phi4\", messages=[{\"role\":\"user\",\"content\":\"Sag Hallo\"}])\n\nprint(r[\"message\"][\"content\"])<\/pre>\n\n\n\n<p>F\u00fchre die Datei aus mit<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python ollama_test.py<\/pre>\n\n\n\n<p>Oder innerhalb von VS Code. Zeige dazu ein Terminal an \u00fcber den Men\u00fcpunkt <code>View\/Terminal<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"471\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/52-ollama_test.py-ausfuehren-1024x471.png\" alt=\"\" class=\"wp-image-1342\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/52-ollama_test.py-ausfuehren-1024x471.png 1024w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/52-ollama_test.py-ausfuehren-300x138.png 300w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/52-ollama_test.py-ausfuehren-768x354.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/52-ollama_test.py-ausfuehren-1536x707.png 1536w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/52-ollama_test.py-ausfuehren-2048x943.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Streamlit_Ollama_Beispiel-App\"><\/span><strong>Streamlit + Ollama Beispiel-App<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Erstelle die Datei <code>ollama_app.py <\/code>mit dem folgenden Inhalt:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import streamlit as st\nimport requests\n\nst.title(\"\ud83e\udde0 Lokales LLM mit Ollama\")\n\nprompt = st.text_input(\"Frage eingeben:\")\n\nif st.button(\"Senden\") and prompt.strip():\n    try:\n        with st.spinner(\"Warte auf Antwort...\"):\n            response = requests.post(\n                  \"http:\/\/localhost:11434\/api\/generate\",\n                  json={\n                     \"model\": \"phi4\",\n                     \"prompt\": prompt,\n                     \"stream\": False\n                  },\n                  timeout=600\n            )\n      \n            if response.status_code != 200:\n                  st.error(f\"Fehler: {response.status_code} - {response.text}\")\n            else:\n                  data = response.json()\n                  antwort = data.get(\"response\") or data.get(\"message\") or \"Keine Antwort erhalten.\"\n                  st.success(\"Antwort vom Modell:\")\n                  st.write(antwort)\n    except Exception as e:\n        st.error(f\"Fehler: {e}\")<\/pre>\n\n\n\n<p>Starten:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">streamlit run ollama_app.py<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"951\" height=\"1024\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/61-ollama_app.py-ausfuehren-1-951x1024.png\" alt=\"\" class=\"wp-image-1345\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/61-ollama_app.py-ausfuehren-1-951x1024.png 951w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/61-ollama_app.py-ausfuehren-1-278x300.png 278w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/61-ollama_app.py-ausfuehren-1-768x827.png 768w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/61-ollama_app.py-ausfuehren-1-1426x1536.png 1426w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/61-ollama_app.py-ausfuehren-1.png 1593w\" sizes=\"auto, (max-width: 951px) 100vw, 951px\" \/><\/figure>\n\n\n\n<p>\u2705 Wenn du eine Antwort siehst, funktioniert deine gesamte Umgebung!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Typische_Projektstruktur\"><\/span><strong>Typische Projektstruktur<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"361\" height=\"133\" src=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/project-folder-structure.png\" alt=\"\" class=\"wp-image-1251\" srcset=\"https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/project-folder-structure.png 361w, https:\/\/programmier-workshops.de\/blog\/wp-content\/uploads\/2025\/10\/project-folder-structure-300x111.png 300w\" sizes=\"auto, (max-width: 361px) 100vw, 361px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Naechste_Schritte\"><\/span><strong>N\u00e4chste Schritte<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>1. <strong>Python-Grundlagen<\/strong> im Kurs durcharbeiten<\/p>\n\n\n\n<p>2. <strong>Streamlit-Apps<\/strong> erstellen und ausf\u00fchren<\/p>\n\n\n\n<p>3. <strong>Ollama-Modelle<\/strong> lokal nutzen und prompts testen<\/p>\n\n\n\n<p>\ud83d\udcac Wenn du auf Fehler st\u00f6\u00dft:<\/p>\n\n\n\n<p>Schreibe mir die vollst\u00e4ndige Fehlermeldung + dein Betriebssystem + Python-Version \u2013 ich helfe dir gezielt weiter.<\/p>\n\n\n\n<p>\ud83e\udde1 <strong>Viel Erfolg beim Start in dein KI-Projekt!<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>KI-App Entwicklung mit Python, Ollama &amp; Streamlit In diesem 4-t\u00e4gigen Programmierkurs (mit einem optionalen Zusatztag am Anfang f\u00fcr Python und Streamlit Grundlagen) begleite ich Dich auf Deinem Weg in die Entwicklung eigener KI-Anwendungen. Gemeinsam starten wir mit einem Einf\u00fchrungstag zu Python und Streamlit, sodass Du&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-565","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/pages\/565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/comments?post=565"}],"version-history":[{"count":77,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/pages\/565\/revisions"}],"predecessor-version":[{"id":1355,"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/pages\/565\/revisions\/1355"}],"wp:attachment":[{"href":"https:\/\/programmier-workshops.de\/blog\/wp-json\/wp\/v2\/media?parent=565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}