让我们通过五个简单的步骤使用 LangChain 构建一个问答应用程序:
第 1 步 – 设置开发环境
在开始编码之前,让我们设置开发环境。我假设您的工作环境中已经安装了 Python。
您现在可以使用 pip 安装 LangChain 库:
pip install langchain
由于我们将使用 OpenAI 的语言模型,因此我们还需要安装 OpenAI SDK:
pip install openai
第 2 步 – 将 OPENAI_API_KEY 设置为环境变量
接下来,登录您的 OpenAI 帐户。导航到帐户设置 > 查看 API 密钥。生成密钥并复制它。
在您的 Python 脚本中,使用 os 模块并进入环境变量字典 os.environ。将“OPENAI_API_KEY”设置为您刚刚复制的秘密 API 密钥:
import os
os.environ["OPENAI_API_KEY"] = "your-api-key-here"
第 3 步 – 使用 LangChain 进行简单的 LLM 调用
现在我们已经安装了所需的库,让我们看看如何使用 LangChain 进行简单的 LLM 调用。
为此,让我们导入 OpenAI 包装器。在这个例子中,我们将使用 text-davinci-003 模型:
from langchain.llms import OpenAI
llm = OpenAI(model_name="text-davinci-003")
让我们定义一个问题字符串并生成一个响应:
question = "Which is the best programming language to learn in 2023?"
print(llm(question))
Output >>
It is difficult to predict which programming language will be the most popular in 2023. However, the most popular programming languages today are JavaScript, Python, Java, C++, and C#, so these are likely to remain popular for the foreseeable future. Additionally, newer languages such as Rust, Go, and TypeScript are gaining traction and could become popular choices in the future.
第 4 步 – 创建提示模板
让我们再问一个有关学习新编程语言(例如 Golang)的顶级资源的问题:
question = "What are the top 4 resources to learn Golang in 2023?"
print(llm(question))
Output >>
1. The Go Programming Language by Alan A. A. Donovan and Brian W. Kernighan
2. Go in Action by William Kennedy, Brian Ketelsen and Erik St. Martin
3. Learn Go Programming by John Hoover
4. Introducing Go: Build Reliable, Scalable Programs by Caleb Doxsey
虽然这对初学者来说很好,但当我们试图整理资源列表以学习编程语言和技术堆栈列表时,它很快就会变得重复。
这就是提示模板派上用场的地方。您可以创建一个模板,该模板可以使用一个或多个输入变量进行格式化。
我们可以创建一个简单的模板来获取前 k 个资源来学习任何技术栈。在这里,我们使用 k 和 this 作为 input_variables:
from langchain import PromptTemplate
template = "What are the top {k} resources to learn {this} in 2023?"
prompt = PromptTemplate(template=template,input_variables=['k','this'])
第 5 步 – 运行我们的第一个 LLM 链
我们现在有一个 LLM 和一个提示模板,我们可以在多个 LLM 调用中重复使用。
llm = OpenAI(model_name="text-davinci-003")
prompt = PromptTemplate(template=template,input_variables=['k','this'])
让我们继续创建一个 LLMChain:
from langchain import LLMChain
chain = LLMChain(llm=llm,prompt=prompt)
您现在可以将输入作为字典传递并运行 LLM 链,如下所示:
input = {'k':3,'this':'Rust'}
print(chain.run(input))
Output >>
1. Rust By Example - Rust By Example is a great resource for learning Rust as it provides a series of interactive exercises that teach you how to use the language and its features.
2. Rust Book - The official Rust Book is a comprehensive guide to the language, from the basics to the more advanced topics.
3. Rustlings - Rustlings is a great way to learn Rust quickly, as it provides a series of small exercises that help you learn the language step-by-step.