Aprendizagem pessoal com IA
e orientação prática

Exemplo de uma ferramenta de personalização da Dify

1. clima (JSON)

{
"openapi": "3.1.0",
"info": {
"title": "Get weather data", "description": "Recupera os dados meteorológicos atuais de um local.
"description": "Recupera os dados meteorológicos atuais de um local.", "version": "v1.0.0", "description": "Recupera os dados meteorológicos atuais de um local.
"version": "v1.0.0"
}, "servers": ["servers" : ["Recupera os dados meteorológicos atuais de um local.
"servidores": [
{
"url": "https://weather.example.com"
}
],
"paths" (caminhos): {
"/location": {
"get": {

"operationId": "GetCurrentWeather", "parameters": [
"parameters": [
{
"name": "location", "in": "query", "parameters": [ {
"in": "query", "description": "The city and


"schema": {
"type": "string"
}
}
], "deprecated": false
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}

Esse código é um arquivo JSON da especificação OpenAPI que descreve uma API para obter dados meteorológicos. Em resumo, a API permite que o usuário consulte os dados meteorológicos de um local específico.

  • "openapi": "3.1.0"Versão da especificação OpenAPI: Indica que a versão da especificação OpenAPI usada é a 3.1.0.
  • "info"API: Esta seção fornece informações básicas sobre a API, incluindo título, descrição e versão.
  • "servidores"URLs do servidor: Esta seção lista os URLs do servidor para a API.
  • "caminhos"API: Esta seção define os caminhos e as operações da API. Neste exemplo, há uma operação GET com um caminho de/localizaçãoque é usado para obter o clima em um local específico. Essa operação requer um arquivo chamadolocalizaçãoO parâmetro de consulta, que é obrigatório, é do tipo string.
  • "componentes": Esta seção é usada para definir os padrões usados na API, mas, neste exemplo, ela está vazia.

Na especificação da OpenAPI, oparâmetrosé uma matriz que define os parâmetros de entrada para operações de API.parâmetrosdefine um arquivo chamadolocalizaçãoO parâmetro de consulta, que é obrigatório, é do tipo string. Cada parâmetro é um objeto que contém as seguintes propriedades:

  • "name" (nome)Nome do parâmetro: O nome do parâmetro.
  • "em"Localização do parâmetro: A localização do parâmetro. Pode ser"query" (consulta)"cabeçalho""caminho"talvez"cookie".
  • "description" (descrição)Descrição do parâmetro: Descrição do parâmetro.
  • "obrigatório": Se paraverdadeiroEsse parâmetro é necessário se o
  • "schema"Tipo de dados: O tipo de dados do parâmetro.

Com foco na posição dos parâmetros, os quatro casos são mostrados abaixo:

  • para passar a chave de API no cabeçalho da solicitação.
  • path para especificar a ID do objeto a ser recuperado no caminho do URL.
  • O parâmetro cookie, usado para passar o ID da sessão do usuário em um cookie.
  • O parâmetro de consulta, anexado ao URL, geralmente é usado para fornecer filtragem de informações.

Criar uma interface de ferramenta personalizada:

Exemplo 1 da ferramenta de personalização da Dify


Interface da ferramenta de teste:

Exemplo 2 da ferramenta de personalização da Dify

 

2. loja de animais de estimação (YAML)

# Extraído de https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml
openapi: "3.0.0"
info.
versão: 1.0.0
título: Swagger Petstore
licença: nome: MIT
nome: MIT
servidores.
- url: https://petstore.swagger.io/v1
caminhos.
/pets.
get.
resumo: Listar todos os animais de estimação
operationId: listPets
tags: pets
- animais de estimação
parâmetros: name: limit
- name: limit
in: query
description: Quantos itens devem ser retornados de uma só vez (máx. 100)
obrigatório: false
schema: name: limit in: query description: quantos itens devem ser retornados de uma só vez (máx. 100)
tipo: integer
máximo: 100
formato: int32
respostas.
'200'.
descrição: Uma matriz paginada de animais de estimação
descrição: Uma matriz paginada de animais de estimação
x-next.
Descrição: Um link para a próxima página de respostas
schema: x-next: description: Um link para a próxima página de respostas
x-next: description: Um link para a próxima página de respostas schema: type: string
conteúdo: application/json.
application/json.
schema: $ref: "#/components/schemas/Pets
$ref: "#/components/schemas/Pets"
padrão: $ref: "#/components/schemas/Pets
descrição: erro inesperado
descrição: erro inesperado
#/components/schemas/Pets" default: description: unexpected error content: application/json.
schema.
$ref: "#/components/schemas/Error"
post.
summary: Criar um animal de estimação
operationId: createPets
tags: pets
- animais de estimação
respostas.
'201'.
descrição: resposta nula
padrão: '201': descrição: resposta nula
descrição: erro inesperado
padrão: descrição: erro inesperado
application/json.
schema.
$ref: "#/components/schemas/Error"
/pets/{petId}.
get.
summary: Informações sobre um animal de estimação específico
operationId: showPetById
tags: pets/{petId}: get: summary: Informações sobre um animal de estimação específico
- animais de estimação
parâmetros: name: petId
- nome: petId
in: path
obrigatório: true
descrição: o ID do animal de estimação a ser recuperado
schema: petId in: path required: true description: O ID do animal de estimação a ser recuperado
type: string
respostas.
'200'.
descrição: resposta esperada para uma solicitação válida
descrição: resposta esperada para uma solicitação válida
application/json: '200': descrição: resposta esperada para um conteúdo de solicitação válido: application/json.
schema.
$ref: "#/components/schemas/Pet"
padrão: $ref: "#/components/schemas/Pet
descrição: erro inesperado
descrição: erro inesperado
#/components/schemas/Pet" default: description: unexpected error content: application/json.
schema.
$ref: "#/components/schemas/Error"
schema: $ref: "#/components/schemas/Error
$ref: "#/components/schemas/Error" componentes.
Pet.
schema: schemas: Pet.
obrigatório: id
- id
- nome
propriedades.
id: type: integer
tipo: integer
formato: int64
name: id: type: integer format: int64
tipo: string
tag.
type: string
Pets.
tipo: array
maxItems: 100
itens: $ref: "#/components/schemas/Pet
$ref: "#/components/schemas/Pet"
Erro: type: object
$ref: "#/components/schemas/Pet" Erro.
obrigatório: código
- #/components/schemas/Pet" Erro: tipo: objeto obrigatório.
- mensagem
type: object required: code message
tipo: integer
tipo: integer
formato: int32
message: type: string
tipo: string

pet.yaml é um arquivo de especificação OpenAPI que descreve e define a interface para uma API chamada "Swagger Petstore". Esse arquivo usa o formato YAML, que é um padrão de serialização de dados legível por humanos para gravar arquivos de configuração. Esse arquivo fornece uma definição clara da interface da API para que os desenvolvedores saibam como interagir com a API "Swagger Petstore". As partes principais do arquivo incluem:

  • openapiVersão da especificação OpenAPI: Este campo especifica a versão da especificação OpenAPI usada, neste caso "3.0.0".
  • informaçõesEsta seção fornece informações básicas sobre a API, incluindo versão, título e licença.
  • servidoresURL do servidor: Esta seção define o URL do servidor para a API.
  • caminhosAPI: Esta seção define todos os caminhos e operações da API. Por exemplo./animais de estimação O caminho tem duas operações:obter responder cantando postagem.obter é usada para listar todos os animais de estimação.postagem As operações são usadas para criar um novo animal de estimação. Cada operação tem seus próprios parâmetros, respostas e outros detalhes.
  • componentesEsta seção define esquemas reutilizáveis que podem ser usados no caminhos Citado na seção. Por exemplo.Animal de estimaçãoeAnimais de estimação responder cantando erro Modo.

Exemplo 3 da ferramenta de personalização da Dify

Converta o arquivo YAML acima para o formato JSON:

{
"openapi": "3.0.0",
"info": {
"versão": "1.0.0", "título": "Swagger Petstore", {

"licença": {
"name": "MIT"
}
},
"servers": [
{
"url": "https://petstore.swagger.io/v1"
}
],
"paths" (caminhos): {
"/pets": {
"get": {
"summary": "list all pets", "operationId": "listPets",
"operationId": "listPets",

"parameters": [
{
"name": "limit", "in": "query", "tags": ["pets"], "parameters": [ {
"in": "query", "description": "Quantos itens devem ser retornados de uma só vez
"description": "Quantos itens devem ser retornados de uma só vez (máx. 100)", "required": false, "tags": [ {

"schema": {
"type": "integer", "maximum": 100, "required": false, "schema": {

"format": "int32"
}
}
], "responses": {
"responses": {
"200": {
"description": "Uma matriz paginada de animais de estimação", "headers": {
"headers": {
"x-next": {
"description": "Um link para a próxima página de respostas", "schema": { "x-next": { "x-next": {
"schema": {
"type": "string"
}
}
}, "content": { "link para a próxima página de respostas", "schema": { "type": "string" }
"content" (conteúdo): {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pets"
}
}
}
},
"default": {
"description": "unexpected error" (erro inesperado), "content" (conteúdo): {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary" (resumo): "Create a pet" (criar um animal de estimação),
"operationId": "createPets",
"tags": ["pets"], "responses": {
"responses": {
"201": {
"description": "Null response" (Resposta nula)
},
"default": {
"description": "unexpected error" (erro inesperado), "content" (conteúdo): {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},.
"/pets/{petId}": {
"get": {

"operationId": "showPetById",
"tags": ["pets"], "parâmetros": ["pets"], "operationId": "showPetById",
"parameters": [
{
"name": "petId", "in": "path", "tags": ["pets"], "parameters": [ {
"in": "path", "required": true, [ { "name": "petId",
"required": true, "description": "O ID do animal de estimação a ser recuperado
"description": "O ID do animal de estimação a ser recuperado", "schema": {
"schema": {
"type": "string"
}
}
], "responses": { "responses": { "type": "string" } }
"responses": {
"200": {
"description": "Resposta esperada para uma solicitação válida", "content": { "200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pet"
}
}
}
},
"default": {
"description": "unexpected error" (erro inesperado), "content" (conteúdo): {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Pet": {
"type": "object", "required": ["id", "name"], {
"required": ["id", "name"], "properties": { "properties": { "id", "name", "name", "name
"properties": {
"id": {
"type": "integer", "format": "int64".
"format": "int64"
},
"name": {
"type": "string"
},
"tag": {
"type": "string"
}
}
},
"Pets": {
"type": "array", "maxItems": 100, "array
"maxItems": 100, "items": { "type": "array",
"itens": {
"$ref": "#/components/schemas/Pet"
}
},
"Error": {


"properties": {
"code": {
"type": "integer", "format": "int".
"format": "int32"
},
"message" (mensagem): {
"type": "string"
}
}
}
}
}
}

 

3. modelo em branco

{
"openapi": "3.1.0",
"info": {
"title": "Untitled", "description": "Sua especificação OpenAPI", { "openapi": "3.0", "info": {
"description": "Sua especificação OpenAPI", "version": "v1.0", "vpi": "vpi": "vpi": "vpi": "vpi": "vpi": "vpi": "vpi".
"version": "v1.0.0"
}, "servers": [
"servidores": [
{
"url": ""
}
],
"paths": {},
"components": {
"schemas": {}
}
}

Observação: Parece que o formato JSON é mais intuitivo.

Exemplo 4 da ferramenta de personalização da Dify

 

Tutorial de saída estruturada:Como usar o objeto jsonarray no Dify?

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Exemplo de uma ferramenta de personalização da Dify

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil