集調(diào)試共享及成本控制Prompt工具PromptLayer使用指南
前言
我們基于gpt開發(fā)的時候,其實調(diào)試prompt的時間占比的很大的,90%的時間花在prompt調(diào)試也不過分。今天給大家介紹一個最近在使用上來比較好的Prompt工具,開發(fā)起來簡單,功能非常實用。
它就是:promptlayer.com/
官網(wǎng)介紹
PromptLayer 是一個開發(fā)工具,可讓您跟蹤、管理和共享 GPT 提示工程。它充當(dāng)您的代碼和 OpenAI 的 python 庫之間的中間件,記錄您的所有 API 請求并保存相關(guān)元數(shù)據(jù),以便在 PromptLayer 儀表板中輕松瀏覽和搜索。
怎么運行的
PromptLayer 通過包裝您的 OpenAI API 請求并在發(fā)送后記錄有關(guān)它們的數(shù)據(jù)來工作。這一切都在您的機器上完成,您的 API 密鑰永遠不會發(fā)送。這意味著它不會干擾您現(xiàn)有代碼庫的功能,也不需要對您的應(yīng)用程序架構(gòu)進行任何更改。您需要做的就是將 PromptLayer 作為附加組件添加到您現(xiàn)有的 LLM 應(yīng)用程序中,然后像往常一樣開始發(fā)出請求。
當(dāng)您發(fā)出 OpenAI API 請求時,PromptLayer 會記錄它們并保存相關(guān)元數(shù)據(jù),例如使用的提示、返回的響應(yīng)以及傳遞的任何其他參數(shù)。此數(shù)據(jù)由 PromptLayer 存儲,可以通過 PromptLayer 儀表板輕松訪問。
特征
PromptLayer 的一些主要功能包括:
- API 請求日志記錄: PromptLayer 記錄您所有的 OpenAI API 請求,允許您在 PromptLayer 儀表板中搜索和探索請求歷史記錄。
- 元數(shù)據(jù)跟蹤: 在后臺,PromptLayer在請求發(fā)出后記錄每個 OpenAI 請求,保存相關(guān)元數(shù)據(jù),例如使用的提示、返回的響應(yīng)以及傳遞的任何其他參數(shù)。
- 易于集成: PromptLayer 是現(xiàn)有 LLM 應(yīng)用程序的附加組件,無需更改應(yīng)用程序的體系結(jié)構(gòu)。
- 專為生產(chǎn)而設(shè)計: PromptLayer 旨在幫助維護生產(chǎn)中的 LLM 并協(xié)助開發(fā)過程。它是產(chǎn)品就緒的,即使失敗也不會干擾您的應(yīng)用程序的功能。
- 協(xié)作: PromptLayer 允許您與他人分享您的提示工程,從而輕松地與隊友協(xié)作項目或與更廣泛的社區(qū)分享您的工作。
使用教程
python中使用
安裝
pip install promptlayer
導(dǎo)入,并重新賦值openai = promptlayer.openai
,官方文檔上是說:所有 OpenAI 請求都是從您的機器本地發(fā)出的,PromptLayer 只是記錄請求
import promptlayer promptlayer.api_key = "<YOUR PromptLayer API KEY pl_xxxxxx>" openai = promptlayer.openai
跟原生的openai調(diào)用一樣,使用create創(chuàng)建,區(qū)別是pl_tags
是你在promptlayer創(chuàng)建的標(biāo)簽
openai.Completion.create( engine="text-ada-001", prompt="My name is", pl_tags=["name-guessing", "pipeline-2"] )
完整代碼如下:
import promptlayer import os promptlayer.api_key = os.environ.get("PROMPTLAYER_API_KEY") openai=promptlayer.openai openai.api_key = os.environ.get("OPENAI_API_KEY") openai.Completion.create( engine="text-ada-001", prompt="My name is", pl_tags=["name-guessing", "pipeline-2"] )
結(jié)合LangChain使用
導(dǎo)入
import os from langchain.chat_models import PromptLayerChatOpenAI from langchain.schema import HumanMessage
設(shè)置PROMPTLAYER_API_KEY
os.environ["PROMPTLAYER_API_KEY"] = "**********"
使用
chat = PromptLayerChatOpenAI(pl_tags=["langchain"]) chat([HumanMessage(content="I am a cat and I want")])
RESTAPI使用
import requests request_response = requests.post( "https://api.promptlayer.com/rest/track-request", json={ "function_name": "openai.Completion.create", // kwargs will need messages if using chat-based completion "kwargs": {"engine": "text-ada-001", "prompt": "My name is"}, "tags": ["hello", "world"], "request_response": {"id": "cmpl-6TEeJCRVlqQSQqhD8CYKd1HdCcFxM", "object": "text_completion", "created": 1672425843, "model": "text-ada-001", "choices": [{"text": " advocacy"\n\nMy name is advocacy.", "index": 0, "logprobs": None, "finish_reason": "stop"}]}, "request_start_time": 1673987077.463504, "request_end_time": 1673987077.463504, "prompt_id": "<PROMPT ID>", "prompt_input_variables": "<Dictionary of variables for prompt>" "api_key": "pl_<YOUR API KEY>", }, )
參數(shù):
api_key
function_name
— 函數(shù)的名稱。它應(yīng)該是以下之一openai.Completion.create
,或者openai.ChatCompletion.create
我們使用它來知道如何正確解析響應(yīng)
kwargs
— 傳遞給 OpenAI API 的關(guān)鍵字參數(shù)。通常它至少應(yīng)該包括engine
。prompt
如果您使用的是聊天完成或 GPT-4,它應(yīng)該包含messages
而不是prompt
.
request_response
— OpenAI 的回應(yīng)(他們是如何把它還給你的)
request_start_time
— 你開始向 OpenAI 發(fā)出請求的時間
request_end_time
— 你結(jié)束對 OpenAI 的請求的時間
tags
— 可選的字符串標(biāo)簽數(shù)組,用于在 PL 儀表板上標(biāo)記此請求
prompt_id
— 可選的您用于此請求的 PL 注冊表中提示的 ID(請參閱get-prompt-template
如何獲取此 ID,或者您可以從儀表板中的 URL 獲取它)
prompt_input_variables
— 可選的用于模板的輸入變量。這用于語法突出顯示,更重要的是,用于在您想要迭代提示時進行回測。
更多
分享prompt
總結(jié)時刻
本文介紹了一個基于GPT的Prompt調(diào)試工具PromptLayer,它可以幫助開發(fā)者跟蹤、管理和共享GPT的提示,并且提供了API請求日志記錄、元數(shù)據(jù)跟蹤、易于集成、專為生產(chǎn)而設(shè)計和協(xié)作等功能。開發(fā)者可以通過安裝promptlayer
包并重新賦值openai = promptlayer.openai
來使用PromptLayer,同時將其作為附加組件添加到現(xiàn)有的LLM應(yīng)用程序中。此外,本文還介紹了如何結(jié)合LangChain和RESTAPI使用PromptLayer。
以上就是集調(diào)試共享及成本控制Prompt工具PromptLayer使用指南的詳細內(nèi)容,更多關(guān)于Prompt工具PromptLayer的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實現(xiàn)五子棋聯(lián)機對戰(zhàn)小游戲
本文主要介紹了通過Python實現(xiàn)簡單的支持聯(lián)機對戰(zhàn)的游戲——支持局域網(wǎng)聯(lián)機對戰(zhàn)的五子棋小游戲。廢話不多說,快來跟隨小編一起學(xué)習(xí)吧2021-12-12jupyter notebook如何導(dǎo)出pdf并支持中文
這篇文章主要介紹了jupyter notebook如何導(dǎo)出pdf并支持中文問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06基于Python在MacOS上安裝robotframework-ride
今天小編就為大家分享一篇關(guān)于基于Python在MacOS上安裝robotframework-ride,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12Python 實現(xiàn)Numpy中找出array中最大值所對應(yīng)的行和列
今天小編就為大家分享一篇Python 實現(xiàn)Numpy中找出array中最大值所對應(yīng)的行和列,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11閉包在python中的應(yīng)用之translate和maketrans用法詳解
這篇文章主要介紹了閉包在python中的應(yīng)用之translate和maketrans用法,是比較實用的技巧,需要的朋友可以參考下2014-08-08Python數(shù)據(jù)分析之pandas讀取數(shù)據(jù)
Pandas讀取的文件主要有CSV,TXT和JSON,今天就整理了這3種文件格式的讀取和導(dǎo)出代碼,文中有非常詳細的代碼示例及介紹,需要的朋友可以參考下2021-06-06Python設(shè)置Socket代理及實現(xiàn)遠程攝像頭控制的例子
這篇文章主要介紹了Python設(shè)置Socket代理及實現(xiàn)遠程攝像頭控制的例子,皆是對socket模塊的實際運用,需要的朋友可以參考下2015-11-11淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換
這篇文章主要介紹了淺談python數(shù)據(jù)類型及類型轉(zhuǎn)換,介紹了python中的數(shù)據(jù)類型,以及數(shù)據(jù)的不可變性,還有字符串,列表等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。2017-12-12