Files
FoodClassifier/exp_multimodal/prompts.py
T

35 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from typing import Dict, List, Optional
def build_closedset_prompt(
labels: List[str],
fewshot_hints: Optional[Dict[str, str]] = None,
ingredient_only: bool = False,
) -> str:
label_str = "".join(labels)
hint_lines: List[str] = []
if fewshot_hints:
hint_lines.append("以下是少量文字示例帮助你区分:")
for k, v in list(fewshot_hints.items())[:20]:
hint_lines.append(f"- {k}{v}")
hints = "\n".join(hint_lines)
constraint = (
"你只需输出食材名称,不要包含任何烹饪方式或形态描述(如切丝/切片/炒/煮/红烧/清炒等)。\n"
if ingredient_only
else ""
)
return (
"你是食品图像分类专家。请严格在给定的标签集合中选择最符合图片内容的一个标签。\n"
"只允许返回一个标签,禁止输出集合外的词。请同时给出0-1置信度。\n"
f"{constraint}"
f"标签集合(封闭集,中文):{label_str}\n"
f"{hints}\n"
'请仅输出合法 JSON{"label":"<标签>","confidence":0-1}\n'
"不要输出任何额外解释或文本。"
)