LangChain介绍、安装和入门教程

文 / @WordPress主题

LangChain是一个基于语言模型的开发框架,为开发人员提供了更便捷的方式来构建应用程序。它是一个强大的开源框架,能够连接到您所需的AI模型,以便构建各种自然语言处理(NLP)应用程序,例如聊天机器人、生成性问答系统、摘要生成器等。LangChain使用Python和JavaScript编写,于2022年10月首次发布。

LangChain安装

要开始使用LangChain,首先需要安装两个库:langchain和openai。可以通过运行以下命令来进行安装:

pip install langchain

pip install openai

此外,你还需要获取OPENAI的API密钥。可以选择在淘宝上购买一个,或者到https://openai.com/blog/openai-api/网站申请账号获取,但请注意申请周期可能较长。获取到API密钥后,可以通过以下方式添加环境变量:

  • 在终端运行:export OPENAI_API_KEY="..."
  • 或在python脚本中添加:import os; os.environ["OPENAI_API_KEY"] = "..."

LangChain的应用

LangChain的一个基本应用是获取LLM(Language Model)的预测。例如,你可以输入一个文本,让LLM为你生成预测。以下是一些示例:

  • 生成公司名称:
python
text = "What would be a good company name a company that makes colorful socks?"
print(llm(text)) # 返回 Socktastic!
  • 解答数学问题:
python
from langchain.llms import OpenAI # 导入 LLM wrapper
llm = OpenAI(temperature=0.9) # 大的 temperature 会让输出有更多的随机性
text = "what is the results of 5+6?"
print(llm(text)) # 返回 11

注意,LLM的预测并不总是准确的。例如,对于"what is the results of 512311+89749878?"这个问题,LLM的返回结果是"89,876,189",这是错误的【15†source】。

另外,你还可以让LLM返回同义词或同音词:

python
text = "what word is similar to good?"
print(llm(text)) # 返回 Excellent
text = "what word is homophone of good?"
print(llm(text)) # 返回 Goo

 

输入提示模板

LangChain还支持设置输入提示模板。例如,你可以创建一个模板,让用户只需要输入公司生产的产品,而不需要输入整个句子。以下是如何设置模板的示例:

python
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?",
)
print(prompt.format(product="colorful socks")) # 返回 What is a goodname for a company that makes colorful socks?
text = prompt.format(product="colorful socks")
print(llm(text)) # 返回 Socktastic!
text = prompt.format(product="chocolates")
print(llm(text)) # 返回 ChocoDelightz!

 

Memory功能

LangChain还提供了Memory功能,它可以记录LLM交互中的历史状态,并基于历史状态修正模型的预测。例如,当模型出错后,用户可以反馈模型错误的地方,然后这些反馈会被添加到memory中,以后遇到类似问题时模型会提前找到用户的反馈,从而避免犯同样的错误。

对话任务中的ConversationChain示例

LangChain还支持对话任务,可以使用ConversationChain实现。下面是一个示例:

python
from langchain import OpenAI, ConversationChain
llm = OpenAI(temperature=0)
conversation = ConversationChain(llm=llm, verbose=True)
conversation.predict(input="Hi there!") # 返回 " Hi there! It's nice to meet you. How can I help you today?"
conversation.predict(input="I'm doing well! Just having a conversation with an AI.") # 返回 " That's great! It's always nice to have a conversation with someone new. What would you like to talk about?"

可以看到,之前的聊天会作为短期memory加在prompt中,从而让模型能有短时间的记忆能力。

虽然LangChain没有直接在QA任务中集成memprompt,但可以基于对话任务来测试之前QA任务中出错的问题,基于memprompt可以利用用户的反馈来修正模型预测结果。

总的来说,LangChain是一个强大的工具,对于希望利用AI语言模型进行各种NLP任务的开发者来说,这个框架无疑是一个优秀的选择。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。