Merge branch 'master' of https://github.com/SciSharp/BotSharp into features/add-user-avatar
This commit is contained in:
commit
948a3981a6
|
|
@ -6,6 +6,7 @@ using BotSharp.Abstraction.Templating;
|
|||
using BotSharp.Abstraction.Translation.Models;
|
||||
using System.Collections;
|
||||
using System.Reflection;
|
||||
using System.Text.Encodings.Web;
|
||||
|
||||
namespace BotSharp.Core.Translation;
|
||||
|
||||
|
|
@ -62,10 +63,18 @@ public class TranslationService : ITranslationService
|
|||
Id = i + 1,
|
||||
Text = text
|
||||
}).ToList();
|
||||
var translatedStringList = await InnerTranslate(texts, language, template);
|
||||
|
||||
try
|
||||
{
|
||||
var translatedStringList = await InnerTranslate(texts, language, template);
|
||||
|
||||
int retry = 0;
|
||||
while (translatedStringList.Texts.Length != texts.Count && retry < 3)
|
||||
{
|
||||
translatedStringList = await InnerTranslate(texts, language, template);
|
||||
retry++;
|
||||
}
|
||||
|
||||
// Override language if it's Unknown, it's used to output the corresponding language.
|
||||
var states = _services.GetRequiredService<IConversationStateService>();
|
||||
if (!states.ContainsState(StateConst.LANGUAGE))
|
||||
|
|
@ -302,7 +311,8 @@ public class TranslationService : ITranslationService
|
|||
/// <returns></returns>
|
||||
private async Task<TranslationOutput> InnerTranslate(List<TranslationInput> texts, string language, string template)
|
||||
{
|
||||
var jsonString = JsonSerializer.Serialize(texts);
|
||||
var options = new JsonSerializerOptions() { Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping };
|
||||
var jsonString = JsonSerializer.Serialize(texts, options);
|
||||
var translator = new Agent
|
||||
{
|
||||
Id = Guid.Empty.ToString(),
|
||||
|
|
|
|||
|
|
@ -2,4 +2,5 @@
|
|||
|
||||
=====
|
||||
Translate all the above sentences into {{ language }}.
|
||||
Output the translated text in JSON {"input_lang":"original text language", "output_count": {{ text_list_size }}, "output_lang":"{{ language }}", "texts":[{"id": 1, "text":""}]}.
|
||||
Output the translated text in JSON {"input_lang":"original text language", "output_count": {{ text_list_size }}, "output_lang":"{{ language }}", "texts":[{"id": 1, "text":""},{"id": 2, "text":""}]}.
|
||||
The "output_count" must equal the length of the "texts" array in the output.
|
||||
|
|
|
|||
Loading…
Reference in a new issue