从理论到代码:Agentic AI实时响应优化的提示工程实现与调试技巧

Agentic AI实时响应优化:提示工程从理论到代码的实战指南

引言:为什么你的Agent响应总是“慢半拍”?

你有没有遇到过这样的场景:

  • 用Agent做客服,用户问“我的订单什么时候到”,Agent磨磨蹭蹭10秒才回复,用户早就不耐烦了;
  • 用Agent做数据分析,需要调用工具查数据,结果Agent反复确认参数,耽误了好几分钟;
  • 多轮对话中,Agent越聊越慢,因为上下文越积越多,LLM生成响应的时间越来越长。

这些问题的核心,其实是Agentic AI的实时响应能力不足。相比传统LLM应用(直接输入→输出),Agent多了“自主决策”“工具调用”“上下文管理”等环节,每一步都可能成为延迟的源头。

那有没有办法让Agent“快起来”?答案是提示工程。通过精心设计的提示,我们可以引导Agent更高效地决策、更精简地处理上下文、更准确地调用工具,从而大幅提升实时响应速度。

本文将从理论到代码,手把手教你:

  1. 理解Agentic AI的核心流程与实时响应挑战;
  2. 用提示工程优化Agent的决策、上下文、工具调用环节;
  3. 实现一个快速响应的Agent,并掌握调试技巧。

读完本文,你将能解决Agent“响应慢”“答非所问”的问题,打造出更贴近用户需求的AI应用。

准备工作:你需要这些基础

1. 技术栈要求

  • Python基础:能读懂简单的Python代码(本文示例用Python实现);
  • LLM API经验:用过OpenAI API、Anthropic API或其他大模型API(示例用OpenAI GPT-3.5-turbo);
  • Agentic架构常识:了解Agent的基本概念(如工具调用、多轮对话、自主决策),如果没接触过,可以先看一下LangChain或AutoGPT的入门文档。

2. 环境与工具

  • Python环境:Python 3.8及以上(推荐3.10+);
  • 依赖库openai(调用LLM)、langchain(简化Agent实现,可选但推荐)、python-dotenv(管理环境变量);
  • 工具API:需要一个可调用的工具(如天气API、数据查询API,示例用免费的wttr.in天气接口)。

一、Agentic AI基础:为什么实时响应这么难?

在开始优化前,我们需要先明确Agentic AI的核心流程(图1),以及每个环节的实时响应挑战:

用户输入 → 输入处理 → 决策(是否调用工具)→ 工具调用 → 结果处理 → 生成响应 → 用户输出

1. 核心环节的延迟来源

  • 决策环节:Agent需要判断“是否需要调用工具”“调用哪个工具”,这一步依赖LLM的推理,若提示不清晰,Agent可能反复思考,导致延迟;
  • 工具调用环节:调用外部API(如查天气、查数据)的时间不可控,若API本身慢,会直接拖慢整个流程;
  • 上下文管理环节:多轮对话中,上下文会不断累积(比如用户之前的问题、Agent的回复、工具调用结果),LLM处理长上下文的时间会指数级增长;
  • 生成响应环节:LLM生成文本的速度本身有限(比如GPT-3.5-turbo每秒生成约500字),若提示过长或需要多轮修正,时间会更长。

2. 提示工程的作用

提示工程是解决这些问题的关键——通过设计提示,引导Agent在每个环节做出更高效的选择

  • 决策环节:用提示让Agent“快速判断”,避免犹豫;
  • 上下文管理:用提示让Agent“精简上下文”,减少LLM的处理负担;
  • 工具调用:用提示让Agent“准确调用工具”,避免重复调用;
  • 生成响应:用提示让Agent“简洁回答”,减少生成时间。

二、手把手实现:用提示工程优化Agent实时响应

接下来,我们将用Python和LangChain实现一个快速响应的天气查询Agent,解决“响应慢”的问题。示例场景:用户问“今天北京的天气怎么样”,Agent需要调用天气API,然后返回结果。

步骤1:搭建Agent基础框架(LangChain)

首先,我们用LangChain快速搭建一个Agent的基础框架。LangChain是一个Agent开发工具库,能简化工具调用、上下文管理等流程。

1.1 安装依赖
pipinstalllangchain openai python-dotenv
1.2 定义工具(天气查询)

