在构建强大的 AI 系统,尤其是基于大语言模型(LLM)的智能代理(Agent)时,Prompt 设计的质量决定了系统的智能程度。传统 Prompt 通常是简单的问答或填空式指令,而高级任务需要更具结构性、策略性和思考性的 Prompt。

本文将结合 链式思维(Chain-of-Thought, CoT)反思机制(Reflection)代理执行机制(LLM Agents),分享如何高效构建具备"推理+行动+自检"的高级 Prompt,并结合 Python 代码示例展示如何在实践中使用。

本文的案例使用三方API为Openrouter:"https://openrouter.ai"


背景知识回顾

技术 概述
链式思维 (CoT) 通过让 LLM 逐步推理,提升复杂任务的准确率和可解释性(如数学推理、规划)。
反思/自我反馈 (Reflection) 模型对自己的回答进行分析与修正(如 ReAct、Reflexion)。
代理机制 (Agent) LLM 执行有目标的任务,通过观察 → 思考 → 行动 → 再观察的闭环完成复杂目标。

构建高效 Prompt 的 4 个关键原则

1. 明确角色与任务(Position & Purpose)

指定 LLM 的身份与任务目标,提升上下文对齐效果:

你是一个项目管理专家,专注于软件交付效率优化。你的任务是分析以下项目状态,并输出关键改进建议。

Python 实现示例:

from openai import OpenAI
from dotenv import load_dotenv
import os # 加载环境变量
load_dotenv() # 初始化客户端
client = OpenAI() def create_expert_consultant(expertise, task_description):
"""创建一个专家角色的 Prompt""" system_message = f"""你是一个{expertise}专家。
你的任务是{task_description}。
请基于你的专业知识提供深入、专业的分析和建议。""" return system_message # 使用示例
project_analysis_prompt = create_expert_consultant(
expertise="项目管理",
task_description="分析以下项目状态,找出延迟原因,并输出关键改进建议"
) # 向 API 发送请求
def get_expert_analysis(prompt, project_data):
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": prompt},
{"role": "user", "content": f"项目状态数据:\n{project_data}"}
]
)
return response.choices[0].message.content # 测试使用
project_data = """
项目名称: 电商平台重构
计划周期: 3个月
当前状态: 已延期1个月
团队规模: 5名开发, 2名测试
完成进度: 65%
主要问题:
- API文档不完整导致集成困难
- 前端组件复用率低
- 测试覆盖率不足
""" analysis = get_expert_analysis(project_analysis_prompt, project_data)
print(analysis)

2. 引导链式推理(Process)

设计多步骤的任务指令,引导 LLM 逐步完成推理与判断:

请按照以下步骤进行:
1. 分析输入信息中存在的问题;
2. 推测可能的原因;
3. 提出改进建议;
4. 总结为清晰的行动计划。

Python 实现示例:

from openai import OpenAI
from dotenv import load_dotenv
import os # 加载环境变量
load_dotenv()
# 初始化客户端
client = OpenAI() def chain_of_thought_prompt(task_description, steps):
"""创建一个引导模型逐步思考的 Prompt""" steps_text = "\n".join([f"{i+1}. {step}" for i, step in enumerate(steps)]) prompt = f"""任务:{task_description} 请按照以下步骤逐一思考并输出结果:
{steps_text} 请确保每个步骤都有明确的输出,并标注步骤编号。""" return prompt # 使用示例 - 解决一个数学问题
math_steps = [
"理解问题,确定已知条件和求解目标",
"列出解决问题所需的方程或关系",
"逐步求解方程",
"检查答案的合理性",
"给出最终答案"
] math_cot_prompt = chain_of_thought_prompt(
"解决以下数学问题:一个水箱以每分钟5升的速度注水,同时以每分钟3升的速度漏水。如果水箱初始有10升水,那么多久后水箱会有25升水?",
math_steps
) # 向 API 发送请求
response = client.chat.completions.create(
model="qwen/qwen-2.5-72b-instruct",
messages=[
{"role": "system", "content": "你是一个擅长解决数学问题的助手,请一步步思考。"},
{"role": "user", "content": math_cot_prompt}
]
) print(response.choices[0].message.content)

