Compare commits

..
14 Commits
Author SHA1 Message Date
Timba 8eb13a4e15 SHUFTN 0.3.1 2026-09-04 15:12:39 +00:00
Timba a5fa153de3 SHUFTN 0.3.0 2026-09-04 14:38:10 +00:00
Timba 8d90df34e9 SHUFTN 0.2.9 2026-09-04 09:30:24 +00:00
Timba ddeebbb7ca SHUFTN 0.2.8 2026-09-04 09:03:38 +00:00
Timba 158b30b634 SHUFTN 0.2.7 2026-09-04 06:11:10 +00:00
Timba 95b2ac4003 SHUFTN 0.2.7 2026-09-04 06:10:35 +00:00
Timba 77f5190f6f SHUFTN 0.2.6 2026-09-03 10:27:56 +00:00
Timba c39aeacf08 SHUFTN 0.2.5 2026-09-03 09:38:20 +00:00
Timba 3ece873f84 SHUFTN 0.2.4 2026-09-03 08:03:20 +00:00
Timba 76a788124a SHUFTN 0.2.3 2026-09-03 06:34:25 +00:00
Timba a07ed80b37 SHUFTN 0.2.2 2026-09-02 19:44:57 +00:00
Timba 5842ff7d86 SHUFTN 0.2.1 2026-09-02 19:06:06 +00:00
Timba 5a53f8f58f SHUFTN 0.2.1 2026-09-02 18:21:03 +00:00
Timba c17312d23c SHUFTN 0.1.9 2026-09-02 13:02:51 +00:00
+5 -5
View File
@@ -1,11 +1,11 @@
{ {
"version": "0.1.8", "version": "0.3.1",
"notes": "Die Bedeutungssuche kann jetzt Bedeutung. Unter Einstellungen → Assistent lässt sich ein Einbettungsmodell eintragen — derselbe Endpunkt, derselbe Schlüssel, ein anderes Modell. Bisher füllte ein Wort-Streuwert den Vektorindex; der findet Wortüberschneidungen, keine Bedeutung. Was der Aufbau kostet, steht wie jeder andere Modellaufruf in der Verbrauchsliste, unter eigenem Anlass.\n\nZwei Dinge sagt SHUFTN dabei von selbst: wie breit die Vektoren des Modells sind (es fragt den Endpunkt, statt eine Zahl eintippen zu lassen), und wie viele vorhandene Vektoren ein Modellwechsel wegwirft — die sind nicht bloss weg, sie werden neu gerechnet und kosten dabei erneut.\n\nDer Assistent liest die richtige Signatur. Beim Übernehmen eines Kontakts aus einer Antwort kam bisher oft der Kontakt des Vorredners heraus, mit dessen Nummer: Das Abschneiden des Zitats arbeitete zeilenweise, und Mails aus HTML haben keine Zeilenumbrüche. Betroffen war der grösste Teil des Schriftverkehrs. Dasselbe galt für die Erkennung von Du und Sie.\n\nDer Abgleich braucht keine Minute mehr. Er lief 55 bis 69 Sekunden durch, auch wenn es gar nichts Neues gab — im Protokoll stand das als „0 neu, 0 weg\". Die Zeit ging in ein Sicherheitsnetz: SHUFTN suchte bei jedem Lauf nach Nachrichten, denen die Einbettung fehlt, und las dafür zehntausend Zeilen je Postfach mit vollem Inhalt. Gemessen: 47 Sekunden, um nichts zu finden. Das Netz wird jetzt einmal je Programmstart gespannt statt alle fünf Minuten, und es liest nur noch, was es braucht — zwei Sekunden statt siebenundvierzig.\n\nDas Fenster steht nicht mehr sechzehn Sekunden. Beim Start und nach jedem Abgleich hielt SHUFTN an — im Leistungsprotokoll gemessen: dreizehn bis achtzehn Sekunden, immer wieder. Die Ursache war die Liste der Kategorien: Sie wurde aus dem gesamten Nachrichtenbestand zusammengesucht, 187 000 Zeilen für vier Namen, und das auf dem Thread, der das Fenster zeichnet. Die Namen werden jetzt beim Schreiben mitgeführt. Beim ersten Start nach dem Update dauert es einmalig ein paar Sekunden, bis der vorhandene Bestand nachgetragen ist — danach nie wieder.\n\nDie Suche sitzt jetzt als Lupe über der Nachrichtenliste. Sie stand kurz als eigener Punkt in der Leiste links; das war eine Spalte zu weit weg. Gesucht wird in Nachrichten, also steht der Schalter dort, wo die Nachrichten stehen — neben der Sortierung. Ein Klick klappt die Suche auf, ein zweiter wieder zu, und dazwischen bleibt sie stehen, während man liest.", "notes": "Diktieren braucht keinen Endpunkt mehr — Whisper rechnet auf diesem Rechner. Das Modell dazu kommt als eigenes Paket, das man einspielt oder eben nicht.\n\nDiktieren geht jetzt ohne Endpunkt — auf diesem Rechner. Bisher brauchte das Diktat einen Dienst, der `POST /audio/transcriptions` annimmt. Am eigenen Endpunkt gemessen: `GET /v1/ki/models` antwortete 401 (die Route gibt es), `/audio/transcriptions` antwortete 404. Dort lief das Textmodell, aber keine Spracherkennung — und damit ging Diktieren gar nicht, ohne dass jemand am Server etwas nachrüstet.\n\nJetzt rechnet Whisper hier: Die Aufnahme verlässt den Rechner nicht, nicht einmal ins eigene Rechenzentrum. Wer ein Modell eingespielt hat, bekommt diesen Weg; wer keines hat, weiter den Endpunkt. Der Mikrofonknopf sagt im Zeigerfähnchen, welcher gerade gilt.\n\nAn einer gesprochenen Probe nachgemessen (die Sprachausgabe von Windows las einen Satz vor, 4,9 Sekunden):\n\ngeladen in 232 ms erkannt in 453 ms „Bitte senden Sie mir das Angebot für die Halle süd bis Freitag.\"\n\nGesprochen war „… Halle Süd …\" — bis auf die Grosschreibung Wort für Wort.\n\nDas Modell kommt als Plugin. `whisper-base` wiegt 277 MB, der Installer von SHUFTN 272 MB; beides zusammen hiesse ein halbes Gigabyte für jeden, auch für den, der nie diktiert. Es wird deshalb eingespielt wie der Editor — unter *Einstellungen → Erweiterungen*, mit Prüfsummen und der Möglichkeit, es wieder loszuwerden. Ohne Neustart: Ein Modell meldet kein Schema an, der Kern liest seine Dateien beim nächsten Diktat.\n\nDamit gibt es zwei Arten Plugin. Ein Modell nennt weder `schema` noch `einstieg`, und beides wird abgewiesen: Stünde dort ein Schema, lieferte SHUFTN die 277 MB Gewichte als Webseite aus. Was für Paketbauer gilt, steht in `PLUGINS.md` unter „Modelle\".\n\nGerechnet wird in reinem Rust. `whisper.cpp` wäre der verbreitetere Weg und hätte eine C++-Werkzeugkette in den Bau von SHUFTN gebracht — cmake, ein Compiler, plattformabhängige Schalter. Dann liesse sich SHUFTN nicht mehr mit `cargo build` allein übersetzen. Der Preis steht offen: auf der CPU langsamer als handoptimiertes C. Bei einem Diktat von zwanzig Sekunden ist das eine Frage von Sekunden.\n\nDas Umrechnen der Aufnahme (Opus → 16 kHz Mono) macht die Webansicht, nicht der Kern: Sie hat den Dekodierer eingebaut, und ihn in Rust nachzubauen hiesse wieder eine C-Bibliothek. Was der Kern bekommt, ist ein WAV — und was nicht 16 kHz Mono ist, weist er ab, statt es falsch zu deuten. Eine falsch gedeutete Abtastrate klingt für Whisper wie jemand, der zu schnell spricht, und liefert Text, den niemand als falsch erkennt.",
"pub_date": "2026-09-02T12:05:08Z", "pub_date": "2026-09-04T15:12:36Z",
"platforms": { "platforms": {
"windows-x86_64": { "windows-x86_64": {
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRbENEalUzQ3RFRDJDSHkwUHpwM2pqbnA5U2RpWGlreDZuNVpEWVBIdjlOVllaSWZua2cvZW9maWs5ckRGNXFzekxCSzBZblhlbzRmZFp5SDlWRG9WMVZXc05OZkFGL2cwPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg4MzUwNzA3CWZpbGU6U0hVRlROXzAuMS44X3g2NC1zZXR1cC5leGUKV3NYVjZNd092L2RiYWJNNkZadDlTblN0YWdZQ2lweHE0OUJnV0tvaEhqNnhicVNyWlRyMzhwSlc0NXY5OHBJajBibFZjNWRqS1Fvai9GaFB5SXUvQWc9PQo=", "signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVRbENEalUzQ3RFRHhzUjE0VEd6WDJDK3FCazRieExqMzdQWmQ4T1B3SzNzZERDUUlkTGViNGxET1JlYmxVT0s2V3htNW1BYmxrMjZURkhIbVc4a0phNkdFOVEveHI5T0FNPQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNzg4NTM0NzU1CWZpbGU6U0hVRlROXzAuMy4xX3g2NC1zZXR1cC5leGUKaVVaTjRTSGxwc3pyNGRSODdMWWc4bVgxaFRhMWVhVE5CcWRja0hhaGpla0NIRGEwb0Q1aExJUmxkelZZaUQ4RngwK0FVTXJtWDZ6TDBxNDZORDJnQnc9PQo=",
"url": "https://gitea.itm-technologies.de/ITM-GmbH/shuftn-releases/releases/download/v0.1.8/SHUFTN_0.1.8_x64-setup.exe" "url": "https://gitea.itm-technologies.de/ITM-GmbH/shuftn-releases/releases/download/v0.3.1/SHUFTN_0.3.1_x64-setup.exe"
} }
} }
} }