AI Personal Learning
und praktische Anleitung
讯飞绘镜

Beispiel für ein Dify-Anpassungstool

1. das Wetter (JSON)

复制复制复制复制复制
复制
{
"openapi": "3.1.0",
"info": {
"title": "Get weather data",
"description": "Retrieves current weather data for a location.",
"version": "v1.0.0"
},
"servers": [
{
"url": "https://weather.example.com"
}
],
"paths": {
"/location": {
"get": {
"description": "Get temperature for a specific location",
"operationId": "GetCurrentWeather",
"parameters": [
{
"name": "location",
"in": "query",
"description": "The city and state to retrieve the weather for",
"required": true,
"schema": {
"type": "string"
}
}
],
"deprecated": false
}
}
},
"components": {
"schemas": {}
}
}

Bei diesem Code handelt es sich um eine JSON-Datei der OpenAPI-Spezifikation, die eine API zum Abrufen von Wetterdaten beschreibt, die es dem Benutzer ermöglicht, Wetterdaten für einen bestimmten Ort abzufragen.

  • "openapi": "3.1.0"OpenAPI: Dies zeigt an, dass die verwendete Version der OpenAPI-Spezifikation 3.1.0 ist.
  • "info"Dieser Abschnitt enthält grundlegende Informationen über die API, einschließlich Titel, Beschreibung und Version.
  • "servers"Dieser Abschnitt listet die Server-URLs für die API auf.
  • "paths"Dieser Abschnitt definiert die Pfade und Operationen der API. In diesem Beispiel gibt es eine GET-Operation mit einem Pfad von/locationdie dazu dient, das Wetter für einen bestimmten Ort zu ermitteln. Dieser Vorgang erfordert eine Datei namenslocationDer Abfrageparameter, der erforderlich ist, ist vom Typ String.
  • "components"Dieser Abschnitt wird verwendet, um die in der API verwendeten Muster zu definieren, aber in diesem Beispiel ist er leer.

In der OpenAPI-Spezifikation ist dieparametersist ein Array, das die Eingabeparameter für API-Vorgänge definiert.parametersdefiniert eine Datei namenslocationDer Abfrageparameter, der erforderlich ist, ist vom Typ String. Jeder Parameter ist ein Objekt, das die folgenden Eigenschaften enthält:

  • "name": Der Name des Parameters.
  • "in"Ort: Der Ort des Parameters. Dies kann sein"query""header""path"vielleicht"cookie".
  • "description"Beschreibung des Parameters.
  • "required": Wenn fürtrueDieser Parameter ist erforderlich, wenn die
  • "schema"Datentyp: Der Datentyp des Parameters.

Die 4 Fälle, die sich auf die Position der Parameter beziehen, sind im Folgenden dargestellt:

  • Header-Parameter, um den API-Schlüssel im Request-Header zu übergeben.
  • path-Parameter, um die ID des Objekts anzugeben, das im URL-Pfad abgerufen werden soll.
  • Der Cookie-Parameter, der verwendet wird, um die Sitzungs-ID des Benutzers in einem Cookie zu übergeben.
  • Der Abfrageparameter, der an die URL angehängt wird, dient in der Regel dazu, Informationen zu filtern.

Erstellen Sie eine benutzerdefinierte Werkzeugschnittstelle:

Dify自定义工具例子-1


Schnittstelle des Testwerkzeugs:

Dify自定义工具例子-2

 

2. die Tierhandlung (YAML)

复制复制复制复制
复制
# Taken from https://github.com/OAI/OpenAPI-Specification/blob/main/examples/v3.0/petstore.yaml
openapi: "3.0.0"
info:
version: 1.0.0
title: Swagger Petstore
license:
name: MIT
servers:
- url: https://petstore.swagger.io/v1
paths:
/pets:
get:
summary: List all pets
operationId: listPets
tags:
- pets
parameters:
- name: limit
in: query
description: How many items to return at one time (max 100)
required: false
schema:
type: integer
maximum: 100
format: int32
responses:
'200':
description: A paged array of pets
headers:
x-next:
description: A link to the next page of responses
schema:
type: string
content:
application/json:    
schema:
$ref: "#/components/schemas/Pets"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
post:
summary: Create a pet
operationId: createPets
tags:
- pets
responses:
'201':
description: Null response
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
/pets/{petId}:
get:
summary: Info for a specific pet
operationId: showPetById
tags:
- pets
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: string
responses:
'200':
description: Expected response to a valid request
content:
application/json:
schema:
$ref: "#/components/schemas/Pet"
default:
description: unexpected error
content:
application/json:
schema:
$ref: "#/components/schemas/Error"
components:
schemas:
Pet:
type: object
required:
- id
- name
properties:
id:
type: integer
format: int64
name:
type: string
tag:
type: string
Pets:
type: array
maxItems: 100
items:
$ref: "#/components/schemas/Pet"
Error:
type: object
required:
- code
- message
properties:
code:
type: integer
format: int32
message:
type: string