3. 加入反思机制(Proofing)

鼓励 LLM 审查自己的输出、找出问题并修正:

请回顾你刚才的回答,思考是否存在逻辑漏洞或遗漏的关键点,并进行修正。输出最终版本的建议。

Python 实现示例:

from openai import OpenAI
from dotenv import load_dotenv
import os # 加载环境变量
load_dotenv()
# 初始化客户端
client = OpenAI()
def self_reflection_prompt(initial_task, response_to_evaluate):
"""创建一个让模型自我反思的 Prompt""" reflection_prompt = f"""初始任务:{initial_task} 你之前的回答:
{response_to_evaluate} 请对你的回答进行自我评估,考虑以下几点:
1. 是否有逻辑漏洞或不一致的地方?
2. 是否遗漏了重要信息或关键点?
3. 推理过程是否足够严谨?
4. 结论是否合理且有力度支持? 请指出存在的问题,并提供修正后的完整回答。标记为"最终版本"。""" return reflection_prompt # 使用示例 - 假设这是一个初始回答
initial_response = """
解决方案:实施微服务架构可以提高系统的可扩展性和灵活性。
步骤:
1. 将系统拆分为独立服务
2. 实施 API 网关
3. 部署到云环境
""" # 让模型反思并改进
reflection_prompt = self_reflection_prompt(
"设计一个高可用的电商系统架构",
initial_response
) # 向 API 发送请求
response = client.chat.completions.create(
model="qwen/qwen-2.5-72b-instruct",
messages=[
{"role": "system", "content": "你是一个系统架构专家,请对你的方案进行批判性思考和完善。"},
{"role": "user", "content": reflection_prompt}
]
) improved_response = response.choices[0].message.content
print(improved_response)

4. 增强行动能力(Agent-style Prompt)

设计具备感知、思考、行动、反思循环的 Prompt:

你将完成以下任务:
1. 读取输入数据(环境感知);
2. 分析目标需求(理解与推理);
3. 拆解任务并规划步骤(任务规划);
4. 输出每个步骤的操作建议;
5. 若任务未完成,则思考失败原因并重新规划(反思+重试)。 请开始处理任务:{用户输入}

Python 实现示例:

