安装LangChain
要安装LangChain,可以使用Pip和Conda进行安装。以下是安装LangChain的步骤:
可以根据自己的安装的版本使用pip或者pip3
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple langchain
初始化模型
在使用LangChain之前,需要导入LangChain x 集成包。
LangChain可以选择使用多种类型的集成包,这里为了测试方便使用的是通义千问,使用前需要获取API密钥,具体如何获取可以在网上搜索下。
可以设置到环境变量也可以在代码上声明
export OPENAI_API_KEY="YOUR_API_KEY"
使用LLM
使用LLM来回答问题非常简单。可以直接调用LLM的invoke方法,并传入问题作为参数。此外,还可以通过提示模板(prompt template)生成提示词,用于向模型(LLM)发送指令。
下面演示了如何构建一个简单的LLM链(chains):
from langchain_core.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
from langchain_community.llms import Tongyi
import os
prompt1 = ChatPromptTemplate.from_template("""{input}
"""
)
os.environ["DASHSCOPE_API_KEY"] = "sk-xxx"
llm = Tongyi()
# 创建一个提示模板(prompt template)
# 下面消息模板,定义两条消息,system消息告诉模型扮演什么角色,user消息代表用户输入的问题,这里用了一个占位符{input} 代表接受一个模版参数input。
prompt = ChatPromptTemplate.from_messages([
("system", "你是世界级的技术专家"),
("user", "{input}")
])
# 基于LCEL 表达式构建LLM链,lcel语法类似linux的pipeline语法,从左到右按顺序执行
# 下面编排了一个简单的工作流,首先执行prompt完成提示词模板(prompt template)格式化处理, 然后将格式化后的prompt传递给llm模型执行,最终返回llm执行结果。
chain = prompt | llm
# 调用LLM链并设置模板参数input, invoke会把调用参数传递给prompt提示模板,开始chain定义的步骤开始逐步执行。
print(chain.invoke({"input": "帮我写一篇关于AI的技术文章,100个字"}))

输出转换
LLM的输出通常是一条消息,为了更方便处理结果,可以将消息转换为字符串。下面展示如何将LLM的输出消息转换为字符串:
from langchain_core.output_parsers import StrOutputParser
# 创建一个字符串输出解析器
output_parser = StrOutputParser()
# 将输出解析器添加到LLM链中,跟前面的例子,区别就是工作流编排,最后一步将llm模型输出的结果传递给output_parser进行格式转换
chain = prompt | llm | output_parser
完整代码
from langchain_core.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
from langchain_community.llms import Tongyi
import os
from langchain_core.output_parsers import StrOutputParser
prompt1 = ChatPromptTemplate.from_template("""{input}
"""
)
os.environ["DASHSCOPE_API_KEY"] = "sk-XXX"
llm = Tongyi()
# 创建一个提示模板(prompt template)
# 下面消息模板,定义两条消息,system消息告诉模型扮演什么角色,user消息代表用户输入的问题,这里用了一个占位符{input} 代表接受一个模版参数input。
prompt = ChatPromptTemplate.from_messages([
("system", "你是世界级的技术专家"),
("user", "{input}")
])
# 创建一个字符串输出解析器
output_parser = StrOutputParser()
# 基于LCEL 表达式构建LLM链,lcel语法类似linux的pipeline语法,从左到右按顺序执行
# 下面编排了一个简单的工作流,首先执行prompt完成提示词模板(prompt template)格式化处理, 然后将格式化后的prompt传递给llm模型执行,最终返回llm执行结果。
chain = prompt | llm | output_parser
# 调用LLM链并设置模板参数input, invoke会把调用参数传递给prompt提示模板,开始chain定义的步骤开始逐步执行。
print(chain.invoke({"input": "帮我写一篇关于AI的技术文章,100个字"}))
1278



被折叠的 条评论
为什么被折叠?



