支持Function Call的本地ollama模型对比评测-》开发代理agent
目标是开发支持多个 Function 定义的智能体代理系统
✅ 第一部分:是否支持多个函数(multi-function calling)
模型名称 | 支持多个函数注册 | 是否支持函数选择(name 匹配) | 是否能生成结构化参数 |
---|---|---|---|
OpenChat 3.5 / 3.5-0106 | ✅(Prompt 支持) | ✅(会选择最合适函数) | ✅ |
OpenHermes 2.5 | ✅ | ✅ | ✅(非常稳定) |
OpenOrca-Platypus2 | ✅ | ✅(function_name 识别率高) | ✅ |
DeepSeek-Coder-Instruct | ✅ | ✅(更偏工具能力) | ✅(格式更结构化) |
Yi-34B-Chat | ✅ | ✅ | ✅(但中文环境对 prompt 依赖更大) |
Mistral-7B-Instruct-v0.2 | ⚠️有限支持(可识别但误判多) | ❌ | ⚠️ |
Command R / R+ | ✅ | ✅(复杂函数选择能力强) | ✅ |
🧠 第二部分:适合智能体(AI Agent)开发的模型对比
模型名称 | 优势 | 劣势 | 推荐用途 |
---|---|---|---|
OpenHermes 2.5 | ✅ 模拟 ChatGPT 能力强✅ 支持多函数调度✅ JSON 格式稳定 | ❌ 可能对较复杂嵌套结构不稳定 | 通用 AI Agent 开发、快速原型 |
OpenChat 3.5 / 3.5-0106 | ✅ 兼容性强、结构清晰✅ 非常善于“选择正确函数”✅ 与 ChatGPT 风格相似 | ❌ 英文 prompt 响应更准❌ 中文多轮对话略弱 | 多函数调度+判断型智能体 |
OpenOrca-Platypus2 | ✅ 函数结构响应自然✅ 可与 RAG 配合(搜索后调用) | ❌ 对 prompt 格式要求严格 | RAG+调用类 Agent,如知识库问答 |
DeepSeek-Coder-Instruct | ✅ 参数封装能力强✅ 特别适合复杂 JSON✅ 在中文环境效果好 | ❌ 本体对话能力一般(偏工具型) | 工具调度型 Agent(如数据分析、代码生成) |
Yi-34B-Chat | ✅ 中文支持强✅ 多函数兼容性高✅ 多轮语境判断优于 Mistral | ❌ 资源消耗大(部署要求高) | 中文环境下的复杂工具调度 Agent |
Command R+ | ✅ 最接近 GPT-4 Function Calling✅ 可处理复杂依赖链✅ 稳定返回结构化调用意图 | ❌ 模型体积大(不适合轻量本地部署) | 高级智能体框架、生产级多工具调度 |
📌 场景推荐表(更详细)
场景 | 推荐模型 | 详细理由 |
---|---|---|
🧠 通用智能体(类似 ChatGPT Plugins) | OpenHermes 2.5 | 响应快,格式稳定,调度能力良好 |
📚 知识问答 + 工具调用 | OpenOrca-Platypus2 | 和向量检索结合效果佳,支持 tool use |
🧾 数据查询、API封装类代理 | DeepSeek-Coder-Instruct | 能准确构造复杂参数,适合内部流程自动化 |
📦 多函数判断 + 对话型智能体 | OpenChat 3.5-0106 | 善于判断何时调用哪个函数,语义理解好 |
🌏 中文业务智能体(中文场景) | Yi-34B-Chat | 中文指令理解优秀,适合中文问答、工具调度 |
🧠 多步推理 + 工具链代理 | Command R / R+ | 适合多步骤 function chain 场景,极高结构化支持度(但资源大) |
🛠 开发建议:
如果你打算本地部署并构建一个「多工具调度 + 推理判断 + 状态维护」的智能体,推荐如下组合:
🚀 首选组合
-
模型:OpenChat 3.5-0106 / OpenHermes 2.5
-
理由:兼容性好,响应稳定,支持 Function 调用 prompt,能模拟“调用哪个函数”的思考
📚 增强功能组合(支持数据分析、代码)
-
模型:DeepSeek-Coder-Instruct
-
适合构造复杂函数结构,如图表生成、数据库查询等
🌏 中文语境增强
-
模型:Yi-34B-Chat
-
用于提升中文语义判断、提示理解、对话链处理
是否可以在分析和回答\对话的时候使用不同模型已达到更好效果?
模型是否可以「搜索后调用函数」?
可以,但效果好不好,取决于它是否能理解并正确处理以下三点:
🔍 1. 先“判断是否需要搜索”
-
**优质模型(如 OpenOrca、OpenHermes、OpenChat)**可以根据 prompt 里的“未能直接回答、是否调用函数”来自动决定是否调用。
-
**较弱模型(如普通 Mistral)**会更依赖 prompt 明确指令,比如“请调用 searchDocs() 查询资料”。
🧠 2. 搜索结果+上下文合并后,是否能自动调用函数
-
OpenOrca-Platypus2 是目前社区反馈在 “读完 context 后发起函数调用” 做得最自然的模型之一。
-
OpenChat 3.5 和 Hermes 2.5 也能实现这个流程,但提示词需要设计得更清晰。
你需要把 RAG 的搜索结果插入在 prompt 前,告诉模型“你刚刚查到的资料如下……是否需要调用某个函数?”——这个 prompt 设计是关键。
🛠 举个例子:
你是一个智能助手,有访问工具的能力。 以下是你在知识库中查到的资料: 《香薰生产 SOP》: 1. 原料必须先检验。 2. 所有批次都要称重记录。 3. 灭菌需符合 GB 标准。 现在的问题是:我需要准备一批香薰,能帮我安排流程并调用相关服务吗?
如果模型支持 function calling,它就会基于知识库的 context 自动发起像:
{ "function_call": { "name": "schedule_production", "arguments": "{\"product\": \"香薰\", \"steps\": [\"检验\", \"称重\", \"灭菌\"]}" } }
✅ Q2:是否可以在 不同任务阶段切换模型 使用?
✔️ 技术上可以,而且在 Agent 系统中是高级应用方式之一,叫做 Multi-Agent 或 Hybrid Model 架构。
例如你可以这么设计:
阶段 | 使用模型 | 理由 |
---|---|---|
📥 用户输入理解 | OpenChat 3.5 | 自然语言理解、判断是否调用函数 |
🔍 RAG 检索与摘要 | DeepSeek-Coder | 处理 JSON、向量检索后信息压缩能力强 |
🔧 函数构造 | OpenHermes 2.5 | 更擅长输出符合工具调用结构 |
🗣️ 中文对话反馈 | Yi-34B-Chat | 中文环境下表现稳定,逻辑清晰 |
不过,这需要构建一个“中控逻辑”,决定什么时候切模型,什么时候聚合输出。
🔍 小结:
是否可用搜索后调用函数 | 是否推荐 |
---|---|
OpenOrca-Platypus2 | ✅ 最推荐 |
OpenHermes 2.5 | ✅ 可用,稍强 prompt 设计要求 |
OpenChat 3.5 | ✅ 语义理解强,判断能力优 |
DeepSeek-Coder | ✅ 适合配合工具处理 JSON |
Mistral-7B-Instruct | ⚠️ 函数理解能力弱,不推荐 |
Yi-34B-Chat | ✅ 中文表现强,适合中文场景对话调度 |
如果之后考虑RAG + 多模型协同 + Function Chain这些方向,可以先设计初始的 Agent 框架(例如一个流程控制器 + 模型池调度规则),先专注一个模型原型跑通功能。
🧠 Part 1:「搜索知识后自动调用函数」Prompt 示例
以下是为Function Calling 支持模型(如 OpenHermes、OpenChat、OpenOrca)设计的标准 prompt 模板:
🔧 场景假设:
用户输入:「广州明天要下雨吗?帮我带伞提醒。」
你系统会检索天气数据 + 决定是否调用函数。
✅ Prompt 示例(带知识检索结果)
你是一个智能助手,可以访问函数工具。用户提问:广州明天要下雨吗?帮我安排带伞提醒。你在天气数据库中查到的信息如下:【知识库搜索结果】 广州未来三天天气: - 4月26日:阴天转中雨,气温22°C ~ 28°C。 - 4月27日:雷阵雨,气温23°C ~ 29°C。 - 4月28日:多云,气温24°C ~ 30°C。请根据搜索信息,判断是否需要调用函数。如果需要,请使用以下函数调用格式:可用函数: ```json [{"name": "setUmbrellaReminder","description": "设置带伞提醒","parameters": {"type": "object","properties": {"city": {"type": "string"},"date": {"type": "string"},"weather": {"type": "string"}},"required": ["city", "date", "weather"]}} ]
现在请根据用户的问题和搜索内容,决定是否需要调用函数,并用 JSON 格式输出调用参数。
🔁 期望模型输出(符合 OpenAI Tool Use)
```json
{
"function_call": {
"name": "setUmbrellaReminder",
"arguments": "{\"city\": \"广州\", \"date\": \"2024-04-26\", \"weather\": \"阴转中雨\"}"
}
}
🧠 Part 2:智能体系统的初始架构设计(多模型 + RAG + 函数调用)
🧱 1. 架构图(文本描述)
[用户输入]↓ [主控 Agent Controller]↓(判断是否需要搜索) [检索模块 RAG]↓(返回搜索内容) [模型选择器]├─> OpenChat 3.5(理解 + 调度函数)├─> DeepSeek-Coder(结构化 JSON)└─> Yi-34B(中文环境)↓ [函数调用生成器]↓ [API 执行/数据库操作/系统执行]↓ [结果反馈生成]↓ [输出给用户]
📦 2. 各模块职责说明
模块 | 功能 | 推荐工具/语言 |
---|---|---|
Agent Controller | 识别用户意图、控制流程 | Spring Boot / Node.js |
检索模块(RAG) | 使用向量数据库,如 Redis Vector / Weaviate | Redis Stack / Faiss / Milvus |
模型选择器 | 根据任务类型切换模型 | 可用 OpenAI 风格接口包装各模型 |
Prompt 构造器 | 将搜索内容 + 函数定义注入 Prompt | Java/Node.js 构建模板系统 |
函数执行模块 | 调用 API、写数据库、发消息等 | Spring / n8n / LangGraph |
用户交互前端 | 聊天界面、反馈页面 | React / Vue / Expo RN |
✅ Bonus:使用 Spring Boot 做智能体控制器的思路
可以用如下方式封装控制逻辑:
@RestController public class AgentController {@Autowired private VectorSearchService vectorService;@Autowired private ChatModelService modelRouter;@Autowired private FunctionExecutor functionExecutor;@PostMapping("/ask")public AgentResponse askAgent(@RequestBody AgentRequest request) {String searchContext = vectorService.search(request.getQuestion());String fullPrompt = PromptComposer.compose(request.getQuestion(), searchContext);ModelResponse response = modelRouter.ask(fullPrompt);if (response.hasFunctionCall()) {FunctionCallResult result = functionExecutor.execute(response.getFunctionCall());return AgentResponse.fromFunctionResult(result);} else {return AgentResponse.fromText(response.getText());}} }
🧪 小结:推荐你的起步顺序
-
✅ 用 OpenHermes 2.5 或 OpenChat 3.5 跑通基础 Prompt + Function Call
-
✅ 接入向量数据库做简单的 RAG 搜索合并
-
✅ 使用 Spring Boot 或 Node 搭建控制器,构建 Function 执行接口
-
✅ 再逐步探索多模型切换与链式调用
相关文章:
支持Function Call的本地ollama模型对比评测-》开发代理agent
目标是开发支持多个 Function 定义的智能体代理系统 ✅ 第一部分:是否支持多个函数(multi-function calling) 模型名称支持多个函数注册是否支持函数选择(name 匹配)是否能生成结构化参数OpenChat 3.5 / 3.5-0106✅&a…...
Docker拉取镜像代理配置实践与经验分享
Docker拉取镜像代理配置实践与经验分享 一、背景概述 在企业内网环境中,我们部署了多台用于测试与学习的服务器。近期,接到领导安排,需在其中一台服务器上通过Docker安装n8n应用程序。然而在实际操作过程中,遭遇Docker官方镜像库…...
Jinja 的详细介绍和学习方法
Jinja 是一种流行的 模板引擎(Template Engine),主要用于生成动态的文本内容(如 HTML、XML、配置文件等)。它最初是为 Python 的 Web 框架(如 Flask、Django)设计的,但也可以独立使用…...
在 Windows 系统上升级 Node.js
一、查询电脑端已经安装的 Node.js 版本 1、通过【winR】 键,输入 cmd,点击【确定】按钮打开 cmd 窗口 2、命令行界面输入 node -v 查看目前 Node.js 版本 3、命令行界面输入 npm -v 查看目前 npm 版本 二、进入官网地址下载安装包 1、官网地址&#x…...
特斯拉宣布启动自动驾驶网约车测试,无人出租车服务进入最后准备阶段
特斯拉公司于4月24日正式宣布,已在美国得克萨斯州奥斯汀和加利福尼亚州旧金山湾区启动自动驾驶网约车服务的员工内部测试。这项测试将为今年夏季计划推出的完全无人驾驶出租车服务进行最后的验证和准备。 此次测试使用约200辆经过特殊改装的Model 3车型,…...
C++面试复习(7)2025.4.25
1,说一说常用的 Linux 命令(NIUKE) 1,cat 查看文件内容 cat filename2,rm 删除 rm filename:删除文件。 rm -r directory:删除目录及其内容。 rm -f filename:强制删除文件(不询问确认&…...
使用 uv 工具快速创建 MCP 服务(Trae 配置并调用 MCP 服务)
文章目录 下载Traeuv 工具教程参考我的这篇文章创建 uv 项目main.pyTrae 配置 MCP 服务添加 MCP创建智能体 使用智能体调用 MCP 创建 demo 表查询 demo 表结构信息demo 表插入 2 条测试数据查询 demo 表中的数据 下载Trae https://www.trae.com.cn/ uv 工具教程参考我的这篇…...
07 Python 字符串全解析
文章目录 一. 字符串的定义二. 字符串的基本用法1. 访问字符串中的字符2. 字符串切片3. 字符串拼接4. 字符串重复5.字符串比较6.字符串成员运算 三. 字符串的常用方法1. len() 函数2. upper() 和 lower() 方法3. strip() 方法4. replace() 方法5. split() 方法 四. 字符串的进阶…...
IEEE期刊目录重磅更新!共242本期刊被收录!
🔥 🔥 🔥 🔥 【IEEE期刊目录】 2025年2月,IEEE出版社更新了242本期刊目录,其中: • 完全OA期刊36本:SCI有6本,ESCI有15本; • 混合OA期刊183本&…...
微型计算机原理与接口技术第六版第四章课后习题答案-周荷琴,冯焕清-中国科学技术大学出版社
第六版书籍编排的第3章和第4章,仅这两章习题答案跟第四版的答案是相同的,可以参考第四版的答案 原第四版习题答案,蓝奏云: https://wwss.lanzouq.com/iWXOY1kvk3yf 第六版的第四章的习题我没有单独编辑,它是在上面第四…...
反爬策略应对指南:淘宝 API 商品数据采集的 IP 代理与请求伪装技术
一、引言 在电商数据驱动决策的时代,淘宝平台海量的商品数据极具价值。然而,淘宝为保障平台安全和用户体验,构建了严密的反爬体系。当采集淘宝 API 商品数据时,若不采取有效措施,频繁的请求极易触发反爬机制&#x…...
前端技术Ajax入门
1.1 AJAX 概念和 axios 使用 目标 了解 AJAX 概念并掌握 axios 库基本使用 讲解 1. 什么是 AJAX? 使用浏览器的 XMLHttpRequest 对象与服务器通信。在浏览器网页中,通过 AJAX 技术(XHR 对象)发起获取省份列表数据的请求&…...
【沉浸式求职学习day25】【部分网络编程知识分享】【基础概念以及简单代码】
不知道大家一直高强度学习自己是什么样的感觉,反正我现在逐渐变得麻木了,马上又要实习笔试了,每次笔试都要突击,每次突击都意识到自己有太多不会的,主打一个心累,但是又能怎样呢,自己选的路就是…...
聊聊Spring AI Alibaba的YoutubeDocumentReader
序 本文主要研究一下Spring AI Alibaba的YoutubeDocumentReader YoutubeDocumentReader community/document-readers/spring-ai-alibaba-starter-document-reader-youtube/src/main/java/com/alibaba/cloud/ai/reader/youtube/YoutubeDocumentReader.java public class You…...
常用第三方库:flutter_boost混合开发
常用第三方库:flutter_boost混合开发 前言 在移动应用开发中,混合开发是一个非常重要的话题。特别是对于已有原生应用想要引入Flutter的团队来说,如何实现Flutter页面和原生页面的无缝整合就显得尤为关键。本文将深入介绍flutter_boost这个…...
什么是 JSON?学习JSON有什么用?在springboot项目里如何实现JSON的序列化和反序列化?
作为一个学习Javaweb的新手,理解JSON的序列化和反序列化非常重要,因为它在现代Web开发,特别是Spring Boot中无处不在。 什么是 JSON? 首先,我们简单了解一下JSON (JavaScript Object Notation)。 JSON 是一种轻量级的…...
[mysql]数据类型精讲
目录 数据类型精讲: 整数类型 浮点类型 日期和时间类型 文本字符串类型 数据类型精讲: 精度问题:不能损失数据 性能问题:表的设计,范式的讲解. 表设计的时候需要设置字段,我们现在要把字段类型讲完.,细节点一点点给大家拆解. Float和double是有精度的损失的,这边推荐使用…...
WordPress AI插件能自动写高质量文章吗,如何用AI提升网站流量
WordPress AI插件能自动写高质量文章吗? 最近很多站长都在问,用wordpress AI插件真的能写出搜索引擎喜欢的好文章吗?作为一个用过10款AI写作工具的老站长,今天我就来分享真实使用体验,告诉你哪些插件好用、怎么用才能…...
【中级软件设计师】函数调用 —— 传值调用和传地址调用 (附软考真题)
【中级软件设计师】函数调用 —— 传值调用和传地址调用 (附软考真题) 目录 【中级软件设计师】函数调用 —— 传值调用和传地址调用 (附软考真题)一、历年真题二、考点:函数调用 —— 传值调用和传地址调用🔺1、传值调用🔺2、传引用(地址)调…...
ECMAScript 1(ES1):JavaScript 的开端
1. 版本背景与发布 ●发布时间:1997 年 6 月,由 ECMA International 正式发布,标准编号为 ECMA-262。 ●历史意义:ES1 是 JavaScript 的首个标准化版本,结束了 Netscape Navigator 与 Internet Explorer 浏览器间脚本语…...
C++入侵检测与网络攻防之暴力破解
目录 1.nessus扫描任务 2.漏洞信息共享平台 3.nessus扫描结果 4.漏扫报告的查看 5.暴力破解以及hydra的使用 6.crunch命令生成字典 7.其他方式获取字典 8.复习 9.关于暴力破解的防御的讨论 10.pam配置的讲解 11.pam弱密码保护 12.pam锁定账户 13.shadow文件的解析 …...
基于ssm的同城上门维修平台管理系统(源码+数据库)
54基于ssm的同城上门维修平台管理系统:前端jsp、jquery、bootstrap,后端 spring、mybatis,集成订单管理、商品管理、商品类型管理、商品浏览、购物车等功能于一体的系统。 ## 功能介绍 ### 用户 - 基本功能:登录、注册、退出、…...
力扣-hot100(和为k的子数组)
560. 和为 K 的子数组 中等 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1: 输入:nums [1,1,1], k 2 输出:2 示例 2: 输入…...
【计算机视觉】CV实战 - 基于YOLOv5的人脸检测与关键点定位系统深度解析
基于YOLOv5的人脸检测与关键点定位系统深度解析 1. 技术背景与项目意义传统方案的局限性YOLOv5多任务方案的优势 2. 核心算法原理网络架构改进关键点回归分支损失函数设计 3. 实战指南:从环境搭建到模型应用环境配置数据准备数据格式要求数据目录结构 模型训练配置文…...
HTML word属性
介绍 CSS word-spacing 属性,用于指定段字之间的空间,例如: p {word-spacing:30px; }word-spacing属性增加或减少字与字之间的空白。 注意: 负值是允许的。 浏览器支持 表格中的数字表示支持该属性的第一个浏览器版本号。 属…...
Java—ThreadLocal底层实现原理
首先,ThreadLocal 本身并不提供存储数据的功能,当我们操作 ThreadLocal 的时候,实际上操作线程对象的一个名为 threadLocals 成员变量。这个成员变量的类型是 ThreadLocal 的一个内部类 ThreadLocalMap,它是真正用来存储数据的容器…...
GTSRB德国交通标志数据集下载以及训练集划分
GTSRB德国交通标志数据集下载以及训练集划分 一、数据集下载二、数据集划分 一、数据集下载 官网地址:附含数据集说明文档点击下载:训练数据集点击下载:测试数据集 二、数据集划分 在模型训练时,将训练数据集分成训练集和验证集&…...
python 实现客户端软件许可证书签名授权 cryptography
目录 1.需求 2.cryptography介绍 3.实际代码 4.结束语 1.需求 采用pyside6开发了一款客户端软件, 为保护核心算法源码, 采用Nuitka打包python代码,这仅仅保护了核心算法代码,不能限制用户使用软件,因此需要软件许可授权签名证书ÿ…...
明远智睿SD2351核心板:以48元撬动AI视觉产业革命的“硬核引擎”
在人工智能浪潮席卷全球的今天,AI视觉作为连接虚拟与现实的“智慧之眼”,正以惊人的速度重塑着产业格局。从智慧城市中的安防监控到自动驾驶汽车的“视觉神经”,从工业产线的缺陷检测到家庭场景的智能管家,AI视觉技术的每一次突破…...
【C语言】全局变量、静态本地变量
在C语言中,变量是存储数据的基本单元。 不同类型的变量有着不同的特性和用途,其中全局变量和本地变量是比较特殊且重要的两类变量。 一、全部变量 1.1 全局变量的作用域和生存期 全局变量是在函数外部定义的变量,其作用域从定义的位置开始&…...
32.768kHz晶振详解:作用、特性及与其他晶振的区别
一、32.768kHz晶振的核心作用 实时时钟(RTC)驱动: 提供精确的1Hz时钟信号,用于计时功能(如电子表、计算机CMOS时钟)。 分频公式: 1Hz 32.768kHz / 2^15(通过15级二分频实现&#x…...
classfinal 修改过源码,支持jdk17 + spring boot 3.2.8
先贴图 使用 classfinal 修改过源码 支持jdk17 spring boot 3.3.0 使用方式: 1、springboot的jar加密 java -jar classfinal-fatjar-1.2.1.jar -file MySpringBoot.jar -libjars my-common.jar -packages cn.com.cmd -pwd 123456 -Y 得到: MySpri…...
算法训练营 Day1
努力追上那个曾经被寄予厚望的自己 —— 25.4.25 一、LeetCode_26 删除有序数组中的重复项 给你⼀个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现⼀次 ,返回删除后数组的 新⻓度。元素的 相对顺序 应该保持 ⼀致 …...
4/25 研0学习日志
Python学习 python 4个常用的数据容器 list dict tuple set list 列表中数据类型可以不一样 构造方式 mylist["xxx","xxxx"] 获取数据方式 mylist[1] mylist[:4] mylist[-1:] 添加数据 mylist.append() mylist.extern(["aaa","aaaa&…...
手机打电话时电脑坐席同时收听对方说话并插入IVR预录声音片段
手机打电话时电脑坐席同时收听对方说话并插入IVR预录声音片段 --本地AI电话机器人 前言 书接上一篇,《手机打电话通话时如何向对方播放录制的IVR引导词声音》中介绍了【蓝牙电话SDK示例App】可以实现手机app在电话通话过程中插播预先录制的开场白等语音片段的功能。…...
汽车零配件供应商如何通过EDI与主机厂生产采购流程结合
当前,全球汽车产业正经历深刻的数字化转型,供应链协同模式迎来全新变革。作为产业链核心环节,汽车零部件供应商与主机厂的高效对接已成为企业发展的战略要务。然而,面对主机厂日益严格的数字化采购要求,许多供应商在ED…...
sql server 开启cdc报事务正在执行
今天开启数据库cdc 功能的时候提示:一个dbrole 的存储过程,rolemember cdc db_ower, ,有事务正在进行,执行失败。 执行多次仍然如此,开启cdc的存储过程是sys.sp_cdc_enable_db;查询了一下网络,给出的方…...
03实战篇Redis02(优惠卷秒杀、分布式锁)
3、优惠卷秒杀 3.1 -全局唯一ID 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单并保存到tb_voucher_order这张表中,而订单表如果使用数据库自增ID就存在一些问题: id的规律性太明显 受单表数据量的限制 场景分析&…...
ECharts 地图开发入门
一、准备工作:环境搭建与数据准备 1. 引入 ECharts 库 TypeScript 取消自动换行复制 <!-- 引入 ECharts 核心库 --> <script src"https://cdn.jsdelivr.net/npm/echarts5.4.0/dist/echarts.min.js"></script> <!-…...
机器学习基础 - 回归模型之线性回归
机器学习: 线性回归 文章目录 机器学习: 线性回归1. 线性回归1. 简介2. 线性回归如何训练?1. 损失函数2. 正规方程3. 梯度下降法4. 两种方法的比较2. 岭回归岭回归与线性回归3. Lasso 回归4. ElasticNet 回归LWR - 局部加权回归QA1. 最小二乘法估计2. 最小二乘法的几何解释3…...
《解锁LLMs from scratch:开启大语言模型的探索之旅》
《解锁LLMs from scratch:开启大语言模型的探索之旅》 GitHub - datawhalechina/llms-from-scratch-cn: 仅需Python基础,从0构建大语言模型;从0逐步构建GLM4\Llama3\RWKV6, 深入理解大模型原理 项目首页 - LLMs-from-scratch:从零开始逐步指导开发者构建自己的大型语言模型…...
嵌入式 C 语言面试核心知识点全面解析:基础语法、运算符与实战技巧
在嵌入式面试中,C 语言基础是重中之重。本文针对经典面试题进行详细解析,帮助新手系统掌握知识点,提升面试应对能力。 一、数据结构逻辑分类 题目 在数据结构中,从逻辑上可以把数据结构分为( )。 A、动态…...
pyqt中以鼠标所在位置为锚点缩放图片
在编写涉及到图片缩放的pyqt程序时,如果以鼠标为锚点缩放图片,图片上处于鼠标所在位置的点(通常也是用户关注的图片上的点)不会移动,更不会消失在图片显示区域之外,可以提高用户体验,是一个值得…...
登高架设作业证考试的实操项目有哪些?
登高架设作业证考试的实操项目分为 4 个科目,包括安全防护用品使用、作业现场安全隐患排除、安全操作技术、作业现场应急处置,具体内容如下: 科目一:安全防护用品使用(K1) 考试项目:安全帽、安全…...
闻性与空性:从耳根圆通到究竟解脱的禅修路径
一、闻性之不动:超越动静的觉性本质 在《楞严经》中,佛陀以钟声为喻揭示闻性的奥秘:钟声起时,闻性显现;钟声歇时,闻性不灭。此“不动”并非如磐石般凝固,而是指觉性本身超越生灭、来去的绝对性…...
404了怎么办快把路由给我断掉(React配置路由)
路由基础概念 什么是前端路由? 核心作用:管理单页面应用的页面切换主要功能: 根据URL显示对应组件 保持浏览器历史记录 实现页面间导航不刷新 React Router 包含三个主要包: react-router:核心逻辑react-router-d…...
React类组件与React Hooks写法对比
React 类组件 vs Hooks 写法对比 分类类组件(Class Components)函数组件 Hooks组件定义class Component extends React.Componentconst Component () > {}状态管理this.state this.setState()useState()生命周期componentDidMount, componentDidU…...
Tailwind CSS实战:快速构建定制化UI的新思路
引言 在当今快节奏的前端开发环境中,开发者不断寻找能够提高效率并保持灵活性的工具。Tailwind CSS作为一个功能型优先的CSS框架,正在改变开发者构建用户界面的方式。与Bootstrap和Material UI等传统组件库不同,Tailwind不提供预设组件&…...
告别手动映射:在 Spring Boot 3 中优雅集成 MapStruct
在日常的后端开发中,我们经常需要在不同的对象之间进行数据转换,例如将数据库实体(Entity)转换为数据传输对象(DTO)发送给前端,或者将接收到的 DTO 转换为实体进行业务处理或持久化。手动进行这…...
JavaScript学习教程,从入门到精通,Ajax数据交换格式与跨域处理(26)
Ajax数据交换格式与跨域处理 一、Ajax数据交换格式 1. XML (eXtensible Markup Language) XML是一种标记语言,类似于HTML但更加灵活,允许用户自定义标签。 特点: 可扩展性强结构清晰数据与表现分离文件体积相对较大 示例代码࿱…...