OpenAI 的 Chat API 提供了一個名為 function_call 的參數,允許開發者控制模型是否調用函數。在某些情況下,您可能想要停止使用 function_call,以便模型不再嘗試調用函數。以下是如何實現此目的的一些方法:

1. 設置 function_call 為 "none":

OpenAI 提供了一個選項,允許通過將 function_call 參數設置為 "none" 來停止模型調用任何函數。以下是一個代碼示例,展示了如何根據某個條件來設置 function_call 參數:

def respond(..., use_func=True):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo-0613",
        messages=msg,
        functions=fun,
        function_call="auto" if use_func else "none"
    )

在這個例子中,當 use_func 變量為 True 時,function_call 被設置為 "auto",允許模型自動決定是否調用函數。當 use_func 變量為 False 時,function_call 被設置為 "none",從而阻止模型調用任何函數【28†(來源)】。

2. 選擇不使用 function_call 參數:

你也可以選擇完全不在 API 請求中包含 function_call 參數。在這種情況下,模型將不會嘗試調用任何函數,而只是生成一個消息。這提供了一種簡單直接的方法來停止使用 function_call 參數【22†(來源)】。

3. 模型生成 JSON,而不是直接調用函數:

值得注意的是,當模型決定應該調用一個函數時,它不會直接調用該函數。相反,它會生成一個 JSON,你可以在你的代碼中使用這個 JSON 來調用該函數。這意味著,即使模型決定調用一個函數,你也可以選擇不執行這個函數調用,從而在實踐中停止使用 function_call【23†(來源)】【30†(來源)】。

通過以上方法,您可以輕鬆地控制或停止在 OpenAI 的 Chat API 中使用 function_call。根據您的具體需求和應用場景,您可以選擇使用其中的一種或多種方法來防止模型調用函數。

最後修改日期: 2023 年 10 月 20 日

作者