插件是一个工具集,一个插件内可以包含一个或多个工具。在 Botnow 中,您可以通过插件的方式,为 Bot 增加新的知识、技能或处理能力。目前,Botnow 内置了类型丰富的插件,包括新闻阅读、效率工具、图片生成、搜索、文档总结等 API 及多模态模型能力。使用这些插件,可以帮助您拓展 Bot 能力边界。例如,在您的 Bot 内添加文档总结插件,那么您的 Bot 将拥有阅读 PDF 等文档的能力。如果 Botnow 内置的插件不满足您的使用需求,您还可以创建自定义插件来集成需要使用的 API。
本文以开发一个必应(Bing)搜索的插件为例,介绍如何通过 Botnow 创建自定义插件。
插件开发流程
创建插件
1.登录 Botnow 后台
2.在左侧菜单选择插件,然后单击创建插件。
3.输入基本信息:
- 插件名称:示例值 必应(Bing)搜索。
- 插件描述:示例值 通过必应 (Bing) 搜索网络内容。
4.输入插件 Schema 描述
Botnow 支持 OpenAPI 协议定义插件接口。编写接口协议时,定义好插件的描述、参数的 code 以及参数的描述是十分重要的,插件是否能够真正发挥预期的作用,取决于接口协议是否准确、简练且富有含义。因为大模型会根据接口信息判断插件能够做什么、什么时候调用插件、以及插件应该如何解决问题,从而完成插件的调用,实现大模型和插件的结合。参考OpenAPI 接口规范
本示例中,在 Schema 中输入:
代码语言:javascript复制openapi: 3.0.0
info:
title: Bing Web Search API
description: Search the web for information using Bing.
version: 1.0.0
servers:
- url: 'https://api.bing.microsoft.com/v7.0'
paths:
/search:
get:
operationId: search
summary: Search the web
description: Returns web search results.
parameters:
- name: q
in: query
description: The query term to search for.
required: true
schema:
type: string
- name: count
in: query
description: The number of search results to return.
schema:
type: integer
default: 6
- name: offset
in: query
description: The zero-based offset of the first result to return.
schema:
type: integer
default: 0
- name: mkt
in: query
description: The desired market for the results.
schema:
type: string
default: en-US
responses:
'200':
description: Successful response
content:
application/json:
schema:
$ref: '#/components/schemas/WebSearchResponse'
'401':
description: Unauthorized
'403':
description: Forbidden
'429':
description: Too Many Requests
components:
schemas:
WebSearchResponse:
type: object
properties:
webPages:
type: object
properties:
value:
type: array
items:
type: object
properties:
name:
type: string
url:
type: string
snippet:
type: string
5.鉴权类型选择 “服务级鉴权”
6.参数名填写 “Ocp-Apim-Subscription-Key”
7.输入在 Bing Search 申请的 Token
预览效果:
调试插件
- 点击 “调试” 操作
- 打开调试窗口,输入问题,例如:“生成式人工智能对未来的影响”
在Bot中使用插件
1.创建一个 Bot,命名为 “Bing 搜索助手”
2. 选择前面创建的插件 “Bing 搜索插件”
3.在 Bot 对话中,输入问题调试 Bot。
总 结
插件开发通过遵循最佳实践,开发者可以创建出高质量、高性能的插件,为您的智能体和工作流提供强大的功能支持。希望本文能够为您提供有价值的指导,帮助您在插件开发的道路上取得更大的成功。