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 BotSharp.Abstraction.Translation.Models;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using System.Text.Encodings.Web;
|
||||||
|
|
||||||
namespace BotSharp.Core.Translation;
|
namespace BotSharp.Core.Translation;
|
||||||
|
|
||||||
|
|
@ -62,10 +63,18 @@ public class TranslationService : ITranslationService
|
||||||
Id = i + 1,
|
Id = i + 1,
|
||||||
Text = text
|
Text = text
|
||||||
}).ToList();
|
}).ToList();
|
||||||
var translatedStringList = await InnerTranslate(texts, language, template);
|
|
||||||
|
|
||||||
try
|
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.
|
// Override language if it's Unknown, it's used to output the corresponding language.
|
||||||
var states = _services.GetRequiredService<IConversationStateService>();
|
var states = _services.GetRequiredService<IConversationStateService>();
|
||||||
if (!states.ContainsState(StateConst.LANGUAGE))
|
if (!states.ContainsState(StateConst.LANGUAGE))
|
||||||
|
|
@ -302,7 +311,8 @@ public class TranslationService : ITranslationService
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private async Task<TranslationOutput> InnerTranslate(List<TranslationInput> texts, string language, string template)
|
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
|
var translator = new Agent
|
||||||
{
|
{
|
||||||
Id = Guid.Empty.ToString(),
|
Id = Guid.Empty.ToString(),
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,5 @@
|
||||||
|
|
||||||
=====
|
=====
|
||||||
Translate all the above sentences into {{ language }}.
|
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