news 2026/4/15 8:46:21

LangChain嵌入:从原理到实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain嵌入:从原理到实践

嵌入

嵌入(Embedding)可以将文本转换为向量表示,从而实现文本的语义分析和相似度计算

简单来说,就是给每个文本分配一个"数字身份证",相似的文本会有相似的"身份证号码"

应用场景

日常我们接触到的实际的场景应用,比如:

  • 智能搜索:比如在文档库中查找与查询语义相关的内容,而不仅仅是关键词匹配
  • 问答系统:找到与用户问题最相关的文档片段作为答案依据
  • 推荐系统:根据用户兴趣向量推荐相关内容

代码实现

示例提供了两个例子,一个是文本对比,一个是文本搜索

from langchain_huggingface import HuggingFaceEmbeddings from sklearn.metrics.pairwise import cosine_similarity import numpy as np import os # 示例 1: 使用 HuggingFace 嵌入模型(无需 API 密钥) def use_huggingface_embeddings(): """使用 HuggingFace 提供的预训练模型生成嵌入""" print("\n=== 使用 HuggingFace 嵌入模型 ===") # 创建嵌入模型实例 embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") # 示例文本 texts = [ "猫是一种常见的家养宠物", "狗是人类最好的朋友", "大象是陆地上最大的动物", "家养宠物中猫特别普遍" ] # 生成嵌入向量 print("生成文本嵌入向量...") vectors = embeddings.embed_documents(texts) # 查看嵌入向量的维度 print(f"嵌入向量维度: {len(vectors[0])}") # 计算文本之间的相似度 print("\n计算文本之间的相似度:") similarity_matrix = cosine_similarity(vectors) for i, text1 in enumerate(texts): for j, text2 in enumerate(texts): if i < j: # 避免重复计算 similarity = similarity_matrix[i][j] print(f"'{text1}' 与 '{text2}' 的相似度: {similarity:.4f}") # 示例 2: 文本搜索功能 def text_search_demo(): """使用嵌入实现简单的文本搜索功能""" print("\n=== 文本搜索功能演示 ===") # 创建嵌入模型实例 embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2") # 文档集合 documents = [ "Python 是一种广泛使用的高级编程语言", "LangChain 是一个用于构建 LLM 应用的框架", "机器学习是人工智能的一个分支", "深度学习是机器学习的一个子领域", "数据科学涉及数据的分析和可视化" ] # 生成文档嵌入 doc_vectors = embeddings.embed_documents(documents) # 用户查询 query = "什么是 LangChain?" print(f"\n查询: {query}") # 生成查询嵌入 query_vector = embeddings.embed_query(query) # 计算查询与每个文档的相似度 similarities = cosine_similarity([query_vector], doc_vectors)[0] # 按相似度排序 sorted_indices = np.argsort(similarities)[::-1] # 显示搜索结果 print("\n搜索结果(按相似度排序):") for i, idx in enumerate(sorted_indices): print(f"{i+1}. 相似度: {similarities[idx]:.4f} - {documents[idx]}") # 运行示例 if __name__ == "__main__": print("LangChain 嵌入示例") print("=" * 50) # 运行 HuggingFace 嵌入示例 use_huggingface_embeddings() # 运行文本搜索示例 text_search_demo() print("\n示例运行完成!")

运行结果如下:

HuggingFaceEmbeddings 类

来源:langchain-huggingface 包中的类

功能:封装了 HuggingFace 的预训练嵌入模型,提供统一的接口用于文本向量化

主要方法:

  • embed_documents(texts):批量为多个文本生成嵌入向量
  • embed_query(text):为单个查询文本生成嵌入向量

all-MiniLM-L6-v2 模型

轻量级:

  • 基于 MiniLM 架构(BERT 的轻量级版本)
  • 模型大小约 80MB,适合在资源受限环境中使用

多语言支持:

  • 支持多种语言的文本嵌入

性能平衡:

  • 在速度和嵌入质量之间取得了良好平衡
  • 虽然比大型模型(如 BERT-base)小,但在大多数任务上表现接近

适用场景:

  • 文本相似度计算
  • 语义搜索
  • 文本分类
  • 聚类分析

相关依赖安装

pip install langchain-huggingface sentence-transformers scikit-learn numpy

欢迎留言交流,如果觉得有帮助,可以点个赞支持一下

学习资源推荐

如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!​

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示

​因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取

四、AI大模型商业化落地方案

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/7 13:29:01

AI写论文哪个软件最好?2026实测:虎贲等考AI凭3大合规优势碾压同类

“开题报告改5版仍被打回”“文献综述堆30篇却毫无逻辑”“格式排版耗3天还不符合学校要求”“AI生成内容被AIGC检测标红”——2026年高校AI学术规范全面收紧的背景下&#xff0c;毕业生选AI写作软件的核心诉求已从“快速出稿”转向“合规高效学术达标”。面对市面上五花八门的…

作者头像 李华
网站建设 2026/4/12 19:26:35

亲测好用!千笔·专业学术智能体,MBA论文写作神器

你是否曾为论文选题而焦头烂额&#xff1f;是否在深夜面对空白文档无从下笔&#xff1f;是否反复修改却总对表达不满意&#xff1f;MBA论文写作不仅需要严谨的逻辑&#xff0c;更考验时间与精力的双重管理。对于忙碌的职场人来说&#xff0c;如何高效完成高质量论文成为一大难题…

作者头像 李华
网站建设 2026/4/9 7:58:55

DQN十年演进

DQN (Deep Q-Network) 的十年&#xff08;2015–2025&#xff09;&#xff0c;是从“深度强化学习的开山之作”向“超高效、高可靠的工业级决策引擎”演进的十年。 2015 年&#xff0c;DeepMind 在《Nature》上发表了 DQN&#xff0c;首次证明了 AI 可以仅凭像素输入在雅达利&a…

作者头像 李华
网站建设 2026/4/14 7:15:45

好写作AI:你的24小时论文顾问——当灵感在凌晨三点敲门,我永远在线

导师的回复在“48小时内”&#xff0c;图书馆在“22点闭馆”&#xff0c;而你的论文瓶颈&#xff0c;总发生在凌晨2点47分——这个学术世界似乎从未为你调整过时区。写论文最深的孤独感&#xff0c;往往不在于独自研究&#xff0c;而在于当那个关键的疑问、突如其来的灵感或致命…

作者头像 李华
网站建设 2026/4/3 4:57:10

1.3 第一个C程序:Hello World深度解析【20260206】

文章目录 1.3 第一个C程序:Hello World深度解析 1.3.1 为什么从"Hello World"开始? 1.3.2 完整的Hello World程序 1.3.3 逐行深度解析 第1行:`#include <stdio.h>` 第2行:空白行 第3行:`int main() {` 第4行:`printf("Hello, World!\n");` 第5…

作者头像 李华