Skip to main content

PromptLayer

PromptLayer

PromptLayer 是一个LLM可观察性平台,可以让您可视化请求、版本提示并跟踪使用情况。在本指南中,我们将介绍如何设置PromptLayerCallbackHandler

虽然PromptLayer确实有与LangChain直接集成的LLMs(例如PromptLayerOpenAI),但这个回调是将PromptLayer与LangChain集成的推荐方法。

有关更多信息,请参阅我们的文档

安装和设置

pip install promptlayer --upgrade

获取API凭据

如果您没有PromptLayer账户,请在promptlayer.com上创建一个。然后,通过点击导航栏中的设置按钮获取一个API密钥,并将其设置为名为PROMPTLAYER_API_KEY的环境变量。

使用方法

使用PromptLayerCallbackHandler很简单,它有两个可选参数:

  1. pl_tags - 一个可选的字符串列表,将作为标签跟踪在PromptLayer上。
  2. pl_id_callback - 一个可选的函数,将以promptlayer_request_id作为参数。这个ID可以与PromptLayer的所有跟踪功能一起使用,用于跟踪元数据、分数和提示的使用情况。

简单的OpenAI示例

# 在这里写下你的代码示例

在这个简单的例子中,我们使用PromptLayerCallbackHandlerChatOpenAI。 我们添加了一个名为chatopenai的PromptLayer标签。

import promptlayer  # 不要忘记这个 🍰
from langchain.callbacks import PromptLayerCallbackHandler
from langchain.chat_models import ChatOpenAI
from langchain.schema import (
HumanMessage,
)

chat_llm = ChatOpenAI(
temperature=0,
callbacks=[PromptLayerCallbackHandler(pl_tags=["chatopenai"])],
)
llm_results = chat_llm(
[
HumanMessage(content="1,2,3之后是什么?"),
HumanMessage(content="告诉我另一个笑话?"),
]
)
print(llm_results)

API参考:

GPT4All 示例

import promptlayer  # 不要忘记这个 🍰
from langchain.callbacks import PromptLayerCallbackHandler

from langchain.llms import GPT4All

model = GPT4All(model="./models/gpt4all-model.bin", n_ctx=512, n_threads=8)

response = model(
"从前有一天,",
callbacks=[PromptLayerCallbackHandler(pl_tags=["langchain", "gpt4all"])],
)

API 参考:

完整示例​

在这个示例中,我们解锁了PromptLayer的更多功能。

PromptLayer允许您可视化创建、版本化和跟踪提示模板。使用Prompt Registry,我们可以以编程方式获取名为example的提示模板。

我们还定义了一个pl_id_callback函数,该函数接受promptlayer_request_id并记录分数、元数据并链接使用的提示模板。在我们的文档中了解更多关于跟踪的信息。

import promptlayer  # 不要忘记这个 🍰  
from langchain.callbacks import PromptLayerCallbackHandler
from langchain.llms 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
) # score是一个0-100的整数
promptlayer.track.metadata(
request_id=promptlayer_request_id, metadata={"foo": "bar"}
) # metadata是一个键值对字典,被跟踪在PromptLayer上
promptlayer.track.prompt(
request_id=promptlayer_request_id,
prompt_name="example",
prompt_input_variables={"product": "toasters"},
version=1,
) # 将请求链接到提示模板


openai_llm = OpenAI(
model_name="text-davinci-002",
callbacks=[PromptLayerCallbackHandler(pl_id_callback=pl_id_callback)],
)

example_prompt = promptlayer.prompts.get("example", version=1, langchain=True)
openai_llm(example_prompt.format(product="toasters"))

API参考:

就是这样!设置完成后,您的所有请求都将显示在PromptLayer仪表板上。此回调还适用于在LangChain上实现的任何LLM。