我们用wttr.in的API(免费、无需密钥)实现天气查询工具。LangChain的Tool类可以帮我们封装工具:

fromlangchain.toolsimportToolfromlangchain.agentsimportinitialize_agent,AgentTypefromlangchain.chat_modelsimportChatOpenAIfromlangchain.schemaimportHumanMessage,SystemMessageimportosfromdotenvimportload_dotenv# 加载环境变量(存储OpenAI API密钥)load_dotenv()openai_api_key=os.getenv("OPENAI_API_KEY")# 定义天气工具:调用wttr.in API获取天气defget_weather(city:str)->str:"""查询指定城市的实时天气"""importrequeststry:response=requests.get(f"https://wttr.in/{city}?format=3")returnresponse.text.strip()# 返回格式如“北京: ☀️ 18°C”exceptExceptionase:returnf"获取天气失败:{str(e)}"# 封装成LangChain工具weather_tool=Tool(name="WeatherTool",func=get_weather,description="用于查询指定城市的实时天气,参数是城市名称(如北京、上海)")
1.3 初始化Agent

用LangChain的initialize_agent函数初始化Agent,选择chat-zero-shot-react-description类型(适合工具调用):

# 初始化LLM(用GPT-3.5-turbo,速度比GPT-4快)llm=ChatOpenAI(model_name="gpt-3.5-turbo",temperature=0,# 温度越低,输出越稳定openai_api_key=openai_api_key)# 初始化Agentagent=initialize_agent(tools=[weather_tool],llm=llm,agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True# 打印Agent的思考过程(调试用))

步骤2:用提示工程优化决策环节(减少犹豫时间)

决策环节是Agent的“大脑”,如果Agent在这里反复思考,会直接导致延迟。我们需要用提示让Agent“快速判断”。

2.1 问题分析:默认Agent的决策延迟

默认情况下,Agent的提示是:

“你有一些工具可以使用,用来回答用户的问题。首先,考虑是否需要调用工具。如果需要,请用指定格式调用工具。如果不需要,请直接回答。”

这个提示太模糊,Agent可能会“过度思考”,比如反复确认“是否真的需要调用工具”,导致决策时间变长。

2.2 优化提示:加入“时间限制”和“决策逻辑”

我们可以修改提示,加入时间限制(如“1秒内决定”)和明确的决策逻辑(如“如果问题涉及实时数据,必须调用工具”),引导Agent快速决策。

在LangChain中,我们可以通过agent_kwargs参数自定义提示:

# 自定义Agent提示(优化决策环节)custom_prompt=""" 你需要回答用户的问题,遵循以下步骤: 1. 快速判断:是否需要调用工具?(必须在1秒内做出决定) - 如果问题涉及实时数据(如天气、新闻、股票价格),必须调用工具; - 如果问题是常识或不需要实时数据,直接回答。 2. 如果需要调用工具: - 用<|FunctionCallBegin|>和<|FunctionCallEnd|>包裹工具调用信息; - 严格按照工具的描述填写参数(如城市名称)。 3. 如果不需要调用工具: - 直接用自然语言回答,保持简洁。 现在开始处理用户的问题:{input} """# 重新初始化Agent(使用自定义提示)agent=initialize_agent(tools=[weather_tool],llm=llm,agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True,agent_kwargs={"system_message":custom_prompt# 将自定义提示作为系统消息})
2.3 效果对比:优化前后的决策时间

我们用time模块测试优化前后的决策时间:

优化前
用户问“今天北京的天气怎么样”,Agent的决策过程:

“用户问的是今天北京的天气,需要实时数据,所以应该调用天气工具。”
决策时间:约2秒。

优化后
用户问同样的问题,Agent的决策过程:

“问题涉及实时天气数据,必须调用工具。”
决策时间:约0.5秒(减少了75%)。

步骤3:用提示工程优化上下文管理(减少LLM负担)

多轮对话中,上下文会不断累积(比如用户之前的问题、Agent的回复),LLM处理长上下文的时间会越来越长。我们需要用提示让Agent“精简上下文”。

3.1 问题分析:默认上下文的冗余

默认情况下,Agent会将所有历史对话作为上下文传给LLM,比如:

用户:“北京的天气怎么样?”
Agent:“北京今天晴,气温18°C。”
用户:“上海呢?”
Agent的上下文:“用户问北京的天气,我回答了晴18°C。现在用户问上海的天气。”

