diff --git a/src/Infrastructure/BotSharp.Core/Translation/TranslationService.cs b/src/Infrastructure/BotSharp.Core/Translation/TranslationService.cs index 4f23ade1..d24fd7d4 100644 --- a/src/Infrastructure/BotSharp.Core/Translation/TranslationService.cs +++ b/src/Infrastructure/BotSharp.Core/Translation/TranslationService.cs @@ -1,3 +1,4 @@ +using Amazon.Runtime.Internal.Transform; using BotSharp.Abstraction.Infrastructures.Enums; using BotSharp.Abstraction.MLTasks; using BotSharp.Abstraction.Options; @@ -54,8 +55,11 @@ public class TranslationService : ITranslationService model: _router?.LlmConfig?.Model); var template = _router.Templates.First(x => x.Name == "translation_prompt").Content; - var texts = unique.ToArray(); - var translatedStringList = await InnerTranslate(JsonSerializer.Serialize(texts, _options.JsonSerializerOptions), language, template); + var keys = unique.ToArray(); + var texts = unique.ToArray() + .Select((text, i) => $"{i + 1}. \"{text}\"") + .ToList(); + var translatedStringList = await InnerTranslate(texts, language, template); try { @@ -70,9 +74,9 @@ public class TranslationService : ITranslationService var translatedTexts = translatedStringList.Texts; var map = new Dictionary(); - for (var i = 0; i < texts.Length; i++) + for (var i = 0; i < texts.Count; i++) { - map.Add(texts[i], translatedTexts[i]); + map[keys[i]] = translatedTexts[i]; } clonedData = Assign(clonedData, map); @@ -293,7 +297,7 @@ public class TranslationService : ITranslationService /// /// /// - private async Task InnerTranslate(string texts, string language, string template) + private async Task InnerTranslate(List texts, string language, string template) { var translator = new Agent { diff --git a/src/Infrastructure/BotSharp.Core/data/agents/01fcc3e5-9af7-49e6-ad7a-a760bd12dc4a/templates/translation_prompt.liquid b/src/Infrastructure/BotSharp.Core/data/agents/01fcc3e5-9af7-49e6-ad7a-a760bd12dc4a/templates/translation_prompt.liquid index 4cd12bd0..9d9672b5 100644 --- a/src/Infrastructure/BotSharp.Core/data/agents/01fcc3e5-9af7-49e6-ad7a-a760bd12dc4a/templates/translation_prompt.liquid +++ b/src/Infrastructure/BotSharp.Core/data/agents/01fcc3e5-9af7-49e6-ad7a-a760bd12dc4a/templates/translation_prompt.liquid @@ -1,5 +1,7 @@ -{{ text_list }} +{% for text in text_list %} +{{ text }} +{% endfor %} ===== Translate the above sentences in the list into {{ language }}. -Output the translated text in JSON {"input_lang":"", "output_lang":"{{ language }}", "texts":[""]}, input_lang is based on the original sentences. \ No newline at end of file +Output the translated text in JSON {"input_lang":"", "output_lang":"{{ language }}", "texts":[]}, input_lang is based on the original sentences. \ No newline at end of file