集调试共享及成本控制Prompt工具PromptLayer使用指南

 更新时间:2023年03月28日 10:54:35   作者:Ronny说  
这篇文章主要介绍了集调试共享及成本控制Prompt工具PromptLayer使用指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

我们基于gpt开发的时候,其实调试prompt的时间占比的很大的,90%的时间花在prompt调试也不过分。今天给大家介绍一个最近在使用上来比较好的Prompt工具,开发起来简单,功能非常实用。

它就是:promptlayer.com/

官网介绍

PromptLayer 是一个开发工具,可让您跟踪、管理和共享 GPT 提示工程。它充当您的代码和 OpenAI 的 python 库之间的中间件,记录您的所有 API 请求并保存相关元数据,以便在 PromptLayer 仪表板中轻松浏览和搜索。

怎么运行的

PromptLayer 通过包装您的 OpenAI API 请求并在发送后记录有关它们的数据来工作。这一切都在您的机器上完成,您的 API 密钥永远不会发送。这意味着它不会干扰您现有代码库的功能,也不需要对您的应用程序架构进行任何更改。您需要做的就是将 PromptLayer 作为附加组件添加到您现有的 LLM 应用程序中,然后像往常一样开始发出请求。

当您发出 OpenAI API 请求时,PromptLayer 会记录它们并保存相关元数据,例如使用的提示、返回的响应以及传递的任何其他参数。此数据由 PromptLayer 存储,可以通过 PromptLayer 仪表板轻松访问。

github.com/MagnivOrg/p…

特征

PromptLayer 的一些主要功能包括:

  • API 请求日志记录: PromptLayer 记录您所有的 OpenAI API 请求,允许您在 PromptLayer 仪表板中搜索和探索请求历史记录。
  • 元数据跟踪: 在后台,PromptLayer在请求发出后记录每个 OpenAI 请求,保存相关元数据,例如使用的提示、返回的响应以及传递的任何其他参数。
  • 易于集成: PromptLayer 是现有 LLM 应用程序的附加组件,无需更改应用程序的体系结构。
  • 专为生产而设计: PromptLayer 旨在帮助维护生产中的 LLM 并协助开发过程。它是产品就绪的,即使失败也不会干扰您的应用程序的功能。
  • 协作: PromptLayer 允许您与他人分享您的提示工程,从而轻松地与队友协作项目或与更广泛的社区分享您的工作。

使用教程

python中使用

安装

pip install promptlayer

导入,并重新赋值openai = promptlayer.openai ,官方文档上是说:所有 OpenAI 请求都是从您的机器本地发出的,PromptLayer 只是记录请求

import promptlayer
promptlayer.api_key = "<YOUR PromptLayer API KEY pl_xxxxxx>"
openai = promptlayer.openai

跟原生的openai调用一样,使用create创建,区别是pl_tags 是你在promptlayer创建的标签

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"]
)

结合LangChain使用

导入

import os
from langchain.chat_models import PromptLayerChatOpenAI
from langchain.schema import HumanMessage

设置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>",
    },
)

参数:

  • api_key
  • function_name— 函数的名称。它应该是以下之一openai.Completion.create,或者openai.ChatCompletion.create我们使用它来知道如何正确解析响应
  • kwargs — 传递给 OpenAI API 的关键字参数。通常它至少应该包括engineprompt如果您使用的是聊天完成或 GPT-4,它应该包含messages而不是prompt.
  • request_response— OpenAI 的回应(他们是如何把它还给你的)
  • request_start_time— 你开始向 OpenAI 发出请求的时间
  • request_end_time— 你结束对 OpenAI 的请求的时间
  • tags — 可选的字符串标签数组,用于在 PL 仪表板上标记此请求
  • prompt_id— 可选的您用于此请求的 PL 注册表中提示的 ID(请参阅get-prompt-template如何获取此 ID,或者您可以从仪表板中的 URL 获取它)
  • prompt_input_variables— 可选的用于模板的输入变量。这用于语法突出显示,更重要的是,用于在您想要迭代提示时进行回测。

更多

分享prompt

总结时刻

本文介绍了一个基于GPT的Prompt调试工具PromptLayer,它可以帮助开发者跟踪、管理和共享GPT的提示,并且提供了API请求日志记录、元数据跟踪、易于集成、专为生产而设计和协作等功能。开发者可以通过安装promptlayer包并重新赋值openai = promptlayer.openai来使用PromptLayer,同时将其作为附加组件添加到现有的LLM应用程序中。此外,本文还介绍了如何结合LangChain和RESTAPI使用PromptLayer。

以上就是集调试共享及成本控制Prompt工具PromptLayer使用指南的详细内容,更多关于Prompt工具PromptLayer的资料请关注脚本之家其它相关文章!

相关文章

  • python与js主要区别点总结

    python与js主要区别点总结

    在本篇内容里小编给大家整理了关于python与js主要区别点总结内容,有兴趣的朋友们可以学习下。
    2020-09-09
  • python 用递归实现通用爬虫解析器

    python 用递归实现通用爬虫解析器

    这篇文章主要介绍了python 用递归实现通用爬虫解析器的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-04-04
  • Python海龟绘图之绘制趣味简笔画

    Python海龟绘图之绘制趣味简笔画

    大家好,本篇文章主要讲的是Python海龟绘图之绘制趣味简笔画,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • 利用Python实现一个简易的截图工具

    利用Python实现一个简易的截图工具

    这篇文章主要为大家详细介绍了如何利用Python实现一个简易的截图工具,可以截完图之后显示并且永远前置,感兴趣的小伙伴可以尝试一下
    2022-07-07
  • Python爬取智联招聘数据分析师岗位相关信息的方法

    Python爬取智联招聘数据分析师岗位相关信息的方法

    这篇文章主要介绍了Python爬取智联招聘数据分析师岗位相关信息的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python 轮询执行某函数的2种方式

    python 轮询执行某函数的2种方式

    这篇文章主要介绍了python 轮询执行某函数的2种方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 关于python中@property的使用方法

    关于python中@property的使用方法

    这篇文章主要介绍了关于python中@property的使用方法,@property装饰器会将方法转换为同名的只读属性,它可以与所定义的属性配合使用,需要的朋友可以参考下
    2023-07-07
  • 从0开始的Python学习014面向对象编程(推荐)

    从0开始的Python学习014面向对象编程(推荐)

    这篇文章主要介绍了Python面向对象编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python中cv2.imread()和Image.open()的区别和联系详解

    python中cv2.imread()和Image.open()的区别和联系详解

    image.open和cv2.imread都是Python中用于读取图像文件的函数,但是它们之间有一些区别,这篇文章主要给大家介绍了关于python中cv2.imread()和Image.open()的区别和联系,需要的朋友可以参考下
    2024-07-07
  • 如何将conda虚拟环境添加到Jupyter lab内核

    如何将conda虚拟环境添加到Jupyter lab内核

    这篇文章主要介绍了如何将conda虚拟环境添加到Jupyter lab内核问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06

最新评论