目錄
目錄
OpenAI函數調用工作原理?
快速示例:天氣API
步驟1:定義函數
步驟2:使用已定義函數調用模型
步驟3:執行函數
步驟4:向模型提供結果
步驟5:獲取最終響應
函數調用的最佳實踐
總結
首頁 科技週邊 人工智慧 簽署OpenAI函數調用指南

簽署OpenAI函數調用指南

Mar 10, 2025 am 10:07 AM

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1413
52
Laravel 教程
1306
25
PHP教程
1252
29
C# 教程
1226
24
開始使用Meta Llama 3.2 -Analytics Vidhya 開始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移動AI的飛躍 Meta最近公佈了Llama 3.2,這是AI的重大進步,具有強大的視覺功能和針對移動設備優化的輕量級文本模型。 以成功為基礎

10個生成AI編碼擴展,在VS代碼中,您必須探索 10個生成AI編碼擴展,在VS代碼中,您必須探索 Apr 13, 2025 am 01:14 AM

嘿,編碼忍者!您當天計劃哪些與編碼有關的任務?在您進一步研究此博客之前,我希望您考慮所有與編碼相關的困境,這是將其列出的。 完畢? - 讓&#8217

AV字節:Meta&#039; llama 3.2,Google的雙子座1.5等 AV字節:Meta&#039; llama 3.2,Google的雙子座1.5等 Apr 11, 2025 pm 12:01 PM

本週的AI景觀:進步,道德考慮和監管辯論的旋風。 OpenAI,Google,Meta和Microsoft等主要參與者已經釋放了一系列更新,從開創性的新車型到LE的關鍵轉變

向員工出售AI策略:Shopify首席執行官的宣言 向員工出售AI策略:Shopify首席執行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席執行官TobiLütke最近的備忘錄大膽地宣布AI對每位員工的基本期望是公司內部的重大文化轉變。 這不是短暫的趨勢。這是整合到P中的新操作範式

視覺語言模型(VLMS)的綜合指南 視覺語言模型(VLMS)的綜合指南 Apr 12, 2025 am 11:58 AM

介紹 想像一下,穿過​​美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? GPT-4O vs OpenAI O1:新的Openai模型值得炒作嗎? Apr 13, 2025 am 10:18 AM

介紹 Openai已根據備受期待的“草莓”建築發布了其新模型。這種稱為O1的創新模型增強了推理能力,使其可以通過問題進行思考

如何在SQL中添加列? - 分析Vidhya 如何在SQL中添加列? - 分析Vidhya Apr 17, 2025 am 11:43 AM

SQL的Alter表語句:動態地將列添加到數據庫 在數據管理中,SQL的適應性至關重要。 需要即時調整數據庫結構嗎? Alter表語句是您的解決方案。本指南的詳細信息添加了Colu

最新的最佳及時工程技術的年度彙編 最新的最佳及時工程技術的年度彙編 Apr 10, 2025 am 11:22 AM

對於那些可能是我專欄新手的人,我廣泛探討了AI的最新進展,包括體現AI,AI推理,AI中的高科技突破,及時的工程,AI培訓,AI,AI RE RE等主題

See all articles