自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(65)
  • 收藏
  • 关注

原创 【灶台导航】优化纠错实录

项目初版完成后,看似功能完备,实际使用中却暴露出各种问题:按钮点了没反应、AI生成一直失败、保存的数据是空的……这篇文章完整记录了从发现问题到定位根因到修复验证的全过程,涵盖交互逻辑纠错、AI链路加固、数据完整性保障、历史生命周期管理、UI细节打磨五个维度。

2026-06-02 20:25:58 386

原创 提示词工程实战:从“能对话“到“能干活“的LLM应用设计

很多人以为调用大模型API就是写一句"你是xxx助手",然后让LLM自由发挥。但在真实产品中,LLM不是聊天玩具,而是业务流程的一环——它必须输出结构化数据、遵守业务规则、在模糊场景中做出正确决策。这篇文章基于"灶台导航"微信小程序的开发实践,从零讲起提示词工程(Prompt Engineering)的核心方法论。

2026-06-02 20:25:16 620

原创 【灶台导航】个人中心模块开发实战

个人中心是灶台导航的核心枢纽,承载了用户身份、家庭画像、烹饪记录、私人菜谱、偏好设置等能力。整个模块涉及 1个主页面 + 4个子页面 + 1个云函数 + 向量数据库同步,数据流从云端到界面环环相扣。微信小程序云开发有一个关键特性:只要用户打开了小程序, 就自动可用,不需要调用 或任何授权弹窗。这意味着我们的"登录"其实不是认证,而是个性化——让用户设置昵称和头像。每次云函数调用前, 会检查用户文档是否存在:设计要点:登录状态的判断很简单——有没有昵称:没有昵称时,个人中心头部显示"点击登录";有了昵

2026-05-24 11:00:00 424

原创 应急处理知识库:关键词匹配与智能问答

要点说明数据结构分类 + 关键词 + 步骤 + 注意事项关键词匹配加权匹配 + 阈值判断上下文传递sessionId + 追问识别降级方案热门问题推荐AI 增强关键词失败时调用 AI通过关键词匹配 + AI 理解的组合方案,可以快速响应用户的应急查询需求。作者:「倒灶了队」项目:灶台导航 - 微信小程序更新时间:2026-05-25。

2026-05-22 12:00:00 418

原创 私人菜谱向量检索:基于用户隔离的个性化RAG

用户A创建了私人菜谱"妈妈的红烧肉",用户B也有一道"秘制红烧肉"。私人菜谱的写入涉及两个存储:云数据库(主存储)+ Qdrant(向量索引)。私人菜谱向量检索是RAG系统从"通用"走向"个性化"的关键一步。标签让LLM知道这是用户自己的菜谱,推荐时可以优先提及。保存成功后,下次AI对话就能语义检索到这道私人菜谱。Qdrant的filter在向量搜索阶段就生效,,不会因为向量搜索失败而跳过私人菜谱检索。,防止误删其他用户的同ID菜谱。更新时间:2026-05-18。,不会返回其他用户的数据。

2026-05-18 09:30:00 400

原创 【灶台导航】ai回答全流程架构

fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;fill:#333;height:1em;是否是否DeepSeek API超时/失败本地关键词匹配 + 数据库分类查询仍然无法匹配?兜底提示'请换种方式描述'返回结果Qdrant向量搜索超时/失败TF-IDF关键词检索纯JS,无外部依赖仍然无高分结果?DeepSeek不带RAG上下文直接回答。

2026-05-13 15:11:19 256

原创 【灶台导航】烹饪导航页:步骤、定时器与语音播报

烹饪导航页是产品的差异化亮点——像地图导航一样,分步骤引导用户完成烹饪。步骤展示:图文结合(图片资料展示没有导入,目前只实现文字指导),清晰指导定时器:每步可设置计时提醒语音播报:解放双手多菜品切换:支持同时烹饪多道菜(时间统筹算法-----初步版本并不实现)

2026-05-12 21:26:29 431

原创 【灶台导航】 RAG系统的容错设计:从向量搜索到关键词降级,一个都不能少

当三个外部依赖都可能随时挂掉时,如何保证用户永远有响应?

2026-05-12 15:22:47 488

原创 Docker部署Qdrant向量数据库,初始化向量数据库,重构RAG逻辑

灶台导航的AI对话最初只依赖TF-IDF关键词匹配来检索菜谱,效果有限——用户说"家里有土豆和鸡蛋怎么办",关键词搜索很难匹配到"土豆鸡蛋饼"这样的菜谱,因为词频重叠太少。要实现真正的语义理解,需要引入向量数据库,而Qdrant是目前最轻量的开源选择。

2026-05-12 14:41:20 595

原创 云函数最佳实践:错误处理与响应格式统一

要点规范响应格式错误码0 成功,400 参数错误,500 服务器错误参数校验统一校验工具,必填 + 类型检查错误处理分类处理、统一返回封装调用前端统一 callFunction 封装遵循这些规范,可以让云函数代码更健壮、更易维护。作者:「倒灶了队」项目:灶台导航 - 微信小程序更新时间:2026-04-19。

2026-04-19 13:23:04 334

