智能工具的 JSON 格式

一种便携的方式来分享用Python代码编写的SkyDeck.AI智能工具

总体

要在SkyDeck.AI上创建一个智能工具,您需要根据文件结构章节中提到的规格上传一组文件。上传完成后,我们的平台将执行初始设置,这可能需要几分钟的时间。然后,该工具将在GenStudio工作区中可用。

文件结构

<tool_name>.json

工具的行为也通过JSON文件进行配置。下面是配置中关键字段的简短概述:

  • version:工具的当前版本。

  • tool_name:工具的名称。在您的工作区中,这个名字应该是唯一的。

  • tool_code:要执行的Python代码。有关此字段的更多详细信息会在下一节中介绍。

  • description:对工具功能的简短描述。

  • usage_notes:如何使用工具的说明。

  • model_version:指定允许用于后续问题的模型。要指定所有模型,使用_["gpt-4", "gpt-3.5", "claude", "chat-bison"]_。

  • creator:工具创建者的信息,包括名字,电子邮件和组织机构。

  • variables:工具使用的变量数组。每个变量都有一个名字,描述和默认值。界面中变量的顺序遵循此数组中的顺序。

  • expected_output:工具产生的输出类型。在开发阶段,值应始终为文本。

  • avatar_type:在工具界面中使用的头像的格式。

  • timestamp:最后一次更新工具的日期和时间。

  • requirements: 指定运行tool_code中的脚本所需的包。

  • avatar:代表此工具logo的字符串

工具_代码约定:

此脚本概述了您的工具的功能。本脚本的主要组成部分是 execute 函数,它有以下要求:

  • 函数应具有名为 variables 的单个输入参数,它是一个字典。此字典中的每个键都对应于用户将输入到您的工具中的字段。

  • 函数应返回字符串,该字符串将在GenStudio UI上作为响应显示。

示例工具

使用DALL-E 2生成图像

描述:

此工具接受图像描述作为输入,并生成相应的图像URL。输出包括URL以及失效通知。该工具通过将查询发送到OpenAI DALL-E API并检索响应来操作。

输入:

  • 描述:图像描述,例如,"一只白色的毛茸茸的猫"

输出:

  • 带有生成的图像URL和失效通知的消息。

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。因此,工具应在此限制范围内完成执行。

Last updated