Deep Seek = Deep Fake-AI = Deep AI-Dumbness by Deep Censorship




Ob und zu rutscht ihm etwas aus (wenn die Zensurbeamten langsamer als die Computer und Netz sind)

Techniker und Softwareentwickler aus Leidenschaft
Meine Welt der Technik: Einblicke, Anleitungen und Erfahrungswerte
Deep Seek = Deep Fake-AI = Deep AI-Dumbness by Deep Censorship
„Seit jeher verkaufen Geschäftsleute das, von dem Techniker schon immer geträumt haben.“
Anonym
Letztes Jahr, noch weit vor der Weihnachtszeit, bevor der Weihnachtsstress überhaupt erwähnt wurde, schickte mir mein Bruder einen Link zu einem „Kaffeevollautomaten mit künstlicher Intelligenz„.
„Ein Kaffeeautomat mit KI? Wozu?“ fragte ich mich, und ich begann gleichzeitig neugierig und aufmerksam, die Texte zu dieser überteuerten Kaffeemaschine zu lesen. Die Webseite eines Online-Shops pries den Hersteller für seine angeblichen Innovationen in der KI-Technologie und den neuen Schritten in der Digitalisierung… und da dachte ich nur „OMG! Wieder einmal hat die Marketingabteilung oder ein einfallsloser Manager zu Marketing-Gimmicks gegriffen und Schlangenöl als Neuheit verkauft…„
Ich war verärgert! Wie kann man nur seine Kunden für dumm verkaufen und sie derart belügen?
Statt mich nur zu ärgern, lenkte ich meinen Ärger um und entwickelte schnell eine einfache Webseite, die eine solche „KI-Kaffeemaschine“ simuliert. Dazu fügte ich eine Konsole mit kurzen Erläuterungen hinzu, was gemacht wird und warum – damit auch diejenigen, die nicht aus der IT-Welt stammen, es verstehen können.
Ich bin gespannt, wann die Taschenlampe mit Big Data, Blockchain, NFT und KI, die von einem Kernfusionsreaktor angetrieben wird, anstelle von Batterien/Akkus, angepriesen wird.
Wer wissen möchte, um welchen Hersteller es sich handelt, kann im Web nach „Kaffeemaschine mit künstlicher Intelligenz“ suchen. Im Simulator befindet sich auch ein Hinweis.
Wie drei Zeilen eines gewöhnlichen Algorithmus die Illusion von künstlicher Intelligenz bei überteuerten Geräten zerstören:
1. Zuerst werden zum Beispiel 6 verschiedene Kaffeesorten festgelegt. Für jede dieser Kaffeesorten wird ein Zähler für die jeweiligen 6 Tasten festgelegt. Es ist auch möglich, mehr Tasten und/oder Kaffeesorten festzulegen:
const coffeeList = [ { id: 0, name: "Americano", count: 0 }, { id: 1, name: "Mocca", count: 0 }, { id: 2, name: "Cappuccino", count: 0 }, { id: 3, name: "Latte", count: 0 }, { id: 4, name: "Türkisch", count: 0 }, { id: 5, name: "Frappé", count: 0 } ];
2. Danach wird für jede Kaffeesorte ein Knopf erstellt, der auch als Button oder Schaltfläche bezeichnet wird. Dem Mausklick-Mechanismus dieses Knopfes wird eine Methode zugewiesen, die den Zähler, auch als Counter bezeichnet, um eins erhöht und diesen Wert dann wieder in die Zähler-Variablen schreibt. Anschließend wird die Methode aufgerufen, die die angezeigten Knöpfe aktualisiert, um die Ansicht zu erneuern:
function increment(id) { // Finde das Kaffee-Objekt durch die ID (welche von der Taste geliefert wurde): const coffee = coffeeList.find((x) => x.id == id); // Zähler für den Kaffee/Button inkrementieren: coffee.count++; // Inkrementieren des Zählers und das Auffrischen der Anzeige: updateView(coffee); }
3. In der Methode „updateView(coffee)“ wird eine weitere Methode aufgerufen, um zu überprüfen, ob eine Aktualisierung der Anzeige (der Knöpfe/Schaltflächen) erforderlich ist oder nicht. Diese Aktualisierung erfolgt nur dann, wenn sie notwendig ist.
function hasToUpdateView() { for (i = 0; i < 6; i++) { if (i < 5) if (coffeeList[i].count < coffeeList[i + 1].count) { return true; } } // Nein! Keine Änderung ==> Auffrischen nicht notwendig. return false; }
4. Anschließend wird in der Methode „updateView(coffee)“ fortgefahren. Wenn die Antwort der Methode „hasToUpdateView()“ positiv ist, das bedeutet, wenn sie „true“ zurückgibt, dann werden die Knöpfe so lange nach links verschoben, bis der Wert des linken Knopfes höher oder gleich ist wie der Wert des ausgewählten Knopfes.
function updateView(coffee) { const btn = document.getElementById("btn" + coffee.id).innerText = coffee.name + "\n" + coffee.count + "x"; if (hasToUpdateView()) { sortByCount(); createButtons(); } }
Der vollständige Code hier nochmal zusammenhängend:
/******************************************************* * J̳ava U̳nique R̳uthless A̳utomat 0.8.15 * * Kaffevollautomat mit Künstlicher Intelligenz * * Copyright (C)2024 by Pedram GANJEH-HADIDI * *******************************************************/ var shell = "***************************************\n* J̳ava U̳nique R̳uthless A̳utomat 0.8.15 *\n***************************************\n"; const ruler = "---------------------------------------"; var clickCounter = 0; const coffeeList = [ { id: 0, name: "Americano", count: 0 }, { id: 1, name: "Mocca", count: 0 }, { id: 2, name: "Cappuccino", count: 0 }, { id: 3, name: "Latte", count: 0 }, { id: 4, name: "Türkisch", count: 0 }, { id: 5, name: "Frappé", count: 0 } ]; window.addEventListener('load', function () { const textArea = document.getElementById("txaShell"); textArea.innerHTML = shell; createButtons(); const w = window.screen.availWidth; const h = window.screen.availHeight; const e = document.getElementById("txaShell"); e.setAttribute("width", w); e.setAttribute("height", h / 2); }); window.addEventListener('resize', function () { createButtons(); }); function increment(id) { const coffee = coffeeList.find((x) => x.id == id); writeLog(`${++clickCounter}. T͟a͟s͟t͟e͟n͟d͟r͟u͟c͟k͟: Sie habe die Taste für\n${coffee.name} Kaffee geklickt. Nun wird die Anzahl dieser Taste hochgezählt!\n⟹ ${coffee.count} + 1 = ${++coffee.count}`); updateView(coffee); } function updateView(coffee) { const btn = document.getElementById("btn" + coffee.id).innerText = coffee.name + "\n" + coffee.count + "x"; if (hasToUpdateView()) { sortByCount(); createButtons(); } } function writeLog(str) { shell += str + "\n"; const textArea = document.getElementById("txaShell"); textArea.innerHTML = shell; textArea.scrollTop = textArea.scrollHeight; } function writeLine() { writeLog(ruler); } function hasToUpdateView() { for (i = 0; i < 6; i++) { if (i < 5) if (coffeeList[i].count < coffeeList[i + 1].count) { writeLog(`V͟e͟r͟g͟l͟e͟i͟c͟h͟e: ${coffeeList[i].name}: ${coffeeList[i].count} ≧ ${coffeeList[i + 1].name}: ${coffeeList[i + 1].count} ❌\nDa Links nicht größer oder gleich Rechts ist\n⟹ Tasten neu ordnen!`); writeLog(`T͟a͟s͟t͟e͟n͟p͟o͟s͟i͟t͟i͟o͟n͟e͟n͟ a͟k͟t͟u͟a͟l͟i͟s͟i͟e͟r͟e͟n͟: Die Taste\nfür ${coffeeList[i + 1].name} so oft wie notwendig nach Links verschieben...`); writeLine(); return true; } } writeLog("V͟e͟r͟g͟l͟e͟i͟c͟h͟e: Die Anzahl der Tastendrücke Links ist überall größer oder gleich der Taste Rechts davon ⭐\n⟹ Keine Änderung notwendig."); writeLine(); return false; } function sortByCount() { coffeeList.sort((a, b) => (a.count < b.count) ? 1 : -1); } function createButtons() { document.getElementById("coffeeButtons").innerHTML = addButtons(); } function addButtons() { let str = "<table><tr>"; for (i = 0; i < 3; i++) str += getButtonText(coffeeList[i]); str += "</tr>\n<tr>"; for (i = 3; i < 6; i++) str += getButtonText(coffeeList[i]); return str + "</tr></table>"; } function getButtonText(coffee) { return '<td><button id="btn' + coffee.id + '" type="button" class="coffeeButton" onclick="increment(' + coffee.id + ')" title="Klick here für ein Kaffee aus "">' + coffee.name + "<br>" + coffee.count + "x</button></td>"; }