Skip to content

Commit c5dd863

Browse files
authored
Merge pull request #455 from hchen2020/master
Fix translation issue.
2 parents 1e882e4 + 419b1be commit c5dd863

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/Infrastructure/BotSharp.Core/Translation/TranslationService.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Amazon.Runtime.Internal.Transform;
12
using BotSharp.Abstraction.Infrastructures.Enums;
23
using BotSharp.Abstraction.MLTasks;
34
using BotSharp.Abstraction.Options;
@@ -54,8 +55,11 @@ public async Task<T> Translate<T>(Agent router, string messageId, T data, string
5455
model: _router?.LlmConfig?.Model);
5556
var template = _router.Templates.First(x => x.Name == "translation_prompt").Content;
5657

57-
var texts = unique.ToArray();
58-
var translatedStringList = await InnerTranslate(JsonSerializer.Serialize(texts, _options.JsonSerializerOptions), language, template);
58+
var keys = unique.ToArray();
59+
var texts = unique.ToArray()
60+
.Select((text, i) => $"{i + 1}. \"{text}\"")
61+
.ToList();
62+
var translatedStringList = await InnerTranslate(texts, language, template);
5963

6064
try
6165
{
@@ -70,9 +74,9 @@ public async Task<T> Translate<T>(Agent router, string messageId, T data, string
7074
var translatedTexts = translatedStringList.Texts;
7175
var map = new Dictionary<string, string>();
7276

73-
for (var i = 0; i < texts.Length; i++)
77+
for (var i = 0; i < texts.Count; i++)
7478
{
75-
map.Add(texts[i], translatedTexts[i]);
79+
map.Add(keys[0], translatedTexts[i]);
7680
}
7781

7882
clonedData = Assign(clonedData, map);
@@ -293,7 +297,7 @@ private T Assign<T>(T data, Dictionary<string, string> map) where T : class
293297
/// <param name="list"></param>
294298
/// <param name="language"></param>
295299
/// <returns></returns>
296-
private async Task<TranslationOutput> InnerTranslate(string texts, string language, string template)
300+
private async Task<TranslationOutput> InnerTranslate(List<string> texts, string language, string template)
297301
{
298302
var translator = new Agent
299303
{
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1-
{{ text_list }}
1+
{% for text in text_list %}
2+
{{ text }}
3+
{% endfor %}
24

35
=====
46
Translate the above sentences in the list into {{ language }}.
5-
Output the translated text in JSON {"input_lang":"", "output_lang":"{{ language }}", "texts":[""]}, input_lang is based on the original sentences.
7+
Output the translated text in JSON {"input_lang":"", "output_lang":"{{ language }}", "texts":[]}, input_lang is based on the original sentences.

0 commit comments

Comments
 (0)