AI自学笔记-LLM的学习笔记20260212
AI自学笔记,角色,固定返回,输入格式,输出格式
我是一个AI的初学者,今天已学习笔记的形式,今日学习的心得。
1。提示词最好用英文,哪怕你用中文编码,格式的能用部分,你也最好用英文。
这是个关键点!虽然AI能理解中文,但英文提示词能让你得到更稳定的输出。原因有:
AI训练数据主要是英文:大模型在训练时接触的英文数据更多,对英文提示词的理解更准确
避免中文歧义:中文表达有时有多种理解,英文更简洁明确
避免AI"自作主张":AI在处理中文时,有时会添加额外解释(比如"好的,我来帮你做…"),而英文提示词能强制要求它只输出JSON
2。定好输入输出的格式使AI的输出更稳定
# 构造提示词模板
prompt = f"""
You are a professional personality analysis engine.
Return ONLY the JSON object with no additional text, no Markdown formatting, no explanations.
INPUT_TEXT:
{self_description}
OUTPUT_SCHEMA:
{{
"identity_summary": "",
"personality_report": {{
"core_traits": [],
"decision_style": "",
"risk_preference": ""
}},
"profiling_report": {{
"long_term_drivers": [],
"common_weaknesses": [],
"stress_reactions": []
}}
}}
3。AI输出不稳定怎么办,告诉它输出什么样的格式,并告诉它哪些不行。
今天给我的返回JSON的前面有三个`号,是一个md格式,我问AI怎么解决,他跟我说让我格式化去掉前面的三个符号和后面的符号,还好我之前写的一个AI程序有过类似的情况,当时什么都不懂,搞了半天,后来了解到你和AI说比你自己去去掉要快速见效。
Return ONLY the JSON object with no additional text, no Markdown formatting, no explanations.
4。不要想着一个流程就把所有的功能就能跑完,AI是不稳定的,你需要补全它不稳定的部分,你可以考虑用另外一个AI,大家分工协作,让AI去跟AI交互,用户在中间确认或者补充信息。
为什么需要分阶段处理(LLM A, B, C, D)?
这解决了AI应用中的关键问题:AI不能完美理解所有输入。
想象一下,如果你问AI:“我该不该换工作?”,AI可能会回答一堆不相关的内容。但你的设计:
LLM A:先拆分输入,找出关键信息(“谁?什么时候?什么场景?”)
LLM B:检查信息是否足够,判断是否需要补充
LLM D:用完整信息进行最终分析
就像医生看病:
先问症状(LLM A)
检查是否需要更多检查(LLM B)
最后做诊断(LLM D)
5。为什么用JSON格式?
JSON是AI最擅长处理的结构化数据格式。为什么?
易于程序处理:程序可以直接解析JSON,不需要从文本中提取信息
格式固定:AI知道要输出什么字段,不会跑偏
可扩展性:如果需要添加新字段,只需修改OUTPUT_SCHEMA
比如,你的LLM D输出:
json
{
“feasibility”: “High”,
“confidence”: 0.85,
“key_reasons”: [“Good performance”, “Stable team delivery”],
“execution_plan”: [“Prepare data”, “Schedule meeting”],
“risks”: [“Boss may be busy”]
}
程序可以直接读取feasibility、confidence等字段,不需要额外处理。
6。什么是"角色扮演提示"?
简单说:就是告诉AI"你现在是XXX专家",让它以这个身份来回答问题。
就像你对一个医生说:“请以专业医生的身份诊断我的症状”,而不是简单地说"我哪里不舒服"。
为什么需要角色扮演提示?
想象一下:
如果你对AI说:“告诉我怎么减肥”
AI可能回答:“可以多运动,少吃高热量食物…”
但这些回答可能很普通,没有针对性
如果你对AI说:“You are a professional nutritionist. Return ONLY the JSON object with no additional text…”
AI会以专业营养师的身份回答,而且会严格按JSON格式输出
角色扮演提示的作用:
让AI知道它应该扮演什么角色
让回答更专业、更符合预期
为"固定格式"打下基础
我是怎么处理的,在输入里面加上
``
You are a xxxxxxx engine. → 这就是角色扮演提示
框架
```python
================ LLM D - 输入 ================
You are a xxxx engine.
Return ONLY the JSON object with no additional text, no Markdown formatting, no explanations.
INPUT_JSON:
{......}
你的输出json格式
OUTPUT_SCHEMA:
{
"feasibility": "",
"confidence": 0.0,
"key_reasons": [],
"execution_plan": [],
"risks": []
}
================ LLM D - 输出 ================
会按你的格式来输出,我的内容不方便打印出来,请见谅
{
"feasibility": "sure",
"confidence": 60.0,
"key_reasons": [],
"execution_plan": [],
"risks": []
}
| 关键点 | 核心内容 | 笔记对应 | 为什么重要 |
|---|---|---|---|
| 1. 角色扮演(Role Assignment) | 明确指定AI的角色(如“你是一个专业医生”),让AI知道“该以什么身份输出”。 | 点6(You are a xxx engine) 点1的优化版(英文提示词常搭配角色) |
避免AI“自作主张”输出通用内容(如“好的,我来帮你…”),强制它进入专业角色。 |
| 2. 输出格式(Output Format) | 强制要求固定格式(如JSON、CSV),并指定字段结构。 | 点2(Return ONLY JSON) 点3(去掉Markdown符号) 点5(为什么用JSON) |
AI输出不稳定?因为自由文本易跑偏。固定格式让程序能直接解析,避免额外处理。 |
| 3. 约束条件(Constraints) | 添加明确限制(如“No explanations, no Markdown”),禁止AI添加额外内容。 | 点2/3(“Return ONLY the JSON object with no additional text”) | 解决“AI在输出前加废话”的问题(如点3提到的三个号问题)。 |
| 4. 输入结构化(Structured Input) | 提供清晰的输入模板(如INPUT_TEXT、INPUT_JSON),避免模糊描述。 | 点2(INPUT_TEXT: {self_description}) 点4(分阶段处理的输入拆分) |
输入不清晰 → AI理解错误。结构化输入让AI聚焦关键信息(如点4的“LLM A拆分输入”)。 |
对了,今天在群里看到一张图,我感觉很挺写实的
更多推荐


所有评论(0)