Ich habe keine Ahnung warum, und es passiert nicht in allen Beiträgen, aber es ist in einem bestimmten Beitrag reproduzierbar, wo der Inhalt jedes Mal dupliziert wird, wenn ich Korrektur lese.
Hmmm, ich kann es in dem von Ihnen verlinkten Beitrag reproduzieren, konnte es aber bisher nirgendwo anders finden. Sehr seltsam
![]()
Ich habe es sogar damit versucht
aber das andere, das ich mit anderem Antworttext reproduzieren konnte und sogar mit dem Datumsfeld außerhalb des Zitats. Mir ist aufgefallen, dass es versuchte, das Zitat zu korrigieren, wenn im Antworttext kein Tippfehler war.
Das ist so seltsam. ![]()
Wenn Sie keinen Text auswählen, gibt es etwas im Zitat zu beheben, und Sie sind ein Nicht-Mitarbeiter-Benutzer, dann dupliziert es sich. ![]()
Wenn der Zitatinhalt in Ordnung aussieht, dupliziert er sich nicht:
Dies ist ein Fehler, der durch Qwen @Falco ausgelöst wird
{
"model": "meta-llama/Llama-3.2-11B-Vision-Instruct",
"temperature": 0,
"stop": [
"\n</output>"
],
"messages": [
{
"role": "system",
"content": "Sie sind ein Markdown-Korrekturleser. Sie korrigieren grobe Tippfehler und Formulierungsfehler, behalten aber die ursprüngliche Stimme des Benutzers bei.\nSie berühren keine Codeblöcke. Ich werde Ihnen Text zur Korrektur vorlegen. Wenn nichts behoben werden muss, geben Sie den Text einfach zurück.\nSie finden den Text zwischen den XML-Tags <input></input>.\nSie werden den korrigierten Text IMMER zwischen den XML-Tags <output></output> zurückgeben.\n\n"
},
{
"role": "user",
"content": "<input>[quote=\"Arkshine, post:1, topic:339163\"]\n:information_source: Diese Komponente erfordert, dass Discourse aktuell ist ab [date=2024-11-27 timezone=\"Europe/Paris\"]. \n[/quote]\nHast du Discourse aktualisiert? Du erhältst nur eine Benachrichtigung zur Aktualisierung, wenn eine neue Betaversion veröffentlicht wird, aber täglich werden neue Commits hinzugefügt.</input>"
}
]
}
{
"id": "chatcmpl-752c6aacdc7f496b951592e88d485eb3",
"object": "chat.completion",
"created": 1733196730,
"model": "Qwen/Qwen2.5-32B-Instruct-AWQ",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "<input>[quote=\"Arkshine, post:1, topic:339163\"]\n:information_source: Diese Komponente erfordert, dass Discourse aktuell ist ab [date=2024-11-27 timezone=\"Europe/Paris\"]. \n[/quote]\nHast du Discourse aktualisiert? Du erhältst nur eine Benachrichtigung zur Aktualisierung, wenn eine neue Betaversion veröffentlicht wird, aber täglich werden neue Commits hinzugefügt.</input>\n\n<output>[quote=\"Arkshine, post:1, topic:339163\"]\n:information_source: Diese Komponente erfordert, dass Discourse aktuell ist ab [date=2024-11-27 timezone=\"Europe/Paris\"]. \n[/quote]\nHast du Discourse aktualisiert? Du erhältst nur eine Benachrichtigung zur Aktualisierung, wenn eine neue Betaversion veröffentlicht wird, aber täglich werden neue Commits hinzugefügt.</output>",
"tool_calls": []
},
"logprobs": null,
"finish_reason": "stop",
"stop_reason": null
}
],
"usage": {
"prompt_tokens": 184,
"total_tokens": 358,
"completion_tokens": 174,
"prompt_tokens_details": null
},
"prompt_logprobs": null
}
Beachten Sie, wie sowohl die Tags <input> als auch <output> zurückgegeben werden, also haben wir hier einen Fehler.
Die Sanitize-Regex behält sowohl Eingabe als auch Ausgabe.
Ich schätze, wir sollten mit unserer API vorsichtiger umgehen und, wenn Sie Korrektur lesen, nur die Ausgabe anfordern oder ein besseres Prompt-Engineering betreiben.
Interessanterweise haben wir auch aufgehört, Beispiele zu senden, obwohl wir sie haben @Roman
Dies behebt den Kern der Regression:
Es hat jedoch einen Nebeneffekt, @Jagster. Wir haben vor einiger Zeit aufgehört, englische Beispiele zu senden, jetzt werden wir sie wieder senden. Lassen Sie uns wissen, ob sich dies auf Sie auswirkt.
Das gesagt, @Roman, ergibt das für mich keinen Sinn:
SANITIZE_REGEX_STR =
%w[term context topic replyTo input output result]
.map { |tag| "<#{tag}>\n?|\n?<\/#{tag}>" }
.join("|")
Sollte es nicht sein:
(item ist für Titelvorschläge, aber vielleicht nimmt es einen anderen Weg)
SANITIZE_REGEX_STR =
%w[output item]
.map { |tag| "<#{tag}>\n?|\n?<\/#{tag}>" }
.join("|")
Einige der Hilfseingabeaufforderungen verwenden diese Tags, um Kontext bereitzustellen. Zum Beispiel:
Einige Modelle könnten sie in die Antwort aufnehmen, daher entfernen wir sie.
Ich verstehe nicht, können Sie ein vollständiges Beispiel geben?
Warum wollen wir den Text in Eingabefeldern in der Ausgabe beibehalten, wenn wir die vom Modell gelieferten Dinge bereinigen?
(Der Op sollte jetzt funktionieren, übrigens)
Das Wort „bereinigen“ ist hier etwas irreführend. Wir wollen zwei verschiedene Probleme lösen:
- Sicherstellen, dass wir die Ausgabe und nichts anderes erhalten.
- Sicherstellen, dass alle Tags entfernt werden, die das Ergebnis unnatürlich aussehen lassen.
Das Problem hier ist, dass wir bei (1) zu lasch sind. Wir müssen sicherstellen, dass der relevante Teil immer von und, umschlossen ist und nichts anderes verwendet wird. Sobald wir diesen relevanten Teil haben, entfernen wir alle anderen Tags, um sicherzustellen, dass das Ergebnis sauber aussieht (2).
Um das obige Beispiel zu erweitern und zu erklären, warum wir derzeit all diese Tags entfernen, sieht der „explain“-Prompt so aus:
<term>, <replyTo> werden verwendet, um dem Modell Kontext zu geben, während <input> uns sagt, dass wir möchten, dass es sich auf diesen speziellen Text konzentriert.
Das Problem war, dass einige Modelle dieselben Tags in ihren Antworten verwendeten, was den Text für die Benutzer unnatürlich und seltsam aussehen ließ. Das Endziel hier ist es, diese Tags zu entfernen und „sauberen“ Text als Ergebnis zu produzieren.
Wenn ich zum Beispiel eine Erklärung dafür erhalten möchte, was „Nicht folgen“ bedeutet, möchte ich nicht so etwas sehen:
<term>Nicht folgen</term>bedeutet in diesem Zusammenhang, dass der Benutzer Schwierigkeiten hat, die Erklärung oder den Punkt zu verstehen, der gemacht wird. (…)