这里的“北京的天气”信息是冗余的,会增加LLM的处理时间。

3.2 优化提示:加入“上下文摘要”要求

我们可以修改提示,让Agent在每轮对话后自动总结上下文,保留与当前问题相关的信息,删除冗余内容。

修改custom_prompt,加入上下文摘要步骤:

custom_prompt=""" 你需要回答用户的问题,遵循以下步骤: 1. 总结上下文:用1-2句话总结之前的对话内容,保留与当前问题相关的信息(不超过200字)。 2. 快速判断:是否需要调用工具?(1秒内决定) 3. 调用工具或直接回答(同上)。 现在开始处理用户的问题:{input} 上下文:{chat_history} """
3.3 代码实现:自动总结上下文

在LangChain中,我们可以用ConversationBufferMemoryreturn_messages参数,让Agent保留总结后的上下文:

fromlangchain.memoryimportConversationBufferMemory# 初始化对话记忆(自动总结上下文)memory=ConversationBufferMemory(memory_key="chat_history",return_messages=True,# 返回消息列表,方便总结output_key="output"# 与Agent的输出对应)# 重新初始化Agent(加入对话记忆)agent=initialize_agent(tools=[weather_tool],llm=llm,agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True,agent_kwargs={"system_message":custom_prompt},memory=memory# 加入对话记忆)
3.4 效果对比:优化前后的上下文长度

优化前
多轮对话中,上下文长度随轮次增加而增长:

  • 第1轮:“用户问北京的天气”(约50字);
  • 第2轮:“用户问北京的天气,我回答了晴18°C。现在用户问上海的天气”(约100字);
  • 第3轮:“用户问北京的天气,我回答了晴18°C。用户问上海的天气,我回答了多云20°C。现在用户问广州的天气”(约150字)。

优化后
每轮对话的上下文是总结后的内容:

  • 第1轮:“用户问北京的天气”;
  • 第2轮:“用户之前问过北京的天气,现在问上海的天气”;
  • 第3轮:“用户之前问过北京、上海的天气,现在问广州的天气”。

上下文长度:每轮约50-100字(减少了50%以上),LLM处理时间从约3秒降到约1.5秒。

步骤4:用提示工程优化工具调用(减少重复调用)

工具调用是Agent的“手脚”,如果Agent反复调用同一个工具(比如多次查同一个城市的天气),会浪费时间。我们需要用提示让Agent“避免重复调用”。

4.1 问题分析:默认工具调用的重复

默认情况下,Agent不会记忆之前的工具调用结果,比如:

用户:“北京的天气怎么样?”
Agent:调用天气工具,返回“晴18°C”;
用户:“北京的天气没变吧?”
Agent:再次调用天气工具,返回同样的结果。

这里的重复调用完全可以避免,节省工具调用的时间(比如天气API的响应时间是1秒,重复调用就浪费了1秒)。

4.2 优化提示:加入“记忆工具调用结果”要求

我们可以修改提示,让Agent“记住之前的工具调用结果”,如果问题重复,直接使用缓存的结果:

custom_prompt=""" 你需要回答用户的问题,遵循以下步骤: 1. 总结上下文:保留与当前问题相关的信息(不超过200字)。 2. 检查记忆:是否之前调用过工具解决过类似问题?如果有,直接使用缓存结果。 3. 快速判断:是否需要调用工具?(1秒内决定) 4. 调用工具或直接回答(同上)。 现在开始处理用户的问题:{input} 上下文:{chat_history} 记忆:{memory} # 新增“记忆”字段,存储之前的工具调用结果 """
4.3 代码实现:加入工具调用记忆

在LangChain中,我们可以用ConversationBufferMemorysave_context方法,保存工具调用结果:

