欢迎来到我的LangChain系列,假如您也和我相同,想经过学习LangChain开始AI使用开发。那就请一起来学习它的各个功能模块和demo实例。

LangChain 一 hello LLM – (juejin.cn)

LangChain 二 模型 – (juejin.cn)

LangChain 三 Data Connections – (juejin.cn)

LangChain 四 Prompts

LangChain 五 输出解析器

前言

  LangChain将杂乱的使用流程“链”了起来,今天,咱们一起来学习Chain模块。

  链有很多好处, 比如它可以让咱们的AI使用更模块化,方便调试和协作。链定义了组件的调用顺序,也包含各式的链,来完成咱们的使用开发。

LLMChain

   LangChain供给了各式的链,各模块化的组件,当然有相应的链来封装。大模型处理这块,最简单的LLMChain上场了。LLMChain包含以下组件:

  • LLM
  • PromptTemplate   LLM 和Prompt 是AI使用的根底,LLMChain将两者结合封装后,向外供给的运行语义就简单多了。
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
llm = OpenAI(temperature=0, openai_api_key="您的有用openai ai key")
prompt = PromptTemplate(
    input_variables=["color"],
    template="What is the hex code of color {color}?",
)

   首要咱们实例化了llm和prompt。

from langchain.chains import LLMChain
chain = LLMChain(llm=llm, prompt=prompt)

   接着, 将llm和prompt组合起来,实例化LLMChain。

print(chain.run("green"))
print(chain.run("cyan"))
print(chain.run("magento"))

  最后,咱们要向大模型提问,就是向LLMChain提问。

LangChainHub

   LangChain也供给了一个Hub 来收集并共享常用的LangChain基本元素。github.com/hwchase17/l…, 点开咱们可以玩一些Chain。

LangChain 六 链

  • hello world 链

  首要,每个链都有一个json文件。

LangChain 六 链

  由前几节的内容,咱们应该可以理解这个json文件,它里面定义了prompt 的模板、参数,llm的模型、自由度等参数,output_key 表明输出是文本。看完咱们就知道怎么用了。

  1. 提示词模版 – 恳求LLM回答一个topic参数指定的话题的笑话
  2. LLM – OpenAI的text-davince-003模型(包含模型相关参数的设置)
  • llm-math

  让咱们来玩下数学链。

from langchain.chains import load_chain
import os
os.environ['OPENAI_API_KEY'] = "您的有用openai api key"
chain = load_chain("lc://chains/llm-math/chain.json")

  在这里, 咱们选择从hub里加载。咱们加载了load_chain模块,从LangChainHub加载llm-math。

chain.run("whats the area of a circle with radius 2?")

   根据math chain 提出计算面积的问题。

> Entering new LLMMathChain chain...
whats the area of a circle with radius 2?
Answer: 12.566370614359172
> Finished chain.
Answer: 12.566370614359172

总结

  本文介绍了LangChain的Chain模块,AI模块化的能力确实得到提升。

参考资料