跳到主要內容
Open In ColabOpen on GitHub

PromptLayer

PromptLayer 是一個用於提示工程的平台。它還有助於 LLM 的可觀察性,以視覺化請求、版本提示和追蹤使用情況。

雖然 PromptLayer 確實有直接與 LangChain 整合的 LLM(例如 PromptLayerOpenAI),但建議使用回呼來將 PromptLayer 與 LangChain 整合。

在本指南中,我們將介紹如何設定 PromptLayerCallbackHandler

請參閱 PromptLayer 文件 以取得更多資訊。

安裝與設定

%pip install --upgrade --quiet  langchain-community 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  # Don't forget this 🍰
from langchain_community.callbacks.promptlayer_callback import (
PromptLayerCallbackHandler,
)
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI

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)
API 參考:HumanMessage | ChatOpenAI

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},
)
API 參考:GPT4All

在這個範例中,我們解鎖了 PromptLayer 的更多功能。

PromptLayer 允許您以視覺化方式建立、版本化和追蹤提示範本。使用 提示註冊表,我們可以透過程式設計方式擷取名為 example 的提示範本。

我們也定義了一個 pl_id_callback 函數,它接收 promptlayer_request_id 並記錄分數、中繼資料並連結使用的提示範本。請參閱 我們的文件,以瞭解更多關於追蹤的資訊。

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
) # score is an integer 0-100
promptlayer.track.metadata(
request_id=promptlayer_request_id, metadata={"foo": "bar"}
) # metadata is a dictionary of key value pairs that is tracked on PromptLayer
promptlayer.track.prompt(
request_id=promptlayer_request_id,
prompt_name="example",
prompt_input_variables={"product": "toasters"},
version=1,
) # link the request to a prompt template


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"))
API 參考:OpenAI

這就是全部!設定完成後,您的所有請求都會顯示在 PromptLayer 儀表板上。此回呼也適用於 LangChain 上實作的任何 LLM。


此頁面是否對您有幫助?