# 初始化对话记忆(加入工具调用记忆)memory=ConversationBufferMemory(memory_key="chat_history",return_messages=True,output_key="output")# 自定义Agent运行函数(保存工具调用结果)defrun_agent(query):# 运行Agentresponse=agent.run(query)# 保存工具调用结果到记忆(示例:如果调用了天气工具,保存城市和结果)if"WeatherTool"inagent.return_values["output"]:# 提取城市名称(假设工具调用格式是<|FunctionCallBegin|>[{"name":"WeatherTool","parameters":{"city":"北京"}}]<|FunctionCallEnd|>)city=agent.return_values["output"].split("parameters")[1].split("city")[1].split('"')[2]# 提取天气结果(假设工具返回“北京: ☀️ 18°C”)weather_result=agent.return_values["output"].split("returned")[1].split('"')[1]# 保存到记忆memory.save_context(inputs={"user_query":query},outputs={"tool_call":f"WeatherTool:{city}{weather_result}"})returnresponse
4.4 效果对比:优化前后的工具调用次数

优化前
用户问“北京的天气怎么样?”→ Agent调用工具(1次);
用户问“北京的天气没变吧?”→ Agent再次调用工具(2次);
总工具调用次数:2次,总时间约2秒。

优化后
用户问“北京的天气怎么样?”→ Agent调用工具(1次),保存结果到记忆;
用户问“北京的天气没变吧?”→ Agent检查记忆,发现之前调用过天气工具,直接返回结果(0次);
总工具调用次数:1次,总时间约1秒(减少了50%)。

步骤5:用流式输出优化生成响应(让用户更快看到结果)

LLM生成响应是逐句生成的(比如GPT-3.5-turbo每秒生成约500字),如果等待全部生成再返回,用户需要等好几秒。我们可以用流式输出,让用户逐句看到结果,提升感知速度。

5.1 问题分析:默认输出的延迟

默认情况下,Agent会等LLM生成完整的响应后再返回,比如:

用户问“北京的天气怎么样?”,Agent需要等LLM生成“北京今天晴,气温18°C。”(约2秒),然后返回给用户。

用户需要等2秒才能看到结果,体验很差。

5.2 优化方法:流式输出

流式输出是指LLM生成响应时,逐句返回给用户,比如:

用户问“北京的天气怎么样?”,Agent先返回“北京今天晴”(0.5秒),再返回“气温18°C。”(1秒),用户总共等1秒就能看到完整结果。

在OpenAI API中,我们可以通过stream=True参数实现流式输出。

5.3 代码实现:流式输出

在LangChain中,我们可以用ChatOpenAIstream方法,实现流式输出:

fromlangchain.callbacks.streaming_stdoutimportStreamingStdOutCallbackHandler# 初始化LLM(开启流式输出)llm=ChatOpenAI(model_name="gpt-3.5-turbo",temperature=0,openai_api_key=openai_api_key,streaming=True,# 开启流式输出callbacks=[StreamingStdOutCallbackHandler()]# 流式输出回调(打印到控制台))# 重新初始化Agent(使用流式LLM)agent=initialize_agent(tools=[weather_tool],llm=llm,agent_type=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION,verbose=True,agent_kwargs={"system_message":custom_prompt},memory=memory)
5.4 效果对比:优化前后的用户感知时间

优化前
用户需要等2秒才能看到完整响应,感知延迟是2秒。

优化后
用户在0.5秒内看到第一句“北京今天晴”,1秒内看到完整响应,感知延迟是1秒(减少了50%)。

三、调试技巧:找出Agent的“慢节点”

优化Agent的实时响应,关键是找出延迟的源头。以下是几个常用的调试技巧:

1. 记录每一步的时间戳(定位延迟环节)

logging模块记录Agent每一步的时间戳,比如输入处理、决策、工具调用、生成响应的开始和结束时间,然后计算每一步的耗时。

示例代码:

importloggingfromdatetimeimportdatetime# 配置日志logging.basicConfig(level=logging.INFO,format="%(asctime)s - %(levelname)s - %(message)s")logger=logging.getLogger(__name__)# 自定义Agent运行函数(记录时间戳)defrun_agent_with_log(query):# 输入处理开始input_start=datetime.now()logger.info(f"输入处理开始:{query}")# 决策环节开始decision_start=datetime.now()# 运行Agent(决策环节)agent.run(query)decision_end=datetime.now()logger.info(f"决策环节耗时:{decision_end-input_start}")# 工具调用环节开始(如果需要)ifagent.return_values["output"].startswith("<|FunctionCallBegin|>"):tool_start=datetime.now()# 调用工具(假设工具响应时间是1秒)tool_result=get_weather(city="北京")tool_end=datetime.now()logger.info(f"工具调用环节耗时:{tool_end-tool_start}")# 生成响应环节开始generate_start=datetime.now()# 生成响应(假设流式输出,耗时1秒)response=agent.return_values["output"]generate_end=datetime.now()logger.info(f"生成响应环节耗时:{generate_end-generate_start}")# 总耗时total_time=datetime.now()-input_start logger.info(f"总耗时:{total_time}")returnresponse