from openai import OpenAI
import json
import os
from dotenv import load_dotenv # 加载环境变量
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
base_url = os.getenv("OPENAI_BASE_URL")
client = OpenAI(api_key=api_key, base_url=base_url) class ReflectiveAgentQwen:
"""适配 Qwen 模型的反思型智能代理""" def __init__(self, system_role):
self.system_role = system_role
self.messages = [{"role": "system", "content": system_role}]
self.tools = [] def register_tool(self, name, description, function):
self.tools.append({
"name": name,
"description": description,
"function": function
}) def _get_tools_prompt(self):
if not self.tools:
return ""
tool_list = "\n".join([f"{tool['name']}: {tool['description']}" for tool in self.tools])
return f"\n你可以使用以下工具来辅助完成任务(请在需要时明确说明要调用哪个工具及输入内容):\n{tool_list}" def _call_tool_if_needed(self, response_content):
for tool in self.tools:
if f"调用工具 {tool['name']}" in response_content:
# 提取输入
input_start = response_content.find("输入:")
if input_start != -1:
input_text = response_content[input_start + 3:].strip().splitlines()[0]
print(f"\n>>> 调用工具 {tool['name']},输入: {input_text}")
return tool["function"](input_text)
return None def think_act_reflect(self, user_input, max_cycles=3):
intro = self._get_tools_prompt()
self.messages.append({"role": "user", "content": user_input + intro}) for cycle in range(max_cycles):
print(f"\n--- 循环 {cycle + 1}/{max_cycles} ---") # 思考阶段
print(" 思考中...")
response = client.chat.completions.create(
model="qwen/qwen-2.5-72b-instruct",
messages=self.messages,
)
message = response.choices[0].message
content = message.content
print(" 输出:", content)
self.messages.append({"role": "assistant", "content": content}) # ️ 行动阶段(判断是否调用工具)
result = self._call_tool_if_needed(content)
if result:
self.messages.append({
"role": "user",
"content": f"工具调用结果:{result}"
})
else:
print(" 没有需要调用工具,任务可能已完成")
break # 反思阶段
print(" 反思中...")
reflection_prompt = (
"请反思你刚才的分析与工具使用是否合理,有无遗漏?"
"如果有改进建议,请继续执行。若任务完成,请明确标注“任务已完成”。"
)
self.messages.append({"role": "user", "content": reflection_prompt})
reflection_response = client.chat.completions.create(
model="qwen/qwen-2.5-72b-instruct",
messages=self.messages
)
reflection_message = reflection_response.choices[0].message
print(" 反思输出:", reflection_message.content)
self.messages.append({"role": "assistant", "content": reflection_message.content}) if "任务已完成" in reflection_message.content:
break # 最终总结
final = client.chat.completions.create(
model="qwen/qwen-2.5-72b-instruct",
messages=self.messages + [{"role": "user", "content": "请总结你的最终答案:"}]
)
return final.choices[0].message.content # 示例用法
if __name__ == "__main__":
agent = ReflectiveAgentQwen(
system_role="你是一个研究型智能助手,能够理解任务、调用工具、反思并总结。"
) # 注册一个模拟搜索工具
def web_search(query):
if "人工智能" in query:
return "人工智能是计算机科学的一个分支,致力于模拟人类智能。"
elif "机器学习" in query:
return "机器学习是 AI 的一个子领域,专注于让系统从数据中学习。"
else:
return "未找到相关信息。" agent.register_tool("web_search", "用于网络搜索信息", web_search) # 测试任务
question = "请解释人工智能与机器学习的区别,并说明应用领域。"
result = agent.think_act_reflect(question)
print("\n 最终回答:\n", result)


示例:面向医疗场景的智能代理设计 Prompt

你是一个 AI 项目设计专家,请你帮助团队分析并设计一个面向医疗场景的 AI 代理。

任务如下:
1. 任务目标:分析用户上传的电子病历,抽取关键信息,自动生成初步诊疗建议;
2. 输入格式:包含 PDF、图片、文本等混合文档;
3. 输出格式:结构化 JSON + 建议摘要。 请你分步骤完成以下内容:
1. 明确关键需求与挑战;
2. 推理出合适的技术架构与模块;
3. 说明每个模块的功能与关键技术点;
4. 回顾整体设计并输出最终建议。 输出后,请你反思是否有遗漏或逻辑漏洞,若有请修正,并标注"最终版本"。

Python 医疗AI代理示例实现:

