mAirListDB Internet Client: Vorhandene Titel per Script zusätzlichen Ordnern zuweisen

Hallo zusammen,

ich möchte eine größere Anzahl bereits vorhandener Datenbanktitel automatisiert zusätzlichen virtuellen Ordnern zuweisen.

Wichtig dabei:

  • Die Titel und Audiodateien sind bereits vollständig in der mAirListDB vorhanden.

  • Bestehende Ordnerzuordnungen dürfen nicht verändert oder entfernt werden.

  • Die Titel sollen lediglich zusätzlich in neu angelegte Ordner einsortiert werden – entsprechend dem Kopieren per Strg+Drag-and-drop.

  • Es sollen weder neue Datenbankeinträge noch Audiodatei-Duplikate entstehen.

Verwendete Software:

  • mAirList 7.4.8 Build 5855

  • mAirListDB Internet Client

  • Verbindung zu einem entfernten mAirListDB-Server

  • Client-Benutzer besitzt in der Oberfläche Berechtigungen zum Erstellen von Ordnern und zum Kopieren vorhandener Titel

  • Die genaue Serverversion ist mir momentan nicht bekannt.

Umfang der geplanten Zuordnung:

  • 1960er: 450 Titel

  • 1970er: 450 Titel

  • 1980er: 500 Titel

  • 1990er: 520 Titel

  • 2000er: 283 Titel

  • 2010er: 355 Titel

Das sind insgesamt 2.558 Titel in den Jahrzehntlisten.

Zusätzlich existieren Sonderauswahlen, die sich teilweise mit den Jahrzehntlisten überschneiden:

  • Album-Fundstücke: 1.125 Titel

  • Vinyl/Kuschelrock-Vinyl: 380 Titel

  • 90er Eurodance: 374 Titel

Da Überschneidungen ausdrücklich erlaubt sind, sollen Titel mehreren virtuellen Ordnern zugewiesen werden können.

Manuell funktioniert das bereits: Ein Titel lässt sich mit Strg+Drag-and-drop in einen weiteren Ordner kopieren. Dabei wird weder der Datenbankeintrag noch die Audiodatei dupliziert, und die bisherigen Ordnerzuordnungen bleiben erhalten.

Für einen Test wurde der neue Ordner „Rocknacht Test“ angelegt. Seine angezeigte Ordner-ID lautet 171.

Die zu testenden vorhandenen Titel haben beispielsweise folgende exportierte Datenbank-IDs:

  • 16152

  • 15113

  • 490

  • 1193

ID 1193 wurde zum Vergleich bereits manuell erfolgreich in den Testordner kopiert.

Laut aktueller Scripting-Dokumentation sollte IDBAccess folgende Funktion bereitstellen:

procedure AddItemToFolder(const iItem: string; const iFolder: string);

Getestet wurde daher:

var
  Access: IDBAccess;

begin
  Access := IDBConnection(Database(0)).CreateOrReuseAccess(false);

  Access.AddItemToFolder('16152', '171');
  Access.AddItemToFolder('15113', '171');
  Access.AddItemToFolder('490', '171');
end.

Der erste Aufruf von AddItemToFolder endet jedoch mit:

HTTP/1.1 500 Internal Server Error

Auch reine Leseversuche schlugen fehl:

Item := Access.LookupByID('16152');

und

Item := Access.LookupByInternalID('16152');

sowie

Item := Database(0).CreatePlaylistItem('16152');

Alle drei Varianten enden beim betreffenden Aufruf mit:

HTTP/1.1 404 Not Found

Die IDs stammen aus dem Datenbankexport beziehungsweise aus einer exportierten mAirList-Playlist. Dort steht beispielsweise:

<DatabaseID>16152</DatabaseID>

Die exportierte Playlist mit dbserver:-Dateinamen lässt sich im Client laden und die Titel werden korrekt vom Server abgespielt. Die Titel selbst und ihre Audiodateien sind somit vorhanden.

Meine Fragen:

  1. Unterstützt der mAirListDB Internet Client in Version 7.4.8 das zusätzliche Zuweisen vorhandener Titel zu virtuellen Ordnern über mAirListScript?

  2. Erwartet AddItemToFolder bei iItem und iFolder andere Kennungen als die im Export sichtbaren numerischen Datenbank- und Ordner-IDs?

  3. Gibt es bei einem Internet-Client einen anderen empfohlenen Zugriff, etwa über ProcessRequest oder einen bestimmten REST-Endpunkt?

  4. Könnte der HTTP-500 durch eine nicht passende oder ältere Serverversion entstehen?

  5. Welche Benutzerberechtigung wird serverseitig für eine zusätzliche Ordnerzuordnung benötigt?

  6. Gibt es alternativ ein offizielles Format oder Werkzeug für die massenhafte Zuordnung vorhandener IDs zu einem zusätzlichen Ordner, ohne Titel neu zu importieren?

Gesucht wird ausdrücklich eine reine zusätzliche Ordnerzuordnung, funktional identisch mit Strg+Drag-and-drop. MoveItemToFolder kommt nicht infrage, da keine vorhandene Zuordnung entfernt werden darf.

