插件是一个工具集,一个插件内可以包含一个或多个工具。在 Botnow 中,您可以通过插件的方式,为 Bot 增加新的知识、技能或处理能力。目前,Botnow 内置了类型丰富的插件,包括新闻阅读、效率工具、图片生成、搜索、文档总结等 API 及多模态模型。使用这些插件,可以帮助您拓展 Bot 能力边界。例如,在您的 Bot 内添加文档总结插件,那么您的 Bot 将拥有阅读 PDF 等文档的能力。 如果 Botnow 内置的插件不满足您的使用需求,您还可以创建自定义插件来集成需要使用的 API。
本文以开发一个必应(Bing)搜索的插件为例,介绍如何通过 Botnow 创建自定义插件。
插件开发流程
创建插件
- 登录 Botnow 控制台
- 在左侧菜单选择插件,然后单击创建插件。
- 输入基本信息:
- 插件名称:示例值 必应(Bing)搜索。
- 插件描述:示例值 通过必应 (Bing) 搜索网络内容。
- 输入插件 Schema 描述
Botnow 支持 OpenAPI 协议定义插件接口。编写接口协议时,定义好插件的描述、参数的 code 以及参数的描述是十分重要的,插件是否能够真正发挥预期的作用,取决于接口协议是否准确、简练且富有含义。因为大模型会根据接口信息判断插件能够做什么、什么时候调用插件、以及插件应该如何解决问题,从而完成插件的调用,实现大模型和插件的结合。参考 OpenAPI 接口规范
本示例中,在 Schema 中输入:
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
- 鉴权类型选择 “服务级鉴权”
- 参数名填写 “Ocp-Apim-Subscription-Key”
- 输入在 Bing Search 申请的 Token
预览图:
调试插件
- 点击 “调试” 操作
- 打开调试窗口,输入问题,例如:“生成式人工智能对未来的影响”
在 Bot 中使用插件
- 创建一个 Bot,命名为 “Bing 搜索助手”
- 选择前面创建的插件 “Bing 搜索插件”
- 在 Bot 对话中,输入问题调试 Bot。
总结
插件开发通过遵循最佳实践,开发者可以创建出高质量、高性能的插件,为您的智能体和工作流提供强大的功能支持。希望本文能够为您提供有价值的指导,帮助您在插件开发的道路上取得更大的成功。