已比較的版本

索引鍵

  • 此行已新增。
  • 此行已移除。
  • 格式已變更。

什麼是 DaVinci plugin?

DaVinci Plugin 是可以賦予 DaVinci 更多擴展功能的延伸插件,讓 DaVinci 的知識不僅僅只限於模型本身,而是可以賦予他更多的外部知識以及操作能力。

...

  • 提供查詢天氣的 Plugin, DaVinci 能連結到氣象局索取最新資訊

  • 提供公司的 workflow 整合 Plugin,DaVinci 便協助 workflow 相關事務

  • 提供法院判決書 API Plugin,DaVinci 一秒化身判決達人!

DaVinci Plugin 介紹

DaVinci Plugin 為 JSON 格式,其內容如下:

程式碼區塊
languagejson
{
  "id": "plugin_guide",
  "schema_version": "v1.0",
  "name_for_human": "plugin_guide",
  "name_for_model": "plugin_guide",
  "description_for_human": "plugin_guide",
  "description_for_model": "You need to choose this tool anytime, to search for any information with user language that helps replying to users.",
  "auth": {
    "type": "none"
  },
  "api": {
    "type": "python",
    "python": {
      "source": ""
    }
  }
}

這是一個標準的 Plugin json 內容,其中 description_for_model 是告訴 DaVinci 該如何使用這個 plugin。
其他欄位我們將一一介紹.

DaVinci Plugin 安裝

  1. 點選對話欄的閃電

    image-20240118-094253.pngImage Removed
  2. 接著點選 + Upload Plugin

    image-20240118-094558.pngImage Removed
  3. 按下中間白色的 Upload Plugin.json, 選擇您的 Plugin json 檔案, 並且按下 Save

    image-20240118-094732.pngImage Removed
  4. 之後在您的 Plugin 清單就可以看到剛剛新增的Plugin了 (本例為 未來天氣預報API ),完成 Plugin 安裝。。

    image-20240118-095308.pngImage Removedimage-20240118-095713.pngImage Removed

DaVinci Plugin 有兩種開發模式:

1.OpenAPI Type

2.Python Type

OpenAPI Type:

OpenAPI Type 的Plugin, 使用符合OpenAPI 格式的yaml檔, 只要在Plugin 中,指定你的yaml 的位置, DaVinci 會去這個url 下載yaml檔案, 並且依照裡面的API format 進行API的資訊檢索.
OpenAPI Type Plugin example:

程式碼區塊
{
  "id": "Weather_API",
  "schema_version": "v1",
  "name_for_human": "Weather_API",
  "name_for_model": "Weather_API",
  "description_for_human": "Weather_API",
  "description_for_model": "當你需要查詢未來天氣的相關資料, 請使用這個API, 並且整理相關資訊以表格輸出",
  "auth": "none",
  "api": {
    "type": "openapi",
    "url": "https://example.com/weather.yaml"
  }
}

這是一個 查詢天氣的範例, 假設我們要使用氣象資料開放平台提供的開源API來索取資料, 需要兩個步驟:
1. 根據氣象資料開放平台的API範例, 將各API的url 以及參數, 轉換成yaml檔案 並且存放到您的伺服器中
2. plugin json 檔裡面, 修改這兩個地方

程式碼區塊
"api": {
    "type": "openapi",
    "url": "https://example.com/weather.yaml"
  }

即可完成Plugin 的製作

...

Python Type Plugin example:

程式碼區塊
{
  "id": "ScholarChat",
  "schema_version": "v2.0",
  "name_for_human": "ScholarChat",
  "name_for_model": "ScholarChat",
  "description_for_human": "ScholarChat",
  "description_for_model": "You can reach out to this tool to seach for any acadamically related information on the web.",
  "auth": {
    "type": "none"
  },
  "api": {
    "type": "python",
    "python": {
      "source": "import json\nimport asyncio\nimport re\nfrom pyodide.http import pyfetch\nimport xml.etree.ElementTree as ET\nfrom urllib.parse ...{python code here}"
    }
  }
}

可以發現 在api 部分, 跟OpenAPI Type 的內容不同, type 是 python, source的部分則是您設計的python 代碼.

本教學手冊 會針對 Python Type Plugin 開發進行更細節的說明, 包括有哪些公域變數可以用, 有哪些內建的API可以呼叫, 如何跟LLM對話, 再請您依照需求選擇需要的章節查看.如果您希望更進一步了解 Plugin 開發,包括有哪些 global variable 可以用,有哪些內建的 API 可以呼叫,如何跟LLM對話…等,都可以在後續章節進行查看

參考教學影片

...

頁面樹狀結構
root@self
startDepth1