当前位置: 首页 > news >正文

OpenAI Agents SDK 中文文档 中文教程 (5)

 英文文档原文详见 OpenAI Agents SDKhttps://openai.github.io/openai-agents-python/

本文是OpenAI-agents-sdk-python使用翻译软件翻译后的中文文档/教程。分多个帖子发布,帖子的目录如下:

(1) OpenAI 代理 SDK, 介绍及快速入门

(2)OpenAI agents sdk, agents,运行agents,结果,流,工具,交接

(3) OpenAi agents sdk, 跟踪,上下文管理,护栏

(4) Openai agents sdk, 编排多个代理,模型,配置SDK

(5)(6)..等等,后面的都放到openai agents sdk的这个专栏https://blog.csdn.net/wtsolutions/category_12916751.html里面了,大家可以到专栏里面看到所有的目录,欢迎订阅这个专栏。


目录

代理模块

set_default_openai_key

set_default_openai_client

set_default_openai_api

set_tracing_export_api_key

set_tracing_disabled

set_trace_processors

enable_verbose_stdout_logging

Agents

代理 数据类

name 实例属性

instructions 类-属性 instance-attribute

handoff_description 类属性 instance-attribute

handoffs 类-attribute 实例-属性

model 类-属性 instance-attribute

model_settings 类属性实例属性

tools 类-属性 instance-attribute

input_guardrails 类属性实例属性

output_guardrails 类属性 instance-attribute

output_type 类属性 instance-attribute

hooks 类属性 instance-attribute

克隆

as_tool

get_system_prompt async

Runner

跑步者

Run async 类方法

run_sync 类方法

run_streamed classmethod

RunConfig dataclass

model class-attribute instance-attribute

model_provider class-attribute instance-attribute

model_settings class-attribute instance-attribute

handoff_input_filter class-attribute instance-attribute

input_guardrails class-attribute instance-attribute

output_guardrails class-attribute instance-attribute

tracing_disabled class-attribute instance-attribute

trace_include_sensitive_data 类属性 instance-attribute

workflow_name 类属性 instance-attribute

trace_id 类属性 instance-attribute

group_id 类属性实例属性

trace_metadata 类属性实例属性


代理模块

set_default_openai_key

set_default_openai_key(key: str, use_for_tracing: bool = True
) -> None

设置用于 LLM 请求的默认 OpenAI API 密钥(以及可选的 tracing())。这是 仅当尚未设置 OPENAI_API_KEY 环境变量时才需要。

如果提供,将使用此键而不是 OPENAI_API_KEY 环境变量。

参数:

名字类型描述违约
keystr

要使用的 OpenAI 密钥。

必填
use_for_tracingbool

是否也使用此 key 向 OpenAI 发送跟踪。默认为 True 如果为 False,则需要设置 OPENAI_API_KEY 环境变量或调用 set_tracing_export_api_key() 替换为要用于跟踪的 API 密钥。

True
源码 src/agents/__init__.py
 

set_default_openai_client

set_default_openai_client(client: AsyncOpenAI, use_for_tracing: bool = True
) -> None

设置用于 LLM 请求和/或跟踪的默认 OpenAI 客户端。如果提供,则此 client 而不是默认的 OpenAI 客户端。

参数:

名字类型描述违约
clientAsyncOpenAI

要使用的 OpenAI 客户端。

必填
use_for_tracingbool

是否使用此客户端的 API 密钥上传跟踪。如果为 False,则 您需要设置 OPENAI_API_KEY 环境变量或调用 set_tracing_export_api_key() 替换为要用于跟踪的 API 密钥。

True
源码 src/agents/__init__.py
 

set_default_openai_api

set_default_openai_api(api: Literal["chat_completions", "responses"],
) -> None

设置用于 OpenAI LLM 请求的默认 API。默认情况下,我们将使用响应 API 但你可以将其设置为改用聊天补全 API。

源码 src/agents/__init__.py
 

set_tracing_export_api_key

set_tracing_export_api_key(api_key: str) -> None

设置后端导出器的 OpenAI API 密钥。

源码 src/agents/tracing/__init__.py
 

set_tracing_disabled

set_tracing_disabled(disabled: bool) -> None

设置是否全局禁用跟踪。

源码 src/agents/tracing/__init__.py
 

set_trace_processors

set_trace_processors(processors: list[TracingProcessor],
) -> None

设置跟踪处理器列表。这将替换当前的处理器列表。

源码 src/agents/tracing/__init__.py
 

enable_verbose_stdout_logging

enable_verbose_stdout_logging()

启用对 stdout 的详细日志记录。这对于调试很有用。

