自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ACP(十二)构建坚不可摧的AI应用:安全与合规

你将答疑机器人开放给内部员工测试,新问题很快出现了。你发现有人在诱导机器人讲述涉黄、涉暴内容,或发表政治评论。这些输入如不加以防范,很可能会导致机器人做出意料之外的回应。不但危及系统安全,还有可能触犯法律法规。你必须立即行动,提升应用的安全性。

2025-09-27 02:53:22 1581

原创 ACP(十一)大模型应用生产实践

通过前面课程学习,你的答疑机器人已经可以比较好的回答私域知识,接下来将继续探讨如何将这个大模型应用发布至生产环境,即如何将大模型应用从开发和测试阶段转移到实际业务场景中,这是一个复杂且关键的过程,涉及多个步骤和技术考虑。将大模型发布至生产环境并应用于实际业务场景并非易事。这不仅需要从业务场景出发,通过明确的需求选择更适合的模型(模型的功能性需求,如针对数学问题做优化的Qwen-Math)。还需要从系统架构的角度全面考量性能、成本、安全性和稳定性。

2025-09-24 21:58:56 815

原创 ACP(十)部署模型

在经过模型微调和评测后,答疑机器人的开发工作已经接近完成。本节课程将继续学习如何在计算资源上部署模型,使其成为一个可访问的应用服务。同时还会一步介绍在云上部署模型的常见方法,并帮助你根据自身的需求选择最合适的方式 部署模型。

2025-09-24 15:22:11 794

原创 ACP(七)优化RAG应用提升问答准确度

在前面的课程中,你已经通过自动化评测发现答疑机器人的一些问题。优化提示词并不能解决检索召回不准确引起的回答错误问题,就像你在开卷考试时拿着错误的参考书很难给出正确的答案一样。

2025-09-22 21:18:21 1262

原创 ACP(八):用插件扩展答疑机器人的能力边界

在前面课程中,你已经掌握了通过优化提示词和检索流程提高答疑机器人效果的方法。但目前的答疑机器人依然有一定的局限性,本章节将带你发掘这些不足并引入智能体(Agent)应用以解决这些问题,它以大模型为基础,同时可以拓展大模型的能力,就像给大脑配备了四肢。接下来,在配置好环境变量后你就可以开始搭建一个Agent智能体了。当然,从零来构建一个Agent需要处理复杂的底层实现,这往往需要大量的时间和精力 ,因此你可以使用Assistant API来帮助你更高效地构建Agent.

2025-09-21 19:23:49 973

原创 ACP(六)自动化评测机器人的表现

除了前面介绍的Ragas、TruLens、DeepEval等专业评测框架,你可能也接触过其他的开源评测工具,比如LlamaIndex和LangChain这些主流RAG开发框架本身也有内置评估工具。这些评估工具能让你在构建RAG流程的同时,方便地进行性能评估,实现无缝衔接。但是,在某些特定场景下,你可能需要更灵活、更贴合业务的评估方式,这时你也可以选择自定义评测框架。

2025-09-21 12:55:14 1150

原创 ACP(五):优化提示词(Prompt),精细地控制大模型的输出

