自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不才的专栏

不积跬步无以至千里

  • 博客(311)
  • 收藏
  • 关注

原创 ChatPromptTemplate的使用

ChatPromptTemplate 是 LangChain 中专门用于管理的提示词模板工具。它的核心价值在于,开发者可以预先定义不同类型的对话角色消息(如系统指令、用户提问、AI历史回复),并通过数据绑定动态生成完整对话上下文。

2025-03-16 18:21:31 1543

原创 langchain多人对话

【代码】langchain多人对话。

2025-03-16 18:00:14 275

原创 langchain框架

LangChain的架构分为多个层次,支持Python和JavaScript生态。

2025-03-16 17:44:48 270

原创 langchain入门实践

LangChain是一个帮助开发者更高效构建AI应用的框架,你可以把它想象成“语言模型的乐高积木”。通过标准化组件,开发者能像拼积木一样组合不同功能——比如用「提示词模板」控制模型回答格式,用「链」串联多个操作步骤,用「代理」调用计算器或数据库等外部工具。目前它支持超70种语言模型和700多个第三方工具(如谷歌搜索、维基百科),已成为开发聊天机器人、智能问答等AI应用的热门工具。.env 环境配置文件,这里用的是aliyun的key,模型用的是deepseek-v3。

2025-03-16 17:30:10 469

原创 risc-v架构

RISC-V不仅是技术架构的革新,更是一场。

2025-03-12 11:10:40 847

原创 什么是向量数据库&向量搜索?

专为高效存储与检索高维向量设计,支持语义搜索、推荐系统等AI场景,如文本/图像嵌入的相似性匹配。轻量级开源向量数据库,优势在于易用性(快速部署、简洁API)和小规模场景(本地开发、原型验证),常与AI模型(如OpenAI)配合实现RAG等应用。下面是一个简单的例子。

2025-03-11 20:20:33 237

原创 30行代码使用deepseek外挂知识库

【代码】30行代码使用openai外挂知识库。

2025-03-11 19:39:09 316

原创 我们为什么需要RAG?

RAG(检索增强生成)技术的必要性源于大语言模型(LLM)的固有缺陷及其应用场景的复杂性,其核心价值在于通过引入外部知识库优化模型输出。大语言模型(LLM)的固有缺陷是什么?LLM 基于概率生成文本的特性导致其可能输出看似合理但事实错误或无意义的内容。这种缺陷源于模型无法真正理解语义,仅通过统计关联生成答案。研究证明,LLM 的幻觉是数学上的必然现象,无法完全消除。例如,在医疗或法律等专业领域,模型可能虚构数据或混淆概念。LLM 依赖预训练数据,无法主动获取最新信息。且更新需重新训练模型,成本高昂。

2025-03-10 14:41:52 478

原创 AIGC和搜索引擎的异同

同样的问题,AI会像经验丰富的老师,直接告诉你:“先移到阴凉处,补充淡盐水,用湿毛巾降温”,还会附上权威医学网站来源。如果你追问“没有淡盐水怎么办”,它能接着建议“喝运动饮料或稀释的果汁”。当你问“中暑怎么办”,它会把所有相关网页链接给你,就像字典列出所有包含“中”和“暑”的页面,需要你自己挨个翻找。比如搜“做蛋糕”,会得到20个食谱链接,你得一个个点开看哪个靠谱。新一代AI搜索工具(如Perplexity、秘塔AI)采用。用日常生活中的例子来解释,搜索引擎和生成式AI的区别就像。

2025-02-27 14:31:53 732

原创 涌现和AI大模型

涌现是指复杂系统中由简单元素通过相互作用自发产生的整体特性或行为,这些特性无法从单独分析各组成部分中推导出来。涌现可以理解为“简单个体组合后产生意想不到的集体智慧”。就像,或者,这些现象都是涌现的体现。简单来说,涌现就是的魔法——当大量简单事物按特定规则互动,就会诞生超越个体总和的新特性,就像无数音符组成了震撼的交响乐。

2025-02-27 13:58:43 359

原创 欧式距离和余弦距离