源码 src/agents/__init__.py
 

Agents

代理 数据类

基地:Generic[TContext]

代理是一种 AI 模型,配置了说明、工具、护栏、交接等。

我们强烈建议传递 ,这是代理的 “system prompt”。在 此外,您还可以将 ,这是代理的人类可读描述,用于 在 Tools/Handoffs 中使用代理时。instructionsdescription

代理在上下文类型上是通用的。上下文是您创建的 (可变) 对象。是的 传递给工具函数、交接、护栏等。

源码 src/agents/agent.py
 
name 实例属性
name: str

代理的名称。

instructions 类-属性 instance-attribute
instructions: (str| Callable[[RunContextWrapper[TContext], Agent[TContext]],MaybeAwaitable[str],]| None
) = None

代理的说明。当这个 agent 是 时,会作为 “system prompt” 调用。描述代理应执行的作以及它的响应方式。

可以是字符串,也可以是为代理动态生成指令的函数。如果 您提供了一个函数,它将使用 Context 和 Agent 实例调用。它必须 返回一个字符串。

handoff_description 类属性 instance-attribute
handoff_description: str | None = None

代理的描述。当代理用作切换时,会使用此 URL,以便 LLM 知道它的作用以及何时调用它。

handoffs 类-attribute 实例-属性
handoffs: list[Agent[Any] | Handoff[TContext]] = field(default_factory=list
)

Handoff 是代理可以委派给的子代理。您可以提供 handoffs 列表, 代理可以选择委托给他们(如果相关)。允许分离关注点和 模块性。

model 类-属性 instance-attribute
model: str | Model | None = None

调用 LLM 时要使用的模型实现。

默认情况下,如果未设置,代理将使用 中配置的默认模型。model_settings.DEFAULT_MODEL

model_settings 类属性实例属性
model_settings: ModelSettings = field(default_factory=ModelSettings
)

配置特定于模型的优化参数(例如 temperature、top_p)。

tools 类-属性 instance-attribute
tools: list[Tool] = field(default_factory=list)

代理可以使用的工具列表。

input_guardrails 类属性实例属性
input_guardrails: list[InputGuardrail[TContext]] = field(default_factory=list
)

在生成 响应。仅当代理是链中的第一个代理时,才运行。

output_guardrails 类属性 instance-attribute
output_guardrails: list[OutputGuardrail[TContext]] = field(default_factory=list
)

生成响应后,对代理的最终输出运行的检查列表。 仅当代理生成最终输出时运行。

output_type 类属性 instance-attribute
output_type: type[Any] | None = None

输出对象的类型。如果未提供,则输出将为 。str

hooks 类属性 instance-attribute
hooks: AgentHooks[TContext] | None = None

一个类,用于接收此代理的各种生命周期事件的回调。

克隆
clone(**kwargs: Any) -> Agent[TContext]

创建代理的副本,并更改给定的参数。例如,您可以执行以下作:

new_agent = agent.clone(instructions="New instructions")

源码 src/agents/agent.py
 
as_tool
as_tool(tool_name: str | None,tool_description: str | None,custom_output_extractor: Callable[[RunResult], Awaitable[str]]| None = None,
) -> Tool

将此代理转换为可由其他代理调用的工具。

这与 handoffs 在两个方面不同: 1. 在交接中,新座席会收到对话历史记录。在此工具中,新代理 接收生成的 Input。 2. 在交接中,新座席接管对话。在此工具中,新代理是 作为工具调用,并且对话由原始代理继续。

参数:

名字类型描述违约
tool_namestr | None

工具的名称。如果未提供,将使用代理的名称。

必填
tool_descriptionstr | None

工具的描述,应说明它的作用以及 何时使用它。

必填
custom_output_extractorCallable[[RunResult], Awaitable[str]] | None

从代理中提取输出的函数。如果不是 ,则将使用来自代理的最后一条消息。

None
源码 src/agents/agent.py
get_system_prompt async
get_system_prompt(run_context: RunContextWrapper[TContext],
) -> str | None

获取代理的系统提示符。

源码 src/agents/agent.py
 

Runner

跑步者

源码src/agents/run.py
Run async 类方法
run(starting_agent: Agent[TContext],input: str | list[TResponseInputItem],*,context: TContext | None = None,max_turns: int = DEFAULT_MAX_TURNS,hooks: RunHooks[TContext] | None = None,run_config: RunConfig | None = None,
) -> RunResult

