赞
踩
LangChain是目前流行的大语言模型相关应用的开发框架。其他的框架还包括Microsoft的Semantic Kernel,Amazon的Bedrock,开源的Hugging Face Transformers和LlamaIndex等等。
至于为什么要使用框架呢。这里举个我自己的简单的例子。之前我在做用Python streamlit实现简单的AI 大模型对话对比器的时候,这个对话器的设计是可以同时连接多个大语言模型。在开发过程中,需要根据不同厂家的大模型API,编写相应的代码。大模型种类多的话,那查询不同大模型接口的用法,也是个相当耗时的过程。我当时只编写了OpenAI的接口调用,导致我只能使用OpenAI的GPT3.5和GPT 4作为对话多个模型能力的展示。
如果使用LangChain的话,情况就会有所不同。LangChain封装了与大模型的接口,编程的时候不需要直接和大模型打交道,而通过LangChain去做调用。使用再多的模型种类都不再是个问题。
当然LangChain作为一个开发框架,它的作用不仅仅是封装了大模型。
根据LangChain官网,LangChain 是一个用于开发由语言模型驱动的应用程序的框架。它使得应用程序能够:
这个框架由以下几个部分组成。
这些产品共同简化了整个应用程序生命周期:
浏览LangChain的QuickStart页面,是了解LangChain用法的一个不错的方式。
我参照官网实例,做了一个简单的程序用于连接GPT。
# 加载 .env 到环境变量,比如OPENAI_API_KEY,OPENAI_BASE_URL
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv())
# 初始化大模型
from langchain_openai import ChatOpenAI
# 默认模型: gpt-3.5-turbo
llm=ChatOpenAI()
# 调用大模型接口
response=llm.invoke("what makes people happy?")
print(response.content)
是不是很简单。
现在我打算不直接调用invoke方法,试一下LangChain提供的提示词模版,输出解析,和chain的功能。代码如下:
# 模型输入/提示词模板封装 from langchain_core.prompts import ChatPromptTemplate prompt = ChatPromptTemplate.from_messages([ ("system", "You are ready to answer question with good knowledge"), ("human", "{input}") ]) # 模型输出/构建输出解析器,将输出从message类型转换为string from langchain_core.output_parsers import StrOutputParser output_parser = StrOutputParser() # 构建chain chain = prompt | llm | output_parser userMessage = "what makes people happy?" response = chain.invoke({"input": userMessage}) print(response)
LangChain在快速迭代中,它有更多的功能等着我们去探索,如果有兴趣,留下你的评论,将继续更新相关的内容。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。