什麼是 DaVinci plugin?
DaVinci Plugin 是可以賦予 DaVinci 更多擴展功能的延伸插件,讓 DaVinci 的知識不僅僅只限於模型本身,而是可以賦予他更多的外部知識以及操作能力。
...
提供查詢天氣的 Plugin, DaVinci 能連結到氣象局索取最新資訊
提供公司的 workflow 整合 Plugin,DaVinci 便協助 workflow 相關事務
提供法院判決書 API Plugin,DaVinci 一秒化身判決達人!
DaVinci Plugin 介紹
DaVinci Plugin 為 JSON 格式,其內容如下:
程式碼區塊 | ||
---|---|---|
| ||
{
"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 安裝
點選對話欄的閃電
接著點選 + Upload Plugin
按下中間白色的 Upload Plugin.json, 選擇您的 Plugin json 檔案, 並且按下 Save
之後在您的 Plugin 清單就可以看到剛剛新增的Plugin了 (本例為 未來天氣預報API ),完成 Plugin 安裝。。
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對話…等,都可以在後續章節進行查看
參考教學影片
...
頁面樹狀結構 | ||||
---|---|---|---|---|
|