from openai import OpenAI
import json
import os
from dotenv import load_dotenv
from typing import Dict, List, Any, Optional
import base64
from datetime import datetime # 加载环境变量
load_dotenv() # 初始化 OpenAI 客户端
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) class MedicalDocumentProcessor:
"""处理各种格式的医疗文档""" def extract_text_from_image(self, image_path: str) -> str:
"""从图片中提取文本(使用Vision模型)"""
try:
# 读取图片并转为base64
with open(image_path, "rb") as image_file:
base64_image = base64.b64encode(image_file.read()).decode('utf-8') # 调用OpenAI Vision模型
response = client.chat.completions.create(
model="gpt-4-vision-preview",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "请从这个医疗文档图片中提取所有文本内容,保持原始格式。特别注意提取患者信息、诊断结果、用药情况等医疗关键信息。"},
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{base64_image}"
}
}
]
}
],
max_tokens=1000
)
return response.choices[0].message.content
except Exception as e:
print(f"图片处理错误: {e}")
return "图片处理失败" def extract_text_from_pdf(self, pdf_path: str) -> str:
"""从PDF中提取文本(实际应用中使用PyPDF2等库)"""
# 这里是简化的示例,实际实现需要使用PDF处理库
return f"从PDF {pdf_path} 中提取的文本内容" def process_document(self, document_path: str) -> str:
"""处理各类文档并提取文本"""
if document_path.lower().endswith(('.png', '.jpg', '.jpeg')):
return self.extract_text_from_image(document_path)
elif document_path.lower().endswith('.pdf'):
return self.extract_text_from_pdf(document_path)
elif document_path.lower().endswith(('.txt', '.doc', '.docx')):
# 简化示例,实际应用中需使用专门的文本处理方法
with open(document_path, 'r', encoding='utf-8') as file:
return file.read()
else:
return "不支持的文档格式" class MedicalInformationExtractor:
"""从医疗文本中提取结构化信息""" def extract_key_information(self, text: str) -> Dict[str, Any]:
"""提取关键医疗信息并结构化""" # 构建提示词来指导模型提取结构化信息
prompt = f"""
请从以下医疗文档中提取关键信息,并整理为结构化JSON格式。 需要提取的字段包括:
- 患者基本信息(姓名、年龄、性别、ID)
- 主诉
- 现病史
- 既往史
- 检查结果
- 诊断结果
- 用药建议 仅返回JSON格式,不要包含其他文字。 医疗文档内容:
{text}
""" response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个专业的医疗信息提取工具,能够从医疗文档中准确提取结构化信息。"},
{"role": "user", "content": prompt}
],
response_format={"type": "json_object"}
) # 尝试解析JSON结果
try:
return json.loads(response.choices[0].message.content)
except json.JSONDecodeError:
# 若解析失败,返回空结构
return {
"error": "无法提取结构化信息",
"raw_text": text
} class MedicalDiagnosisAdvisor:
"""生成初步诊疗建议""" def generate_advice(self, patient_info: Dict[str, Any]) -> Dict[str, Any]:
"""基于提取的信息生成初步诊疗建议""" # 转换病人信息为JSON字符串
patient_json = json.dumps(patient_info, ensure_ascii=False, indent=2) # 构建提示词
prompt = f"""
基于以下患者信息,生成初步诊疗建议。
注意:这只是初步建议,最终诊疗方案应由专业医生确定。 患者信息:
{patient_json} 请提供:
1. 初步诊断分析
2. 建议进一步检查项目
3. 可能的治疗方向
4. 生活方式建议 返回JSON格式,包含上述四个方面的信息。
""" # 调用API生成建议
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个医疗诊断辅助系统,能基于患者信息提供初步诊疗建议。你的建议应严格基于医学知识,同时明确标注这只是初步建议,不能替代专业医生的诊断。"},
{"role": "user", "content": prompt}
],
response_format={"type": "json_object"}
) # 解析并返回建议
try:
advice = json.loads(response.choices[0].message.content) # 添加免责声明
advice["disclaimer"] = "本建议由AI辅助生成,仅供参考,不构成医疗建议。请咨询专业医生进行正式诊疗。" return advice
except json.JSONDecodeError:
return {
"error": "无法生成诊疗建议",
"disclaimer": "请咨询专业医生进行诊疗。"
} class MedicalAIAgent:
"""医疗AI代理总控制器""" def __init__(self):
self.document_processor = MedicalDocumentProcessor()
self.info_extractor = MedicalInformationExtractor()
self.advisor = MedicalDiagnosisAdvisor() def process_medical_documents(self, document_paths: List[str]) -> Dict[str, Any]:
"""处理医疗文档并生成诊疗建议""" # 1. 处理所有文档并合并文本
combined_text = ""
for doc_path in document_paths:
text = self.document_processor.process_document(doc_path)
combined_text += text + "\n\n" # 2. 提取结构化信息
structured_info = self.info_extractor.extract_key_information(combined_text) # 3. 生成诊疗建议
diagnosis_advice = self.advisor.generate_advice(structured_info) # 4. 整合结果
result = {
"patient_info": structured_info,
"diagnosis_advice": diagnosis_advice,
"summary": self._generate_summary(structured_info, diagnosis_advice)
} # 5. 反思和验证结果
result = self._validate_and_reflect(result, combined_text) return result def _generate_summary(self, patient_info: Dict[str, Any], advice: Dict[str, Any]) -> str:
"""生成易读的摘要""" # 构建提示词
prompt = f"""
基于以下患者信息和诊疗建议,生成一段简洁的摘要,用通俗易懂的语言概括关键信息和建议。 患者信息:
{json.dumps(patient_info, ensure_ascii=False)} 诊疗建议:
{json.dumps(advice, ensure_ascii=False)} 请用200字左右生成摘要。
""" response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个医疗信息总结专家,能将复杂的医疗信息转化为通俗易懂的语言。"},
{"role": "user", "content": prompt}
]
) return response.choices[0].message.content def _validate_and_reflect(self, result: Dict[str, Any], original_text: str) -> Dict[str, Any]:
"""验证结果并进行反思改进""" # 构建验证提示词
validation_prompt = f"""
请验证以下从医疗文档中提取的信息是否准确、完整,并检查生成的诊疗建议是否合理。 原始文档文本:
{original_text[:1000]}... (已截断) 提取的结构化信息:
{json.dumps(result["patient_info"], ensure_ascii=False, indent=2)} 生成的诊疗建议:
{json.dumps(result["diagnosis_advice"], ensure_ascii=False, indent=2)} 请检查:
1. 是否有重要信息遗漏或错误?
2. 诊疗建议是否与患者情况相符?
3. 有无任何不合逻辑或不一致的地方? 如有问题,请指出并建议如何修正。
""" # 调用API进行验证
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个医疗信息验证专家,能够严格审查从医疗文档中提取的信息和生成的建议,确保其准确性和合理性。"},
{"role": "user", "content": validation_prompt}
]
) # 将验证结果添加到输出中
result["validation"] = {
"reflection": response.choices[0].message.content,
"timestamp": "反思时间:" + str(datetime.now())
} return result # 使用示例(模拟运行)
if __name__ == "__main__":
# 创建医疗AI代理
medical_agent = MedicalAIAgent() # 模拟文档路径(实际应用中需要真实路径)
document_paths = [
"patient_record.pdf",
"lab_results.jpg",
"prescription.txt"
] print("开始处理医疗文档...")
# 这里只是示例,实际运行需要真实文件
# result = medical_agent.process_medical_documents(document_paths) # 模拟一个结果进行展示
sample_result = {
"patient_info": {
"name": "张三",
"age": 45,
"gender": "男",
"id": "P12345",
"chief_complaint": "胸闷、气短3天",
"history": "高血压病史5年,服用缬沙坦片控制",
"examinations": "血压145/95mmHg,心电图显示窦性心律不齐",
"diagnosis": "1. 高血压 2. 疑似冠心病"
},
"diagnosis_advice": {
"analysis": "患者存在高血压控制不佳,伴有胸闷气短症状,需警惕冠心病可能。",
"further_examination": [
"心脏彩超检查",
"心肌酶谱检测",
"冠状动脉CT血管造影",
"运动心电图"
],
"treatment_options": [
"调整降压药物,控制血压在130/80mmHg以下",
"考虑加用β受体阻滞剂改善心律不齐",
"如确诊冠心病,可考虑抗血小板、他汀类药物治疗"
],
"lifestyle_suggestions": [
"限制钠盐摄入(<5g/天)",
"适量有氧运动(如散步),避免剧烈运动",
"戒烟限酒",
"规律作息,避免情绪激动"
],
"disclaimer": "本建议由AI辅助生成,仅供参考,不构成医疗建议。请咨询专业医生进行正式诊疗。"
},
"summary": "张三先生,45岁,近期出现胸闷、气短症状,伴有高血压控制不佳(145/95mmHg)和心律不齐情况。建议进行心脏相关检查以排除冠心病可能,同时调整降压方案,注意限盐控制饮食,进行适量运动,保持良好作息。请务必在专业医生指导下进行治疗。",
"validation": {
"reflection": "从提取的信息和建议来看,整体内容合理,符合医学临床实践。针对高血压伴胸闷症状的患者,冠心病的筛查是必要的。建议进一步完善生化检查如血脂、血糖等指标,这些是心血管疾病风险评估的重要参数,但在当前建议中未提及。同时,患者的用药史中提到缬沙坦,但未评估其依从性和剂量是否适当,这也是高血压控制不佳的可能原因之一。",
"timestamp": "反思时间:2023-08-15 10:23:45"
}
} print("\n最终结果:")
print(json.dumps(sample_result, ensure_ascii=False, indent=2))