从给定代理开始运行工作流程。代理将循环运行,直到最终 output 生成。循环运行如下: 1. 使用给定的输入调用代理。 2. 如果有最终输出(即代理生成 type 为 的东西),则循环终止。 3. 如果有切换,我们将使用新代理再次运行循环。 4. 否则,我们将运行工具调用(如果有),然后重新运行循环。agent.output_type

在两种情况下,代理可能会引发异常: 1. 如果超出max_turns,则会引发 MaxTurnsExceeded 异常。 2. 如果触发了护栏绊线,则会引发 GuardrailTripwireTriggered 异常。

请注意,仅运行第一个代理的输入护栏。

参数:

名字类型描述违约
starting_agentAgent[TContext]

要运行的启动代理。

必填
inputstr | list[TResponseInputItem]

代理的初始输入。您可以为用户消息传递单个字符串 或输入项列表。

必填
contextTContext | None

用于运行代理的上下文。

None
max_turnsint

运行代理的最大轮次。一个转弯定义为 1 AI 调用(包括可能发生的任何工具调用)。

DEFAULT_MAX_TURNS
hooksRunHooks[TContext] | None

一个对象,用于接收各种生命周期事件的回调。

None
run_configRunConfig | None

整个代理运行的全局设置。

None

返回:

类型描述
RunResult

包含所有输入、护栏结果和最后一个

RunResult

代理。代理可能会执行切换,因此我们不知道输出的具体类型。

源码src/agents/run.py
run_sync 类方法
run_sync(starting_agent: Agent[TContext],input: str | list[TResponseInputItem],*,context: TContext | None = None,max_turns: int = DEFAULT_MAX_TURNS,hooks: RunHooks[TContext] | None = None,run_config: RunConfig | None = None,
) -> RunResult

从给定代理开始同步运行工作流程。请注意,这只是包装了方法,因此如果已经存在一个事件循环(例如,在 async 中 函数,或者在 Jupyter 笔记本或异步上下文(如 FastAPI)中)。对于这些情况,请使用 方法。runrun

代理将在循环中运行,直到生成最终输出。循环运行如下: 1. 使用给定的输入调用代理。 2. 如果有最终输出(即代理生成 type 为 的东西),则循环终止。 3. 如果有切换,我们将使用新代理再次运行循环。 4. 否则,我们将运行工具调用(如果有),然后重新运行循环。agent.output_type

在两种情况下,代理可能会引发异常: 1. 如果超出max_turns,则会引发 MaxTurnsExceeded 异常。 2. 如果触发了护栏绊线,则会引发 GuardrailTripwireTriggered 异常。

请注意,仅运行第一个代理的输入护栏。

参数:

名字类型描述违约
starting_agentAgent[TContext]

要运行的启动代理。

必填
inputstr | list[TResponseInputItem]

代理的初始输入。您可以为用户消息传递单个字符串 或输入项列表。

必填
contextTContext | None

用于运行代理的上下文。

None
max_turnsint

运行代理的最大轮次。一个转弯定义为 1 AI 调用(包括可能发生的任何工具调用)。

DEFAULT_MAX_TURNS
hooksRunHooks[TContext] | None

一个对象,用于接收各种生命周期事件的回调。

None
run_configRunConfig | None

整个代理运行的全局设置。

None

返回:

类型描述
RunResult

包含所有输入、护栏结果和最后一个

RunResult

代理。代理可能会执行切换,因此我们不知道输出的具体类型。

源码src/agents/run.py
 
run_streamed 类方法
run_streamed(starting_agent: Agent[TContext],input: str | list[TResponseInputItem],context: TContext | None = None,max_turns: int = DEFAULT_MAX_TURNS,hooks: RunHooks[TContext] | None = None,run_config: RunConfig | None = None,
) -> RunResultStreaming

在流式处理模式下从给定代理运行工作流。返回的 result 对象 包含可用于在生成语义事件时对其进行流式处理的方法。

代理将在循环中运行,直到生成最终输出。循环运行如下: 1. 使用给定的输入调用代理。 2. 如果有最终输出(即代理生成 type 为 的东西),则循环终止。 3. 如果有切换,我们将使用新代理再次运行循环。 4. 否则,我们将运行工具调用(如果有),然后重新运行循环。agent.output_type

在两种情况下,代理可能会引发异常: 1. 如果超出max_turns,则会引发 MaxTurnsExceeded 异常。 2. 如果触发了护栏绊线,则会引发 GuardrailTripwireTriggered 异常。

请注意,仅运行第一个代理的输入护栏。

参数:

名字类型描述违约
starting_agentAgent[TContext]

要运行的启动代理。

必填
inputstr | list[TResponseInputItem]

代理的初始输入。您可以为用户消息传递单个字符串 或输入项列表。

