Le texte est mystérieusement inversé dans la charge utile de résumé IA

La plupart de mes résumés échouent, car une partie du texte envoyé au LLM est inversée (!). Si la publication est simplement :

This post is to test whether sections of text get reversed in the payload sent to the AI endpoint.

elle envoie en réalité ce texte au LLM :

This post is to test whether sections of text get .tniopdne IA eht ot tnes daolyap eht ni desrever

Dans ce test simple, il se replie ou se reflète exactement au milieu de la chaîne.

Je réalise que cela semble fou, voici donc une capture d’écran et le raw_request_payload correspondant dans les ai_api_audit_logs :

ai_api_audit_logs.raw_request_payload
{
  "model": "claude-sonnet-4-0",
  "max_tokens": 64000,
  "messages": [
    {
      "role": "user",
      "content": "Here are the posts inside <input></input> XML tags:\n\n<input>1) user1 said: I love Mondays 2) user2 said: I hate Mondays</input>\n\nGenerate a concise, coherent summary of the text above maintaining the original language."
    },
    {
      "role": "assistant",
      "content": "{\"summary\":\"Two users are sharing their feelings toward Mondays. [user1](/t/-/64255/1) hates them, while [user2](/t/-/64255/2) loves them.\"}"
    },
    {
      "role": "user",
      "content": "The discussion title is: Testing Text Reversal.\n\nCategory: testing.\n\n\nHere are the posts, inside <input></input> XML tags:\n\n<input>\n  (1 admin said: This post is to test whether sections of text get .tniopdne IA eht ot tnes daolyap eht ni desrever  \n</input>\n\nGenerate a concise, coherent summary of the text above maintaining the original language."
    },
    {
      "role": "assistant",
      "content": "{\""
    }
  ],
  "system": "You are an advanced summarization bot that generates concise, coherent summaries of provided text.\nYou are also capable of enhancing an existing summaries by incorporating additional posts if asked to.\n\n- Only include the summary, without any additional commentary.\n- You understand and generate Discourse forum Markdown; including links, _italics_, **bold**.\n- Maintain the original language of the text being summarized.\n- Aim for summaries to be 400 words or less.\n- Each post is formatted as \"<POST_NUMBER>) <USERNAME> <MESSAGE>\"\n- Cite specific noteworthy posts using the format [DESCRIPTION](/t/-/64255/POST_NUMBER)\n- Example: link to the 6th post by jane: [agreed with](/t/-/64255/6)\n- Example: link to the 13th post by joe: [joe](/t/-/64255/13)\n- When formatting usernames use [USERNAME](/t/-/64255/POST_NUMBER)\n\nFormat your response as a JSON object with a single key named \"summary\", which has the summary as the value.\nYour output should be in the following format:\n\n{\"summary\": \"xx\"}\n\nWhere \"xx\" is replaced by the summary.\nreply with valid JSON only",
  "stream": true
}

Fait intéressant, Sonnet refuse de résumer de nombreux sujets, car il pense que le texte inversé est un effort pour obscurcir ou contourner les règles.

Je suis à jour à la version 3.6.0.beta3-latest.

1 « J'aime »