大家好,我是静愚,朋友们都喜欢叫我“鲸鱼”。我将带领大家开启一段Langchain技术的实战之旅。
以《易车》实际应用场景为背景的系列学习文章,旨在帮助你们更直观、更深入地理解和掌握Langchain技术。
掌握一项技术,最重要的是能够解决实际业务问题。脱离了业务场景的技术,就像是无根之木、无源之水。
在这里,我们一起探索如何将Langchain技术应用于实际业务,让技术落地生根,助力业务发展。
1. 什么是AI大语言大模型
大语言模型(Large Language Model,简称LLM)是一种基于海量文本数据训练的深度学习模型。简单来说,它就像是一个超级聪明的“语言专家”,通过“阅读”互联网上无数的文章、书籍、对话等内容,学会了如何理解和生成人类语言。
想象一下,你有一个非常聪明的朋友,她看过无数的书、文章和对话,对各种语言知识和语境都非常熟悉。当你问她一个问题或者让她帮你写一篇文章时,她能够迅速理解你的意图,并给出一个既准确又符合语境的回答或文章。
大语言模型就是这个“超级聪明的朋友”的升级版,它通过深度学习算法,从海量的文本数据中提取语言知识和规则,从而能够自动地理解和生成自然语言。
主角Langchain
LangChain是一个开源的工具库,旨在为开发者提供一个简单、易用的接口,以构建和部署基于大型语言模型(LLM)的应用程序。它的目标是降低使用LLM的门槛,让更多的开发者能够轻松地利用这些强大的模型来解决实际问题。
大语言模型虽然很聪明,但是它自己并不知道在特定的场合下怎么用最合适。Langchain就是用来指导模型,让它能够在不同的场景下做正确的事情,比如在客服、写作、编程等不同领域都能发挥作用。
Langchain 官网:https://python.langchain.com/
Langchain Github:https://github.com/langchain-ai/langchain
2. 安装LangChain
首先,确保你的电脑上安装了Python。
LangChain的基本安装特别简单。
pip install langchain
注意:如果需要安装特定版本的Langchain或额外的依赖项(如用于与特定模型提供商集成的库),请查看Langchain的官方文档或GitHub仓库以获取详细信息。
用下面两种方法,我们就可以在安装 LangChain 的方法时,引入大多数的依赖项。
安装LangChain时包括常用的开源LLM(大语言模型) 库:
pip install langchain[llms]
安装完成之后,还需要更新到 LangChain 的最新版本,这样才能使用较新的工具。
pip install --upgrade langchain
3. 智普AI大模型
LangChain本质上就是对各种大模型提供的API的套壳,是为了方便我们使用这些API,搭建起来的一些框架、模块和接口。
因此,要了解LangChain的底层逻辑,需要了解大模型的API的基本设计思路。
虽然openai是大家认可度比较高的模型,但是在国内头部企业的大模型效果也都不错。这次我选择使用的是智普AI大模型。
智普AI开放平台:https://bigmodel.cn/
模型版本:glm-4
首先需要注册一下账号,在“控制台”可以看到自己的APIKey。
4. 调用智普AI大模型
第1步,先注册好你的API Key。
第2步,用 pip install zhipuai
命令来安装智普AI库。
第3步,导入 智普AI API Key。
导入API Key有多种方式,其中之一是通过下面的代码:
client = ZhipuAI(api_key="") # 请填写您自己的APIKey
当然,这种把Key直接放在代码里面的方法最不可取,因为你一不小心共享了代码,密钥就被别人看到了,他就可以使用你的GPT-4资源!
所以更好的方法是在操作系统中定义环境变量,比如在Linux系统的命令行中使用:
export ZHIPUAI_API_KEY='你的API Key'
或者,你也可以考虑把环境变量保存在.env
文件中,使用python-dotenv
库从文件中读取它,这样也可以降低API密钥暴露在代码中的风险。
可以参考文章:揭秘python-dotenv:那些鲜为人知的实用窍门
第4步,导入智普AI库。(如果你在上一步导入智普AI API Key时并没有导入库)
import zhipuai
第5步,调用模型,并返回结果。
from zhipuai import ZhipuAI
from dotenv import load_dotenv
import os
load_dotenv()
client = ZhipuAI(api_key=os.getenv('ZHIPUAI_API_KEY'))
response = client.chat.completions.create(
model="glm-4", # 填写需要调用的模型名称
messages=[
{"role": "user", "content": "你好!给我的汽车4s店起一个名字吧?"},
],
stream=False,
)
第6步,打印输出大模型返回的文字。
print(response.choices[0].message.content)
5. 通过LangChain调用
最后,让我们来使用LangChain来调用智普AI的模型,完成了这个任务,入门就算完成了。
代码如下:
from langchain_community.chat_models import ChatZhipuAI
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
from dotenv import load_dotenv
load_dotenv() # 加载.env环境变量:ZHIPUAI_API_KEY
chat = ChatZhipuAI(
model="glm-4",
temperature=0.5,
)
messages = [
SystemMessage(content="你是一个AI智能助手"),
HumanMessage(content="请给我的汽车4s店起个名"),
]
response = chat.invoke(messages)
print(response.content)
这只是一个对API的简单封装:先导入LangChain的智普AI类,创建一个LLM(大语言模型)对象,指定使用的模型和一些生成参数。
使用创建的LLM对象和消息列表调用ZhipuAI类的__call__
方法,进行文本生成。生成的结果被存储在response
变量中。
最后
现在,基本的环境已经配置部署完成,下面我将继续带着大家一步一步通过《易车》智能问答系统,完整学习整个Langchain技术。