必填
contextTContext | None

用于运行代理的上下文。

None
max_turnsint

运行代理的最大轮次。一个转弯定义为 1 AI 调用(包括可能发生的任何工具调用)。

DEFAULT_MAX_TURNS
hooksRunHooks[TContext] | None

一个对象,用于接收各种生命周期事件的回调。

None
run_configRunConfig | None

整个代理运行的全局设置。

None

返回:

类型描述
RunResultStreaming

一个 result 对象,其中包含有关运行的数据,以及用于流式传输事件的方法。

源码src/agents/run.py

RunConfig 数据类

配置整个代理程序运行的设置。

源码src/agents/run.py
 
model 类-属性 instance-attribute
model: str | Model | None = None

用于整个代理运行的模型。如果设置,将覆盖在每个 代理。下面传入的 model_provider 必须能够解析此模型名称。

model_provider 类属性实例属性
model_provider: ModelProvider = field(default_factory=OpenAIProvider
)

查找字符串模型名称时使用的模型提供程序。默认为 OpenAI。

model_settings 类属性实例属性
model_settings: ModelSettings | None = None

配置全局模型设置。任何非 null 值都将覆盖特定于代理的模型 设置。

handoff_input_filter 类属性实例属性
handoff_input_filter: HandoffInputFilter | None = None

应用于所有 handoff 的全局输入过滤器。如果已设置,则 将优先。输入过滤器允许您编辑发送到新 代理。有关更多详细信息,请参阅 中的文档。Handoff.input_filterHandoff.input_filter

input_guardrails 类属性实例属性
input_guardrails: list[InputGuardrail[Any]] | None = None

要在初始运行输入上运行的输入护栏列表。

output_guardrails 类属性 instance-attribute
output_guardrails: list[OutputGuardrail[Any]] | None = None

要在运行的最终输出上运行的输出护栏列表。

tracing_disabled 类属性 instance-attribute
tracing_disabled: bool = False

是否为代理运行禁用跟踪。如果禁用,我们将不会跟踪代理运行。

trace_include_sensitive_data 类属性 instance-attribute
trace_include_sensitive_data: bool = True

我们是否包含可能敏感的数据(例如:工具调用的输入/输出或 LLM 代)的 Trace 中。如果为 False,我们仍将为这些事件创建 span,但 敏感数据将不包括在内。

workflow_name 类属性 instance-attribute
workflow_name: str = 'Agent workflow'

运行的名称,用于跟踪。应该是运行的逻辑名称,例如 “代码生成工作流”或“客户支持代理”。

trace_id 类属性 instance-attribute
trace_id: str | None = None

用于跟踪的自定义跟踪 ID。如果未提供,我们将生成新的跟踪 ID。

group_id 类属性实例属性
group_id: str | None = None

用于跟踪的分组标识符,用于链接同一对话中的多个跟踪 或过程。例如,您可以使用聊天会话 ID。

trace_metadata 类属性实例属性
trace_metadata: dict[str, Any] | None = None

要包含在跟踪中的其他元数据的可选字典。

相关文章:

OpenAI Agents SDK 中文文档 中文教程 (5)

英文文档原文详见 OpenAI Agents SDKhttps://openai.github.io/openai-agents-python/ 本文是OpenAI-agents-sdk-python使用翻译软件翻译后的中文文档/教程。分多个帖子发布,帖子的目录如下: (1) OpenAI 代理 SDK, 介绍及快速入门 (2)Open…...

如何处理PHP中的文件上传错误

如何处理PHP中的文件上传错误 在Web开发中,文件上传是一个常见的功能需求。然而,文件上传过程中可能会遇到各种错误,如文件大小超出限制、文件类型不被允许、上传过程中断等。为了确保用户能够顺利上传文件,并且开发者能够有效地…...

mac安装python没有环境变量怎么办?zsh: command not found: python

在mac电脑上,下载Python安装包进行安装之后,在终端中,输入python提示: zsh: command not found: python 一、原因分析 首先,这个问题不是因为python没有安装成功的原因,是因为python安装的时候,没有为我们添加环境变量导致的,所以我们只需要,在.zshrc配置文件中加上环…...

湿大气校正效应

目的 修正由于大气中的水汽对雷达波传播速度的影响,以提高海面高度测量的准确性,有时候也叫做对流层校正。水汽的时空变化复杂,难以直接通过气象模型准确预测。水汽的折射作用使雷达信号的传播速度减慢,从而导致测量的海面高度虚增…...

算法系列之回溯算法求解数独及所有可能解

