Python type plugin, 是針對比較複雜需求而設計, 例如您希望plugin可以先去arxiv, github 查詢最新的資訊, 再來請DaVinci幫忙摘要,或是希望plugin 可以使用自己設計的程式運算, python plugin 會先運行您提供的python code, 之後再丟給DaVinci 進行回答.
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}"
}
}
} |
...
什麼是 Python Plugin?
Python Plugin 是在 browser 中使用 Pyodide 執行 python code 的 plugin 執行方式
您可以:
使用 open() function 打開對話中對應的 DVCx
使用 matplotlib 繪製圖表
使用 pyfetch 送出 HTTP request
使用內建的 function chat() 和 DaVinci 本身 Model 對話
使用方法
準備你的 python code
儲存 id, names, descriptions 以及對應的 python code 放到 plugin.json 中
內建 global variable
global variable | 用途 | 使用範例 |
---|---|---|
PLUGIN_USER_COOKIE | 用來辨識使用者身分 | |
CURRENT_CONVERSATION | 單一對話中的所有訊息 | |
SELECTED_MODEL_TOKEN_LIMIT | 當下 Model 的對應 token limit | 可和 count_token function 一併使用,確保對話過程不會超出 Model 限制 |
SELECTED_FILES | 對話中所選取的對應 DVCx 檔資訊 | 讀取第 1 個 DVCx 檔案的 subject 資訊 |
內建 Function
Function name | 用途 | 使用範例 |
---|---|---|
chat | 使用 DaVinci 內建的 Model 送出 prompt | |
count_token | 計算文字會使用多少 token | 可和 SELECTED_MODEL_TOKEN_LIMIT 一併使用,確保對話過程不會超出 Model 限制 |
emb | 使用 DaVinci 內建的 embedding 功能針對文字進行 embedding 操作 |