直接计算“两点之间的直线距离”,适合需要物理空间或数值差异的场景。

2025-02-24 23:35:18 309

原创 OpenAI Function Calling 实践

OpenAI的Function Calling是一种与外部代码或服务交互的机制,它允许模型在生成响应时调用预定义的函数,使其能够实时访问外部数据和API接口,提升模型的应用价值,增强交互性和灵活性。

2025-02-24 07:30:00 544

原创 人工智能、机器学习、深度学习和大语言模型之间的关系

人工智能(AI)、机器学习(ML)、深度学习(DL)和大语言模型(LLM)之间是。

2025-02-23 17:51:48 560

原创 大语言模型中的 Token如何理解?

因为 AI 只能看懂数字,每个 Token 会被转成唯一的数字 ID(比如“猫”→ 12345),然后 AI 通过这些数字学习文字之间的关系,比如“猫”后面常接“很可爱”。,可以理解为 AI 处理文字时的“最小积木块”。就像搭乐高时,每块积木是基础单位一样,AI 会把你的话拆成一个个 Token 来理解和生成回答。,拆得越合理,AI 越懂你。

2025-02-23 17:00:12 332

原创 当你给大模型一段输入之后,它是怎么得到答案的

可以理解为:一个学霸整理过全世界所有教科书后,用最快的速度帮你“参考书本拼出答案的参考答案”。大模型并不是真有一个“数据库”,而是依靠训练时海量的知识联结:(类似人类的经验积累)生成类似:“太阳东升西落是由于地球自西向东自转形成的视觉现象。

2025-02-22 18:45:17 350

原创 使用dot来画流程图

Dot是一种图形描述语言,属于Graphviz软件的一部分。Graphviz是一个用于可视化图形(图表、网络图等)的开源工具集。使用Dot语言,你可以创建并描述节点和边,从而生成图形。

2024-07-02 14:18:39 1069

原创 什么是用户画像

用户画像(User Persona)是一种基于用户数据和行为特征创建的虚拟用户模型,用于更好地理解和描述目标用户群体。用户画像通常包含用户的基本信息、行为模式、需求、动机和痛点等,帮助企业在产品开发、市场营销和用户体验设计过程中做出更精准的决策。

2024-06-11 10:12:33 926

原创 C++协程

协程(Coroutine)是程序组件,可以在执行过程中暂停并在稍后继续执行。与传统的子例程(如函数或过程)不同,子例程一旦调用,必须等其返回后才能继续执行调用它的代码。协程则可以在执行过程中暂停,将控制权交还给调用者,并且可以在稍后从暂停的地方继续执行。可以在执行过程中暂停和恢复:这使得协程能够在需要的时候让出控制权,然后在适当的时候恢复执行。保持状态:协程在暂停时会保存其当前的执行状态(包括局部变量和程序计数器),在恢复时可以从上次暂停的地方继续执行。协同调度。

2024-06-08 17:41:17 1268 2

原创 什么是OKR

OKR 是一种强大的目标管理工具,能够帮助组织和个人设定清晰、具体且具有挑战性的目标,并有效地追踪和实现这些目标。然而,为了充分发挥OKR的优势,需要正确理解其原则,避免常见的陷阱,并根据实际情况进行适当的调整和改进。通过平衡短期和长期目标,注重实际执行和反馈,OKR 可以成为推动组织和个人成长的重要助力。

2024-06-07 08:12:49 491

原创 vscode中使用代码片段(Snippets)来快速生成常用的代码模板

在 VS Code 中进行 C++ 编程时,可以使用代码片段(Snippets)来快速生成常用的代码模板。下面是一个简单的例子,演示如何使用代码片段在 C++ 文件中生成一个简单的类定义。

2024-06-07 00:18:01 1945

原创 Elasticsearch简介

Elasticsearch 是一个基于 Apache Lucene 的开源搜索引擎,旨在实现分布式搜索和数据分析。Elasticsearch 通常与 Kibana、Logstash 和 Beats 一起使用,形成 ELK Stack,用于日志和事件数据分析、应用性能监控和业务数据可视化。