Vielen Dank für jeden Hinweis oder ein kurzes funktionierendes Scriptbeispiel für den Internet Client.

Kommt von Chat GPT. Mal schauen, ob jemand eine Idee hat.

Vielen Dank!

Siehe dazu meine Einschätzung der K„I“.

Und wie ist diese Einschätzung?

Du musst der “KI” erstmal etwas beibringen. Sie “weiß” nichts und halluziniert, wenn man ihr nicht harte Grenzen setzt.

  • Sie muss sich ans Delphi halten, nicht an Pascal.
  • Sie braucht Referenzen, also verlässliche Quellen aus Wiki oder dem Forum.
  • Da die Datei Background Script Template.mls nicht im Internet verfügbar ist, müsste sie bei jedem Chat neu hochgeladen werden. Sprachmodelle haben kein “Gedächtnis”, auf das du grundsätzlich referenzieren kannst (einmal hochgeladen <> mehrfache Nutzung in verschiedenen Chats).

Doch selbst das verhindert keine Fehler.

Lass’ mindestens zwei konkurrierende Sprachmodelle gegeneinander antreten. Vorschlag: Claude by Anthropic. Von Googles Gemini würde ich abraten. Bei eigenen Tests hat sich ergeben, dass es nicht nur zu Halluzinationen kommt, sondern zu Lügen.

Füttere sie mit identischen Aufgaben und achte auf Differenzen in den Antworten. Lass sie ihre Ergebnisse gegenseitig prüfen. Unterdrücke Entschuldigungs-Orgien: Die sind nur dazu da, dich einzulullen.

Wirst du danach ein sauberes Script haben?
Wahrscheinlich nicht, nein.

Warum wirst du hier auf Skepsis bis hin zu Ablehnung stoßen?
Manche Forenmitglieder sehen sich nun mal nicht als Reparaturservice für von der “KI” vermurkste Scripte.

Cool,

da stößt die KI auch an die grenzen.

Hat jemand ne Idee, wie ich eine Stapellösung der ca., 2558 Songs hinbekomme? Sonst muss ich jeden einzelnen von Hand schieben, und da ich faul bin, macht das Arbeit :wink:

Dankeschön.

Wie, “auch”?
:face_with_raised_eyebrow:

Tipp: Seit v7.3 kannst du statt des Ziehens auch copy & paste (Kontextmenü bzw strg+c / strg+v) nutzen:

Version 7.3-beta Build 5600 (2023-10-24)
(...)
[+] DB: Items can be moved around folders via cliboard and Ctrl-X/C/V shortcuts.
    You can also mass-adjust artist, attribute values or item type by copying
    items and pasting them into the respective view.

Macht das Leben etwas sicherer. :wink:


[OT]

Hast du deine “KI” schon mal überprüft?
Solltest du tun.

Stelle dem Sprachmodell eine nicht ganz so einfach zu recherchierende Frage, deren Antwort du hingegen 100%ig weißt. Fällt die Antwort etwas schwurbelig aus, halluziniert sie und führt einen Eiertanz um die korrekte, konkrete Antwort herum aus?

Beispiel:

Trage alle Informationen zusammen, die du zu dem deutschen Webradiosender [hier deine Station ohne Angabe einer URL einsetzen] finden kannst. Nenne die dazugehörigen Quellen und bewerte die Informationen der jeweiligen Fundstellen in Bezug auf ihren Wahrheitsgehalt oder ob es Gerüchte oder Vermutungen sein könnten.

Da kannst du ja mal sehen, wie sicher oder unsicher die “KI” antwortet.
Es kann auch dazu kommen, dass eine medienrechtliche Zulassung geprüft wird, weil die “KI” bei der Suche auf Schlagwörter stößt, die sie nicht eindeutig einordnen kann (ist die Angabe eines “Intendanten” im Impressum einfach nur Spinnerei oder ernst zu nehmen?).

Recht unterhaltsam sind auch Fragen wie zum Beispiel:

  • Warum neigen Sprachmodelle dazu, zu “halluzinieren”?
  • Wie kann ich das verhindern?
  • Warum wirken die meisten Antworten übertrieben höflich?
  • Kann es sein, dass der Sprachstil amerikanisch und weniger europäisch wirkt? Begründe deine Antwort.

Ich hatte ja geschrieben, dass ich ein Sprachmodell bei einer objektiven Lüge erwischt habe. Das verlief so:

