HowToCook
HowToCook copied to clipboard
能不能给这些菜系都加上难度星级,这样方便新手循环渐进的学习
我就是做了一些黑暗料理出来了,还是得从简单的慢慢来。

你这是土豆炖排骨?
你是怎么做到烧焦了还不出锅,能等到烧成炭的
可以主要根据步骤和时间的两个维度来判断难度吧
我觉得可以直接让ChatGPT来粗略判断,人类纠正一下……
就是估计这个不太靠谱
焦炭海参,已经分不清葱花、酱油和海参的边界。放在锅里感觉怎么都没熟,拿出来之后成了焦炭。
我觉得可以直接让ChatGPT来粗略判断,人类纠正一下……
就是估计这个不太靠谱
人工标注几个样本,直接few shot learning,应该会靠谱一点
这么久过去了,是时候开启修复这个issue了!
我计划使用这个 prompt 来实现它。调用GPT4:
请判断一下这道菜的烹饪难度。标准如下所示:
1星:
没有特别困难的步骤。只需要将原材料简单混合烹饪即可。5分钟左右即可完成。即使没有做饭经验的人,也可以按照步骤做出像模像样的效果。
2星:
包含的步骤非常简单。不太需要烹饪经验,只需要按照步骤进行操作即可。10分钟左右即可完成。即使没有做饭经验的人,也可以按照步骤做出像模像样的效果,但是想要做出完美的效果就需要一定的练习。
3星:
包含的步骤不算太复杂。需要一定烹饪经验,能够熟练掌握火候、时间、材料组合的技巧。15分钟左右即可完成。对于有经验的厨师,并不会太难,但是想要做出完美的效果也需要一定的经验加上练习。
4星:
包含了很多复杂的步骤。需要精妙的掌握火候、时间、材料组合的技巧。40分钟以内即可完成。即使是有经验的厨师,也需要花费很多时间来准备这道菜,但是做熟练之后,就可以做出非常美味的效果。
5星:
包含了很多复杂的步骤。需要精妙的掌握火候、时间、材料组合的技巧。可能需要40分钟以上才能完成。即使是有经验的厨师,也需要花费很多时间来准备这道菜,并且非常容易出现失误。
菜的做法如下所示:
{0}
请给出这道菜的烹饪难度星级。请输出:1星、2星、3星、4星、5星。不要输出其他内容。
已经解决。
使用的代码:
namespace Fix;
public class Program
{
public static async Task Main(string[] args)
{
var dishes = Directory.GetFiles(@"C:\Users\Anduin\Desktop\HowToCook\dishes", "*.md",
SearchOption.AllDirectories);
var prompt = @"请判断一下这道菜的烹饪难度。标准如下所示:
1星:
没有特别困难的步骤。只需要将原材料简单混合烹饪即可。5分钟左右即可完成。即使没有做饭经验的人,也可以按照步骤做出像模像样的效果。
2星:
包含的步骤非常简单。不太需要烹饪经验,只需要按照步骤进行操作即可。10分钟左右即可完成。即使没有做饭经验的人,也可以按照步骤做出像模像样的效果,但是想要做出完美的效果就需要一定的练习。
3星:
包含的步骤不算太复杂。需要一定烹饪经验,能够熟练掌握火候、时间、材料组合的技巧。15分钟左右即可完成。对于有经验的厨师,并不会太难,但是想要做出完美的效果也需要一定的经验加上练习。
4星:
包含了很多复杂的步骤。需要精妙的掌握火候、时间、材料组合的技巧。40分钟以内即可完成。即使是有经验的厨师,也需要花费很多时间来准备这道菜,但是做熟练之后,就可以做出非常美味的效果。
5星:
包含了很多复杂的步骤。需要精妙的掌握火候、时间、材料组合的技巧。可能需要40分钟以上才能完成。即使是有经验的厨师,也需要花费很多时间来准备这道菜,并且非常容易出现失误。
菜的做法如下所示:
{0}
请给出这道菜的烹饪难度星级。请输出:1星、2星、3星、4星、5星。不要输出其他内容。
输出示例:
3星";
var openaiService = new OpenAiService("gpt-4");
foreach (var dish in dishes)
{
var content = await File.ReadAllTextAsync(dish);
var result = await openaiService.Ask(content, prompt);
var stars = result.Choices.First().Message.Content.Trim();
var contentLines = content.Split("\r\n").ToList();
var insertPosition = contentLines.FindIndex(line => line.StartsWith("## 必备原料和工具"));
if (insertPosition == -1) continue;
contentLines.Insert(insertPosition, $"预估烹饪难度:{stars}");
contentLines.Insert(insertPosition + 1, "");
await File.WriteAllLinesAsync(dish, contentLines);
}
}
}