有没有对数独感兴趣的朋友呢?数独作为一款经典的逻辑游戏,其目标是在一个9x9的方格中填入数字1至9,确保每一行、每一列以及每一个3x3的子网格中都包含这些数字且不重复。尽管数独的规则看似简单,但编写一个能够自动求解数独的程序…...

动态路径规划——01背包问题讲解和通过滚动数组优化

如果没有动态路径规划基础的兄弟可以出去了,这个题目有两个问题 第一问讲解: 1.定义状态表示 刚开始我做的时候根据我的经验定义了一个状态表示dp[i]表示从1到i个物品中选择的最大价值,但是这个状态表示有一个明显的问题,我怎么知…...

蓝队基本技能 web入侵指南 日志分析 后门查杀 流量分析

前言 为了赶工我是没学过红队的,首先我们要做的是 1、拿到用户给的web的时候 要先知道 web的源码 服务器 中间件 数据库这些信息 2、知道web日志放在哪里 会一些基本的分析 3、webshell查杀的基本技能 4、会分析基本的工具链 会写报告 .NET IIS 配置…...

docker基本应用和相关指令

文章目录 概要镜像管理容器操作网络管理数据卷管理其他常用指令典型场景示例小结 概要 Docker的命令通常分为几个大类,比如镜像管理(images)、容器管理(containers)、网络(network)、数据卷&…...

Django REST Framework中的序列化器类和视图类

序列化器类 一、Serializer序列化类 Serializer是DRF的序列化器基类,提供基本功能,使用Serializer类需要自己定义字段名称和类型。 BookSerializer(Serializer):name serializers.CharField()price serlializers.IntegerField()date serlializers.…...

模拟人生4大型MOD整合包3000+

存档介绍 (懒人萌新必备) 游戏内全面的人物美化、房屋改造、地图美化 美化人物250个(颜值在线,均搭配八套服饰) 全地图房屋改造(住宅、公寓、公用/商业地段等) 游戏内22张地图均已美化替换 存档…...

算法基础 -- Brian Kernighan 算法初识

Brian Kernighan 算法:利用 x & (x - 1) 逐步清除最低位的 1 1. 算法原理 x & (x - 1) 这个操作的作用是每次清除 x 的最低位的 1。由于 二进制的减法 会影响最低的 1,我们可以利用这一特性不断去除 1,直到 x 变为 0,从…...

基于Uniapp开发tab选项卡/标签栏前端组件

在开发一些业务场景时候&#xff0c;可能需要切换标签栏来展示不同的信息列表。 为此开发了一个Uniapp组件&#xff08;myTab&#xff09;&#xff0c;下面为组件的展示效果&#xff1a; 案例代码&#xff1a; <template><view class"content"><myt…...

双向广搜