import osdef reasoning_model_response(user_prompt, system_prompt="你是一个编程助手。"""prompt: 用户输入的提示词model: 此处以 qwen3-235b-a22b-thinking-2507 为例,可按需更换推理模型名称,如:deepseek-r1"""# 初始化客户端# 初始化状态变量# 发起流式请求messages=[],# 打印思考过程标题。

2025-09-17 20:56:34 1229

原创 ACP(四):RAG工作流程及如何创建一个RAG应用

检索是RAG应用中最重要的环节,你可以想象如果考试的时候找到了错误的资料,那么回答一定是不准确的。如果信息太多或无关,模型的性能会下降,成本也会增加。你在考试的时候有可能会因为忘记某个概念或公式而失去分数,但考试如果是开卷形式,那么你只需要找到与考题最相关的知识点,并加上你的理解就可以进行回答了。,由大模型生成回复,这个阶段更多是利用大模型的总结能力,而不是大模型本身具有的知识。,而不是重新建立索引,那就可以大幅提升回复的速度,LlamaIndex提供了简单易实现的保存与加载索引的方法。

2025-09-16 19:53:34 654

原创 ACP(三):让大模型能够回答私域知识问题

然而,当你试图将更多的公司文档(例如几十页的员工手册、上面页的技术规范)都用这种方式“喂”给大模型时,一个新的、更严峻的挑战出现了。但对于你公司的“内部资料”,它的硬盘里是空白的。总的来说,基于RAG结构的应用,既避免了将整个参考文档作为背景信息输入而导致的各种问题,又通过检索提取出了与问题最相关的部分,从而提高了大模型输出的准确性与相关性。3.信息干扰:如果上下文中包含了大量与当前问题无关的信息,就像在开卷考试时给了考生一本错误科目的教科书,反而会干扰模型的判断,导致回答质量下降。

2025-09-15 20:34:19 856

原创 ACP笔记(二):大模型的问答工作流程及影响大模型内容生成的随机生成参数

为了模拟大模型生成内容的过程,我们预设了一个候选Token集合,这些Token分别为:“RAG”、“提示词”、“模型”、“写作”、“画画”。通过top_p参数,将影响大模型在候选Token集合中的选择倾向,如选择概率最高为“informative”。由上图可知,温度从低到高(0.1->0.7->1.2),概率分布从陡峭趋于平滑,候选Token“RAG”从出现的概率0.8->0.6->0.3,虽然依然是出现概率最高的,但是已经和其它的候选Token概率接近 ,最终输出也会从相对固定到逐渐多样化。

2025-09-14 17:30:19 800

原创 Node搭建MCP

mcp搭建和理解

2025-03-29 12:22:17 1045 3

原创 vitePress实现原理(五)路由基本实现

在之前vitepress实现原理(三)构建vite插件createVitePressPlugin函数的configureServer中提到了,当Vite启动开发服务器时调用时,对一切.html请求会返回如下的结构${APP_PATH就是入口文件(类似vue项目内的main.ts),根据之前代码分析得出APP_PATH就是,也就是源码位置当中目录。

2025-02-13 09:39:37 760

原创 vitePress实现原理(四)

本质其实就是搭建一个vite静态服务器,针对所有html文件做拦截,进行二次封装。通过读取.vitepress/config.ts配置转化基本vitepress配置等等,创建markdown插件扩展markdown文档能力。创建vitepress插件对md文件和vue文件做处理。大家这时肯定好奇,怎么没有路由呢?

2025-02-13 09:38:09 463

原创 vitePress实现原理(三)

源码位置:配置解析和合并:解析用户自定义的VitePress配置。合并基础配置和用户自定义配置,生成最终的Vite配置。主题文件处理:监听主题文件的变化,并在发生变化时重启服务器以应用新的主题。Markdown文件处理:将Markdown文件转换为Vue组件以便使用Vue插件进行进一步处理。处理Markdown文件中的死链,并在检测到死链时输出警告信息。静态资源处理:在构建过程中对静态资源进行优化,包括注入标记以标识静态字符串的开始和结束。生成精简版本的JavaS

2025-02-13 09:36:55 905

原创 vitePress实现原理(二)

【代码】vitePress实现原理(二)

2025-02-13 09:35:45 674

原创 vitePress实现原理(一)

vitePress对于前端同学肯定都不陌生。官方介绍:VitePress 是一个(SSG),专为构建快速、以内容为中心的站点而设计。简而言之,VitePress 获取用 Markdown 编写的内容,对其应用主题,并生成可以轻松部署到任何地方的静态 HTML 页面。接下来,和大家一起学习vitepree原理。后续会根据这套原理,教大家构建一个底层原理类似vitepress的组件站点,适用于公司构建一套统一的组件库首先先看看 vitePress构建前后对比图,不难看出,其它构建后的中和。

2025-02-13 09:32:42 1319

原创 vue+contenteditble+手动移动光标 实现 输入框 动态模板输入

【代码】vue+contenteditble+手动移动光标 实现 输入框 动态模板输入。

2024-12-30 19:35:47 480

原创 webSokect安卓和web适配的Bug 适用实时语音场景

所以,对于一些不符合严格规范但在实际使用中可能不会产生严重安全问题的情况(如某些对常规链接的模糊处理),浏览器可能会进行内部的兼容处理,而不要求开发者显式地去处理。而且,手机操作系统为了确保安全性和稳定性,对应用的网络连接要求更加严格,不太可能自动对不符合规范的链接进行兼容处理。为了用户的隐私,一般许多API(包括录音权限访问),只能在https才能够访问。参考文章:https://modstart.com/p/r13f9t7tpnsuqbss。媒体流中的每个音频轨道对应麦克风的输入通道。

2024-12-17 21:21:05 1404

原创 表格行拖拽,动态变化行高(基于ag-grid或antdv)

首先:动态变化行高,就不能设置高度自适应。如果有行合并还需要保留变化高度。其次:如果行高和cell高度不是一致,还需要从行高计算到cell高。

2024-11-11 20:05:54 624

原创 基于表格滚动截屏(表格全部展开,没有滚动条)

这种滚动截图比较耗费性能,如果表格过大没有必要使用这种方式。尝试让后端调用页面截图。

2024-11-11 09:12:11 510

原创 手动实现筛选功能,带搜索(基于antdv框架,优化于原有筛选功能)

注:自定义表头筛选功能,必须。

2024-11-04 19:41:05 459

原创 package.json字段详解,后续更新

是一种声明依赖关系的方式,适用于需要与宿主应用程序共享依赖项的场景。它可以帮助避免版本冲突,并且让依赖关系更加明确。使用时,需要注意版本管理和用户体验,确保用户能够顺利安装和使用你的包。license字段用于指定包的许可证类型。许可证类型决定了其他人如何使用、修改和分发你的代码。ISC是一种开源许可证,允许几乎无限制地使用、复制、修改和分发代码。常见的许可证类型还包括MITApache-2.0GPL-3.0等。files字段用于指定在发布到 npm 时应包含的文件或目录。

2024-10-29 19:34:56 2619

原创 二次封装slot插槽,并转成render函数

是一种特殊的虚拟节点类型,用于表示一组兄弟节点,而不需要在 DOM 中创建额外的包装元素。二次封装slot插槽,并转成render函数。

2024-10-29 19:22:01 249

原创 JS正则表达式:使用正则表达式匹配和替换多个文本

【代码】JS正则表达式:使用正则表达式匹配和替换多个文本。

2024-10-26 21:37:30 801

原创 vue文件转AST,并恢复成vue文件(适用于antdv版本升级)

vue项目 antdv v3版本升级插件

2024-10-26 21:22:25 1453

原创 纯前端,下载excel(有表头和数据)

【代码】纯前端,下载excel(有表头和数据)

2024-08-06 19:20:43 398

原创 手动实现锚点

【代码】手动实现锚点。

2024-07-25 21:02:49 221

原创 自适应布局

【代码】自适应布局。

2024-07-25 20:53:22 150

原创 图片拖拽点击上传

【代码】图片拖拽点击上传。

2024-07-25 20:50:49 148

原创 el-checkbox全选和自定义

el-checbox全选和自定义

2024-07-25 20:44:30 495

原创 JavaScript(七十六)Jquery的案例练习

放大镜:<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title></title> <script src="../js/jquery-3.4.1.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> *{

2021-06-26 10:29:58 433

原创 Javascript(七十五)jquery的ajax和cookie

JQ的cookie使用下载jquery.cookie.js文件 下载地址:https://plugins.jquery.com/cookie/$.cookie() (与我们之前封装的cookie函数类似,可以看我之前的博客,有讲cookie使用)$.cookie(name) 取值$.cookie(name,value) 设置cookie 键名和键值$.cookie(name,value,option) 设置cookie 键名和键值以及cookie可选项,option必须是对象$

2021-06-26 10:25:30 737

原创 JavaScript(七十四)JQuery插件方法

$.extend 拓展工具方法 调用方式:$.xxx()参数:对象,属性名为函数名,属性值为函数体$.fn.extend 拓展jquery的函数库,调用 $().xxx()注:为了满足jquery链式操作的思想,在设置新增方法和工具方法的时候,返回this。...

2021-06-24 10:28:21 261

原创 Javascript(七十三)jquery工具方法

JQ的工具方法和我们自己封装的js方法没有区别。jq方法调用$().xxx() 必须是JQ对象调用jq工具方法调用 $.xxx() 与普通封装的js方法没区别.type()输出当前数据的数据类型功能类似于typeof但是.type() 输出当前数据的数据类型 功能类似于typeof 但是.type()输出当前数据的数据类型功能类似于typeof但是.type()更加的完善。$.trim() 删除字符串首尾空格 功能类似于 ECM5删除首尾空格 .trim()参数:

2021-06-24 10:25:01 321

原创 Javascript(七十二)jquery中的animate方法

.animate 实现动画效果 ,这与我们之前封装的完美运动框架差不多的。但是他这个默认的运动形式不是缓冲运动,是属于慢快慢。第一个参数:对象,样式名:样式最终效果第二参数:动画持续时间第三参数:运动形式:仅有两种 ‘linear’:匀速 ‘swing’:慢快慢(默认)可省略。第四个参数:回调函数,动画结束时执行。如果想拓展更多的运动形式,可以引入jquery-ui框架(类似于boostrap,通过class名,添加样式),但是基本被淘汰了。https://www.jqueryui.or

2021-06-23 06:25:37 1532 2

原创 Javascript(七十一)jQuery特效函数

移入移出**.hover(functionOver,functionOut):移入移出效果,functionOver表示移入函数,functionOut表示移出效果。隐藏显示:.hide() 元素隐藏,功能:style.display=‘none’。隐藏过程,从左上角收起第一个参数:(动画持续的毫秒数)第二个参数:(回调函数,动画结束时执行).show() 元素显示,功能:style.display=‘block’。显示过程,从左上角展开第一个参数:(动画持续的毫秒数)第二个参数:(

2021-06-23 06:06:01 179

原创 JavaScript(七十) jquery(二)

jquery常用的方法筛选结点.filter() 过滤:对我们已经获取到的网页元素进行过滤,选择符合()内条件的元素。.not() 反过滤:选择与filter相反的元素,选择不符合()内条件的元素。.has()拥有,直接判定该节点是否是否有符合条件的子节点元素,如果有,该节点被选中(注:不是子节点,而是父节点).next() 选择同级节点的下一个元素节点(类似于nextElementSibling).prev() 选择同级节点的下一个元素节点(类似于previousElementSib

2021-06-22 08:03:33 263 2

原创 JavaScript(六十九) jquery(一)

JQuery简介1.一个快速、简洁的JavaScript框架;2.设计的宗旨是‘write Less,Do More’(写的更少,做得更多);3.JQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari2.0+、Opera 9.0+JQuery好处1.简化JS的复杂操作;2.不再需要关心兼容性;3.提供大量实用方法Jquery版本区别1.x 可以兼容到IE8以下2.x 只兼容IE8以上如何学习JQ?1.https://jquery.com/ JQ的官方网

2021-06-21 08:37:50 424 7

原创 JavaScript(六十八)版本控制工具 git

安装git1.安装git客户端(去网上搜索下载就好了,很简单)window系统安装之后,在菜单的应用程序下就会有一个git文件夹。git文件夹下面有三个主要的控制台git Bash:支持linux命名的git控制台 (最常用)git CMD:支持window命令的控制台git GUI: git可视化界面苹果自带git2.VSCode 安装git插件​ 快捷键 ctrl+~ 迅速打开终端,并且当前路径是我当前页面所在路径下载安装完毕git之后,就可以github官网地址(

2021-06-21 08:18:50 410 1

原创 Javascript(六十七)模块化

模块就是实现特定功能的一组方法原始写法只要把不同的函数(以及记录状态的变量)简单地放在一起,就算是一个模块。缺点:全局变量污染对象写法缺点:虽然没有造成全局变量污染,但是对外暴露,外部可以随意更改对象内的元素。闭包(立即执行函数)达到不暴露私有成员的目的,外部无法随意更改函数内的变量以及函数,因为根本访问不到,函数内部变量对外都是不可见的。缺点:无法二次拓展,就是在原有基础上拓展放大模式缺点:拓展的基础,必须是先有一个原型,如果原型是在后面运行的,就无法拓展了宽放大模式解决

2021-06-20 08:46:00 232

空空如也

空空如也

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

TA关注的人

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