|
嘿,大家好!这里是一个专注于AI智能体的频道! 今天和大家聊聊一个特别有趣的话题——函数调用(Function Calling)。这听起来可能有点技术性,但别担心,我会尽量用简单的语言来解释。 首先,我们得明白什么是函数调用。简单来说,就是大型语言模型(LLM)在一堆可用的工具或函数中,识别出最合适的那个,然后把输入查询中需要的部分作为参数传递给这个函数。听起来是不是有点拗口?别急,我来举个例子。 比如,我们先注册一个工具或函数列表。在使用Azure Open AI模型时,格式是这样的: tools=[{ "type":"function", "function":{ "name":"summarise_doc", "description":"给定链接或者地址,总结网页或文档内容", "parameters":{ "type":"object", "properties":{ "url":{ "type":"string", "description":"需要总结的文件地址或页面的链接" }, }, "required":["url"], } }
} ]
然后,我们向LLM发起调用请求,同时传递查询和指令。这里,我们用一个用户提示来说明问题: link='http://xxxxx' user_prompt=f"你可以帮我总结{link}吗?"
completion=client.chat.completions.create( model=deployment_name, messages=[ { "role":"user", "content":user_prompt }], max_tokens=100, temperature=0.0, frequency_penalty=0, presence_penalty=0, stop=None, stream=False, tools=tools, tool_choice="auto", )
注意,这时候LLM还没有真正调用函数。我们需要根据需求定义函数——可能是调用另一个LLM,或者API,或者仅仅是本地逻辑。 function call这个话题可能听起来有点复杂,但其实它就是让LLM更智能地选择工具和处理数据的一种方式。 |