Fix translation issue.

This commit is contained in:
Haiping Chen 2024-05-14 13:45:20 -05:00
parent 6024a53476
commit ed9e6457fe
2 changed files with 10 additions and 6 deletions

View file

@ -54,8 +54,10 @@ 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 texts = unique.ToArray()
.Select((text, i) => $"{i + 1}. {text}")
.ToList();
var translatedStringList = await InnerTranslate(texts, language, template);
try
{
@ -70,7 +72,7 @@ public class TranslationService : ITranslationService
var translatedTexts = translatedStringList.Texts;
var map = new Dictionary<string, string>();
for (var i = 0; i < texts.Length; i++)
for (var i = 0; i < texts.Count; i++)
{
map.Add(texts[i], translatedTexts[i]);
}
@ -293,7 +295,7 @@ public class TranslationService : ITranslationService
/// <param name="list"></param>
/// <param name="language"></param>
/// <returns></returns>
private async Task<TranslationOutput> InnerTranslate(string texts, string language, string template)
private async Task<TranslationOutput> InnerTranslate(List<string> texts, string language, string template)
{
var translator = new Agent
{

View file

@ -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.
Output the translated text in JSON {"input_lang":"", "output_lang":"{{ language }}", "texts":[]}, input_lang is based on the original sentences.