For the complete documentation index, see llms.txt. This page is also available as Markdown.

Formato JSON para Ferramentas LLM

Uma Forma Portátil de Compartilhar Ferramentas

Introdução

Compartilhar uma ferramenta de uma maneira que possa ser rapidamente adicionada a um programa ou editor de ferramentas seria muito melhorada com uma maneira padrão de representar uma ferramenta e como usá-la. Queremos habilitar recursos como os seguintes:

  • Um ícone para representar visualmente a ferramenta

  • Metadados para o prompt:

    • Um nome para a ferramenta

    • Uma descrição para a ferramenta

    • Notas de uso para a ferramenta

  • Parâmetros de placeholder incluídos na string de ferramenta

  • Saída esperada

  • Versionamento e carimbos de data/hora.

Especificação do Formato JSON

{
  "version": "string ou inteiro",
  "model_prompt": "string com espaços reservados {{variable_name}}",
  "metadata": {
    "prompt_name": "string",
    "description": "string",
    "usage_notes": "string",
    "model_version": ["string", "string", ],
    "creator": {
      "name": "string",
      "email": "string",
      "organization": "string"
    },
    "parameters": {
      "temperature": "float",
      "max_tokens": "inteiro",
      "top_p": "float",
      "frequency_penalty": "float",
      "presence_penalty": "float"
    },
    "variables": [
      {
        "name": "nome da variável 1",
        "type": "texto",
        "description": "string",
        "default": "string",
      },
      {
        "name": "nome da variável 2",
        "type": "seleção única",
        "description": "string",
        "default": "valor1",
        "allowed_values": ["valor1", "valor2", "valor3"]
      },
      {
        "name": "nome da variável 3",
        "type": "seleção múltipla",
        "description": "string",
        "default": ["valor1", "valor2"]
        "allowed_values": ["valor1", "valor2", "valor3"]
      },
      ...
    ],
    "expected_output": {
      "type": "string (p.ex., texto, código, limitado)",
      "format": "string (opcional, p.ex., JSON, XML, CSV)",
      "language": "string (opcional, p.ex., Python, JavaScript)",
      "allowed_values": ["string1", "string2", ...] (opcional)
    },
    "avatar_type": "string (p.ex., url, base64)",
    "avatar": "string (URL ou imagem codificada em base64), recomendado 256x256 pixels",
    "timestamp": "string (formato ISO 8601)"
  }
}

Você pode baixar nosso exemplo de JSON aqui.

Descrição dos Campos

  • model_prompt: Uma string que contém o prompt do modelo GPT.

  • metadata: Um objeto que contém informações adicionais sobre o prompt do modelo GPT, incluindo os seguintes sub-campos:

    • model_version: Uma string que indica a versão do modelo GPT utilizado.

    • creator: Um objeto que contém informações sobre o criador do prompt do modelo GPT, com os seguintes sub-campos:

      • name: Uma string que representa o nome do criador.

      • email: Uma string que representa o email do criador.

      • organization: Uma string que representa a organização à qual o criador é afiliado.

    • parameters: Um objeto que contém informações sobre os parâmetros do modelo GPT, com os seguintes sub-campos:

      • temperature: Um float que indica a temperatura utilizada para controlar a aleatoriedade da saída.

      • max_tokens: Um inteiro que indica o número máximo de tokens na resposta gerada.

      • top_p: Um float que representa o limiar de probabilidade de amostragem do núcleo.

      • frequency_penalty: Um float que representa a penalidade aplicada aos tokens com base em sua frequência no conjunto de dados.

      • presence_penalty: Um float que representa a penalidade aplicada a novos tokens com base em sua presença no prompt.

    • timestamp: Uma string no formato ISO 8601 que representa a data e hora em que o prompt do modelo GPT foi criado ou modificado pela última vez.

    • expected_output (Opcional): Um objeto que contém campos relacionados à saída esperada do model_prompt, incluindo os seguintes sub-campos:

      • type: Uma string que indica o tipo de saída esperado do model_prompt.

      • format (Opcional): Uma string que representa o formato da saída esperada, se aplicável.

      • language (Opcional): Uma string que representa a linguagem de programação da saída esperada se o tipo for code.

      • allowed_values (Opcional): Um array de strings que contém uma lista de valores de saída permitidos se o tipo for limited.

    • variables (Opcional): Uma lista contendo variáveis que podem ser inseridas na string model_prompt em um estilo de f-string. Cada variável contém os seguintes sub-campos:

      • name: Uma string representando o nome da variável.

      • type: Uma string mostrando o tipo de variável. Atualmente, os possíveis valores de type são text para a variável padrão, e single-select ou multi-select para variáveis de seleção.

      • description: Uma string mostrando a descrição da variável, incluindo usos e exemplos.

      • default: Um valor mostrando o valor padrão da variável. Este valor é uma string se type for text ou single-select, e um array de strings para multi-select.

      • allowed_values: Um array de strings que contém uma lista de valores permitidos se o tipo de variável for single-select ou multi-select

    • avatar (Opcional): Um objeto que contém campos relacionados à imagem gráfica que atua como um avatar ou ícone para o prompt, incluindo os seguintes sub-campos:

      • avatar_type: Uma string especificando o tipo de dados do avatar incluído.

      • avatar: Uma string contendo o URL que aponta para a imagem se o avatar_type for url, ou uma string codificada em base64 que representa a imagem se o avatar_type for base64.

    • prompt_name (Opcional): Uma string representando o nome do prompt.

    • description (Opcional): Uma string fornecendo uma breve descrição da ferramenta e sua finalidade.

    • usage_notes (Opcional): Uma string contendo notas de uso livre do criador sobre o uso ou quaisquer considerações específicas relacionadas à ferramenta.

Para especificar o formato da saída esperada do model_prompt, você pode adicionar um objeto expected_output dentro do objeto metadata. Dependendo do tipo de saída esperada, você pode incluir os sub-campos relevantes no objeto expected_output.

Para incluir campos para variáveis que podem ser inseridas na string model_prompt em um estilo de f-string, você pode adicionar uma lista variables separada dentro do objeto metadata.

Para incluir uma imagem gráfica atuando como um avatar ou ícone para o prompt, você pode adicionar um campo avatar dentro do objeto metadata.

A inclusão dos campos expected_output, variables, avatar, prompt_name, description, e usage_notes dentro do objeto metadata ajuda a manter todas as informações contextuais sobre o prompt em um só lugar, facilitando o gerenciamento e o entendimento.

Você pode usar o campo version no nível superior do objeto JSON para rastrear explicitamente a versão de todo o arquivo JSON

Last updated