2024-06-06 23:32:47 1389 2

原创 RapidJSON

要在项目中使用 RapidJSON 库,需要首先下载并包含该库的头文件。

2024-06-06 23:21:53 748

原创 python中的预编译正则表达式

预编译正则表达式指的是使用Python的re模块中的函数提前将正则表达式的字符串形式编译成一个正则表达式对象。这样,当你需要在多个地方或多次使用同一个正则表达式时,你可以重用这个编译后的对象,而不是在每次使用时重新编译表达式。这种做法可以提高效率,特别是在需要频繁使用同一正则表达式进行匹配的场景中。

2024-06-01 22:14:47 748

原创 python正则表达式中的分组功能

在Python的re模块中,group()方法是用于从一个匹配的对象(例如,re.match或re.search返回的对象)中提取匹配的字符串。当你使用正则表达式进行匹配时,匹配对象会包含原始字符串中与模式匹配的部分。group()方法可以用来访问这些匹配的部分。group(0)group()group(n)n()n=1n=2如果正则表达式中包含了括号(用于分组),那么你可以通过group(n)来访问每个分组的匹配内容。

2024-06-01 22:03:08 1068

原创 python中的正则表达式

Python中的正则表达式(Regular Expressions,简称regex)是一种强大的字符串处理工具,它通过定义搜索模式来匹配、查找、替换或拆分字符串。正则表达式在文本处理、数据清洗和验证等领域非常有用。Python通过内置的re模块提供了对正则表达式的支持。

2024-06-01 21:58:21 1051

原创 什么是gRPC?

首先,创建一个Proto文件(calculator.proto),定义服务和消息类型。// 定义请求消息// 定义响应消息// 定义计算器服务。

2024-06-01 21:26:09 1391

原创 RocksDb与LevelDb的区别

LevelDB 是一个开源的、嵌入式的键值存储引擎,由Google开发。它是一个轻量级的、高性能的数据库库,特别适合嵌入到需要高效读写操作的应用中。RocksDB 是一个高性能的键值存储引擎,它是由Facebook开发的,基于LevelDB。它专为需要高吞吐量和低延迟的场景而设计,特别适用于存储大量数据和需要快速访问的应用。无论是作为数据库的存储引擎、缓存系统还是日志系统,RocksDB都能够提供可靠和高效的解决方案。

2024-05-29 09:41:19 1037

原创 分布式数据库的扩容思路

分布式数据库的扩容是一项复杂的工程,它要求数据库能够在不中断服务的情况下增加更多的存储资源和计算能力。扩容通常涉及增加节点(服务器实例)和重新分配数据。这个过程需要谨慎进行,以确保数据的一致性、可用性和性能不受影响。

2024-05-29 09:22:15 723

原创 C++模板元编程--函数萃取

在C++中,是一个非常有用的模板函数,它是标准库头文件的一部分。它的主要作用是在不创建对象的情况下,获取该类型的引用,从而允许在编译时表达式中使用该类型的成员函数或成员变量,即使没有默认构造函数也可以。这在模板编程和类型萃取(type traits)中尤其有用,特别是在编写依赖于SFINAE(Substitution Failure Is Not An Error)的代码时。

2024-05-29 06:00:00 611

原创 benchmark::State & benchmark 原理

除了时间,你还可以通过来报告其他自定义指标。// 测试代码// 设置自定义指标。

2024-05-28 23:44:03 1287

原创 Google Benchmark库 简介

在C++中,进行性能测试(Benchmarking)是一个常见的需求,用以测量代码块的执行时间,从而对代码进行优化。Google Benchmark库是一个广泛使用的C++库,专门用于编写稳健的基准测试。

2024-05-28 23:37:51 1188

原创 一个模板元函数来检查一个类是否有一个特定的成员

你可以通过创建一个模板元函数来检查一个类是否有一个特定的成员。在这个例子中,是一个模板元函数,它检查其模板参数T是否有一个名为type的成员。它首先假设T没有type成员,然后通过模板特化来检查T是否真的有type成员。如果T::type存在,那么就是void,所以就是,这匹配了模板特化,所以是true。如果T::type不存在,那么。

