Wiederholte Absätze können die Übersetzung wiederverwenden, aber der Cache-Schlüssel kann nicht nur den Originaltext enthalten.

„Speichern“ sieht in beiden Projekten gleich aus, Übersetzung, Groß-/Kleinschreibung und Kontext können jedoch unterschiedlich sein. Durch die Verwendung des ursprünglichen Text-Hashs als eindeutigen Cache-Schlüssel ist es einfach, Übersetzungen von einem Projekt für ein anderes wiederzuverwenden oder sie sogar mandantenübergreifend zu mischen. Beim Caching geht es nicht nur um die Trefferquote. Bevor eine Wiederverwendung zulässig ist, müssen Sie zunächst festlegen, welche Bedingungen gleich sind.

– Wenn nur der Originaltext-Hash als Cache-Schlüssel verwendet wird, kann die Übersetzung eines Projekts leicht für ein anderes Projekt missbraucht oder sogar mandantenübergreifend gemischt werden.

  • Ein Cache-Treffer bedeutet nicht, dass das Ergebnis lieferbar ist. Der Eintrag muss den Status und die Quellaufgabe aufzeichnen. Der alte Term-Cache sollte nicht als aktuelles Ergebnis betrachtet werden.

– Hashing ist nicht gleichbedeutend mit Verschlüsselung, für zwischengespeicherte Inhalte sind weiterhin Zugriffsberechtigungen und Aufbewahrungsrichtlinien erforderlich, und die Mandanten-ID kann die Berechtigungsprüfung während der Abfrage nicht ersetzen.

  • Normalisierungsregeln sollten klar definiert und mit Gegenbeispielen getestet werden, um eine Zusammenführung nicht identischer Texte zu vermeiden und so die Trefferquote zu verbessern.

Der Schlüssel zum Übersetzungs-Caching besteht darin, zu definieren, welche Bedingungen gleich sind, um eine Wiederverwendung zu ermöglichen. Der gleiche Satz „Speichern"kann in verschiedenen Projekten unterschiedliche Übersetzungen, Groß- und Kleinschreibung und Kontext haben. Wenn ausschließlich Quelltext-Hashes als Cache-Schlüssel verwendet werden, können Übersetzungen aus einem Projekt für ein anderes Projekt missbraucht oder sogar mandantenübergreifend gemischt werden.

Dieser Artikel richtet sich an Entwickler und Dokumentationsteams, die Übersetzungs-Caches entwerfen müssen. Nachdem Sie dies gelesen haben, wissen Sie, welche Bedingungen ein Cache-Schlüssel enthalten sollte, wie Sie strukturierte Serialisierung verwenden, um Mehrdeutigkeiten beim Spleißen zu vermeiden, und was Sie nach einem Cache-Treffer noch überprüfen müssen.

Wie entwerfe ich den Übersetzungs-Cache-Schlüssel? Fazit in einem Satz

Der Cache-Schlüssel sollte eine Übersetzungsentscheidung darstellen und die Wiederverwendung vorhandener Ergebnisse ist nur zulässig, wenn Ausgangssprache, Zielsprache, Terminologieversion, Richtlinienversion und Verwendungsumfang identisch sind.

Ihre SituationEmpfohlene PraktikenGrund
Derselbe Satz kann in verschiedenen Projekten unterschiedlich übersetzt werdenBeziehen Sie den Nutzungsbereich in den Cache-Schlüssel einVermeiden Sie die Wiederverwendung von Übersetzungen von einem Projekt zum anderen
Mehrere Mandanten teilen sich denselben CacheDie Mandanten-ID gibt den Schlüssel ein und führt während der Abfrage eine Berechtigungsprüfung durchDie Mandanten-ID kann die Benennung nur isolieren und die Berechtigungsprüfung nicht ersetzen
Das Glossar wurde überarbeitetBei unterschiedlichen Termversionen werden neue Schlüssel generiertDie Terminologieentscheidung hat sich geändert, der alte Cache wird nur noch für rückwirkende Zwecke verwendet
Ergebnisse müssen stabil reproduziert werdenSpeichern Sie Ihre eigene Strategieversion und aktuelle AufgabeninformationenDer gleiche Modellname bedeutet nicht, dass sich das Serververhalten nie ändern wird.
Klicken Sie auf den vorhandenen CacheÜberprüfen Sie Status, Quellaufgaben und QualitätszeichenDer Tastendruck bedeutet nicht, dass das Ergebnis direkt geliefert werden kann

Der Cache-Schlüssel sollte eine Übersetzungsentscheidung darstellen

Zumindest die folgenden Bedingungen sollten berücksichtigt werden:

  • Ausgangssprache und Zielsprache
  • Termversion
  • Modell- oder Übersetzungsstrategieversion
  • Nutzungsumfang

Wenn der Kontext die Übersetzung beeinflusst, sollte die Kontextkennung auch im Cache-Schlüssel enthalten sein.

