我正在参加「豆包MarsCode AI练中学体验活动」详情请看:掘金小册上线 AI练中学功能 | 你的 AI 编程助教喊你免费领小册啦!
LangChain介绍
用于开发由语言模型驱动的应用程序的框架。 LLM 应用架构就是指基于语言模型的应用程序设计和开发的架构。 LangChain 作为一个以 LLM 模型为核心的开发框架出现,为自然语言处理开启了一个充满可能性的世界。借助 LangChain,我们可以创建各种应用程序,包括聊天机器人和智能问答工具。
特性:
- 数据感知:将语言模型与其他数据源连接在一起
- 主动性:允许语言模型与其环境进行交互
价值主张:
- 组件
- 用例特定链
“易速鲜花”内部员工知识库问答系统-案例
流程:
- Loading:文档加载器把Documents 加载为以LangChain能够读取的形式。
- Splitting:文本分割器把Documents 切分为指定大小的分割,我把它们称为“文档块”或者“文档片”。
- Storage:将上一步中分割好的“文档块”以“嵌入”(Embedding)的形式存储到向量数据库(Vector DB)中,形成一个个的“嵌入片”。
- Retrieval:应用程序从存储中检索分割后的文档(例如通过比较余弦相似度,找到与输入问题类似的嵌入片)。
- Output:把问题和相似的嵌入片传递给语言模型(LLM),使用包含问题和检索到的分割的提示生成答案。
信息获取:转换为向量进行比较(距离或相似度),常用的又欧式距离和余弦相似度:
- 欧氏距离:这是最直接的距离度量方式,就像在二维平面上测量两点之间的直线距离那样。在高维空间中,两个向量的欧氏距离就是各个对应维度差的平方和的平方根。
- 余弦相似度:在很多情况下,我们更关心向量的方向而不是它的大小。例如在文本处理中,一个词的向量可能会因为文本长度的不同,而在大小上有很大的差距,但方向更能反映其语义。余弦相似度就是度量向量之间方向的相似性,它的值范围在-1到1之间,值越接近1,表示两个向量的方向越相似。