Function-call 调用指南
更新时间:
通义星尘平台Function-call 调用指南介绍文档。
介绍
定制个性化智能体,您会希望更便捷地集成业务技能,function-calling
功能可以更好地将大模型连接到您自有的业务接口。
在通义星尘API调用中,通过提供业务自定义function
的功能和参数描述,大模型会根据输入自主地进行规划,检测何时应该调用函数, 并输出function
的调用规划(JSON格式)。
场景示例
创建业务专属助手, 需要使用业务专有的API接口,回答用户问题
例如,定义
get_current_weather(location:string, date:string)
或item_search(query:string)
创建特定游戏中的智能NPC,需要使用操控NPC行为的API接口,驱动游戏页面
例如, 定义
move_to(place:string)
或go_dancing(type:string)
调用步骤
通义星尘API调用的基本步骤顺序如下:
使用user query和一组自定义函数描述,调用通义星尘API。
复制代码import unittest
from xingchen import Configuration, ApiClient, ChatApiSub, ChatReqParams, CharacterKey, Message, UserProfile, \
ModelParameters
def build_chat_param():
return ChatReqParams(
bot_profile=CharacterKey(
character_id="40f70d5466e1429ba9aa755842b35d9f",
version=1
),
model_parameters=ModelParameters(
seed=1683806810,
incrementalOutput=False,
model_name="xingchen-plus"
),
messages=[
Message(
name='小明',
role='user',
content='杭州今天天气怎么样'
)
],
context=ChatContext(
use_chat_history=True
),
user_profile=UserProfile(
user_id='123456789',
user_name='小明'
),
functions=[
Function(
name='weather',
description='通过调用天气预报API获取当地天气预报信息通过调用天气预报API获取当地天气预报信息',
parameters={
"type": "object",
"properties":{
"location":{
"type": "string",
"description": "地点"
},
"format":{
"type": "string",
"enum":[
"celsius",
"fahrenheit"
],
"description": "温度单位"
}
},
}
)
]
)
class Test(unittest.TestCase):
@staticmethod
def init_client():
configuration = Configuration(
host="https://nlp.aliyuncs.com"
)
configuration.access_token = "{API-KEY}"
with ApiClient(configuration) as api_client:
api_instance = ChatApiSub(api_client)
return api_instance
def test_chat_sync(self):
api = self.init_client()
chat_param = build_chat_param()
res = api.chat(
chat_req_params=chat_param
)
print(res.to_str())
备注:大模型可以选择调用一个或多个函数;如果是这样的话,内容将是一个字符串化的JSON对象,它遵循您的自定义模式(注意:模型可能会产生参数幻觉)。
将字符串解析为代码中的JSON,并使用提供的参数(如果存在)调用自定义函数。
通过将函数响应附加为新消息来再次调用通义星尘API,并让模型将结果汇总返回给用户。
流程参考
备注:紫色色块为调用通义星尘API的返回。
文档内容是否对您有帮助?