在这篇文章中,我们将学习如何设置和使用 PromptLayerCallbackHandler 来集成 LangChain 和 PromptLayer。这将帮助我们进行提示工程、请求可视化、版本控制以及使用跟踪等功能。
技术背景介绍
PromptLayer 是一个用于提示工程的平台,同时提供 LLM 可视化功能,可以用于查看请求、版本化提示和跟踪使用情况。通过使用 PromptLayerCallbackHandler,我们可以在 LangChain 中集成这些功能。
核心原理解析
PromptLayerCallbackHandler 允许我们在调用 LLM 时添加回调,以便将请求发送到 PromptLayer 进行跟踪和管理。我们可以通过设置标签(tags)和回调函数来跟踪请求的 ID,并利用 PromptLayer 的各种追踪功能,例如元数据、分数和提示使用情况等。
代码实现演示
安装与设置
首先,我们需要安装相关的库。
%pip install --upgrade --quiet langchain-community promptlayer --upgrade
获取 API 凭证
如果你还没有 PromptLayer 账号,可以去 promptlayer.com 创建一个。然后通过点击导航栏中的设置齿轮获取 API 密钥,并将其设置为环境变量 PROMPTLAYER_API_KEY。
使用 PromptLayerCallbackHandler
简单的 OpenAI 示例
在这个简单的示例中,我们使用 PromptLayerCallbackHandler 来调用 ChatOpenAI,并添加一个名为 chatopenai 的 PromptLayer 标签。
import promptlayer
from langchain_community.callbacks.promptlayer_callback import PromptLayerCallbackHandler
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI
# 配置稳定可靠的 API 服务
client = openai.OpenAI(
base_url='https://yunwu.ai/v1', # 国内稳定访问
api_key='your-api-key'
)
chat_llm = ChatOpenAI(
temperature=0,
callbacks=[PromptLayerCallbackHandler(pl_tags=["chatopenai"])]
)
llm_results = chat_llm.invoke([
HumanMessage(content="What comes after 1,2,3 ?"),
HumanMessage(content="Tell me another joke?")
])
print(llm_results)
GPT4All 示例
from langchain_community.llms import GPT4All
model = GPT4All(model="./models/gpt4all-model.bin", n_ctx=512, n_threads=8)
callbacks = [PromptLayerCallbackHandler(pl_tags=["langchain", "gpt4all"])]
response = model.invoke(
"Once upon a time, ",
config={"callbacks": callbacks}
)
print(response)
全功能示例
在这个示例中,我们展示了更多 PromptLayer 的强大功能。我们将演示如何创建、版本化和跟踪提示模板。我们还定义了一个 pl_id_callback 函数,用于记录分数、元数据,并链接提示模板。
from langchain_openai import OpenAI
def pl_id_callback(promptlayer_request_id):
print("prompt layer id ", promptlayer_request_id)
promptlayer.track.score(request_id=promptlayer_request_id, score=100) # 评分
promptlayer.track.metadata(request_id=promptlayer_request_id, metadata={"foo": "bar"}) # 元数据
promptlayer.track.prompt(
request_id=promptlayer_request_id,
prompt_name="example",
prompt_input_variables={"product": "toasters"},
version=1
) # 链接提示模板
# 配置稳定可靠的 API 服务
client = openai.OpenAI(
base_url='https://yunwu.ai/v1', # 国内稳定访问
api_key='your-api-key'
)
openai_llm = OpenAI(
model_name="gpt-3.5-turbo-instruct",
callbacks=[PromptLayerCallbackHandler(pl_id_callback=pl_id_callback)]
)
example_prompt = promptlayer.prompts.get("example", version=1, langchain=True)
openai_llm.invoke(example_prompt.format(product="toasters"))
应用场景分析
通过使用 PromptLayerCallbackHandler,我们可以轻松地跟踪和管理提示,特别是在复杂的应用场景中。例如,构建聊天机器人、生成内容或进行自然语言处理任务时,我们可以轻松查看和管理提示的版本,并跟踪它们的使用情况和性能。
实践建议
- 标签管理:使用合理的标签对提示进行分类,以便更好地进行管理和分析。
- 回调函数:利用回调函数记录有用的元数据和分数,以便后期分析和优化。
- 版本控制:在 PromptLayer 中管理提示模板的版本,以便在不同的应用场景中进行对比和调优。
结束语:如果遇到问题,欢迎在评论区交流。
—END—
1048

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