pet.yaml ist eine OpenAPI-Spezifikationsdatei, die die Schnittstelle zu einer API namens "Swagger Petstore" beschreibt und definiert. Diese Datei verwendet das YAML-Format, einen Standard für die Serialisierung von menschenlesbaren Daten zum Schreiben von Konfigurationsdateien. Diese Datei bietet eine klare Definition der API-Schnittstelle für Entwickler, damit diese wissen, wie sie mit der "Swagger Petstore"-API interagieren können. Die wichtigsten Teile der Datei sind:

  • openapiVersion: Dieses Feld gibt die Version der verwendeten OpenAPI-Spezifikation an, in diesem Fall "3.0.0".
  • infoDieser Abschnitt enthält grundlegende Informationen über die API, einschließlich Version, Titel und Lizenz.
  • serversDieser Abschnitt definiert die Server-URL für die API.
  • pathsDieser Abschnitt definiert alle Pfade und Operationen der API. Zum Beispiel./pets Der Pfad hat zwei Operationen:get im Gesang antworten post.get wird verwendet, um alle Haustiere aufzulisten.post Vorgänge werden verwendet, um ein neues Haustier zu erstellen. Jeder Vorgang hat seine eigenen Parameter, Antworten und andere Details.
  • componentsDieser Abschnitt definiert wiederverwendbare Schemata, die in der Datenbank verwendet werden können. paths In dem Abschnitt zitiert. Zum Beispiel.PetundPets im Gesang antworten Error Modus.

Dify自定义工具例子-3

Konvertieren Sie die obige YAML-Datei in das JSON-Format:

复制复制复制
复制
{
"openapi": "3.0.0",
"info": {
"version": "1.0.0",
"title": "Swagger Petstore",
"license": {
"name": "MIT"
}
},
"servers": [
{
"url": "https://petstore.swagger.io/v1"
}
],
"paths": {
"/pets": {
"get": {
"summary": "List all pets",
"operationId": "listPets",
"tags": ["pets"],
"parameters": [
{
"name": "limit",
"in": "query",
"description": "How many items to return at one time (max 100)",
"required": false,
"schema": {
"type": "integer",
"maximum": 100,
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "A paged array of pets",
"headers": {
"x-next": {
"description": "A link to the next page of responses",
"schema": {
"type": "string"
}
}
},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pets"
}
}
}
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
},
"post": {
"summary": "Create a pet",
"operationId": "createPets",
"tags": ["pets"],
"responses": {
"201": {
"description": "Null response"
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
},
"/pets/{petId}": {
"get": {
"summary": "Info for a specific pet",
"operationId": "showPetById",
"tags": ["pets"],
"parameters": [
{
"name": "petId",
"in": "path",
"required": true,
"description": "The id of the pet to retrieve",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Expected response to a valid request",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Pet"
}
}
}
},
"default": {
"description": "unexpected error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"Pet": {
"type": "object",
"required": ["id", "name"],
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"tag": {
"type": "string"
}
}
},
"Pets": {
"type": "array",
"maxItems": 100,
"items": {
"$ref": "#/components/schemas/Pet"
}
},
"Error": {
"type": "object",
"required": ["code", "message"],
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"message": {
"type": "string"
}
}
}
}
}
}

 

3. leere Vorlage

复制复制
复制
{
"openapi": "3.1.0",
"info": {
"title": "Untitled",
"description": "Your OpenAPI specification",
"version": "v1.0.0"
},
"servers": [
{
"url": ""
}
],
"paths": {},
"components": {
"schemas": {}
}
}

Hinweis: Es scheint, dass das JSON-Format intuitiver ist.

Dify自定义工具例子-4

 

Tutorial zur strukturierten Ausgabe:Wie verwendet man ein jsonarray-Objekt in Dify?

Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Beispiel für ein Dify-Anpassungstool
de_DEDeutsch