feat: 支持多角度拍照 + 详细营养数据
- 最多上传 8 张照片,多角度拍摄提高份量估算精度 - VLM prompt 升级:识别名称+份量+热量+蛋白质+碳水+脂肪 - 提示 VLM 综合分析多张照片判断份量
This commit is contained in:
@@ -242,6 +242,8 @@ public static class AiChatEndpoints
|
|||||||
var files = form.Files.GetFiles("images");
|
var files = form.Files.GetFiles("images");
|
||||||
if (files == null || files.Count == 0)
|
if (files == null || files.Count == 0)
|
||||||
return Results.Ok(new { code = 40001, data = (object?)null, message = "请上传至少一张图片" });
|
return Results.Ok(new { code = 40001, data = (object?)null, message = "请上传至少一张图片" });
|
||||||
|
if (files.Count > 8)
|
||||||
|
return Results.Ok(new { code = 40001, data = (object?)null, message = "一次最多上传 8 张图片" });
|
||||||
|
|
||||||
var imageUrls = new List<string>();
|
var imageUrls = new List<string>();
|
||||||
var uploadsDir = Path.Combine(Directory.GetCurrentDirectory(), "uploads");
|
var uploadsDir = Path.Combine(Directory.GetCurrentDirectory(), "uploads");
|
||||||
@@ -270,9 +272,19 @@ public static class AiChatEndpoints
|
|||||||
}
|
}
|
||||||
|
|
||||||
var prompt = """
|
var prompt = """
|
||||||
识别图片中所有食物,用中文名称,只返回JSON:
|
你是一个专业营养师。请仔细分析这些食物照片(可能是同一餐不同角度拍摄)。
|
||||||
|
|
||||||
|
要求:
|
||||||
|
1. 识别所有食物,用中文名称
|
||||||
|
2. 根据多角度照片综合判断份量,尽量精准
|
||||||
|
3. 估算每项的热量、蛋白质、碳水、脂肪(克)
|
||||||
|
|
||||||
|
只返回JSON:
|
||||||
{
|
{
|
||||||
"foods": [{"name":"食物名","portion":"份量","calories":整数}]
|
"foods": [
|
||||||
|
{"name":"食物名","portion":"份量描述","calories":整数,"proteinGrams":整数,"carbsGrams":整数,"fatGrams":整数}
|
||||||
|
],
|
||||||
|
"totalCalories":整数
|
||||||
}
|
}
|
||||||
""";
|
""";
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user