LangChain 0.1 和 0.2 Model区别

LangChain 0.1 和 0.2 模块中的 LLM、Chat 和 Embedding 类有一些重要的变化。让我们对比一下这两个版本中这三个类的主要区别:

  1. LLM 类

LangChain 0.1:

  • 主要方法是 __call__generate
  • 直接继承自 BaseLanguageModel
  • 没有明确的类型提示

LangChain 0.2:

  • 主要方法是 invokegenerate
  • 继承自 BaseLanguageModel 和新的 BaseLLM
  • 引入了更严格的类型提示
  • 新增了 stream 方法支持流式输出
  1. Chat 类

LangChain 0.1:

  • 称为 ChatModel
  • 主要方法是 __call__generate
  • 直接继承自 BaseLanguageModel
  • 使用 ChatMessage 对象作为输入和输出

LangChain 0.2:

  • 更名为 ChatModel
  • 主要方法是 invokegenerate
  • 继承自 BaseLanguageModel 和新的 BaseChatModel
  • 使用新的 ChatMessageBaseMessage 类型
  • 新增了 stream 方法支持流式对话
  1. Embedding 类

LangChain 0.1:

  • 称为 Embeddings
  • 主要方法是 embed_documentsembed_query
  • 没有标准化的基类

LangChain 0.2:

  • 更名为 Embeddings
  • 主要方法保持不变:embed_documentsembed_query
  • 引入了新的 BaseEmbeddings 基类
  • 增加了更严格的类型提示

主要变化总结:

  1. 接口统一:0.2 版本统一了 invoke 方法作为主要调用接口,替代了之前的 __call__
  2. 类型系统改进:0.2 版本引入了更严格和一致的类型提示,提高了代码的可靠性和可读性。
  3. 基类重构:0.2 版本为每种模型类型引入了专门的基类(如 BaseLLMBaseChatModelBaseEmbeddings),提供了更清晰的继承结构。
  4. 流式支持:0.2 版本在 LLM 和 Chat 模型中添加了原生的流式输出支持。
  5. 命名一致性:某些类名称进行了调整,以提高一致性和清晰度。
  6. 功能扩展:0.2 版本在保留核心功能的同时,增加了一些新的方法和特性。

这些变化反映了 LangChain 框架的不断演进,旨在提供更一致、更易用、功能更强大的 API。对于开发者来说,这意味着更好的开发体验和更强大的工具支持,但也可能需要在升级到新版本时进行一些代码调整。

当然,我可以用表格形式来对比 LangChain 0.1 和 0.2 版本中 Model 模块的 LLM、Chat 和 Embedding 类的主要变化。以下是对比表格:

特性LangChain 0.1LangChain 0.2
LLM 类
主要方法__call__, generateinvoke, generate
继承关系直接继承 BaseLanguageModel继承 BaseLanguageModel 和新的 BaseLLM
类型提示较少更严格、更详细
流式输出不支持支持(新增 stream 方法)
Chat 类
类名ChatModelChatModel
主要方法__call__, generateinvoke, generate
继承关系直接继承 BaseLanguageModel继承 BaseLanguageModel 和新的 BaseChatModel
消息类型ChatMessage新的 ChatMessageBaseMessage
流式输出不支持支持(新增 stream 方法)
Embedding 类
类名EmbeddingsEmbeddings
主要方法embed_documents, embed_queryembed_documents, embed_query (保持不变)
基类无标准化基类新增 BaseEmbeddings 基类
类型提示较少更严格、更详细

总体变化:

  1. 接口统一:使用 invoke 替代 __call__
  2. 更严格的类型系统
  3. 引入专门的基类
  4. 增加流式输出支持
  5. 提高命名一致性
  6. 功能扩展

这个表格清晰地展示了两个版本之间的主要差异,突出了 LangChain 在改进 API 设计、增强功能和提高开发体验方面所做的努力。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

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

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

img

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

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

img

三、AI大模型经典PDF籍

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

img

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

img

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

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,根据您的要求,我会帮您生成一段Python代码,来模拟无标度网络中的SIS病毒传播模型。以下是代码: ``` import networkx as nx import numpy as np import matplotlib.pyplot as plt # 定义节点的传染率和恢复率等级 beta = [0.1, 0.2, 0.3] gamma = [0.1, 0.2, 0.3] # 定义SIS传播模型 def SIS_model(G, beta, gamma, T): n = len(G) S = np.zeros((n, T+1)) I = np.zeros((n, T+1)) # 随机选择一个感染节点开始传播病毒 start_node = np.random.choice(n) I[start_node][0] = 1 S[start_node][0] = 0 # 开始模拟传播过程 for t in range(T): for i in range(n): # 如果节点i已经感染,则计算其恢复概率 if I[i][t] == 1: r = np.random.uniform(0, 1) if r < gamma[G.nodes[i]['gamma']]: I[i][t+1] = 0 S[i][t+1] = 1 else: I[i][t+1] = 1 S[i][t+1] = 0 # 如果节点i未感染,则计算其被感染概率 else: neighbors = list(G.neighbors(i)) for j in neighbors: if I[j][t] == 1 and S[i][t+1] == 0: r = np.random.uniform(0, 1) if r < beta[G.nodes[j]['beta']]: I[i][t+1] = 1 S[i][t+1] = 0 break else: S[i][t+1] = 1 return S, I # 生成无标度网络 G = nx.extended_barabasi_albert_graph(500, 1, 0.01) # 为节点随机分配传染率和恢复率等级 for i in range(len(G)): G.nodes[i]['beta'] = np.random.choice([0,1,2]) G.nodes[i]['gamma'] = np.random.choice([0,1,2]) # 运行SIS传播模型 S, I = SIS_model(G, beta, gamma, 200) # 绘制感染人数和恢复人数随时间变化的图像 x = range(201) y1 = np.sum(I, axis=0) y2 = np.sum(S, axis=0) plt.plot(x, y1, label='Infected') plt.plot(x, y2, label='Susceptible') plt.xlabel('Time') plt.ylabel('Number of People') plt.legend() plt.show() ``` 运行以上代码,您将会得到一张感染人数和恢复人数随时间变化的图像。请注意,这只是一个简单的模拟示例,并不代表真实情况。同时,如果您需要更多的节点,可以根据需要修改代码中的节点数量以及参数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值