2024-05-24 21:00:00 791

原创 string_view

是 C++17 引入的一种非拥有型的字符串处理工具,它提供了对字符序列的轻量级、不可修改的视图。与直接使用或字符数组相比,可以提高性能和减少内存使用,因为它不负责管理字符串数据的存储和生命周期,仅仅是提供一种访问已存在字符串数据的方法。

2024-05-24 09:12:24 347

原创 什么是监督学习和无监督学习

用一个表格来对比监督学习和无监督学习,可以更直观地展示它们的区别和特点。

2024-05-18 15:18:36 390

原创 std::stringstream的原理和使用时的注意事项

是 C++ 标准库中的一个类,位于头文件中。它提供了一种在内存中操作字符串的方式,类似于文件流的操作。继承自,因此它具有输入流 () 和输出流 () 的功能。

2024-05-18 11:10:23 385

原创 如何理解机器学习中的端到端

来训练模型,因为模型需要从数据中学习到所有的特征和规律。其次,端到端模型通常比较复杂,需要更多的计算资源和时间来训练。最后,由于模型是自动学习的,因此可能会导致模型的可解释性较差,难以理解模型的决策过程。端到端机器学习的优势在于它可以自动化整个流程,减少人工干预,提高效率。同时,由于模型可以从原始数据中直接学习,因此有可能发现人类无法察觉的模式和特征,从而提高模型的性能。总的来说,端到端机器学习是一种强大的方法,可以自动化整个机器学习流程,并且有可能提高模型的性能。然而,端到端机器学习也存在一些缺点。

2024-05-18 11:05:50 589

原创 std::type_index 用在什么地方

是一个类,它的对象表示类型的标识符。它可以用于在运行时比较两个类型是否相同,或者在容器中存储类型标识符。作为键,以类型名称(字符串)作为值。然后,我们用不同类型的。还可以用于实现一些设计模式,例如访问者模式。和相应的类型名称填充了映射。可以用作在运行时确定应该调用哪个函数的键。在这个例子中,我们首先创建了一个。常用于标识数据类型。运算符获取类型,并将其转换为。,从映射中检索每种类型的名称。中存储每种类型的元数据。

2024-05-14 08:28:02 476

原创 推荐系统是什么

推荐系统是一种旨在向用户推荐他们可能感兴趣的产品、服务或信息的技术和工具。这些系统通过分析用户的历史行为、偏好、社交网络、上下文信息等数据,预测用户可能喜爱或感兴趣的内容。推荐系统广泛应用于各种在线服务平台,包括电子商务、社交媒体、内容提供商(例如新闻、视频和音乐)、在线广告等,以帮助改善用户体验,增加用户满意度和平台的用户粘性,同时也增加销售量和广告收入。

2024-05-10 09:32:16 744

原创 闭包是什么?

在需要自定义排序规则时,例如使用std::sort对自定义类型数组或容器排序,lambda表达式允许你以简洁的方式提供比较逻辑。});// 输出: 1 2 3 4 5C++中的闭包(通过lambda表达式)提供了一种强大的方式来编写清晰、灵活且高效的代码。它们的应用场景涵盖了从STL算法的使用到并发编程、事件处理等多个方面,显著提升了C++编程的表达力和实用性。

2024-05-10 09:20:46 596

原创 什么是函数式编程?

在函数式编程中,函数是"第一类"实体,意味着它们可以作为参数传递给其他函数,可以作为返回值,也可以被赋值给变量。我们将展示如何使用C++的lambda表达式和标准模板库(STL)中的算法来实现一个函数,该函数接受一个整数列表,并返回一个新列表,其中包含原列表中每个数的平方。在函数式编程中,常常会将小的、专一的函数组合起来,完成更复杂的操作,这样有助于代码的可读性和可维护性。:许多函数式编程语言拥有强大的类型系统,支持类型推断,使得代码更加安全和清晰,同时减少了需要明确声明类型的需求。

2024-05-10 09:11:14 485

空空如也

空空如也

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

TA关注的人

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