Merge branch 'SciSharp:master' into master

This commit is contained in:
C. Oceania 2024-05-14 21:50:21 -05:00 committed by GitHub
commit 151ec1986c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 7 deletions

View file

@ -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<string, string>();
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
/// <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.