掘金 人工智能 前天 12:03
第二章:模型 (Models) —— AI应用的大脑
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文深入探讨了LangChain中两种核心模型——大语言模型(LLM)和聊天模型(Chat Model),并介绍了它们在实际应用中的区别。文章通过通义千问的接口演示,阐述了消息类型和模型参数调整对AI输出的影响,为读者提供了构建AI应用的基础知识。

🗣️ **LLM与Chat Model的区别**: LLM(大语言模型)更像“续写大师”,适合文本补全等简单任务,输入输出均为字符串。Chat Model(聊天模型)则更像“角色扮演对话家”,擅长对话式应用,输入为消息列表,输出为AI消息对象。

💬 **消息类型详解**: Chat Model使用SystemMessage设定AI角色,HumanMessage代表用户提问,AIMessage记录AI回复。这些消息类型构建了对话历史,使AI能够理解上下文。

⚙️ **模型参数的影响**: 通过调整如temperature等参数,可以控制AI输出的随机性和创造性。较低的temperature值使输出更稳定,而较高的值则增加多样性。

💡 **实战代码演示**: 通过使用通义千问的LLM和Chat Model接口,文章提供了具体的代码示例,展示了如何进行文本补全和构建对话式应用,帮助读者理解两种模型的使用方法。

🎯 **SystemMessage的威力**: 通过修改SystemMessage,可以赋予AI不同的身份,从而改变其回答风格。这展示了Chat Model在构建可定制化AI应用方面的潜力。

第二章:模型 (Models) —— AI应用的大脑

你好,我是阿扩。欢迎回到我们的LangChain探索之旅。

如果说AI应用是一辆智能汽车,那么模型(Model)就是它的引擎和驾驶员——它既是动力的来源,也是智能决策的核心。在LangChain中,对模型的抽象和封装是其设计的基石。今天,我们就来彻底搞懂它。

2.1 本节目标

    理解LangChain中两种核心模型类型的区别:大语言模型(LLM)聊天模型(Chat Model)。学会分别使用这两种模型接口与通义千问进行交互。掌握聊天模型中不同**消息类型(Message Types)**的用途。学习如何通过调整**模型参数(如 temperature)**来影响AI的输出。

2.2 核心概念速览

在LangChain的世界里,模型主要被分为两大类。让我们用一个生动的比喻来区分它们:

简单来说,LLM接口更原始,适合简单的文本生成;而Chat Model接口更现代、更强大,也更结构化,是目前构建应用的主流选择。

2.3 LangChain组件解析

今天我们将接触到以下几个核心组件:

    模型接口 (Model Interfaces)

      langchain_community.llms.Tongyi: 这是通义千问的LLM接口。它遵循“字符串进,字符串出”的原则。langchain_community.chat_models.ChatTongyi: 这是通义千问的Chat Model接口,我们在第一章已经用过。它使用消息列表作为输入。

    消息类型 (Message Types)在使用Chat Model时,我们会用到不同的消息类型来构建对话历史,它们都来自 langchain_core.messages

      SystemMessage: 系统消息。通常放在对话的最开始,用来给AI设定一个“人设”或“总指令”。例如:“你是一位专业的Python编程助手。” 它帮助AI更好地定位自己的角色。HumanMessage: 用户消息。代表了由真实用户提出的问题或指令。AIMessage: AI消息。代表了AI之前的回复。在多轮对话中,将AI的旧回复和用户的新问题一起发过去,AI就能“记住”上下文了。

2.4 实战代码演练

确保你的环境中已经安装了必要的库,并且DASHSCOPE_API_KEY环境变量已正确设置。

# 如果还没安装或需要更新pip install langchain langchain_community dashscope

现在,让我们通过两个独立的演练来感受LLM和Chat Model的差异。

演练一:使用LLM接口 (Tongyi)

这个例子展示了最直接的文本补全功能。

# model_llm_example.pyfrom langchain_community.llms import Tongyidef llm_interface_example():    """演示如何使用基础的LLM接口"""    print("--- LLM接口演示 ---")        # 1. 实例化LLM模型    llm = Tongyi()        # 2. 准备输入(一个简单的字符串)    prompt = "天空为什么是蓝色的?"    print(f"用户提问:{prompt}")        # 3. 调用模型并获取回答(invoke的输入和输出都是字符串)    response = llm.invoke(prompt)        # 4. 打印回答    print("\nAI的回答是:")    print(response)if __name__ == "__main__":    llm_interface_example()

运行结果可能如下:

--- LLM接口演示 ---用户提问:天空为什么是蓝色的?AI的回答是:天空之所以呈现蓝色,主要是由于瑞利散射(Rayleigh scattering)现象。当太阳光穿过地球大气层时,会与大气中的微小分子(主要是氮气和氧气)发生碰撞。太阳光实际上是由不同颜色的光混合而成的,每种颜色的光都有不同的波长。蓝色和紫色的光波长较短,而红色和橙色的光波长较长。根据瑞利散射定律,光的散射强度与其波长的四次方成反比。这意味着波长越短的光,越容易被大气分子散射。因此,蓝色和紫色的光在大气中被散射的程度远大于其他颜色的光。这些被散射的蓝光和紫光会向四面八方传播,当我们仰望天空时,进入我们眼睛的就是这些被充分散射的光,所以我们看到的天空是蓝色的。

演练二:使用Chat Model接口 (ChatTongyi)

这个例子展示了如何通过消息列表,更结构化地与AI交互,并控制其输出风格。

# model_chat_example.pyfrom langchain_community.chat_models import ChatTongyifrom langchain_core.messages import HumanMessage, SystemMessagedef chat_model_interface_example():    """演示如何使用Chat Model接口,并设置AI角色"""    print("--- Chat Model接口演示 ---")        # 1. 实例化Chat Model    # 我们通过 temperature 参数控制输出的随机性。    # temperature=0.0 意味着输出会更确定、更保守。    # temperature=1.0 意味着输出会更具创造性、更多样。    chat = ChatTongyi(temperature=0.1)         # 2. 准备输入(一个消息列表)    messages = [        SystemMessage(content="你是一位古典诗人,你的回答必须用五言绝句的形式。"),        HumanMessage(content="请赞美一下程序员。")    ]        # 3. 调用模型并获取回答    response = chat.invoke(messages)        # 4. 打印回答    print("\nAI的回答是:")    print(response.content)if __name__ == "__main__":    chat_model_interface_example()

运行结果可能如下:

--- Chat Model接口演示 ---AI的回答是:黑屏映月华,指尖舞代码。万物皆可造,智慧传天下。

2.5 代码逻辑详解

演练一 (llm_interface_example)

演练二 (chat_model_interface_example)

2.6 总结与思考

今天,我们深入了AI应用的大脑——模型。你现在应该清楚地理解了LangChain中两种模型接口的差异和各自的适用场景。

本章重点回顾:

思考与练习:现在,轮到你来扮演“导演”了!请尝试修改演练二中的SystemMessage,赋予AI一个全新的、有趣的身份,然后向它提问,看看会发生什么奇妙的化学反应。

例如,试试下面这些“人设”:

这个小练习将让你深刻体会到SystemMessage的威力,以及Chat Model在构建可定制化AI应用时的巨大潜力。

在下一章,我们将学习如何让提问变得更加灵活和动态——欢迎来到**提示模板(Prompt Templates)**的世界!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LangChain LLM Chat Model 通义千问 AI应用
相关文章