refactor(work-service,print-worker): 优化代码结构与错误处理
1. 提取评分prompt构建逻辑减少重复代码 2. 移除冗余的参考答案图片循环逻辑 3. 重构打印服务的错误回调逻辑,统一失败处理流程 4. 新增打印服务的任务取消处理逻辑
This commit is contained in:
@ -233,13 +233,14 @@ public class JournalTaskReceiveConsumer(
|
||||
{
|
||||
throw new InvalidOperationException("AI聊天服务配置不完整,请检查 AiChat 配置节点");
|
||||
}
|
||||
|
||||
var answerMapPrompt = BuildScorePrompt(scoreUnit, referenceAnswerMap);
|
||||
logger.LogInformation(answerMapPrompt);
|
||||
var content = new List<object>
|
||||
{
|
||||
new
|
||||
{
|
||||
type = "text",
|
||||
text = BuildScorePrompt(scoreUnit, referenceAnswerMap)
|
||||
text = answerMapPrompt
|
||||
}
|
||||
};
|
||||
|
||||
@ -251,7 +252,7 @@ public class JournalTaskReceiveConsumer(
|
||||
content.Add(new
|
||||
{
|
||||
type = "text",
|
||||
text = $"以下为任务 {context.Task.Id} 的学生作答图片,共 {answerImages.Count} 张。"
|
||||
text = $"以下是学生作答图片,共 {answerImages.Count} 张。"
|
||||
});
|
||||
|
||||
foreach (var answerImage in answerImages)
|
||||
@ -269,31 +270,6 @@ public class JournalTaskReceiveConsumer(
|
||||
throw new InvalidOperationException($"评分单元 {scoreUnit.GroupId} 缺少答案图片");
|
||||
}
|
||||
|
||||
foreach (var context in scoreUnit.Questions)
|
||||
{
|
||||
referenceAnswerMap.TryGetValue(context.Task.Id, out var referenceAnswers);
|
||||
var referenceAnswerImages = await BuildReferenceAnswerImageContentsAsync(context.Task.Id, referenceAnswers ?? [], cancellationToken);
|
||||
if (referenceAnswerImages.Count == 0)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
content.Add(new
|
||||
{
|
||||
type = "text",
|
||||
text = $"以下为任务 {context.Task.Id} 的参考答案图片,共 {referenceAnswerImages.Count} 张。参考答案不是必有,评分时以题目Prompt和学生答案为主。"
|
||||
});
|
||||
|
||||
foreach (var referenceAnswerImage in referenceAnswerImages)
|
||||
{
|
||||
content.Add(new
|
||||
{
|
||||
type = "image_url",
|
||||
image_url = new { url = referenceAnswerImage.DataUrl }
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var requestBody = new
|
||||
{
|
||||
model,
|
||||
@ -403,6 +379,7 @@ public class JournalTaskReceiveConsumer(
|
||||
prompt.AppendLine(" \"Completion\": 100,");
|
||||
prompt.AppendLine(" \"Result\": \"50字内的中文评语\"");
|
||||
prompt.AppendLine("}");
|
||||
|
||||
return prompt.ToString();
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
|
||||
Reference in New Issue
Block a user