fix: 参考答案图片存完整 data URL (含 mime),修复无图时提示词顺序一致化
This commit is contained in:
+23
-17
@@ -280,13 +280,16 @@ export function setupIpc(win: BrowserWindow): void {
|
||||
log.info(`rubric:getData: ${rows.length} rows`)
|
||||
if (rows.length) {
|
||||
return {
|
||||
questions: rows.map(r => ({
|
||||
questionTitle: r.question_title,
|
||||
maxScore: r.max_score,
|
||||
referenceAnswer: r.reference_answer,
|
||||
rubric: r.rubric,
|
||||
referenceAnswerImage: r.reference_answer_image || undefined
|
||||
})),
|
||||
questions: rows.map(r => {
|
||||
const img = r.reference_answer_image
|
||||
return {
|
||||
questionTitle: r.question_title,
|
||||
maxScore: r.max_score,
|
||||
referenceAnswer: r.reference_answer,
|
||||
rubric: r.rubric,
|
||||
referenceAnswerImage: img && !img.startsWith('data:') ? `data:image/png;base64,${img}` : (img || undefined)
|
||||
}
|
||||
}),
|
||||
currentIndex: 0
|
||||
}
|
||||
}
|
||||
@@ -297,13 +300,16 @@ export function setupIpc(win: BrowserWindow): void {
|
||||
const d = getDb()
|
||||
const rows: any[] = d.prepare('SELECT * FROM rubric ORDER BY sort_order').all()
|
||||
if (!rows.length) throw new Error('暂无评分标准可导出')
|
||||
const questions = rows.map(r => ({
|
||||
questionTitle: r.question_title,
|
||||
maxScore: r.max_score,
|
||||
referenceAnswer: r.reference_answer,
|
||||
rubric: r.rubric,
|
||||
referenceAnswerImage: r.reference_answer_image || undefined
|
||||
}))
|
||||
const questions = rows.map(r => {
|
||||
const img = r.reference_answer_image
|
||||
return {
|
||||
questionTitle: r.question_title,
|
||||
maxScore: r.max_score,
|
||||
referenceAnswer: r.reference_answer,
|
||||
rubric: r.rubric,
|
||||
referenceAnswerImage: img && !img.startsWith('data:') ? `data:image/png;base64,${img}` : (img || undefined)
|
||||
}
|
||||
})
|
||||
const result = await dialogBox.showSaveDialog({
|
||||
defaultPath: '评分标准.json',
|
||||
filters: [{ name: 'JSON', extensions: ['json'] }]
|
||||
@@ -418,11 +424,11 @@ ${extras?.maxScore ?? 100}
|
||||
? [
|
||||
{ type: 'text', text: prompt },
|
||||
{ type: 'image_url', image_url: { url: `data:image/png;base64,${imageBase64}` } },
|
||||
{ type: 'image_url', image_url: { url: `data:image/png;base64,${extras!.referenceAnswerImage}` } }
|
||||
{ type: 'image_url', image_url: { url: extras!.referenceAnswerImage } }
|
||||
]
|
||||
: [
|
||||
{ type: 'image_url', image_url: { url: `data:image/png;base64,${imageBase64}` } },
|
||||
{ type: 'text', text: prompt }
|
||||
{ type: 'text', text: prompt },
|
||||
{ type: 'image_url', image_url: { url: `data:image/png;base64,${imageBase64}` } }
|
||||
]
|
||||
|
||||
const response = await axios.post(`${config.baseUrl}/chat/completions`, {
|
||||
|
||||
Reference in New Issue
Block a user