从两侧同时展开,那测数据少就从哪侧展,两者展开结果出现一样的,返回答案 127. 单词接龙 - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int ladderLength(string beginWord, string endWord, vector<string>& wordList) {unordered_set<stri…...

2024下半年真题 系统架构设计师 论文写作 答案解析

系统架构设计师第二版VIP课程https://edu.csdn.net/course/detail/40283 试题一 论软件维护及其应用 请围绕“论软件维护及其应用”论题&#xff0c;依次从以下三个方面进行论述。 1.概要叙述你参与分析设计的软件项目以及你在其中所承担的主要工作。 2.请介绍软件维护的内…...

【VSCODE 插件 可视化】:SVG 编辑插件 SVG Editor

插件下载 svgeditor 创建文件 Windows/Linux 快捷键 Ctrl Shift P 打开VSCODE 命令面板查找 New File With Svg Editor 编辑文件 保存文件 打开文件以继续编辑 CG 选中多个&#xff1a;shift单击没找到横向分布功能无法用键盘微调位置...

go中实现子模块调用main包中函数的方法

你提到的“import cycle not allowed”错误是 Go 语言中一个常见的问题&#xff0c;表示在包的导入中存在循环依赖。在 Go 中&#xff0c;一个包不能直接或间接导入自己&#xff0c;否则就会报这个错误。 在你提到的第二个例子中&#xff0c;main 包和 submodule 包相互导入&a…...

VUE的脚手架搭建引入类库

VUE的小白脚手架搭建 真的好久好久自己没有发布自己博客了,对于一直在做后端开发的我 ,由于社会卷啊卷只好学习下怎么搭建前端,一起学习成长吧~哈哈哈(最终目的,能够懂并简易开发) 文章目录 VUE的小白脚手架搭建1.下载node.js2.安装vue脚手架3.创建一个项目4.代码规范约束配置(…...

java maven依赖传递以及版本冲突

文章目录 基本背景基本排查冲突工具依赖传递&#xff1a;很多依赖到底使用哪个版本的依赖dependencyManagement 作用exclusions其他问题 基本背景 你使用 java&#xff0c;使用 maven pom.xml 管理你的依赖包 可能常常遇到依赖版本冲突&#xff0c;或者很多依赖包&#xff0c;…...

【3-14 STC-pair超级详细的解说】

1. pair的定义和结构 • 基础概念&#xff1a;考察对std::pair模板类的理解&#xff0c;包括其头文件&#xff08;<utility>&#xff09;和基本语法&#xff08;pair<T1, T2>&#xff09;。 • 成员访问&#xff1a;测试对first和second成员变量的使用能力。 • 构…...

Python开发合并多个PDF文件

前言 在我们的工作中&#xff0c;可能有以下场景需要用到合并多个PDF&#xff1a; 文档归档&#xff1a;在企业或组织中&#xff0c;常常需要将相关的文档&#xff08;如合同、报告、发票等&#xff09;合并为一个PDF文件&#xff0c;以便于归档和管理。 报告生成&#xff1a;在…...

基于SpringBoot + Vue 的房屋租赁系统

基于springboot的房屋租赁管理系统-带万字文档 SpringBootVue房屋租赁管理系统 送文档 本项目有前台和后台两部分、多角色模块、不同角色权限不一样 共分三种角色&#xff1a;用户、管理员、房东 管理员&#xff1a;个人中心、房屋类型管理、房屋信息管理、预约看房管理、合…...

Qt QML实现弹球消砖块小游戏

前言 弹球消砖块游戏想必大家都玩过&#xff0c;很简单的小游戏&#xff0c;通过移动挡板反弹下落的小球&#xff0c;然后撞击砖块将其消除。本文使用QML来简单实现这个小游戏。 效果图&#xff1a; 正文 代码目录结构如下&#xff1a; 首先是小球部分&#xff0c;逻辑比较麻…...

ROS实践(四)机器人SLAM建图(gmapping)

目录 一、SLAM技术 二、常用工具和传感器 三、相关功能包 1. gmapping建图功能包 2. map_server 四、SLAM 建图实验 1. 配置gmapping(launch文件) 2. 启动机器人仿真(含机器人以及传感器) 3. 运行gmapping节点 4. 启动rviz可视化工具 5. 保存地图文件 一、SLAM技…...

使用Arduino、ESP8266和GPS在Google地图上追踪车辆

使用 ESP8266、GPS 和 Google 地图的 Arduino Vehicle Tracker 如今,车辆跟踪系统变得非常重要,尤其是在车辆被盗的情况下。如果您的车辆安装了 GPS 系统,您可以跟踪您的车辆位置,它可以帮助警方追踪被盗车辆。 在这里,我们正在构建更高级版本的车辆跟踪系统,您可以在其…...

python数据分析文件夹篇--pandas,openpyxl,xlwings三种方法批量创建、 复制、删除工作表

前言 之前我们学习了使用pandas灵活地读取数据&#xff0c;包括读取工作簿中一个或几个工作表&#xff0c;读取工作表中一行或多行&#xff0c;一列或多列数据&#xff0c;还学习了如何将数据灵活保存到本地。 今天我们学习一下文件夹中文件的批量处理操作&#xff0c;包括批量…...

MyBatis 的一级、二级缓存

文章目录 1️⃣ 一级缓存&#xff08;Local Cache&#xff09;&#x1f4cc; 定义&#x1f680; 示例代码 2️⃣ 二级缓存&#xff08;Global Cache&#xff09;&#x1f4cc; 定义&#x1f680; 使用方式 3️⃣ 一级缓存 vs. 二级缓存 &#x1f4ca;4️⃣ 数据共享问题&#x…...

掌握市场先机:9款销售渠道管理工具深度测评

本文主要介绍了以下9款销售渠道管理工具&#xff1a;1.纷享销客&#xff1b; 2.销帮帮&#xff1b; 3.小满CRM&#xff1b; 4.有赞&#xff1b; 5.Oracle NetSuite&#xff1b; 6.Salesforce Sales Cloud&#xff1b; 7.Cin7&#xff1b; 8.Pipedrive&#xff1b; 9.BigCommerc…...

【计算机网络通信 MQTT和AMQP的原理及应用场景、优缺点】

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;和AMQP&#xff08;Advanced Message Queuing Protocol&#xff09;都是常用的消息中间件协议&#xff0c;以下是它们的原理、应用场景、优缺点介绍&#xff1a; 原理 MQTT 基于发布/订阅模式&#xff0c;有…...

如何搭建一个适配微信小程序,h5,app的uni-app项目

在vscode搭建 uni-app 项目&#xff08;Vue 3 Vite Pinia uView Plus&#xff09; 一、环境准备 1. 安装 Node.js 确保已安装 Node.js&#xff08;需≥14版本&#xff09;&#xff0c;可通过以下命令检查版本&#xff1a; node -v2. 安装 VSCode 从 VSCode 官网 下载并…...

3.14学习总结 排序算法

插入排序&#xff1a; 1.直接插入排序 维护一个有序区&#xff0c;把元素一个个插入有序区的适当位置&#xff0c;直到所有元素都有序为止。 for (int i 0;i < n - 1;i) {//升序int end i;int temp k[end 1];while (end > 0) {if (temp < k[end]) {k[end 1] …...

模拟类似 DeepSeek 的对话

以下是一个完整的 JavaScript 数据流式获取实现方案&#xff0c;模拟类似 DeepSeek 的对话式逐段返回效果。包含前端实现、后端模拟和详细注释&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><titl…...

实用小工具——快速获取数据库时间写法

最近我遇到了一个比较棘手的问题&#xff1a;在工作中&#xff0c;各个项目所使用的数据库类型各不相同。这导致我习惯性地使用Oracle的SQL语句进行编写&#xff0c;但每次完成后都会遇到报错&#xff0c;最终才意识到项目的数据库并非Oracle。为了避免这种情况&#xff0c;我需…...

完善机器人:让 DeepSeek 使用Vue Element UI快速搭建 AI 交互页面

在前两篇文章中&#xff0c;我们已经使用 AI 生成了 Java API&#xff0c;并创建了一个简单的 HTML JavaScript 网页&#xff0c;让用户可以与 AI 机器人聊天。但如果我们想要一个更美观、更专业的交互界面&#xff0c;该怎么办呢&#xff1f;&#x1f914; 本篇文章&#xf…...

PC端QT实现mqtt客户端发布和订阅

在Windows11-64位系统下使用QT开发桌面应用程序&#xff0c;实现mqtt客户端的发布和订阅功能。 需求&#xff1a; mqtt代理服务器 --mosquitto&#xff1b; mqtt客户端工具 -- mqtt.fx&#xff1b; qtcreator开发工具 -- qtcreator6.8.2版本&#xff1b; 过程&#xff1a;…...

蓝桥云客 挖矿

0挖矿 - 蓝桥云课 问题描述 小蓝正在数轴上挖矿&#xff0c;数轴上一共有 n 个矿洞&#xff0c;第 i 个矿洞的坐标为 ai​。小蓝从 0 出发&#xff0c;每次可以向左或向右移动 1 的距离&#xff0c;当路过一个矿洞时&#xff0c;就会进行挖矿作业&#xff0c;获得 1 单位矿石&…...

React开发指南:核心、实践与案例

文章目录 一、React核心架构与设计哲学1.1 虚拟DOM与Diff算法1.2 JSX编译原理1.3 组件化设计模式1.4 Fiber架构解析1.5 组件生命周期&#xff08;类组件&#xff09; 二、React核心特性详解2.1 数据流管理2.2 Hooks革命2.3 Context API进阶2.4 自定义Hooks设计模式 三、React 1…...

落雪音乐Pro 8.8.6 | 内置8条音源,无需手动导入,纯净无广告

洛雪音乐Pro版内置多组稳定音源接口&#xff0c;省去手动导入的繁琐操作&#xff0c;安装即可畅听海量音乐。延续原版无广告的纯净体验&#xff0c;支持歌单推荐与音源切换&#xff0c;满足个性化听歌需求。此版本仅支持在线播放&#xff0c;无法下载音乐&#xff0c;且与原版不…...

Java入职篇(1)——心态篇

Java入职篇&#xff08;1&#xff09;——心态篇 本人终于通过辛苦的学习以及经过大量的面试&#xff0c;终于拿到一份offer了&#xff01;&#xff0c;但是的有点担心入职之后&#xff0c;不能胜任工作&#xff0c;不能安全度过试用期。在入职后能够顺利渡过刚开始最难熬的实…...

【后端】【django】Django DRF `@action` 详解:自定义 ViewSet 方法

Django DRF action 详解&#xff1a;自定义 ViewSet 方法 在 Django REST Framework&#xff08;DRF&#xff09;中&#xff0c;action 装饰器用于为 ViewSet 添加自定义的 API 端点。相比于 update、create 等默认方法&#xff0c;action 允许我们定义 更加清晰、语义化 的 A…...

【Vue.js】

一、简介 1、概述 官网GitHub - Vuejs Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建&#xff0c;并提供了一套声明式的、组件化的编程模型&#xff0c;帮助你高效地开发用户界面。 Vue.js作为一个渐进式框架&#xff0c;其设计理…...

SSL 和 TLS 认证

SSL&#xff08;Secure Sockets Layer&#xff0c;安全套接层&#xff09;认证是一种用于加密网络通信和验证服务器身份的安全技术。它是TLS&#xff08;Transport Layer Security&#xff0c;传输层安全协议&#xff09;的前身&#xff0c;虽然现在大多数应用使用的是TLS&…...

可复用表格组件设计与实现:分页、排序、筛选全功能解析

文章目录 一、组件设计思路1.1 功能需求分析1.2 技术选型 二、组件架构设计2.1 组件结构2.2 数据流设计 三、核心代码实现3.1 基础表格组件3.2 状态管理 四、功能模块实现4.1 分页组件4.2 排序控制4.3 筛选控制 五、性能优化方案5.1 虚拟滚动5.2 防抖筛选 六、完整测试方案6.1 …...

SmartFormat:轻量级文本模板库,轻松替代 string.Format

推荐一个 C# 编写的轻量级文本模板库&#xff0c;可以作为 string.Format 的替代品。 01 项目简介 SmartFormat不仅继承了 string.Format 的功能&#xff0c;还扩展了更多高级特性&#xff0c;例如命名占位符、列表格式化、本地化支持、复数化等。SmartFormat 提供了高性能、…...

【贪心算法4】

力扣452.用最少数量的剪引爆气球 链接: link 思路 这道题的第一想法就是如果气球重叠得越多那么用箭越少&#xff0c;所以先将气球按照开始坐标从小到大排序&#xff0c;遇到有重叠的气球&#xff0c;在重叠区域右边界最小值之前的区域一定需要一支箭&#xff0c;这道题有两…...

ES 使用geo point 查询离目标地址最近的数据

需求描述&#xff1a;项目中需要通过经纬度坐标查询目标地所在的行政区。 解决思路大致有种&#xff0c;使用es和mysql分别查询。 1、使用es进行查询 将带有经纬度坐标的省市区数据存入es中&#xff0c;mappings字段使用geo point类型&#xff0c;索引及查询dsl如下。 geo p…...

CentOS7 服务器安装 Hadoop 和 Hive

CentOS 服务器安装 Hadoop 和 Hive流程 请将以下的路径更换为自己的路径 1. 环境准备 1.1 安装 JDK Hadoop 和 Hive 需要 Java 运行环境&#xff0c;这里安装 OpenJDK 1.8&#xff1a; # 查看 Java 版本 java -version1.2 创建 Hadoop 用户&#xff08;可选&#xff09; …...

C语言零基础入门:嵌入式系统开发之旅

C语言零基础入门&#xff1a;嵌入式系统开发之旅 一、引言 嵌入式系统开发是当今科技领域中一个极具魅力和挑战性的方向。从智能家居设备到汽车电子系统&#xff0c;从智能穿戴设备到工业自动化控制&#xff0c;嵌入式系统无处不在。而C语言&#xff0c;作为嵌入式开发中最常…...

【数据分享】1999—2023年地级市地方一般公共预算收支状况数据(科学技术支出/教育支出等)

在之前的文章中&#xff0c;我们分享过基于2000-2024年《中国城市统计年鉴》整理的1999-2023年地级市的人口相关数据、染物排放和环境治理相关数据、房地产投资情况和商品房销售面积相关指标数据和社会消费品零售总额和年末金融机构存贷款余额&#xff08;均可查看之前的文章获…...

直方图(信息学奥赛一本通-1115)

【题目描述】 给定一个非负整数数组&#xff0c;统计里面每一个数的出现次数。我们只统计到数组里最大的数。假设 Fmax&#xff08;Fmax<10000&#xff09;是数组里最大的数&#xff0c;那么我们只统计{0,1,2.....Fmax}里每个数出现的次数。 【输入】 第一行n是数组的大小。…...

基于NXP+FPGA轨道交通人机交互(HMI)和健康管理单元(PHM)解决方案

人机接口 (HMI) 是交互式显示设备&#xff0c;可用于司机和乘务员的交互式信息显示。也可以用于CCTV监视。满足多种接口设备连接的同时&#xff0c;搭载的Linux系统&#xff0c;可以满足客户的定制化需求。 关键特性 触摸式按键位于显示区域周围&#xff0c;耐用性好&#xff0…...