Der gleiche Modellname garantiert nicht, dass sich der Server nie ändert. Wenn Sie reproduzierbare Ergebnisse benötigen, sollten Sie Ihre eigene Version der Strategie mit tatsächlichen Aufgabeninformationen speichern, anstatt davon auszugehen, dass ein einziger Modellname das gesamte Verhalten festlegt.

Unten finden Sie ein synthetisches Beispiel für einen lokalen Cache-Schlüssel. Es ruft keine Übersetzungsschnittstelle auf und gibt auch nicht die interne Cache-Implementierung von OmniDoc (Produktportal) an.

Die Beispiele verwenden synthetische Beispiele, um Verarbeitungsmethoden zu demonstrieren, und der Code wurde in einer isolierten Umgebung überprüft. Dies stellt jedoch keine Garantie für alle echten Dateien oder Produkteffekte dar. Bevor Sie wichtige Dokumente bearbeiten, bewahren Sie bitte die Originale auf und überprüfen Sie sie anhand der unten aufgeführten Grenzen und Annahmepunkte.

Verwenden Sie eine strukturierte Serialisierung, um Mehrdeutigkeiten beim Zusammenfügen zu vermeiden

import hashlib
import json

def cache_key(tenant, text, source_lang, target_lang, glossary, policy):
    record = {"tenant": tenant, "text": text, "source": source_lang,
              "target": target_lang, "glossary": glossary, "policy": policy}
    raw = json.dumps(record, ensure_ascii=False, sort_keys=True,
                     separators=(",", ":")).encode("utf-8")
    return hashlib.sha256(raw).hexdigest()

args = ("demo-a", "保存", "zh", "en", "terms-v1", "ui-v1")
first = cache_key(*args)
assert first == cache_key(*args)
assert first != cache_key("demo-b", *args[1:])
assert first != cache_key("demo-a", "保存", "zh", "ja", "terms-v1", "ui-v1")
assert first != cache_key("demo-a", "保存", "zh", "en", "terms-v2", "ui-v1")
assert len(first) == 64

Wenn text + language + version einfach zum Spleißen verwendet wird, sind die Feldgrenzen unklar und es kann leicht zu Mehrdeutigkeiten kommen. Die strukturierte Serialisierung verdeutlicht Feldnamen und Wertgrenzen. Nachdem die Schlüsselreihenfolge und das Trennzeichen festgelegt wurden, erhält derselbe Datensatz stabile Bytes.

Dieser Protokollsatz ist festgelegt. Wenn Serialisierungsregeln in Zukunft geändert werden, sollte gleichzeitig der Cache-Namespace aktualisiert werden.

Überprüfen Sie nach dem Klicken immer noch den verfügbaren Status

Cache-Einträge können von fehlgeschlagenen, abgebrochenen oder nicht überprüften Aufgaben stammen und das Drücken der Taste bedeutet nicht, dass die Ergebnisse direkt geliefert werden können.

Jeder Cache-Eintrag sollte außerdem die folgenden Informationen aufzeichnen:

  • Status
  • Schöpfungszeit
  • Quellaufgaben
  • Gütezeichen bei Bedarf

Nach der Überarbeitung der Terminologie kann der alte Cache für rückwirkende Zwecke beibehalten werden, sollte jedoch nicht weiterhin als aktuelles Ergebnis von der neuen Richtlinie verwendet werden.

ändernErzeugt dieses Beispiel unterschiedliche Schlüssel?Grund
Verschiedene MieterJaVermeiden Sie Verwirrung beim Wiederverwendungsbereich
Verschiedene ZielsprachenJaDas Übersetzungsziel hat sich geändert
Die Versionen der Terminologie sind unterschiedlichJaTerminologieentscheidungen haben sich geändert
Inputs und Strategien sind gleichNEINAbfrage vorhandener Ergebnisse zulassen

Hashing ist nicht gleichbedeutend mit Verschlüsselung oder Zugriffskontrolle

Nur weil der Cache-Schlüssel SHA-256 ist, heißt das nicht, dass der Text desensibilisiert wurde. Gängige Ausdrücke können aufgezählt werden, und für zwischengespeicherte Inhalte sind weiterhin Zugriffsberechtigungen und Aufbewahrungsrichtlinien erforderlich.

Der Mandanten-ID-Eingabeschlüssel kann nur zur Isolierung der Benennung verwendet werden und kann die Berechtigungsprüfung bei der Abfrage nicht ersetzen.

Das einheitliche Entfernen von Leerzeichen, Satzzeichen oder Zahlen zur Verbesserung der Trefferquote kann dazu führen, dass nicht identische Texte zusammengeführt werden. Normalisierungsregeln sollten klar definiert und mit Gegenbeispielen getestet werden, die die Semantik ändern und nicht nur die Anzahl der gespeicherten Aufrufe.

Informationen zur entsprechenden Implementierung finden Sie unter Python hashlib.

Lassen Sie die Wiederverwendung zur Lieferung dienen