结语:高级Prompt工程的未来展望

随着大语言模型能力的不断提升,构建具备推理与反思能力的高级Prompt已成为充分发挥LLM潜力的关键。本文介绍的四个关键原则—明确角色与任务、引导链式推理、加入反思机制和增强行动能力,为开发者提供了系统化的Prompt设计框架。

这些技术正在改变我们与AI系统的交互方式。未来的发展趋势包括:

  1. 多模态智能代理:结合图像、音频等多种输入形式,实现更全面的场景理解和决策
  2. 记忆增强代理:通过外部知识库和长期记忆机制,实现更连贯的对话和任务执行
  3. 自我完善系统:代理能够从经验中学习,自动优化自身的推理流程和反思能力
  4. 协作型智能网络:多个专业化代理协同工作,处理复杂任务流程

在实际应用中,高级Prompt设计需要注意以下几点:

  • 平衡指导与自由:提供足够的框架引导模型思考,但也留出创新空间
  • 迭代优化:通过分析模型输出,持续改进Prompt设计
  • 注重反馈机制:让模型能够接收和整合外部反馈,动态调整其行为

希望本文介绍的技术和理念能够帮助开发者构建更智能、更可靠的AI系统,让大语言模型真正成为人类的得力助手,而不仅仅是简单的问答工具。


