在构建基于大语言模型(LLM)的智能应用中,处理原始文档是非常关键的一步。LangChain 作为一个强大的框架,提供了一整套用于文档处理的工具链,帮助开发者更高效地将非结构化文本转化为模型可理解的结...
在 LangChain 中,缓存机制是一种用于提升语言模型调用效率、降低成本的重要手段。其核心思想是:将提示词的响应结果缓存起来,在后续遇到相同或相似的请求时直接复用,从而避免重复调用模型。 1. 缓...
在 LangChain 中,Tool 是一种把 Python 函数和它的调用规范(schema)包装起来的机制,这样模型就可以“请求”调用这个函数并传入参数。 1. 工具定义 2. 工具使用
在使用 LangChain 构建对话系统时,聊天记录的管理、处理是至关重要的一环。本篇文章主要介绍如何存储对话历史,以及如何对对话历史进行处理。 1. 对话历史存储 LangChain 提供了多种灵活...
LangChain 是一个用于构建语言模型应用的强大框架,它支持将多个 链”(Chain)组合起来进行复杂的推理任务。所谓 链式调用,就是将多个处理步骤像流水线一样依次串联,每个步骤的输出作为下一个步...
LangChain 中的 输出解析器(Output Parser) 主要作用是:将大语言模型生成的原始文本转换为结构化的数据格式,方便后续程序处理。比如,你让模型输出一个 JSON、一个列表或某种特定...
提示用于优化模型输入,提升生成结果的质量。LangChain 提供了强大的提示管理工具,包括提示模板和提示优化功能。提示模板是预定义的格式,包含静态文本和动态变量,用于生成发送给语言模型的输入。它们有...
在由大型语言模型(LLM)驱动的应用开发中,模型的调用与管理始终是核心环节。LangChain 通过提供统一而灵活的模型接口,大大简化了开发者与各类语言模型、文本嵌入模型之间的交互流程。例如:Open...
我们要实现的效果是基于 dify + xinference + ChatTTS + SenseVoiceSmall 实现语音聊天助手: 具体效果如下: 在这个过程中,我们需要做以下几件事情: 1. 语...
在 Python 中,我们会创建很多对象(如数字、列表、字典、类实例等),这些对象都需要占用一定的内存存储。当对象不再使用的时候,需要及时释放,否则就会导致程序占用的内存越来越多,当某一时刻程序没有更...
在现代 Python 开发中,随着应用对高并发、高性能的需求不断增加,传统同步编程方式在处理大量 I/O 操作时逐渐显得力不从心。异步编程通过极大提升程序的并发能力和资源利用率,成为了Web开发、微服...
LLaMA-Factory 是一个开源的大规模语言模型(LLM)训练与微调框架,它能够简化大型语言模型的微调过程,使用户能够在无需编写代码的情况下,对多种预训练模型进行定制化训练和优化。 预训练模型:...
pickle 是 Python 中用于序列化和反序列化对象的模块。序列化是将对象转换为字节流的过程,反序列化是将字节流还原为对象的过程。它常被用来: 但是,使用 Pickle 存在是一个严重的安全风险...
在传统的文本分类任务中,我们通常依赖监督学习方法,比如朴素贝叶斯、支持向量机,或者 BERT 这样的深度学习模型。但这些方法存在三个关键限制: 这种传统方法的不足之处: 简言之:基于传统的方法,一旦标...
Ollama 是一个开源的人工智能平台,它主要用于提供强大的 AI 模型接口,并帮助开发者和团队快速构建、集成和管理 AI 应用。Ollama 通过提供本地化的 AI 模型,可以帮助用户在不依赖外部 ...
std::lock 是一个 C++ 用于避免死锁的工具,用于一次性锁住多个互斥锁(std::mutex),它通过确保锁定顺序一致,避免了死锁的发生。死锁是指程序中有多个共享资源,通常情况下,多个共享资...
线性判别分析(Linear Discriminant Analysis,简称 LDA)是一种经典的统计学方法,主要用于 特征降维 和 分类问题。 它的核心思想是:寻找一个最佳的线性投影,使得投影后的数...
std::async 是 C++11 引入的一个工具函数,它主要用于在程序中创建 异步任务、延迟任务。本篇文章将通过设计的 6 个示例程序来展示如何利用 std::async 实现异步任务与延迟任务。...
在现代软件开发中,并发编程成为提升性能的关键。无论是处理大量数据、提升响应速度,还是高效利用多核 CPU,多线程编程都至关重要。在 C++ 中 通过使用 std::thread 类,我们能够轻松地创建...
主成分分析(PCA,Principal Component Analysis)是一种常用的数据降维技术。数据降维是指将高维数据转换为低维数据的过程,同时尽可能保留原始数据的重要信息。通过降维可以: 1...
Google gRPC(Google Remote Procedure Call)是一个高性能、开源的远程过程调用框架,它允许客户端直接调用远程服务器上的方法,就像调用本地方法一样,屏蔽了网络通信的复...
高斯混合模型(Gaussian Mixture Model,GMM)是一种基于概率的无监督学习模型,通过假设数据由多个高斯分布组成来进行数据建模,在机器学习、统计学和信号处理等领域有广泛的应用。 1....
在本节课程中,我们将探讨高斯混合模型(GMM)如何对新数据进行聚类。即:当我们输入一条新的数据时,模型会基于先前学习到的各个高斯分布的参数来估计该数据属于每个类别的概率。接下来,我们将详细了解这一过程...
GMM 假设数据是由多个高斯分布混合而成,接下来,我们将会探讨 GMM 是如何根据训练数据得到这些不同的高斯分布参数: 估计高斯混合模型的参数,我们并不知道数据属于哪个分布,这是典型的包含隐藏变量的参...
scikit-learn 中 GaussianMixture 类是对高斯混合模型算法的实现,它包含了一些用于控制混合高斯模型(GMM)的初始化、训练方式和模型的其他设置。 1. 参数 1.1 基本参数...
在 Python 编程中,掌握对象拷贝的细节至关重要。虽然对象拷贝看似是一个简单的操作,但在背后涉及到多个层次的实现机制。尤其是拷贝协议,它们为我们提供了强大的工具来控制对象的复制行为。通过合理地使用...
std::ref 是 C++ 标准库中的一个工具,用于将对象封装为引用包装器 ,从而实现将原本作为值传递、需要拷贝的对象,能够以避免对象拷贝的方式传递。 问题场景:一个对象传递一个以值方式接受参数的函...
std::bind 是 C++11 引入的一个函数适配器,它可以将函数或可调用对象与其参数绑定在一起,在调用时,减少传入的参数数量,从而简化函数调用。 1. 使用 2. 探讨 这一小节主要探讨l两个话...
ChatGLM3-6B 是一个 ChatGLM 系列的开源对话模型,是由清华大学 KEG 实验室和智谱 AI 共同开发。该模型具备出色的中文和英文理解和生成能力,特别适合多轮对话、文本生成、问答等自然...
new 和 delete 是 C++ 中非常重要的两个关键字,其作用是实现动态对象的管理。正确掌握它们的使用方法对于有效管理程序的内存、提高性能,以及避免内存泄漏等问题至关重要,是编写健壮 C++ 程...