贫瘠之地

华北无浪漫,死海扬起帆
多少个夜晚,独自望着天

0%

相似性度量 Similarity Metric

了解不同相似性度量方式之间的区别和优缺点,为最佳相似性度量方式选择做出明智的决定

在下表中,您可以看到我们将在本文中讨论的相似性度量以及影响度量的向量的属性

Similarity Metric 使用向量特征
欧几里得距离 角度和方向
余弦相似度 方向
点基相似度 角度和方向

欧几里得距离 Euclidean distance

阅读全文 »

什么是链

LangChain 中通过 Chain 来链接各个组件和功能,模型之间彼此链接,或模型与其他组件链接

将多个组件相互链接,组合成一个链的想法简单但强大,简化了复杂应用程序的实现,使之更加模块化,能够创建出单一的、连贯的应用程序,从而使调试、维护和改进应用程序变得容易;这也是 LangChain 名称的由来

需要注意,在现版本中 LangChain 已经在主推 LangChain Expression Language(LCEL),逐渐废弃旧版本中手动创建 Chain 的方式以及旧的 Chain 实现,不过这里也参考早期 Chain 的使用方式,LCEL 留在后面进行学习

链的使用主要是以下两个步骤:

阅读全文 »

向量嵌入

向量

在研究什么是向量嵌入之前,先来了解向量

向量是一种具有大小和方向的数学结构;例如我们可以将向量视为空间中的一个点,方向是从 (0,0,0) 到向量空间(vector space)中该点的箭头

阅读全文 »

入门

底层的 LLM 和聊天模型都是无状态的,所以 LangChain 的链式模型和代理模型同样都是无状态的,意味着它们会独立处理每次调用

某些应用程序中,比如聊天机器人,记住先前的交互是至关重要的;LangChain 提供了用于管理和操作以前的聊天消息的辅助工具,这些工具被设计成模块化的,其次 LangChain 提供了将这些工具轻松整合到链式模型中的方法

ChatMessageHistory

轻量级的包装器,方便保存人类消息、AI 消息,以及获取的方法

阅读全文 »

FOR UPDATE

FOR UPDATE 是 SELECT 语句的可选参数

MySQL :: MySQL 5.7 Reference Manual :: 13.2.9 SELECT Statement

  • 如果将 FOR UPDATE 和支持页锁或行锁的数据库引擎一起使用(比如 InnoDB),被查询的行将被写锁定,直到当前事务结束 使用 LOCK IN SHARE MODE 将设置共享锁,允许其他事务读取检查的行,但不更新或删除它们

  • 当使用类似的语句 CREATE TABLE new_table SELECT ... FROM old_table 不能在 SELECT 中使用 FOR UPDATE

    如果您尝试执行此操作,则该语句将被拒绝,并显示 Can't update table 'old_table' while 'new_table' is being created.

锁定读

阅读全文 »