原创 【灶台导航】首页AI对话:语音输入与多轮对话实现

首页是产品的核心入口,用户通过自然语言与AI交互。文本输入框语音输入(语音转文字)对话记录展示AI推荐菜谱。

2026-04-19 12:06:07 405

原创 DeepSeek API集成:让小程序拥有AI大脑

当 AI 服务不可用时,使用本地数据库的预设回复或关键词匹配作为后备方案。用户请求│▼调用 DeepSeek API│├── 成功 → 返回 AI 回复│└── 失败 → 降级方案│▼关键词匹配本地数据│▼返回预设回复要点说明配置管理API Key 存环境变量超时重试设置超时 + 指数退避重试错误降级AI 失败时使用关键词匹配上下文管理数据库存储对话历史成本控制缓存 + 限制历史长度通过合理的架构设计,可以让小程序稳定地接入 AI 能力。

2026-04-18 23:31:54 624

原创 【灶台导航】前端架构设计:页面与组件化

stylepx;</</</</</</},methods: {onBack() {})使用方式-- pages/cook/cook.wxml --> < page-header title = " 烹饪导航 " showBack = " {{true}} " statusBarHeight = " {{statusBarHeight}} " />

2026-04-13 09:00:00 190

原创 微信小程序组件化开发最佳实践

/ 简写// 完整写法value: true, // 默认值// 属性变化时的回调},// 复杂类型value: {}},// 数组类型value: []})要点说明全局注册app.json 中声明,所有页面可用Props 传递属性定义、类型校验、默认值事件通信triggerEvent 触发,bind 监听插槽使用单插槽、具名插槽扩展组件职责单一一个组件只做一件事通过组件化开发,可以显著提升代码复用性和可维护性。作者:「倒灶了队」

2026-04-08 12:10:38 491

原创 微信同声传译插件完全指南:语音识别与语音合成实战

功能说明应用场景语音识别将语音转为文字语音搜索、语音输入语音合成将文字转为语音步骤播报、语音提示实时翻译中英互译(暂不常用)国际化场景功能API说明获取识别管理器录音+识别一体化开始识别duration 最长60秒停止识别触发 onStop 回调文字转语音返回音频临时路径播放音频配合 TTS 使用。

2026-04-08 11:44:05 1662

原创 微信云开发云函数初步尝试:从Hello World开始

介绍微信云开发的基本使用

2026-03-31 20:55:43 594

原创 【项目实训】灶台导航——AI场景化家庭烹饪助手:项目初创与环境搭建

本文记录了项目启动阶段的核心工作:Gitee仓库搭建和技术选型。

2026-03-29 15:14:34 277

原创 利用docker部署前后端分离项目

可以通过docker inspect px_nginx命令查看mounted下挂载的数据卷。利用workbench测试连接并将要用到的数据库表从本地数据库导入。运行容器:我这里3306被占了就用的39001映射。这个时候可以在浏览器访问后端服务测试部署是否成功。然后就可以访问39003(按你设置的端口映射来)Dockerfile文件如下,注意命令是大写。需要注意的是如下规则,按你项目需求选择。利用构建的镜像创建容器并运行。然后构建镜像,执行下面指令。然后启动容器并挂载数据卷。跟前面后端jar包上传一样。

2025-07-12 18:16:15 730

原创 阿里云轻量级服务器利用宝塔面板部署前后端分离项目

然后数据库就设置成刚刚服务器安装的 ,因为数据库和后端运行在同一服务器,所以host改为localhost,不是的话按你数据库在哪配置,这里用户名和密码就是你刚刚设置的。登录宝塔后会让你选择下载哪些应用,可以先不下,也可以选最推荐的先下了,然后再根据自己需要增加或删除,我这个是下了这几个,注意一下软件版本。添加后默认任何请求都会转发到后端,但对路由的请求不应该转发到后端,所以要修改配置文件。关注你的axios配置,如果你是这样配置,baseURL得改成你后端部署的url。,帮助前端单页应用进行路由控制。

2025-07-10 21:28:45 1327

原创 第十五届蓝桥杯大赛软件赛国赛Java 大学 A 组

/ 1:无需package// 2: 类名必须Main, 不可修改Node prev;Node next;i < n;// 检查前驱节点是否存在,并更新 cnt= null) {= 0) {cnt--;// 如果后继节点也存在,检查新邻居关系= null) {= 0) {cnt++;// 检查后继节点是否存在,并更新 cnt= null) {= 0) {cnt--;// 从链表中移除 node。

2025-06-14 10:21:00 984

原创 第十四届蓝桥杯大赛软件赛国赛Java大学A组答案整理

/ 预定义0-9的状态码"0000011","1001011","0000001","0100001","0101011","0110110","1111111","0010110","0101001","0010110","1011100","0100110","1010000","0010011","0001111","0101101","0110101","1101010"digit <= 9;1:count;

2025-06-12 17:11:14 1076

原创 山东大学算法设计与分析复习笔记

一个由若干子句(clauses)构成的布尔逻辑表达式(合取范式,CNF),其中每个子句。

2025-06-06 21:30:43 1396 1