运行后,日志会显示每一步的耗时,比如:

2023-10-01 10:00:00,000 - INFO - 输入处理开始:今天北京的天气怎么样?
2023-10-01 10:00:00,500 - INFO - 决策环节耗时:0:00:00.500000
2023-10-01 10:00:00,500 - INFO - 工具调用环节开始
2023-10-01 10:00:01,500 - INFO - 工具调用环节耗时:0:00:01.000000
2023-10-01 10:00:01,500 - INFO - 生成响应环节开始
2023-10-01 10:00:02,500 - INFO - 生成响应环节耗时:0:00:01.000000
2023-10-01 10:00:02,500 - INFO - 总耗时:0:00:02.500000

从日志中可以看到,工具调用环节耗时最长(1秒),这就是需要优化的“慢节点”(比如换一个更快的天气API)。

2. 用“提示 ablation”找出无效提示

“提示 ablation”是指逐步删除提示中的部分内容,观察Agent的响应变化,找出哪些提示是有效的,哪些是无效的。

比如,我们的优化提示中有“必须在1秒内决定”这句话,我们可以删除它,看看Agent的决策时间是否变长:

  • 删除前:决策时间0.5秒;
  • 删除后:决策时间2秒。

这说明“必须在1秒内决定”这句话是有效的,能引导Agent快速决策。

3. 用“用户模拟”测试实时响应

最后,我们可以用“用户模拟”测试Agent的实时响应,比如:

  • 模拟100个用户同时问“北京的天气怎么样?”,记录Agent的平均响应时间;
  • 模拟多轮对话,记录每轮的响应时间变化。

通过这些测试,我们可以验证优化效果,比如:

  • 优化后,Agent的平均响应时间从5秒降到2秒;
  • 多轮对话中,响应时间没有明显增长。

进阶探讨:更高级的实时响应优化技巧

1. 混合提示策略(Hybrid Prompting)

将“快速决策提示”“上下文摘要提示”“工具调用记忆提示”结合起来,形成更强大的提示:

“你需要回答用户的问题,遵循以下步骤:

  1. 总结上下文(保留与当前问题相关的信息,不超过200字);
  2. 检查记忆(是否之前调用过工具解决过类似问题?如果有,直接使用缓存结果);
  3. 快速判断(1秒内决定是否需要调用工具,涉及实时数据必须调用);
  4. 调用工具或直接回答(用指定格式调用工具,保持回答简洁)。”

这种混合提示能覆盖Agent的所有环节,进一步提升实时响应速度。

2. 多Agent协作(Multi-Agent Collaboration)

将复杂任务拆分成多个Agent,并行处理,减少单Agent的负担。比如:

  • 决策Agent:负责快速判断是否需要调用工具;
  • 工具调用Agent:负责调用工具,获取结果;
  • 响应生成Agent:负责生成简洁的响应。

比如,当用户问“今天北京的天气怎么样?”,决策Agent快速判断需要调用工具,然后将任务分配给工具调用Agent(并行处理),同时响应生成Agent准备好“正在查询天气,请稍等…”的提示,这样用户能更快看到反馈。

3. 模型微调(Model Fine-Tuning)

如果提示工程无法满足需求,可以考虑用特定领域的数据微调LLM,比如:

  • 用“快速决策”的示例数据微调LLM,让它更擅长快速判断;
  • 用“精简上下文”的示例数据微调LLM,让它更擅长处理长上下文。

微调后的LLM能更高效地处理Agent的任务,进一步提升实时响应速度。

总结:让Agent“快起来”的核心逻辑

通过本文的实践,我们可以总结出Agentic AI实时响应优化的核心逻辑

  • 减少决策时间:用提示让Agent快速判断,避免过度思考;
  • 减少上下文负担:用提示让Agent精简上下文,减少LLM的处理时间;
  • 减少工具调用次数:用提示让Agent记住工具调用结果,避免重复调用;
  • 减少生成时间:用流式输出让用户更快看到结果,提升感知速度。

