调用大模型的两种方法
调用方法一response client.chat.completions.create( modelkimi-k2.6, messages[ { role: system, content: 你是 SQL 专家只输出 JSON不要输出其他内容。, }, {role: user, content: prompt}, ], temperature0.2, # SQL 生成需要高度确定性 )调用方法二intent llm.invoke(classification_prompt).content.strip().lower()两者本质都是调用大模型最终发往模型服务的请求是完全一致的区别只在于抽象层级和封装程度不同第一个是直接调用模型厂商的原生 API 接口所有请求参数都需要手动组装精细度高、可控性强第二个是调用 LangChain 框架封装好的模型对象框架底层帮你自动完成了参数组装、格式转换写法更简洁。一、第一种原生 SDK 调用generate_sql函数你看到的client.chat.completions.create 完整messages数组是大模型厂商提供的标准 OpenAI 兼容接口的原生写法。1. 为什么必须写完整的messages结构这是大模型 Chat Completions 接口的强制要求模型本身是对话式的必须通过role角色来区分消息身份system系统指令 / 人设、user用户输入、assistant模型回复原生接口不会帮你做任何格式封装你必须严格按照接口规范手动把所有对话内容组装成列表传进去2. 为什么这个函数要用原生写法这个场景有两个强需求原生调用更合适强格式约束需求生成 SQL 并输出 JSON对输出稳定性要求极高需要单独的system角色来给模型强人设、强规则单独的 system 指令比混在用户提示里的约束效果更好精细参数控制需要手动指定模型名称kimi-k2.6、调低temperature0.2还要拿到最原始的响应结构后续手动做 JSON 提取、异常捕获、格式清洗原生调用能拿到完整的响应对象灵活度最高二、第二种LangChain 封装调用run_data_analysis函数你看到的llm.invoke(分类提示词)是LangChain 框架对大模型调用的高层封装。1. 为什么一句话就能完成调用llm是提前初始化好的 LangChain 模型对象比如ChatOpenAI/ChatMoonshot它的invoke()方法底层帮你做了这些重复工作自动把你传入的字符串包装成[{role: user, content: 你的提示词}]的标准 messages 格式自动携带初始化时配置好的模型名、temperature、API Key 等参数自动解析响应直接返回模型的文本内容不用你再写.choices[0].message.content去取值相当于把原生调用里的「组装参数 → 发请求 → 提取结果」三步封装成了一步。2. 为什么这个函数可以用简化写法意图分类是非常简单的单轮场景不需要复杂的多角色对话分类规则直接写在用户提示词里也能正常工作不需要精细控制每一个请求参数复用全局初始化的模型配置即可只需要拿到纯文本结果做分支判断不需要处理复杂的响应结构同时这个函数后续还要对接 LangChain 的 Agent统一用 LangChain 的接口写法和生态组件的兼容性更好三、两种写法的对比与选型表格维度原生 SDK 调用LangChain 封装调用抽象层级底层直接对接模型接口高层框架封装屏蔽细节代码量多需手动组装所有参数少一行完成调用可控性极高所有参数可精细调整中等常用参数已封装格式灵活性强适合自定义解析、异常处理弱统一返回标准格式适用场景结构化输出、多轮对话、强格式约束简单单轮请求、快速开发、对接 Agent 生态四、补充LangChain 也支持完整角色写法不是 LangChain 不能加 system 角色而是这个场景不需要所以用了最简写法。如果需要LangChain 也可以和原生一样传多角色消息python运行from langchain_core.messages import SystemMessage, HumanMessage # 和原生写法效果完全等价 response llm.invoke([ SystemMessage(content你是分类专家只输出一个单词), HumanMessage(contentclassification_prompt) ]) intent response.content.strip().lower()最后总结没有哪种写法绝对更好完全由场景决定需要稳定、精准、自定义解析→ 用原生调用需要简洁、快速、和框架生态联动→ 用封装调用两者底层最终发往大模型的 HTTP 请求本质是完全一样的。

相关新闻

从LLM到Agent:ReAct推理模式的底层原理

从LLM到Agent:ReAct推理模式的底层原理

从LLM到Agent:ReAct推理模式的底层原理 你用过ChatGPT,但你有没有想过:为什么它能回答"今天天气怎么样",却没法真的帮你查天气?这篇文章从零开始,带你理解"聊天机器人"和"智能助手…

2026/7/16 8:23:45 阅读更多 →
2026年面试复盘报告深度应用指南:AI自动生成失分分析——从凭感觉回顾到数据驱动改进的3步法

2026年面试复盘报告深度应用指南:AI自动生成失分分析——从凭感觉回顾到数据驱动改进的3步法

文章目录一、面试复盘的"黑洞":你以为你在总结,其实你在瞎猜传统面试复盘 vs AI数据驱动复盘二、测评方法论:5个维度定义"好的AI面试复盘"维度定义评分标准三、4款工具逐一深度测评3.1 鹅来面 — AI深度复盘引擎&#xf…

2026/7/16 8:21:44 阅读更多 →
Axios详解

Axios详解

Axios详解1.Axios 是什么2.如何使用 Axios1. 安装与引入2. 发起 GET 请求3. 发起 POST 请求4. 高级用法:拦截器5. 创建实例(推荐实战做法)1.Axios 是什么 Axios 是一个基于 Promise 的 HTTP 客户端库,专为浏览器和 Node.js 环境设…

2026/7/16 8:19:41 阅读更多 →

最新新闻

C++与Rust安全FFI实践:cxx 1.0核心机制与项目集成指南

C++与Rust安全FFI实践:cxx 1.0核心机制与项目集成指南

1. 项目概述:为什么我们需要关注C与Rust的FFI安全?如果你正在处理一个既有C庞大遗产代码库,又希望引入Rust内存安全优势的项目,那么跨语言调用(FFI)就是你绕不开的核心技术。我经历过不止一次因为手动编写F…

2026/7/16 9:16:06 阅读更多 →
华为eNSP实战:BGP路由协议在企业网跨域互联中的配置与验证

华为eNSP实战:BGP路由协议在企业网跨域互联中的配置与验证

1. BGP协议在企业网跨域互联中的核心价值 BGP(边界网关协议)作为互联网的"导航系统",在企业跨地域组网中扮演着关键角色。不同于OSPF、RIP等内部网关协议,BGP专为自治系统(AS)之间的路由交换而设…

2026/7/16 9:16:06 阅读更多 →
第4讲:智能文件分类器——一秒归档杂乱文件夹

第4讲:智能文件分类器——一秒归档杂乱文件夹

本讲目标掌握按多种规则分类文件的思路学会按扩展名、文件大小、修改日期三种策略分类实战案例:一键整理下载目录一、场景描述你的下载文件夹是不是这样的?GoogleSetup.exe 项目需求文档.pdf 微信图片_20260713.png team_meeting.mp4 数据报表.xlsx 乱七…

2026/7/16 9:14:05 阅读更多 →
TLPI 第24 章 练习:Process Creation

TLPI 第24 章 练习:Process Creation

笔记和练习博客总目录见:开始读TLPI。 24-1 在一个程序执行以下一系列 fork() 调用之后,会产生多少个新进程(假设所有调用都成功)? fork(); fork(); fork(); 总共会有8个进程,新进程有7个。 如下图&#…

2026/7/16 9:10:04 阅读更多 →
Mac mini本地智能体实战:OpenClaw+飞书机器人零云依赖工作流

Mac mini本地智能体实战:OpenClaw+飞书机器人零云依赖工作流

1. 这不是“又一个AI工具链”,而是Mac mini上真正能落地的智能体工作流 它来了——这句话在技术圈里从来不是营销话术,而是某种临界点被击穿后的集体直觉。过去三个月,我用一台 Mac mini M2(16GB内存) 搭建了一套从本…

2026/7/16 9:08:03 阅读更多 →
MetaBlriGer V2.7实战:为任意拓扑角色注入MetaHuman级面部动画

MetaBlriGer V2.7实战:为任意拓扑角色注入MetaHuman级面部动画

1. 项目概述:打通MetaHuman与自定义角色的桥梁最近在做一个高保真数字人项目,客户要求角色既能拥有MetaHuman级别的细腻表情,又要保留其独特的、非标准化的面部拓扑结构。这听起来像是个不可能的任务,对吧?毕竟&#x…

2026/7/16 9:06:03 阅读更多 →

日新闻

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

HarmonyOs应用《重要日》开发第6篇 - 数据持久化存储

本篇深入剖析 ImportantDays 项目的数据持久化方案——基于 HarmonyOS ArkData 模块的 Preferences 轻量级存储,以及 PreferenceUtil 工具类的单例封装。一、HarmonyOS 数据存储方案对比 HarmonyOS 提供了多种数据存储方案:方案适用场景特点Preferences轻…

2026/7/16 0:08:27 阅读更多 →
Python实现跨境电商商品图批量翻译教程

Python实现跨境电商商品图批量翻译教程

一、问题引入做跨境电商的卖家朋友,你是否遇到过这样的困扰?每次上架新品到亚马逊、Shopee或Lazada等平台,都需要处理大量商品图片的多语言版本。比如上架200款衣服,每款需要翻译成英语、日语、韩语等5种语言,这意味着…

2026/7/16 0:08:27 阅读更多 →
鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

鸿蒙 7 新特性实战①:从 0 到 1 掌握 @kit 标准导入规范

从鸿蒙 7(HarmonyOS NEXT)开始,官方全面完成了从 ohos.* 零散模块到 kit.* 领域套件的体系重构。对开发者来说,第一道门槛不是 API 用法变化,而是统一的导入规范——旧体系默认导入、解构导入混用的混乱局面被彻底终结…

2026/7/16 0:10:29 阅读更多 →

周新闻

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨

互联网大厂 Java 求职面试:燕双非的搞笑回答与技术探讨 在一个阳光明媚的上午,互联网大厂的面试官坐在桌前,准备迎接他的面试候选人——燕双非,一个以搞笑和幽默著称的程序员。第一轮提问 面试官:燕双非,作…

2026/7/15 21:09:01 阅读更多 →
车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估

车载以太网PMA测试设备选型:示波器、VNA、信号源3类仪器关键参数与预算评估在智能驾驶和车联网技术快速发展的今天,车载以太网作为新一代车载网络的核心传输技术,其物理层性能直接决定了数据传输的可靠性和稳定性。1000BASE-T1作为当前主流的…

2026/7/15 19:42:20 阅读更多 →
VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战,5步完成Keil工程转换

VSCode EIDE 插件 2.0:APM32/STM32 项目迁移实战指南嵌入式开发领域正经历一场工具链的静默革命。当传统Keil用户首次打开VSCode的扩展市场搜索EIDE时,往往会惊讶于这个看似简单的插件竟能重构十余年的开发习惯。本文将揭示如何用五个精准步骤&#xff0…

2026/7/15 17:52:08 阅读更多 →

月新闻