原创 蓝桥杯java2021年十二届国赛大学A组真题答案整理

/ 1:无需package// 2: 类名必须Main, 不可修改i < n;i++){j < m;hash[h]++;//到这里sumi即为第一层的积木数i <= H;//减去已经淹没的积木,sumi变成当前层的积木数in.close();

2025-05-31 22:13:57 939

原创 蓝桥杯java2022年十三届国赛大学A组答案整理

小蓝是幼儿园的老师, 他的班上有 28 个孩子, 今天他和孩子们一起进行了 一个游戏。小蓝所在的学校是寄宿制学校, 28 个孩子分别有一个自己的房间, 每个房 间对应一把钥匙, 每把钥匙只能打开自己的门。现在小蓝让这 28 个孩子分别将 自己宿舍的钥匙上交, 再把这 28 把钥匙随机打乱分给每个孩子一把钥匙, 有 28!=28×27×⋯×1 种分配方案。

2025-05-31 00:17:34 1195

原创 山东大学操作系统实验七

【代码】山东大学操作系统实验七。

2025-05-19 09:43:31 475

原创 山东大学操作系统实验五

【代码】山东大学操作系统实验五。

2025-05-19 09:41:27 360

原创 山东大学操作系统实验四

【代码】山东大学操作系统实验四。

2025-05-19 09:39:18 247

原创 山东大学操作系统实验三

【代码】山东大学操作系统实验三。

2025-05-19 09:36:36 279

原创 山东大学操作系统实验二

【代码】山东大学操作系统实验二。

2025-05-19 09:34:54 249

原创 山东大学操作系统实验一

【代码】山东大学操作系统实验一。

2025-05-19 09:33:18 158

原创 山东大学数据结构课程设计

山东大学数据结构课程设计

2025-03-23 22:36:18 448

原创 竞赛团队招募系统----山东大学web课程设计

山东大学web课程设计

2025-03-23 22:29:01 404

原创 第十五届蓝桥杯java大学A组省赛答案整理

小蓝正在玩拼图游戏,他有 73851378887217385137888721 个 2×22×2 的方块和 1047024510470245 个 1×11×1 的方块,他需要从中挑出一些来拼出一个正方形,比如用 33 个 2×22×2 和 44 个 1×11×1 的方块可以拼出一个 4×44×4 的正方形,用 99 个 2×22×2 的方块可以拼出一个 6×66×6 的正方形,请问小蓝能拼成的最大的正方形的边长为多少。

2025-03-16 21:07:27 1118

原创 第十四届蓝桥杯省赛java大学A组答案整理

图中圆形表示的是暂存的输出结果,取值只可能是 00 或 11,为了便于表示我们用 arr⁡[i][j]arr[i][j] 表示第 i(0≤i≤4)i(0≤i≤4) 行第 j(0≤j≤i)j(0≤j≤i) 个圆形的值。现在已知输入为 In⁡[0]=1,In⁡[1]=0,In⁡[2]=1,In⁡[3]=0,In⁡[4]=1In[0]=1,In[1]=0,In[2]=1,In[3]=0,In[4]=1,小蓝想要使得最终的输出 OutOut 的值为 1, 请问一共有多少种不同的门电路组合方式?

2025-03-07 09:38:35 885

原创 第十三届蓝桥杯省赛大学A组Java答案整理

小蓝有一个裁纸刀,每次可以将一张纸沿一条直线裁成两半。小蓝用一张纸打印出两行三列共 6 个二维码,至少使用九次裁出来,下图给出了一种裁法。在上面的例子中,小蓝的打印机没办法打印到边缘,所以边缘至少要裁 4 次。另外,小蓝每次只能裁一张纸,不能重叠或者拼起来裁。如果小蓝要用一张纸打印出 20 行 22 列共 440 个二维码,他至少需要裁多少次?

2025-03-05 20:05:12 1066

原创 第十二届蓝桥杯大学A组java省赛答案整理

小蓝有一个超大的仓库,可以摆放很多货物。现在,小蓝有 nn 箱货物要摆放在仓库,每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向,每箱货物的边都必须严格平行于长、宽、高。小蓝希望所有的货物最终摆成一个大的长方体。即在长、宽、高的方向上分别堆 LL、WW、HH 的货物,满足 n=L×W×Hn=L×W×H。给定 nn,请问有多少种堆放货物的方案满足要求。

2025-03-04 16:26:32 1285 1

原创 第十一届蓝桥杯java省赛大学A组答案整理

门牌制作。

2025-02-28 21:59:37 833

原创 第十届蓝桥杯Java省赛A组答案整理

第十届蓝桥杯省赛A组java

2025-02-27 17:50:53 956

原创 快速幂,矩阵快速幂,快速乘

在算法设计中,快速幂和矩阵快速幂是两个非常重要的技术,尤其在解决涉及大规模计算的问题时表现出色。本文将总结这两种方法的原理及其在Java中的实现。

2025-02-20 15:41:56 792

原创 质因数分解

来源:牛客网。

2025-02-20 15:27:44 435

23级山东大学数据结构课程设计

23级山东大学数据结构课程设计,java实现,全国交通查询系统

2025-03-16

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除