- 博客(357)
- 收藏
- 关注
原创 LLM大模型的付费管理流程(以OpenAI 为例)
OpenAI API的付费管理完全由云服务端主导,客户端和大模型端仅承担“传递身份”和“上报数据”的辅助角色,最大化降低客户端的开发成本;
2025-12-30 15:10:14
503
原创 OpenAI Assistants API中代码解释器工具:配置tools=[{“type“:“code_interpreter“}]
OpenAI Assistants API的代码解释器工具"code_interpreter"通过GPT-4-turbo自动完成自然语言到Python代码的转换,在隔离沙箱中执行并返回结果。用户只需配置tools=[{"type":"code_interpreter"}]即可启用该功能,无需编写任何代码。该工具支持从简单计算到复杂数据分析的全场景处理,包括数值运算、数据处理、可视化及文件操作等。相比LangChain需要开发者手动封装工具,Open
2025-12-30 14:52:27
384
原创 LangChain 和 OpenAI Assistants API 在 “工具调用” 的区别
LangChain和OpenAI Assistants API在工具调用机制上存在根本差异。LangChain采用"LLM决策+平台执行"模式,开发者需编写工具调用衔接代码,但可自由接入各类自定义工具;而Assistants API采用"LLM端闭环"模式,由大模型自主完成工具调用,仅支持OpenAI内置工具。前者灵活性高但开发复杂,后者易用性强但受限于平台功能。选择取决于具体需求:需调用私有工具或重视数据隐私时选LangChain;追求快速实现通用功能时选Assis
2025-12-30 13:10:06
614
原创 剖析OpenAI 大模型端:它是一个高度封装的分布式系统
摘要:OpenAI大模型端是一个高度封装的分布式系统,采用四层架构设计。基础大模型集群(如GPT-4-turbo)负责推理决策和结果整合;工具执行引擎层实际运行代码解释器等工具;算力调度层管理资源分配;结果标准化层统一结果格式。各层分工明确,形成"决策-执行-整合"闭环,使开发者无需关心底层实现。这种设计将工具调用全流程封装,显著降低了开发门槛,是OpenAI区别于LangChain等框架的核心优势。
2025-12-30 12:01:52
582
原创 OpenAI 的核心架构范式——客户端(Client Layer)→ 云服务端(Cloud Service Layer)→ 大模型端(Model Layer)的三层分层架构
OpenAI Assistants API采用三层架构设计:客户端层负责轻量化的请求交互,云服务端作为核心中间件处理任务调度和状态管理,大模型端执行智能推理和计算。该架构通过职责分层实现解耦,采用异步协同机制适配大模型特性,并标准化封装降低开发者门槛。优势包括各层独立迭代、高可用性、易用性和资源管控,平衡了性能与开发效率,是AI服务化的典型范式。
2025-12-30 11:12:08
525
原创 调用client.beta.threads.runs.create后交由OpenAI云服务器端的处理
本文详细解析了OpenAI云服务器端处理Run任务的完整生命周期流程,核心是异步非阻塞的任务管理机制。当客户端提交任务后,云服务经历6个阶段:任务入队(queued)、调度预处理、执行(in_progress)、结果写入Thread、状态最终固化(completed/failed/cancelled)和客户端结果获取。整个过程通过状态转换驱动,客户端需轮询状态来获取最终结果。关键点包括:1) runs.create是异步提交而非等待;2) 结果持久化在Thread中;3) 需通过轮询监控状态变化。这种设计实
2025-12-30 09:34:23
613
原创 OpenAI Assistants API:Run如何撮合需求、能力与流程
OpenAI Assistants API中的Run组件是关键引擎,负责整合助手能力、线程工作态和用户需求三大要素,提交给大模型执行。本文通过鲜花价格计算案例,展示了Run如何撮合这些要素:创建助手定义计算能力(Assistant),建立独立工作环境(Thread),提交具体需求后,Run将其打包提交云端处理并返回结果。这种设计实现了低耦合(各要素可独立修改)、符合人类协作思维(类似单独聊天窗口提问),支持轻量化任务执行(单次Run对应具体任务)。Run的撮合机制让开发者无需关注底层细节,通过简单API调用
2025-12-29 19:06:04
528
原创 三连创建:client.beta.assistants.create、client.beta.threads.create、client.beta.threads.runs.create
OpenAI中使用assistant的三连创建:创建assistant(assistant = client.beta.assistants.create)、创建线程(thread = client.beta.threads.create)、创建Run(run = client.beta.threads.runs.create)
2025-12-29 09:56:24
378
原创 Chat Completions API中的三种role:“system“,“user“,“assistant“
三角色:system定规则、user提问题、assistant存回复,是 OpenAI 对话 API 的基础;Assistants API 的assistant对象是 “大的智能体”,而 Chat Completions API 的assistant角色是 “这个智能体发消息时的标签”。
2025-12-28 22:04:08
739
原创 科普:API调用方式与人工交互方式使用大模型云服务的对比
摘要: OpenAI API调用与LLM应用页面访问存在本质差异。API面向开发者,支持程序级自动化调用,具备高度定制化(JSON输出、参数调整)、批量处理、系统集成能力,适合企业级应用(如电商客服集成)。应用页面则面向普通用户,仅支持人工交互,功能受限(固定自然语言回复、单次查询)。典型场景对比显示,API在效率(千次/秒调用)、数据控制(隐私策略)、成本核算(按Token计费)方面优势显著,而网页版仅适用于零散问答。核心区别在于API将LLM作为“工具”嵌入系统,应用页面则作为独立“产品”使用。
2025-12-25 11:10:19
898
原创 大模型应用中,创建OpenAI客户端的三种方式
创建OpenAI客户端有如下三种方式:1、client = OpenAI()2、client = OpenAI(api_key="你的API密钥")3、client = OpenAI( api_key="你的DeepSeek API密钥", # 替换为自己的DeepSeek密钥 base_url="https://api.deepseek.com/v1" # DeepSeek的API基础地址(国内可直连))
2025-12-25 11:04:48
602
原创 类别不平衡的处理:过采样与欠采样
本文探讨了机器学习中样本不平衡问题的解决方法及其对不同算法的影响。首先分析了"对类间分布敏感"的算法(如逻辑回归、SVM、GBDT等),指出这些算法在样本不平衡时会偏向多数类,导致少数类识别效果差。解决方法包括调整类间分布(过采样/欠采样)或调整损失权重。 其次讨论了过采样的有效性,强调过采样不会让以分布为前提的算法必然失效,关键在于选择不破坏类内特征分布的过采样方法(如SMOTE),并严格区分训练集和测试集。对于极度敏感的算法(如朴素贝叶斯),建议优先使用重加权代替过采样。 最后比较了
2025-12-24 11:46:15
755
原创 科普:.NET应用开发的环境搭建
你若要进行.NET新应用开发,需要搭建**开发运行环境**(包含SDK和工具)并使用其主流**开发语言**。步骤如下:1. 安装.NET 8 SDK(LTS版本,开发核心)。 2. 安装Visual Studio 2022(功能全)或VS Code(轻量)。 3. 用C#作为开发语言(主流且易用)。 4. 通过创建控制台项目验证环境,再根据需求开发具体应用。
2025-11-15 15:43:03
879
原创 科普:LLM中的网页工具:Fetch与GeneralSearch
为了获得最新信息以及事实信息,LLM需要以工具方式搜索网页,本文给出工具及使用方式,即LLM中的网页工具:Fetch与GeneralSearch
2025-11-14 22:58:25
1479
原创 科普:VB(Visual Basic)和VBS(VBScript)
VB(Visual Basic)和VBS(VBScript)均由微软开发,语法上有一定关联,但定位、功能和应用场景差异显著。VB是“重量级”编译型语言,适合开发复杂应用;VBS是“轻量级”脚本语言,适合简单自动化场景。两者语法相似(如变量声明、流程控制),但功能和定位完全不同。
2025-11-13 21:21:12
855
原创 科普:LLM领域中的“样本(sample)”、“指令(instruction)”和“提示词(prompt)”
摘要:在LLM领域,"指令"是样本中的关键任务描述字段(如"翻译英文"),用于引导模型理解任务目标;而"样本"是包含指令、输入和输出的完整学习单元(如{"instruction":"翻译","input":"Hi","output":"你好"})。二者主要在训练阶段发挥作用,其中预训练样本无需指令,而指令微调样本必须包含指令。与之
2025-11-10 16:18:55
604
原创 在Linux环境中启动了Jupyter Notebook服务器,如何在Windows的VS Code中编辑和运行.ipynb文件(需要Linux环境中配好的虚拟环境)
如果你的Linux环境是本机的(比如通过WSL [Windows Subsystem for Linux] 在Windows上运行的Linux子系统),并且在这个Linux环境中启动了Jupyter Notebook服务器,那么在Windows的VS Code中编辑和运行.ipynb文件会很简单,核心是利用VS Code对WSL的原生支持和Jupyter的本地连接能力。
2025-10-15 23:55:17
979
原创 Python 开发中:`.ipynb`(Jupyter Notebook 文件)和 `.py`(Python 脚本文件)
在 Python 开发中,源码常用两种文件:.ipynb(Jupyter Notebook 文件)和 .py(Python 脚本文件),通常先用.ipynb文件进行原型开发,再用 .py文件做成产品。在这两阶段之间,需要一个软件资产转换,为此,这里为你提供一个非常适用的程序ipynb2py.py:它将.ipynb文件中的代码单元格合并成一个.py文件。
2025-10-14 10:55:22
947
原创 科普:在分布式系统日志分析中的概念:`span`、`child_spans` 和 `trace`
在软件运行日志分析(尤其是分布式系统追踪)中,span、child_spans 和 trace 是分布式追踪(Distributed Tracing)领域的核心概念,用于描述请求在系统中的流转路径和执行细节。
2025-10-13 22:06:26
592
原创 科普:Python 中, `return`与`yield` (及<generator object fibonacci at 0x.........>)
<generator object fibonacci at 0x0000017FF0903850>(地址可能不同)。即:这里直接打印 `gen` 就会显示生成器对象的信息,而不是斐波那契数列的具体值——这是生成器“惰性计算”的特性决定的(不会提前生成数据,而是生成生成器的对象,然后由生成器的对象按需生成数据)。我们比较`return`与`yield`两关键字:他俩都是用于在函数中返回值的关键字,但它们的行为和适用场景有本质区别,核心差异在于**是否终止函数执行**以及**返回值的方式
2025-10-12 22:45:18
545
原创 科普:LLM应用编程中,response.choices[0].message[‘content‘]与response.choices[0].message.content
本文对比了在LLM应用编程中获取模型回复内容的两种写法:response.choices[0].message['content'](字典键访问)和response.choices[0].message.content(对象属性访问)。核心区别在于数据结构访问方式不同:前者适用于字典类型,后者适用于对象属性。使用OpenAI官方Python库时,两种方式结果一致,因为返回的message对象同时支持两种访问。建议优先使用.content属性写法,更符合Python习惯且可读性更强。但需注意不同语言或库可能仅
2025-10-10 08:39:52
367
原创 python中,将包安装到用户个人目录中、安装到虚拟环境中、安装到当前工作目录中的区别与选择
作为程序员,个人电脑中,安装Python包时,也要避免“全局”安装,通常有三种“局部”的安装方式:将包安装到用户个人目录中、安装到虚拟环境中、安装到当前工作目录中。
2025-10-09 09:58:12
1173
原创 科普:select中的`array_agg()` 与 `row()`的不同点
`array_agg()` 是“多行合为一个数组”(纵向聚合),`row()` 是“多字段合为一个结构”(横向组合),两者的“组合逻辑”和结果结构完全不同。
2025-10-08 07:30:42
412
原创 科普:让大模型生成SQL语句需要什么样的prompt?
让大模型生成SQL语句的关键是:提供足够的上下文(表结构、业务逻辑)+ 清晰的查询目标,避免模糊表述。有效的prompt需要包含3个核心要素:数据库表结构(表名、字段、类型、关系)、具体查询需求(要获取什么数据、条件是什么)、额外约束(如SQL方言、格式要求)
2025-10-07 22:19:27
391
原创 对字典按值进行“排序”:sorted()、items()及lambda函数联合使用
对字典按值排序的核心是利用 sorted() 函数,结合字典的 items() 方法(获取键值对)和 key 参数(指定按值排序)key=lambda x: x[1]:x 代表列表中的每个元组 (key, value),x[1] 表示按元组的第二个元素(即字典的“值”)作为排序依据。
2025-10-03 22:18:13
457
原创 科普:Python 中,字典的“动态创建键”特性
在 Python 中,对字典中**不存在的键进行“赋值操作”时,字典会自动创建这个键并赋予对应的值**,不会报错;只有对“不存在的键进行“访问操作”(如直接读取 `dict[key]`)时,才会抛出 `KeyError`。
2025-10-03 21:13:51
449
原创 科普:脱掉字符串的外衣:result = eval(data_str)
# 假设 get_result 是从某个接口获取的字符串形式数据get_result = '{"code": 200, "data": null}'# 判断 get_result 是否为字符串if isinstance(get_result, str): # 将字符串中的 'null' 替换为 'None',确保语法正确 data_str = get_result.replace('null', 'None') # 将字符串解析为 Python 对象,即脱掉字符串的外衣,变为
2025-10-02 08:01:52
706
原创 科普:使用 apt 或 pip安装软件包前,为何要执行更新update操作
在使用 `apt` 或 `pip` 安装软件包前执行“更新”操作,核心目的是**让本地工具获取远程仓库的最新信息**,确保安装过程能找到正确的包版本并顺利完成。两者的原理类似,但具体机制因工具设计略有不同。
2025-10-01 16:42:13
390
原创 科普:Python 中`str.join(iterable)` 方法用于逻辑连接
在 Python 中,`str.join(iterable)` 方法可以将可迭代对象(如列表)中的元素用指定字符串(`str`)连接成一个新字符串。用逻辑符(如 `" and "`、`" || "`、`" && "` 等)作为字符串(`str`),产生连接条件,适用于生成查询语句、筛选条件等场景。
2025-10-01 16:37:38
355
原创 科普:在类中定义函数(方法)我们并不陌生,但你们知道在 函数中也可以定义函数吗?
在 Python 中,允许在一个函数内部定义另一个函数,这种结构称为函数嵌套(Nested Functions)。内部定义的函数称为“内部函数”,包含内部函数的函数称为“外部函数”。这种机制为代码封装、作用域控制和闭包等高级特性提供了基础。
2025-09-30 22:30:22
911
原创 虚拟环境中多个activate:.bat、.fish、ps1以及无后缀的
建立虚拟环境后,.venv\Scripts目录下有多个activate,以后缀来分:无后缀、.bat、.fish、ps1,它们是为了适配**不同的命令行/Shell环境**而设计的——不同的Shell(命令解释器)有各自的语法规则,激活虚拟环境的脚本必须遵循对应环境的语法才能正常工作。
2025-09-28 19:16:52
400
原创 设置环境变量时避坑:set不要引号不要空格,如:set API_KEY=.....
在前文设置环境变量的方法中,尤其是跨终端(如CMD、PowerShell、bash)或在程序中读取时,细节处理不当很容易导致“设置值与程序读取值不一致”的问题。本文总结避坑方法
2025-09-25 22:14:51
1155
原创 科普:设置环境变量的命令:set 与 export
set 和 export 都是用于设置变量的命令,但它们的 适用环境、作用范围 和 功能 有本质区别,核心差异在于 是否将变量提升为“环境变量”(可被子进程继承) 以及 支持的操作系统/shell。
2025-09-25 11:22:21
1058
原创 Python中的“倒装句”现象:status = “成年“ if age >= 18 else “未成年“
status = "成年" if age >= 18 else "未成年",这句代码形式上是“结果在前,条件在中间”,感觉像“倒装句”。这就是三元运算符。 Python 中除了令人疑惑的三元运算符外,还有其他一些 特殊的语法结构 或 运算符的独特用法,可以实现类似“简洁条件判断”或“简化代码”的效果。
2025-09-24 16:48:44
432
原创 Python的大杀器:Jupyter Notebook处理.ipynb文件
Python的源代码文件有两大类:后缀为.py和后缀为.ipynb,后者由Jupyter Notebook 处理。Jupyter Notebook 是 跨平台工具,既可以在 Linux 中使用,也可以在 Windows 中使用。Jupyter Notebook 的核心价值在于 “代码即文档,文档可执行”,它打破了传统代码与说明文档分离的模式,极大提升了交互式计算和结果展示的效率,是数据科学和编程学习的重要工具。
2025-09-23 22:37:23
1233
原创 Linux 中的包安装,`pip install`与 `apt install`
在 Linux 中,pip install 和 apt install 是两种完全不同的包管理工具,分别用于处理 Python 生态内的库 和 系统级软件/库,核心区别体现在管理对象、安装来源、权限要求等方面。
2025-09-23 21:26:20
1126
原创 pip install -r requirements.txt报错ReadTimeoutError: HTTPSConnectionPool
这个错误 ReadTimeoutError 是 网络连接超时 导致的,核心原因是网络无法稳定访问 PyPI 官方仓库(files.pythonhosted.org 是 Python 官方包仓库的文件存储地址),常见于网络不稳定、访问速度慢或被墙的情况。
2025-09-23 21:10:37
292
原创 科普:Linux 命令行中如何“cd 到 Windows 工作目录”
你是不是常常碰到这样一个问题:从GitHub中下载的开源码在windows的某个目录中,而该开源项目又是linux环境项目?这就产生了一个小问题:Linux 命令行中如何“cd 到 Windows 工作目录”?本文就讨论这个小问题,总结所有场景下通过 `cd` 访问 Windows 目录的方式
2025-09-23 12:55:43
1055
原创 科普:Windows 系统中如何使用Linux?
进入 Linux 环境最便捷的方式是通过 Docker 启动一个 Linux 容器并进入其交互式终端。默认情况下,使用 docker run -it [Linux镜像名] bash 进入容器后,会处于容器内的 /(根目录)下的默认用户目录。
2025-09-23 10:13:26
966
原创 科普:通配符表达式(Wildcard)与正则表达式(Regular Expression)
通配符表达式(Wildcard)和正则表达式(Regular Expression,简称 Regex)都用于模式匹配(根据规则查找/匹配字符串),但二者在设计目标、语法复杂度和应用场景上存在本质区别。
2025-09-21 23:03:42
1178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