Wenn OmniDoc als Dokumentenübersetzungsportal verwendet wird, kann die äußere Aufgabenorchestrierung auch Eingabeversionen und Abnahmeprotokolle behalten.

Ob vorhandene Ergebnisse wiederverwendet werden sollen, sollte in Ihrer Aufgabenvereinbarung festgelegt werden. Dieser Artikel lässt weder darauf schließen, ob die Plattform dieselbe Caching-Strategie verwendet, noch garantiert er, dass für wiederholte Übermittlungen keine neuen Aufgaben oder Gebühren anfallen.

📊 Kernvergleich

übenHauptrisiken oder VorteileAnregung
Einfaches Spleißen text + language + versionFeldgrenzen sind unklar und anfällig für MehrdeutigkeitenVerwenden Sie stattdessen die strukturierte Serialisierung
Strukturierte SerialisierungDie Grenzen zwischen Feldnamen und Werten sind klar und die Ausgabe ist stabil, nachdem die Schlüsselreihenfolge und das Trennzeichen festgelegt wurden.Aktualisieren Sie den Cache-Namespace synchron, wenn Sie Regeln ändern
Verwenden Sie als Schlüssel nur Quelltext-HashesKann fälschlicherweise projekt- und mandantenübergreifend wiederverwendet werdenIntegrieren Sie Sprache, Terminologie, Strategien und Verwendung
Entfernen Sie Leerzeichen, Satzzeichen oder Zahlen einheitlich, um die Trefferquote zu verbessernMöglichkeit, semantisch unterschiedliche Texte zusammenzuführenDefinieren Sie Regeln explizit und testen Sie sie anhand von Gegenbeispielen

🎯 Welche Methode ist für Dich geeignet?

wenn du……

– Übersetzungen müssen über mehrere Projekte hinweg wiederverwendet werden: Fügen Sie den Verwendungsbereich in den Cache-Schlüssel ein.

  • Für mehrere Mandanten: Geben Sie die Mandanten-ID in den Schlüssel ein und führen Sie bei der Abfrage eine Berechtigungsprüfung durch.
  • Möchten Sie die Ergebnisse später nachverfolgen oder reproduzieren können: Speichern Sie die Richtlinienversion und die tatsächlichen Aufgabeninformationen.
  • Wenn Sie die Trefferquote verbessern möchten: Definieren Sie zunächst die Normalisierungsregeln und testen Sie diese mit Gegenbeispielen, die die Semantik ändern.
  • Greifen Sie auf den vorhandenen Cache zu: Überprüfen Sie zunächst den Status, die Erstellungszeit und die Quellaufgabe.

❓ Häufig gestellte Fragen (FAQ)

1. Ist es in Ordnung, nur Quelltext-Hashing für Cache-Schlüssel zu verwenden?

nicht genug. Derselbe Satz kann in verschiedenen Projekten unterschiedliche Übersetzungen, Großschreibungen oder Kontexte haben. Wenn Sie nur Hashing verwenden, kann die Übersetzung fälschlicherweise in anderen Projekten wiederverwendet oder sogar mandantenübergreifend gemischt werden.

2. Kann der Cache-Inhalt veröffentlicht werden, wenn der Cache-Schlüssel SHA-256 verwendet?

Kippen. Hashing ist nicht gleichbedeutend mit Verschlüsselung oder Desensibilisierung, gängige Phrasen können aufgezählt werden und für zwischengespeicherte Inhalte sind weiterhin Zugriffsberechtigungen und Aufbewahrungsrichtlinien erforderlich.

3. Sind die Ergebnisse gleich, wenn die Modellnamen gleich sind?

Nicht garantiert. Nur weil die Modellnamen gleich sind, heißt das nicht, dass sich der Server nie ändern wird. Wenn eine stabile Reproduktion erforderlich ist, sollten die Richtlinienversion und die tatsächlichen Aufgabeninformationen gespeichert werden.

4. Sollte nach der Überarbeitung der Terminologie der alte Cache sofort gelöscht werden?

unsicher. Der alte Cache kann für rückwirkende Zwecke beibehalten werden, sollte aber nicht weiterhin als aktuelle Ergebnisse von neuen Richtlinien verwendet werden.

📝 Zusammenfassung

Die Trefferquote des Übersetzungscache ist wichtig, es muss jedoch zunächst definiert werden, welche Bedingungen gleich sind, bevor eine Wiederverwendung zulässig ist. Durch die Integration von Sprache, Terminologie, Richtlinien, Nutzungsumfang und Kontext in Cache-Schlüssel sowie Berechtigungsprüfungen und Statusüberprüfungen kann die Wiederverwendung effizient und zuverlässig erfolgen.

Probieren Sie es jetzt aus: Laden Sie das Dokument hoch, um mit der Übersetzung zu beginnen, und behalten Sie dabei das ursprüngliche Layout bei

Aktualisiert am 2026-11-14