/
Plugin Example Code

Plugin Example Code

執行devserver.py 可以將程式碼轉換成一行.

檔案下載:
相關使用教學請參考 :

DaVinci Developer Guide.mp4

Davinci Python Plugin Quickstart

What is a Python plugin?

Python plugin is a package of your python source code and a set of prompts to let model know how to use your python source code.

Your python source code will be executed on users' browser by https://pyodide.org/en/stable/

What can I do with python plugin?

  1. You can define your own python functions for Davinci to invoke.

  2. You can access the PLUGIN_USER_COOKIE global variable to identify who your user is.

  3. You can access the SELECTED_FILES global variable to read user selected files.

  4. You can access the SELECTED_MODEL_TOKEN_LIMIT global variable and count_token function to keep response tokens under model limit.

  5. You can access the CURRENT_CONVERSATION global variable and infer_params function to get required inputs.

  6. You can use the chat function to access the GPT model. See the multiple_function example for more detail.

How to build a Python plugin?

For example, let's say we are going to build a plugin to retrive user's username.

First, write your python source in one file.

import json import asyncio from pyodide.http import pyfetch resp = await pyfetch( '/api/userinfo', method='POST', headers={ 'Content-Type': 'application/json' }, body=json.dumps({ 'cookie': PLUGIN_USER_COOKIE }) ) print((await resp.json())['username'])

Save the above python script to plugin_source.py.

Second, prepare the plugin.json

Modify the plugin.json template. All the fields are required.

{ "id": "< your plugin id >", "schema_version": "v1", "name_for_human": "< your plugin name, This will be displayed to user >", "name_for_model": "< your plugin id, should be the same as the previous id >", "description_for_human": "< describe what your plugin can do here. This will be displayed to user >", "description_for_model": "< describe what your plugin can do here. This will be considered by model >", "auth": { "type": "none" }, "api": { "type": "python", "python": { "source": "< content of plugin_source.py >" } } }

Third, upload plugin.json to Davinci with the devserver.py that combines those files for you

python devserver.py

And register the url <http://localhost:5003> to the Davinci. Davinci will fetch this url every time it want to use your plugin.

Optional, plugin code generation with usage_hint

You can also instruct the model to generate code that uses the functions defined in your source. For example, you can define a get_username function in the source and prepare the following hint:

Save the above description to plugin_hint.txt.

The model will use this hint to generate a code snippet and execute it after loading the source.

Related content

Davinci Python Plugin Quickstart
Davinci Python Plugin Quickstart
More like this
Python Plugin
More like this
DaVinci Plugin 介紹
DaVinci Plugin 介紹
More like this
範例 - Multiple Functions
範例 - Multiple Functions
More like this
範例 - Embedding
範例 - Embedding
More like this
OpenAPI Plugin
OpenAPI Plugin
Read with this