构建具备推理与反思能力的高级 Prompt:LLM 智能代理设计指南的更多相关文章

  1. webpack构建具备版本管理能力的项目

    webpack是时下十分流行的编译和打包工具,它提供一种可扩展的loader的方式,简单的配置,便可以编译打包各类型的文件,包括js.css.image.font.html,以及各种预编译语言都不在话 ...

  2. make 与makefile(会不会写 makefile,从一个侧面说明了一个人是否具备完成大型工程的能力。)

    跟我一起写 Makefile /**/ 陈皓 (CSDN) 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉 ...

  3. Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇

    目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...

  4. 在 Windows 中为高级用户配置 IPv6 的指南

    在 Windows 中为高级用户配置 IPv6 的指南 适用于: Windows 10, version 1809Windows Server 2019, all versionsWindows Se ...

  5. Gemini.Workflow 双子工作流高级教程:数据库设计及各表作用说明

    整体数据库设计,可见这一篇:Gemini.Workflow 双子工作流高级教程:数据库-设计文档 这里对各数据表进行介绍: 工作流里的设计表并不多,核心只有以下8个: 下面按照流程的顺序来介绍一下表的 ...

  6. 测试系统工程师TSE需要具备的四项能力

    文/杨学明 如今,国内所有的研发型的公司都有测试部门,无论测试团队大小,都有测试组长,测试经理,测试工程师等头衔,但随着产品和业务的质量要求越来越高,产品的市场竞争越来越激烈,公司领导对产品测试的要求 ...

  7. 做SEO所要具备的四种能力

    1,不为失败找借口         既然我们选择了做SEO,那么发生网站被降权.被K是常常的事.当这样的情况发生时,大部分站长首先将责任推给百度机制,由于百度更新算法调整遭降权,不是由于他们的优化没有 ...

  8. .Net Core 商城微服务项目系列(二):使用Ocelot + Consul构建具备服务注册和发现功能的网关

    1.服务注册 在上一篇的鉴权和登录服务中分别通过NuGet引用Consul这个包,同时新增AppBuilderExtensions类: public static class AppBuilderEx ...

  9. 优秀技术Leader应具备的六项能力

    技术Leader是互联网公司中,战斗在一线的技术领导者,技术Leader们能力的强弱,决定着公司整个技术团队的战斗力,结合我之前管理上百人技术团队的经验,谈谈我心目中优秀技术Leader五个方面的能力 ...

  10. JavaScript高级---装饰者模式设计

    一.设计模式 javascript里面给我们提供了很多种设计模式: 工厂.桥.组合.门面.适配器.装饰者.享元.代理.观察者.命令.责任链 在前面我们实现了工厂模式和桥模式 工厂模式 : 核心:为了生 ...

