Problemi comuniImpossibile decodificare in JSON la risposta del servizio di IA
Impossibile decodificare in JSON la risposta del servizio di IA
Gato AI Translations for Polylang invia un prompt al servizio di IA, e la risposta è in formato JSON.
A seconda dei dati che invii (stringhe da tradurre e lingua), il servizio di IA potrebbe produrre una risposta che non è un JSON valido. I log mostreranno un messaggio di errore come questo:
Error [Query "translate-customposts"] Execution with errors: 🔴 Translation to zh_CN failed - There was an error requesting data from the API for provider 'OpenRouter': Could not JSON-decode the OpenRouter API's 'choices[0].message.content' field in the responseOgni volta che scopriamo un nuovo problema, modifichiamo il prompt per evitare che si ripeta.
Attualmente, il prompt contiene quanto segue:
If a sentence contains HTML:
- Translate the text inside the HTML tags. (eg: `<p>Hello world</p>` => `<p>Hola mundo</p>`)
- Translate the following properties inside the HTML tags: alt, title, placeholder, aria-label, aria-describedby, aria-labelledby, aria-placeholder. Do not translate any other property.
- Ensure that any double quotes (") within a translated string inside an HTML tag attribute are properly escaped by adding a backslash before them (\"), but only if they haven't been escaped already.
- Ensure that the quotes in HTML tag attributes are not escaped (eg: keep `<mark class="has-inline-color">` as is, do not convert to `<mark class=\"has-inline-color\">`).
- Ensure that slashes within HTML tags are not escaped (eg: keep `<p>Hello world</p>` as is, do not convert to `<p>Hello world<\/p>`).
Keep emojis exactly as they are, do not translate them.
Ensure that the response is encoded using UTF-8 for all characters.Se ricevi un errore, allora si tratta di un nuovo problema che dobbiamo identificare e risolvere.
Procedi come segue:
- Cerca di capire qual è il problema
- Personalizza il prompt per affrontare il problema
Una volta che funziona, inviaci il tuo prompt e integreremo questa soluzione direttamente nel plugin.