Langchain第一天课后作业
from langchain import HuggingFaceHub
from langchain import PromptTemplate, LLMChain
import os
# 选择另一个模型 ID
model_id = "gpt2"
# 初始化 Hugging Face Hub
# 方法一:设置环境变量(推荐)
# os.environ["HUGGINGFACEHUB_API_TOKEN"] = "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"
# llm = HuggingFaceHub(repo_id=model_id)
# 方法二:直接传入 API token
llm = HuggingFaceHub(repo_id=model_id, huggingfacehub_api_token="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")
# 创建一个提示模板
template = "请根据以下主题写一首诗:{topic}"
prompt = PromptTemplate(template=template, input_variables=["topic"])
# 创建 LLMChain
llm_chain = LLMChain(prompt=prompt, llm=llm)
# 提供一个主题
topic = "自然中文"
# 生成诗歌
poem = llm_chain.run(topic)
# 打印诗歌
print(poem)
这个代码片段演示了如何使用LangChain与Hugging Face的模型集成来生成文本内容。在该示例中,通过Hugging Face Hub调用GPT-2模型来生成与指定主题相关的诗歌。以下是代码的核心步骤和含义:
1. 导入相关模块
python
复制代码
from langchain import HuggingFaceHub
from langchain import PromptTemplate, LLMChain
import os
LangChain提供了与Hugging Face模型集成的API,HuggingFaceHub用来直接连接Hugging Face上的模型,而PromptTemplate和LLMChain则用于创建和执行生成任务。
2. 设置模型ID和API Token
python
复制代码
model_id = "gpt2"
选择了一个预训练的模型ID "gpt2",它是OpenAI发布的一个小型生成式语言模型。代码中提供了两种方式来设置API Token:
- 方法一:将API Token设置为环境变量
HUGGINGFACEHUB_API_TOKEN(推荐,因为这样更安全)。 - 方法二:将API Token直接作为参数传入到
HuggingFaceHub对象中。
3. 创建提示模板
python
复制代码
template = "请根据以下主题写一首诗:{topic}"
prompt = PromptTemplate(template=template, input_variables=["topic"])
通过PromptTemplate来定义一个提示模板。模板中包含占位符{topic},之后将被替换为具体的主题。
4. 创建LLMChain
python
复制代码
llm_chain = LLMChain(prompt=prompt, llm=llm)
LLMChain将提示模板和模型连接起来,负责传递输入并返回生成的内容。
5. 生成文本
python
复制代码
topic = "自然中文"
poem = llm_chain.run(topic)
在这里,主题被设置为“自然中文”,然后使用.run()方法将主题传递给llm_chain,生成并返回一首诗歌。
6. 打印生成的诗歌
python
复制代码
print(poem)
最终,将生成的诗歌打印到控制台。
总结
这个代码通过LangChain与Hugging Face Hub的结合,展示了如何灵活地调用预训练语言模型生成特定主题的内容。