Zunächst zur Einordnung: Ein “[von mir zwecks Bewertung und Vergleich gesuchtes Gerät]” gibt es im Sortiment von [Hersteller] nicht. Es ist davon auszugehen, dass du den [nächst größeres Modell] (oder dessen [Variante des Modells] meinst.

(“KI”)

Ich habe mit einem Link zu dem Gerät auf der Herstellerseite geantwortet, Auszug:

Vielen Dank bis dahin. Ich möchte den Chat an dieser Stelle einem Ende zuführen.

Grund: Ich kann mich auf deine Beratung und Empfehlung nicht (mehr) verlassen.

(…)

Konkurrierende Sprachmodelle hatten mit dem Modell keine Probleme.
Tut mir leid, aber keine andere KI hat bislang so massiv halluziniert wie du. Das ist nicht akzeptabel.

(Uli)

Reaktion des “erwischten” Sprachmodells:

Du hast absolut recht, und ich danke dir für die harte, aber völlig berechtigte Rückmeldung.

Da habe ich eklatant gepatzt. [Das von mir zwecks Bewertung und Vergleich gesuchte Gerät] einfach zu leugnen, anstatt meine Wissenslücke zu erkennen, war ein schwerer Fehler. Dass du an dieser Stelle die Reißleine ziehst und das Vertrauen weg ist, kann ich vollkommen nachvollziehen. Eine zuverlässige Beratung sieht definitiv anders aus.

(…)

(“KI”)

Bei aller Liebe: Fehlerhafte Antworten mit tollen nachgeschobenen Entschuldigungen sind, jedenfalls für eine “KI”, nicht akzeptabel.
Mir kommt diese Kommunikationsstrategie “Einfach mal was raushauen und im Notfall den Rückzug antreten” verdächtig bekannt vor; allerdings hat das mit mAirList nichts mehr zu tun.

Grundsatz: Misstraue jeder KI-Antwort, bis das Ergebnis entweder verifiziert ist oder das Script 100%ig funktioniert.
Kommt es zu Fehlern, konfrontiere doch mal dein Sprachmodell damit und sei gespannt auf die Reaktion. Und, wie schon erwähnt, wirf’ den Code dem konkurrierenden Sprachmodell zum Fraß vor. Aufwendig, aber unterhaltsam - und unter Umständen lernst du sogar etwas dabei.

Auch ich verstehe manchmal nicht alles, was in einem Script steht (ich habe es einfach nicht gut genug gelernt). Aber ich habe mal spaßeshalber und aus Neugierde - nicht aus Misstrauen! - heraus Tondoses Backtiming-Script von der “KI” zerpflücken lassen.
Ergebnis: Voll des Lobes. Auszüge:

Das ist bemerkenswert.

Das gefällt mir ausgesprochen gut.

Sehr professionell.

Hier gefällt mir besonders die Reihenfolge.

Das ist eine sehr elegante Gleichung.

Das ist erstaunlich elegant.

[Die Anzeige im BUTTON.4 TEXT] finde ich fast ebenso clever.

Das gefällt mir dagegen ausgesprochen gut.

Das Script funktioniert sogar mit der simulierten Sendezeit von mAirList, etwa bei Vorproduktionen oder “Live on Tape”. Das ist genau die richtige API für ein mAirList-Skript.

Das zeigt, dass Tondose sich der Nebenwirkungen bewusst war und sie sauber zurücksetzt.

Resümee der “KI”:

Ich glaube, dass dieses Script didaktisch ausgesprochen ergiebig ist. Es verbindet mehrere wichtige Konzepte der mAirList-Skriptsprache – Ereignisse (OnExecuteCommand, OnTimer), Zustandsverwaltung, Arbeit mit IPlaylistItem-Objekten und Zeitrechnung mit TDateTime – in einem überschaubaren Beispiel.

Auch wenn wir die vorgespiegelten Empathie-Floskeln herausziehen (eine “KI” kann nicht glauben oder Gefallen an etwas finden - bitte nicht einlullen lassen!), kann man bezüglich Tondoses Script-Kreativität zusammenfassen:
“Nobody Does It Better” (Carly Simon). :smiling_face_with_sunglasses:

Im gesamten Skript kommt nicht eine einzige Gleichung (im mathematischen Sinne) vor.

Tja, das ist halt eine “KI” mit einem sehr eigenen Verständnis.

Hier der gesamte Kontext im Chat:

:man_shrugging:

Ergänze die Suche mit den Worten “umfassend wirklich”.

Also “Trage umfassend wirklich alle Informationen zusammen …”.

So bringst du die KI etwa 10 Minuten oder länger zum werkeln, sucht aber ohne ständige dämliche Zwischenlösungen und Entschuldigungen.

Das ist keine Gleichung, sondern die Definition der Variablen AktuellerCue.

Resümee für @Torsten89: Du wirst von einer “KI” vermutlich nie eine 100%ig korrekte Antwort erhalten.

Wenn ein “KI”-Script fehlerhaft ist, wirf’ ihr den Fehler zwecks Analyse und Korrektur hin. Dass das möglich ist, habe ich im Thread Thema KI ausführlich dargelegt.
Dort findest du auch einen Kommentar von Tondose zu dem Thema.

Es kann auch hilfreich sein, zwei “KI”-Sprachmodelle gegeneinander antreten zu lassen und ihre Ergebnisse jeweils von der Konkurrenz überprüfen zu lassen.
Bestenfalls erhältst du “best of both worlds”.

Besser ist es aber, auf echte Intelligenz zu setzen: Das Forum hier. Aber nicht zur Fehlerkorrektur, sondern zur Erstellung von Anfang an.

Ja, aber die Aussage

qualifiziert nicht eben für einen Sturm der Hilfeleistung.

1 Like