Langchain概述
概述
LangChain是一个强大的框架,帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。LangChain是一个基于语言模型开发应用程序的框架。
模型分类
大型语言模型(LLM):这些模型将文本字符串作为输入并返回文本字符串作为输出。它们是许多语言模型应用程序的支柱。
聊天模型( Chat Model):聊天模型由语言模型支持,但具有更结构化的 API。他们将聊天消息列表作为输入并返回聊天消息。这使得管理对话历史记录和维护上下文变得容易。
文本嵌入模型(Text Embedding Models):这些模型将文本作为输入并返回表示文本嵌入的浮点列表。这些嵌入可用于文档检索、聚类和相似性比较等任务。
特点
LLM 和提示:LangChain 使管理提示、优化它们以及为所有 LLM 创建通用界面变得容易。此外,它还包括一些用于处理 LLM 的便捷实用程序。
链(Chain):这些是对 LLM 或其他实用程序的调用序列。LangChain 为链提供标准接口,与各种工具集成,为流行应用提供端到端的链。
数据增强生成:LangChain 使链能够与外部数据源交互以收集生成步骤的数据。例如,它可以帮助总结长文本或使用特定数据源回答问题。
Agents:Agents 让 LLM 做出有关行动的决定,采取这些行动,检查结果,并继续前进直到工作完成。LangChain 提供了代理的标准接口,多种代理可供选择,以及端到端的代理示例。
内存:LangChain 有一个标准的内存接口,有助于维护链或代理调用之间的状态。它还提供了一系列内存实现和使用内存的链或代理的示例。
评估:很难用传统指标评估生成模型。这就是为什么 LangChain 提供提示和链来帮助开发者自己使用 LLM 评估他们的模型。
主要组件
- 模型 ( Models )
- 提示词 ( Prompt )
- 代理( Agents )
- 链( Chains )
- 索引 ( Indexes )
- 内存(Memory)
- 模式 ( Schema )
应用场景
-
信息检索
-
LangChain可以根据用户的查询意图,通过记忆链中的语义信息,提供准确、全面的搜索结果。
-
无论是文本、图片还是视频等多媒体数据,LangChain都能进行深度理解和检索。
-
-
问答系统
-
LangChain可以根据用户的问题,从记忆链中抽取相关信息,并给出准确的答案。
-
无论是常见问题还是专业领域的知识,LangChain都能提供高质量的回答。
-
-
个性化推荐
-
LangChain可以根据用户的兴趣和偏好,从记忆链中推荐相关的内容。
-
无论是新闻、音乐还是电影等,LangChain都能根据用户的历史行为和喜好进行精准推荐。
-
-
机器翻译
-
LangChain可以利用记忆链中的语义信息,进行更加准确、自然的机器翻译。
-
通过对源语言和目标语言的语义关联进行建模,LangChain可以提供更加流畅、准确的翻译结果。
-
-
聊天机器人
-
LangChain可以用于构建聊天机器人,使其具备更丰富的交互能力和更准确的回答能力。
-
通过与大型语言模型的结合,聊天机器人可以更加智能地理解用户意图,并提供相应的回复。
-
-
生成式问答(GQA)和摘要
-
LangChain允许将语言模型与其他数据源连接在一起,实现数据感知,从而支持生成式问答和摘要等任务。
-
这些任务通常需要处理大量的文本数据,LangChain的模块化设计和对LLM的通用接口实现可以极大地简化开发过程。
-
-
结合大型语言模型、知识库和计算逻辑快速开发AI应用
-
LangChain通过其强大的框架和灵活的表达语言(LCEL),支持并行化、回退、批处理、流式传输和异步操作等功能。
-
这使得开发人员能够结合大型语言模型、知识库和计算逻辑快速开发强大的AI应用。
-
案例
我们以通义大模型来作为底模
安装
pip install langchain==0.1.6 # 版本号
操作
# 1、导入大模型的类
from langchain_community.llms import Tongyi
# 实例化
llm = Tongyi()
# 调用通义千问
ret = llm.invoke("who are you?")
print(ret)