随机推荐

  1. @autowired注解报错原因及解决办法

    @autowired 注入dao层的时候,标红报错,但不影响编译使用 按照严格的spring注解方式在dao层加入@Repository注解

  2. PPT-嵌入字体提示不可嵌入怎么办

    直接将不可嵌入的字体替换为可以嵌入的字体 开始->替换->替换字体

  3. 【练习回顾】dfs迷宫+路径打印

    很直接的dfs.递归+栈--不知道以后会不会生疏 进入一次dfs,相当于走一步,入栈:结束一次dfs,相当于这一步考虑结束,出栈 笑死,y1竟然是一个函数 突然发现写的有点槽,可以把dfs形式化为&q ...

  4. Ubuntu Nvidia driver驱动安装及卸载

    前言 当前英伟达下载的驱动不再是 .run 的 shell文件,所以有了新的文档,如下 Ubuntu Nvidia driver驱动安装(新) 当然如果你有 shell 文件,也可以继续使用本文档安装 ...

  5. Flask快速入门2

    六,Flask HTTP方法 Http协议是万维网中数据通信的基础.在该协议中定义了从指定URL检索数据的不同方法. 下表总结了不同的http方法: 序号 方法 描述 1 GET 以未加密的形式将数据 ...

  6. ORB算法介绍 Introduction to ORB (Oriented FAST and Rotated BRIEF)

    Introduction to ORB (Oriented FAST and Rotated BRIEF) 1. Introduction ORB(Oriented FAST and Rotated ...

  7. PII is hidden.

    使用 Microsoft.AspNetCore.Authentication.JwtBearer 做验证的时候报错如下: IDX10503: Signature validation failed. ...

  8. luaL_ref如何使用

    // main.lua中有个全局函数function gf() print("hello world")end// c++中处理void callgf(){ lua_getglob ...

  9. AQS的release(int)方法底层源码

    一.定义 release(int) 是 AQS(AbstractQueuedSynchronizer)中的一个核心方法,用于在独占模式下释放同步状态.如果释放成功,则会唤醒等待队列中的后继节点,使其有 ...

  10. 康谋分享 | aiSim5激光雷达LiDAR模型验证方法(二)

    aiSim中的LiDAR是一种基于光线追踪的传感器,能够模拟真实LiDAR发射的激光束,将会生成LAS v1.4标准格式的3D点云,包含了方位角.俯仰角和距离等. aiSim能够模拟LiDAR单态(M ...