首頁 >科技週邊 >人工智慧 >簽署OpenAI函數調用指南

簽署OpenAI函數調用指南

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原創
2025-03-10 10:07:08982瀏覽

OpenAI發布全新函數調用指南,助開發者擴展模型能力!此指南整合了用戶反饋,篇幅縮短50%,內容更清晰,並包含最佳實踐、文檔內函數生成以及使用天氣API的完整示例。 OpenAI致力於簡化AI工具,使其更易於開發者使用,從而更有效地利用函數調用功能。

OpenAI發布全新函數調用指南!

我們根據您的反饋做出了重要改進:

– 篇幅縮短50%,更清晰易懂 – 新增最佳實踐(詳情見下文?) – 支持文檔內函數生成! – 提供使用天氣API的完整功能示例

查看指南並分享您的想法… pic.twitter.com/Id89E9PEff

— ilan bigio (@ilanbigio) January 13, 2025

目錄

  • OpenAI函數調用工作原理?
  • 快速示例:天氣API
    • 步驟1:定義函數
    • 步驟2:使用已定義函數調用模型
    • 步驟3:執行函數
    • 步驟4:向模型提供結果
    • 步驟5:獲取最終響應
  • 函數調用的最佳實踐
  • 總結

OpenAI函數調用工作原理?

函數調用允許OpenAI模型與開發者定義的工具交互,使其能夠執行超出文本或音頻生成的更多任務。以下是簡化的流程:

  1. 定義函數: 創建一個模型可以調用的函數(例如,get_weather)。
  2. 模型決定調用函數: 基於系統提示和用戶輸入,模型確定何時調用函數。
  3. 執行函數: 運行函數代碼並返回結果。
  4. 整合結果: 模型使用函數的輸出生成最終響應。

Checkout the OpenAI Function Calling Guide

該圖片展示了開發者和AI模型之間函數調用的流程。以下是分步說明:

  • 工具定義 消息: 開發者定義工具(函數)並發送消息。在本例中,定義了get_weather(location)函數,用戶詢問:“巴黎的天氣如何?”
  • 工具調用: 模型識別需要使用參數“paris”調用get_weather函數。
  • 執行函數代碼: 開發者(或系統)執行實際的get_weather(“paris”)函數。函數返迴響應,例如:{“temperature”: 14}。
  • 結果: 函數的結果({“temperature”: 14})與所有先前消息一起返回給模型。
  • 最終響應: 模型使用函數結果生成自然語言響應,例如:“巴黎目前的溫度是14°C。”

另請閱讀:支持函數調用的6大頂級LLM

快速示例:天氣API

讓我們來看一個使用get_weather函數的實際示例。此函數檢索給定坐標的當前溫度。

步驟1:定義函數

<code>import requests

def get_weather(latitude, longitude):
    response = requests.get(f"https://api.open-meteo.com/v1/forecast?latitude={latitude}&longitude={longitude}&current=temperature_2m,wind_speed_10m&hourly=temperature_2m,relative_humidity_2m,wind_speed_10m")
    data = response.json()
    return data['current']['temperature_2m']</code>

步驟2:使用已定義函數調用模型

<code>from openai import OpenAI
import json

client = OpenAI(api_key="sk-api_key”)

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取提供的坐标(摄氏度)的当前温度。",
        "parameters": {
            "type": "object",
            "properties": {
                "latitude": {"type": "number"},
                "longitude": {"type": "number"}
            },
            "required": ["latitude", "longitude"],
            "additionalProperties": False
        },
        "strict": True
    }
}]

messages = [{"role": "user", "content": "今天巴黎的天气怎么样?"}]

completion = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools,
)</code>

步驟3:執行函數

<code>tool_call = completion.choices[0].message.tool_calls[0]
args = json.loads(tool_call.function.arguments)

result = get_weather(args["latitude"], args["longitude"])</code>

步驟4:向模型提供結果

<code># 附加模型的工具调用消息
messages.append(completion.choices[0].message)

# 将结果消息作为字符串附加
messages.append({
    "role": "tool",
    "tool_call_id": tool_call.id,
    "content": json.dumps({"temperature": result})  # 将结果转换为JSON字符串
})

# 创建第二个聊天完成
completion_2 = client.chat.completions.create(
    model="gpt-4o",
    messages=messages,
    tools=tools,
)</code>

步驟5:獲取最終響應

<code>print(completion_2.choices[0].message.content)</code>

輸出:

<code>巴黎目前的温度是-2.8°C。</code>

函數調用的最佳實踐

為了幫助您充分利用函數調用,以下是一些專業技巧:

  1. 編寫清晰詳細的描述
    • 清晰地描述函數的目的、參數和輸出。
    • 使用系統提示指導模型何時(以及何時不)使用函數。
  2. 應用軟件工程最佳實踐
    • 使函數直觀易懂。
    • 使用枚舉和對象結構來防止無效狀態。
  3. 減輕模型的負擔
    • 不要讓模型填寫您已知的參數。
    • 合併總是按順序調用的函數。
  4. 保持函數數量較少
    • 為了提高準確性,一次最多使用少於20個函數。
  5. 利用OpenAI資源
    • 使用Playground生成和迭代函數模式。
    • 考慮針對複雜任務或大量函數進行微調。

了解更多信息,請訪問OpenAI。

總結

OpenAI改進後的函數調用指南使開發者能夠無縫集成自定義工具,使AI更易於訪問和使用。通過簡化流程、提供清晰的示例以及優先考慮用戶反饋,OpenAI使開發者能夠進行創新並構建利用AI全部潛力的解決方案,從而推動現實世界的應用和創造力。

以上是簽署OpenAI函數調用指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn