前言
之前介绍了如何新增模型提供商,下面继续之前的内容,介绍如何在Dify中新增内置工具。按照之前的做法,本次新增一个Doga Speech的小工具,用于将输入的文本转换为语音输出。
开始操作
首先在dify/api/core/tools/provider/builtin
目录下新增1个doga的包:
mkdir dify/api/core/tools/provider/builtin/doga
其中配置doga.yaml
中内容如下:
identity:
author: demo
name: doga
label:
en_US: Doga Speech
zh_Hans: Doga Speech
description:
en_US: a tool for speech synthesis
zh_Hans: 语音合成小工具
icon: doga_speech.png
tags:
- utilities
如果之前看过新增模型提供商文章的小伙伴,应该对这段代码感觉很熟悉。分别是说明工具的作者、显示的标签、文本说明、图标及类型。
在doga.py
模块中实现模型提供商相关认证代码,由于不需要认证,因此其代码如下:
from typing import Any
from core.tools.provider.builtin_tool_provider import BuiltinToolProviderController
class DogaProvider(BuiltinToolProviderController):
def _validate_credentials(self, credentials: dict[str, Any]):
pass
之后创建1个tools
的子包用于表示该工具有哪些功能。由于只有简单的TTS功能,因此目录下doga_speech.yaml
的内容如下:
identity:
name: doga_speech
author: doga
label:
en_US: Doga Speech
zh_Hans: Doga语音
description:
human:
en_US: A tool for speech synthesis
zh_Hans: 用于语音合成的工具
llm: A tool for speech synthesis
parameters:
- name: input_text
type: string
required: true
label:
en_US: input text
zh_Hans: 文本输入
human_description:
en_US: input text for speech synthesis
zh_Hans: 用于语音合成的输入文本
form: form
其中要求用户输入1个文本字段,接收到该字段后在doga_speech.py
模块中进行相应的处理并返回对应的内容。
from core.tools.tool.builtin_tool import BuiltinTool
from core.tools.entities.tool_entities import ToolInvokeMessage
from typing import Any, Dict, List, Union
class DogaSpeechTool(BuiltinTool):
def _invoke(self, tool_Parameters: Dict[str, Any]):
input_text = tool_Parameters["input_text"]
if input_text:
return self.create_text_message("Audio generated successfully")
return self.create_text_message("Audio generated failed"),
编写完上述代码后,在Dify界面中可以搜索到如下的工具:
之后创建1个Agent,其对应的工具添加如下:
更多内容可以查看官方文档,本任务相对来说比较基础和简单。
参考文章:
https://docs.dify.ai/zh-hans/guides/tools/quick-tool-integration
如果喜欢这篇文章或对您有帮助,可以:[☕] 请我喝杯咖啡 | [💓] 小额赞助


