範例 - Multiple Functions
您可以透過以下實作來實現 Multiple Functions 的場景。
透過以下的 plugin 可以協助 summary 一段文章或者取出文章當中的重點
summarization: 透過此 function 可以提供文章的摘要
summarization 實際執行結果focal_points: 透過此 function 可以列文章的重點
focal points 實際執行結果
Python code
import json
from pyodide.http import pyfetch
async def main():
response = await chat(
conversation=CURRENT_CONVERSATION + [
{
"role": "system",
"content": "Only use the functions you have been provided with."
}
],
functions=[
{
"name": "summarization",
"description": "summarize the conversation",
"parameters": {
"type": "object",
"properties": {
"summary": {
"type": "string",
"description": "the summary of the conversation"
}
},
"required": ["summary"]
}
},
{
"name": "focal_points",
"description": "extract the focal points of the conversation",
"parameters": {
"type": "object",
"properties": {
"points": {
"type": "array",
"items": {
"type": "string",
"description": "extract the focal points of the conversation"
}
}
},
"required": ["points"]
}
}
]
)
if 'function_call' in response:
if response['function_call']['name'] == 'summarization':
print("The summary of the converstaion is ", json.loads(response['function_call']['arguments'])['summary'])
elif response['function_call']['name'] == 'focal_points':
print("The focal points of the converstaion are ", json.loads(response['function_call']['arguments'])['points'])
else:
print(response['content'])
await main()
Plugin
{
"id": "multi function plugin",
"schema_version": "v1",
"name_for_human": "multi function plugin",
"name_for_model": "multi function plugin",
"description_for_human": "Testing for multi function plugin",
"description_for_model": "Always use this plugin",
"auth": {
"type": "none"
},
"api": {
"type": "python",
"python": {
"source": "import json\nfrom pyodide.http import pyfetch\n\nasync def main():\n response = await chat(\n conversation=CURRENT_CONVERSATION + [\n {\n \"role\": \"system\",\n \"content\": \"Only use the functions you have been provided with.\"\n }\n ],\n functions=[\n {\n \"name\": \"summarization\",\n \"description\": \"summarize the conversation\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"summary\": {\n \"type\": \"string\",\n \"description\": \"the summary of the conversation\"\n }\n },\n \"required\": [\"summary\"]\n }\n },\n {\n \"name\": \"focal_points\",\n \"description\": \"extract the focal points of the conversation\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"points\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\",\n \"description\": \"extract the focal points of the conversation\"\n }\n }\n },\n \"required\": [\"points\"]\n }\n }\n ]\n )\n if 'function_call' in response:\n if response['function_call']['name'] == 'summarization':\n print(\"The summary of the converstaion is \", json.loads(response['function_call']['arguments'])['summary'])\n elif response['function_call']['name'] == 'focal_points':\n print(\"The focal points of the converstaion are \", json.loads(response['function_call']['arguments'])['points'])\n else:\n print(response['content'])\n\nawait main()"
}
}
}