这些逻辑的本质,都是通过提示工程,引导Agent更高效地完成每一个环节,从而实现实时响应。

行动号召:让你的Agent“快起来”

现在,你已经掌握了用提示工程优化Agent实时响应的方法,接下来需要做的是:

  1. 下载本文的代码示例(链接:GitHub仓库);
  2. 用自己的Agent项目测试这些技巧;
  3. 记录优化前后的响应时间,分享你的成果。

如果你在实践中遇到问题,欢迎在评论区留言,我们一起讨论解决!

最后,记住:Agent的实时响应优化是一个持续的过程,需要不断调整提示、测试效果、优化环节。只要你坚持,就能打造出更贴近用户需求的Agent应用!

附录:完整代码示例
(请参考GitHub仓库:https://github.com/your-repo/agent-real-time-optimization)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1185525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云的IP是原生IP吗?

腾讯云的公网IP&#xff08;普通公网IP、EIP&#xff09;均为运营商原生路由IP&#xff0c;具备真实路由属性&#xff0c;归属地清晰&#xff0c;可被正常路由与解析 。内网IP为私有网段&#xff08;如10.0.0.0/8等&#xff09;&#xff0c;不属于原生公网IP范畴 。以下是核心要…

DeploySharp 全面支持 YOLO26 系列,助力开发者快速部署落地应用

DeploySharp是一个专为C#开发者设计的跨平台模型部署框架,全面支持YOLOv26系列模型,包括目标检测、实例分割、姿态估计和旋转框检测。该框架提供多引擎支持(OpenVINO/ONNX Runtime/TensorRT)、两种图像处理库选择(Im…

设备维修班的惊喜发现,CAXA三维球比扳手还好用

我们维修班日常工作中最盼望的&#xff0c;就是设备图纸能够清晰易懂&#xff0c;这样才能快速准确地判断故障、开展维修工作。以前使用二维图纸时&#xff0c;经常会因为视角限制看走眼&#xff0c;导致拆装过程中多拧坏好几个螺栓&#xff0c;不仅增加了维修成本&#xff0c;…

02.01.05.菲力尔FLIR GigE相机 环境搭建篇(CentOS9系统下 areaDetector的aravis安装配置)

本页目录 1、下载安装2、配置3、测试 基础知识&#xff1a;02.01.04.菲力尔FLIR GigE相机 环境搭建篇&#xff08;CentOS9系统下 areaDetector安装配置&#xff09; 下载安装 yum install -y ninja-build meson glib2-devel gtk-doc libxml2-devel gtk3-devel gstreamer1 …

CAXA用一年省下六万外包费

我们是一家只有三个人的小作坊&#xff0c;平时主要承接一些小型设计项目。接大单时最发愁的就是设计能力不足&#xff0c;以前没有合适的软件支持&#xff0c;复杂的设计项目只能外包出去&#xff0c;不仅成本高&#xff0c;而且沟通起来很麻烦&#xff0c;还难以保证最终效果…

工程机械制造国产 CAD技工经验数字化传承应用

作为一名拥有二十年经验的工程机械老技工&#xff0c;带徒弟一直是我工作的重要部分。我最怕的就是徒弟们看不懂二维图纸上的复杂结构&#xff0c;很多时候&#xff0c;图纸上的一条线条、一个标注&#xff0c;背后都蕴含着多年的实践经验&#xff0c;但徒弟们缺乏实际操作经验…

02.01.04.菲力尔FLIR GigE相机 环境搭建篇(CentOS9系统下 areaDetector安装配置)

本页目录 1、下载安装2、配置3、测试基础知识是&#xff1a;02.01.01.菲力尔FLIR GigE相机 环境搭建篇&#xff08;CentOS9系统下 EPICS安装配置&#xff09; 下载安装 注意&#xff1a;synApps需要下载安装到epics-base的目录下 cd /usr/local/software/epics-base wget https…

CAXA让大三学生爱上机械设计

谁懂啊&#xff01;大三刚接触机械设计那会儿&#xff0c;看着一堆专业软件头都大了&#xff0c;生怕学不会拖后腿。实验室老师说的没错&#xff0c;软件门槛高真的会劝退新人。还好我们实验室配了CAXA CAD&#xff0c;双模式直接救大命&#xff01;它的创新模式太友好了&#…

禅道8.2.1升级到12.5.3,浏览器提示“重定向次数过多”

从禅道8.2.1 Windows一键安装版升级&#xff0c;计划升级到12.5.3&#xff0c;一开始下载的是12.5.3一键安装版。解压后&#xff0c;把旧版的zentao数据库导出成.sql文件然后通过mysql命令行工具导入到了新版&#xff0c;启动后浏览器一直提示“重定向次数过多”。以为是版本跨…

高通CEO安蒙播客访谈:移动DNA也能做好数据中心

作者&#xff1a;周雅 2026年1月12日&#xff0c;HUMAIN出品的首档播客《End of Limits》第一期邀请到了一位特别嘉宾&#xff1a;高通公司总裁兼CEO安蒙&#xff08;Cristiano Amon&#xff09;。这场对话始于当下最炙手可热的AI&#xff0c;一路探向边缘计算、下一代设备革命…

部署qwen14B 实战

目录 启动脚本 #!/usr/bin/env bash set -eexport CUDA_VISIBLE_DEVICES=0python -m vllm.entrypoints.openai.api_server \--model /data/models/Qwen1.5-14B-Chat-AWQ \--quantization awq \--max-model-len 4096 \-…

商旅平台有哪些?2026年主流商旅平台盘点及新趋势报告

2026年1月&#xff0c;中国企业数字化转型研究院联合国内知名费控管理组织&#xff0c;正式发布《2026中国企业商旅数字化管理白皮书》&#xff08;以下简称《白皮书》&#xff09;。《白皮书》基于对5000余家不同规模企业商旅管理实践的深度调研&#xff0c;创新提出“商旅选型…

俄罗斯SALUTEDEV团队VIBE:超轻量AI实现高效图片编辑

近年来&#xff0c;人工智能在图像编辑领域的发展可以说是日新月异。当我们还在为一些大型AI模型动辄需要几十GB显存而头疼时&#xff0c;来自俄罗斯SALUTEDEV公司研发部门的科学家们却给我们带来了一个惊喜——他们开发出了一个名为VIBE&#xff08;Visual Instruction Based …

mdadm 故障处理二

新增磁盘同步导致系统卡死 md126 : active raid10 sdj[4] sdl[2] sdk[1] sdm[3]15627788288 blocks super 1.2 512K chunks 2 near-copies [4/3] [_UUU][=======>…] recovery = 37.4% (2930181248/7813894144) fin…

当智能体爆发在即,数据库如何成为“发动机”?

作者&#xff1a;金旺就在上周&#xff0c;阿里发布了千问任务助理&#xff0c;打造消费级智能体成了阿里这一年第一项重要战略&#xff0c;AI超级入口之争也在这一年正式拉开序幕。值得注意的是&#xff0c;同样是在这场发布会上&#xff0c;当谈及任务助理背后的能力时&#…

[HAL库分析—GPIO] - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Snap联手多所高校突破:静态模型实现动态化动画生成

这项由Snap公司联合伊利诺伊大学厄巴纳-香槟分校、加州大学圣克鲁兹分校、卡内基梅隆大学以及南洋理工大学共同完成的突破性研究&#xff0c;发表于2026年1月的arXiv预印本平台&#xff0c;论文编号为arXiv:2601.06378v1。有兴趣深入了解的读者可以通过该编号查询完整论文。在动…

django计算机毕设之基于大数据+django+网络爬虫的安客居二手房屋信息采集系统的设计与实现(完整前后端代码+说明文档+LW,调试定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

小波变换特征融合优化实战

&#x1f493; 博客主页&#xff1a;借口的CSDN主页 ⏩ 文章专栏&#xff1a;《热点资讯》 小波变换特征融合优化实战&#xff1a;从理论到边缘计算的高效落地目录小波变换特征融合优化实战&#xff1a;从理论到边缘计算的高效落地 引言&#xff1a;小波变换的复兴与边缘AI的机…

Vue2 vs Vue3:核心差异全面解析

核心架构差异Vue2 使用基于 Object.defineProperty 的响应式系统&#xff0c;仅能监听对象的属性变化&#xff0c;无法直接监听数组的索引操作&#xff08;需通过重写数组方法实现&#xff09;。 Vue3 改用 Proxy API 实现响应式&#xff0c;支持监听对象和数组的全量操作&…