掘金 人工智能 前天 12:03
第一章:AI与LangChain初探 —— 你的第一个“智能”程序
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文是LangChain实战系列的第一篇,引导读者快速入门,通过简单的Python代码,调用阿里通义千问大语言模型。文章详细介绍了LangChain的核心概念,包括大语言模型、API Key和LangChain的作用,并提供了完整的代码示例,演示了如何配置环境、获取API Key,以及如何向AI提问并获得回答。读者将亲身体验AI程序的构建过程,并学会使用LangChain调用LLM的最基本流程。

🔑 **环境配置与API Key获取**: 首先,文章指导读者安装必要的Python库,并详细介绍了如何从阿里云百炼大模型平台获取API Key,强调了通过环境变量设置API Key的安全性与重要性。

📞 **LangChain核心组件**: 介绍了LangChain的核心组件ChatTongyi,它作为LangChain与通义千问模型交互的接口,简化了API调用的复杂性。通过实例化ChatTongyi类,可以直接与通义千问对话。

💬 **代码实战与流程解析**: 文章提供了一个完整的AI程序代码示例,展示了实例化模型、准备输入信息、调用模型和打印回答的整个流程。同时,对代码逻辑进行了详细的解释,帮助读者理解每一行代码的作用。

第一章:AI与LangChain初探 —— 你的第一个“智能”程序

你好,我是阿扩。欢迎来到我们实战系列的第一站!

在上一篇引言里,我们聊到了LangChain就像一套强大的“乐高积木”。那么今天,我们就从这套积木中,拿出最核心的那一块——大语言模型(LLM),并用最简单的方式将它启动。你将亲手编写并运行你的第一个“智能”程序,见证AI如何响应你的指令。

准备好了吗?让我们开始吧!

1.1 本节目标

    成功配置好LangChain与通义千问(Qwen)模型的开发环境。理解LangChain调用大语言模型的最基本流程。编写并成功运行一个程序,向AI提问并获得回答。

1.2 核心概念速览

在今天的实践中,有三个核心概念,我们先用一个简单的比喻来理解它:

所以,我们今天的任务就是:拿到信物(API Key),通过超级电话(LangChain),向智慧先知(Qwen)问一个问题。

1.3 LangChain组件解析

今天我们只会用到一个最基础的LangChain组件,它属于“模型(Models)”这个类别:

1.4 实战代码演练

理论说再多,不如亲手敲一遍代码来得实在。下面是我们的第一个AI程序的完整代码。

第一步:安装必要的库

在运行代码之前,请打开你的终端(Terminal)或命令提示符(Command Prompt),执行以下命令来安装我们需要的Python库:

pip install langchain langchain_community dashscope

第二步:获取并设置API Key

    访问阿里云的百炼大模型平台。登录你的阿里云账户(如果没有,需要注册一个)。在左侧导航栏找到并进入“API-KEY管理”,点击“创建新的API-KEY”来生成你的专属Key。重要:将获取到的API Key设置为环境变量。这是最安全和推荐的做法,避免将密钥硬编码在代码里。
      在macOS或Linux系统:
      export DASHSCOPE_API_KEY="你的API Key"
      在Windows系统:
      set DASHSCOPE_API_KEY="你的API Key"

    提示:这种在终端设置的环境变量只在当前会话有效。为了永久生效,你需要将它添加到系统的配置文件中(如 .bashrc, .zshrc 或系统属性的环境变量设置里)。

第三步:编写并运行Python代码

现在,创建一个名为 hello_ai.py 的文件,将下面的代码完整地复制进去,然后运行它!

# 1. 导入必要的模块# ChatTongyi 是我们与通义千问模型交互的接口from langchain_community.chat_models import ChatTongyi# HumanMessage 是用来表示用户提问的消息类型from langchain_core.messages import HumanMessagedef main():    """主函数,执行AI问答流程"""    print("你好,我是你的第一个AI程序!")        # 2. 实例化模型    # 这里我们创建了一个通义千问模型的实例。    # LangChain会自动从环境变量中寻找名为 DASHSCOPE_API_KEY 的密钥。    llm = ChatTongyi()        # 3. 准备输入信息    # 我们将问题“请用一句话介绍你自己,并说一句问候。”包装成一个HumanMessage对象。    # 这是LangChain中与模型交互的标准格式。    messages = [        HumanMessage(content="请用一句话介绍你自己,并说一句问候。")    ]        # 4. 调用模型并获取回答    # 使用 .invoke() 方法,就像是按下了电话的呼叫按钮。    # LangChain会将我们的消息发送给通义千问,并等待回复。    print("正在思考中...")    response = llm.invoke(messages)        # 5. 打印模型的回答    # response 是一个AIMessage对象,我们通过 .content 属性获取其文本内容。    print("\nAI的回答是:")    print(response.content)if __name__ == "__main__":    main()

当你运行 python hello_ai.py 后,稍等片刻,你将会在终端看到类似下面的输出:

你好,我是你的第一个AI程序!正在思考中...AI的回答是:我是一个由阿里巴巴开发的人工智能语言模型,很高兴认识你!

恭喜你!你已经成功地让AI为你工作了!

1.5 代码逻辑详解

让我们回顾一下刚才的代码,弄懂每一行都在做什么:

    from ... import ...: 我们从LangChain的库中导入了两个关键工具:ChatTongyi(通义千问的“电话听筒”)和 HumanMessage(包装我们问题的“信封”)。llm = ChatTongyi(): 这里,我们创建了ChatTongyi类的一个实例,并赋值给变量llm。从现在起,llm就代表了那个连接着云端智慧的AI模型。因为我们之前设置了环境变量,LangChain会自动找到并使用它,无需在代码里写任何密钥。messages = [HumanMessage(...)]: 我们把想问的问题 "请用一句话介绍你自己..." 放进了一个叫 HumanMessage 的“信封”里。LangChain规定,与聊天模型沟通时,输入必须是这类消息对象的列表(list)。这为我们以后实现多轮对话打下了基础。response = llm.invoke(messages): 这是最神奇的一步!我们调用了llm对象的 invoke 方法(invoke意为“调用、触发”),并把打包好的消息列表传给它。程序会在这里暂停一下,因为LangChain正在通过网络与通义千问模型进行通信。当模型处理完我们的问题并生成回答后,invoke方法会返回一个结果。print(response.content): 模型返回的response不是一个简单的字符串,而是一个 AIMessage 对象。这个对象里包含了AI的回答以及其他一些信息。我们通过访问它的 .content 属性,就能拿到我们最关心的、AI生成的文本内容。

1.6 总结与思考

在这一章,我们迈出了至关重要的一步。我们没有深入复杂的理论,而是通过一个简单的动手实践,完成了从环境配置到成功运行的全过程。

本章重点回顾:

这只是一个起点,但你已经亲手验证了LangChain的强大与便捷。它将复杂的API调用过程,简化成了短短几行优雅的Python代码。

思考与练习:现在,轮到你来“玩”了!尝试修改 hello_ai.py 文件中 HumanMessagecontent 内容,向AI提出一些你感兴趣的问题,看看它会如何回答。比如:

大胆去尝试吧!探索与AI对话的乐趣,是学好这门技术的最佳动力。在下一章,我们将深入了解LangChain中更多关于“模型(Models)”的知识。期待与你再次相见!

Fish AI Reader

Fish AI Reader

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

FishAI

FishAI

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

联系邮箱 441953276@qq.com

相关标签

LangChain 大语言模型 AI程序 通义千问
相关文章