智能工具的 JSON 格式
一种便携的方式来分享用Python代码编写的SkyDeck.AI智能工具
总体
要在SkyDeck.AI上创建一个智能工具,您需要根据文件结构章节中提到的规格上传一组文件。上传完成后,我们的平台将执行初始设置,这可能需要几分钟的时间。然后,该工具将在GenStudio工作区中可用。
文件结构
<tool_name>.json
工具的行为也通过JSON文件进行配置。下面是配置中关键字段的简短概述:
tool_name:工具的名称。在您的工作区中,这个名字应该是唯一的。
tool_code:要执行的Python代码。有关此字段的更多详细信息会在下一节中介绍。
model_version:指定允许用于后续问题的模型。要指定所有模型,使用_["gpt-4", "gpt-3.5", "claude", "chat-bison"]_。
creator:工具创建者的信息,包括名字,电子邮件和组织机构。
variables:工具使用的变量数组。每个变量都有一个名字,描述和默认值。界面中变量的顺序遵循此数组中的顺序。
expected_output:工具产生的输出类型。在开发阶段,值应始终为文本。
avatar_type:在工具界面中使用的头像的格式。
timestamp:最后一次更新工具的日期和时间。
requirements: 指定运行tool_code中的脚本所需的包。
工具_代码约定:
此脚本概述了您的工具的功能。本脚本的主要组成部分是 execute 函数,它有以下要求:
函数应具有名为 variables 的单个输入参数,它是一个字典。此字典中的每个键都对应于用户将输入到您的工具中的字段。
函数应返回字符串,该字符串将在GenStudio UI上作为响应显示。
示例工具
使用DALL-E 2生成图像
描述:
此工具接受图像描述作为输入,并生成相应的图像URL。输出包括URL以及失效通知。该工具通过将查询发送到OpenAI DALL-E API并检索响应来操作。
输入:
输出:
Python 脚本 (将作为 image_generation.json 文件中的一个字段):
import openai
def execute(variables):
openai.api_key = '<USER API KEY>'
description = variables['Description']
response = openai.Image.create(
prompt=description,
n=1,
size="1024x1024"
)
image_url = response['data'][0]['url']
return f"这是您的图片链接:{image_url}。链接将在1小时后过期。"
image_generation.json
{
"version": "0.1",
"metadata": {
"tool_name": "图像生成",
"tool_code": "import openai\n\ndef execute(variables):\n openai.api_key = ''\n description = variables['Description']\n response = openai.Image.create(\n prompt=description,\n n=1,\n size=\"1024x1024\"\n )\n\n image_url = response['data'][0]['url']\n return f\"这是你的图片链接:{image_url}。链接将在1小时后过期。\"\n",
"description": "使用OpenAI的DALL-E模型根据描述生成的图片。",
"usage_notes": "详细描述图片,并将其放在描述字段中。 图片的URL将会返回。URL的有效期约为1小时,因此请确保在过期前下载它",
"model_version": ["gpt-3.5","gpt-3.5-turbo", "gpt-4", "claude"],
"creator": {
"name": "SkyDeck AI",
"email": "skydeck@eastagile.com",
"organization": "East Agile"
},
"variables": [
{
"name": "描述",
"description": "图像描述",
"default": "一只白色暹罗猫"
}
],
"expected_output": {
"type": "text"
},
"avatar_type": "base64",
"timestamp": "2023-05-23T10:00:00Z",
"requirements": "openai>=0.27.4",
"avatar": ""
}
}
利用Open-Meteo API实时显示天气报告
描述:
此工具利用Open-Meteo API根据用户问题提供实时天气信息。通过询问有关天气的问题,如温度、降水或风情况,该工具检索最相关和最新的数据。
该工具的运作依赖于APIChain - 来自LangChain库的一个特性 - 来访问Open-Meteo API文档。这使得工具可以学习如何进行正确的API调用,并无缝地检索所需的信息。
输入:
问题:询问关于天气的特定问题,例如,“現在紐約市的温度是多少?”
输出:
Python 脚本(位于 weather_reporter.json 中的一个字段):
from langchain.chains.api import open_meteo_docs
from langchain.chat_models import ChatOpenAI
from langchain.chains import APIChain
def execute(variables):
question = variables['Question']
llm = ChatOpenAI(
model_name='gpt-3.5-turbo',
openai_api_key='<用户 API 密钥>'
)
api_chain = APIChain.from_llm_and_api_docs(
llm, open_meteo_docs.OPEN_METEO_DOCS, verbose=False
)
result = api_chain.run(question)
return result
weather_reporter.json
{
"版本": "0.1",
"元数据": {
"工具名称": "天气报告员",
"工具代码": "from langchain.chains.api import open_meteo_docs\nfrom langchain.chat_models import ChatOpenAI\nfrom langchain.chains import APIChain\n\n\ndef execute(variables):\n question = variables['问题']\n llm = ChatOpenAI(model_name='gpt-3.5-turbo',\n openai_api_key='')\n api_chain = APIChain.from_llm_and_api_docs(\n llm, open_meteo_docs.OPEN_METEO_DOCS, verbose=False)\n result = api_chain.run(question)\n return result\n",
"描述": "利用Open-Meteo API获取实时天气详细信息",
"使用说明": "在提供的字段中输入您的天气相关问题",
"模型版本": ["gpt-3.5", "gpt-3.5-turbo", "gpt-4", "claude"],
"创建者": {
"姓名": "SkyDeck AI",
"电邮": "skydeck@eastagile.com",
"机构": "East Agile"
},
"变量": [
{
"名称": "问题",
"描述": "询问天气条件",
"默认": "请问德国慕尼黑当前的温度是多少,用摄氏度表示?"
}
],
"预期输出": {
"类型": "文字"
},
"头像类型": "base64",
"时间戳": "2023-07-13T10:00:00Z",
"需求": "openai>=0.27.4\nlangchain>=0.0.229",
"头像": ""
}
}
限制
AWS Lambda仅允许一个函数运行最长15分钟,RAM最多10GB。因此,工具应在此限制范围内完成执行。