精品一区二区三区在线成人,欧美精产国品一二三区,Ji大巴进入女人66h,亚洲春色在线视频

OpenAI官宣將支持 JSON 結(jié)構(gòu)化輸出!吃瓜群眾說 JSON 是啥?我要 GPT-5...

人工智能
如果做過程序員,應(yīng)該知道模型的結(jié)構(gòu)化輸出對于程序是很重要的。因為程序的運行是結(jié)構(gòu)化的,如果大模型能輸出結(jié)構(gòu)化的結(jié)果,我們就可以更好和程序相結(jié)合。

奧特曼在推文中表示[1]應(yīng)廣大用戶的需求(這里的用戶應(yīng)該特指開發(fā)者),OpenAI 將支持結(jié)構(gòu)化輸出。

圖片

對于吃瓜群眾來說,有網(wǎng)友表示廣大用戶關(guān)心的問題是 GPT-5 和語音模式,不要試圖愚弄人們[2]...。也有網(wǎng)友在下面繼續(xù)回復(fù) “不,結(jié)構(gòu)化輸出對于使用 LLM 進行可靠構(gòu)建來說非常重要。”

圖片圖片

對于普通用戶來講,他們根本就不懂 JSON 格式,顯然不需要關(guān)心,能通過自然語言進行交流就可以了。

如果做過程序員,應(yīng)該知道模型的結(jié)構(gòu)化輸出對于程序是很重要的。因為程序的運行是結(jié)構(gòu)化的,如果大模型能輸出結(jié)構(gòu)化的結(jié)果,我們就可以更好和程序相結(jié)合。

開發(fā)人員長期以來一直在通過開源工具、提示和反復(fù)重試請求來解決 LLM 在這方面的局限性,以確保模型輸出符合與其系統(tǒng)互操作所需的格式。之前微軟搞的開源項目 TypeSpec 也是來做類似的事情的。

OpenAI 在去年的 DevDay 上推出了 JSON 模式,但它不能保證模型的響應(yīng)符合特定的架構(gòu)。此次,OpenAI 推出的結(jié)構(gòu)化輸出是一項新功能[3],旨在確保模型生成的輸出與開發(fā)人員提供的 JSON 架構(gòu)完全匹配。

OpenAI 采用結(jié)構(gòu)化輸出的新模型是 gpt-4o-2024-08-06,對復(fù)雜 JSON 模式跟蹤的評估中該模型獲得了滿分(100%),之前的 gpt-4-0613 得分不到 40%

圖片圖片

使用結(jié)構(gòu)化輸出的方式有兩種:

1. 函數(shù)調(diào)用,通過設(shè)置 strict:true 參數(shù),支持 gpt-4-0613 和 gpt-3.5-turbo-0613 及更高版本的模型

請求:

圖片圖片

響應(yīng):

圖片圖片

2. 新增 response_format 參數(shù)選項

請求:

圖片圖片

響應(yīng):

圖片圖片

原生支持 Node.js 和 Python SDK

OpenAI 提供的 Python 和 Node.js SDK 已更新,原生支持結(jié)構(gòu)化輸出。

例如,在 Node.js 中可以通過 Zod 這個庫,來約束響應(yīng)數(shù)據(jù)結(jié)構(gòu)。如下所示:

import OpenAI from 'openai';
import z from 'zod';
import { zodFunction } from 'openai/helpers/zod';

const Table = z.enum(['orders', 'customers', 'products']);
const Column = z.enum([
    'id',
    'status',
    'expected_delivery_date',
    'delivered_at',
    'shipped_at',
    'ordered_at',
    'canceled_at',
]);
const Operator = z.enum(['=', '>', '<', '<=', '>=', '!=']);
const OrderBy = z.enum(['asc', 'desc']);

const DynamicValue = z.object({
    column_name: z.string(),
});

const Condition = z.object({
    column: z.string(),
    operator: Operator,
    value: z.union([z.string(), z.number(), DynamicValue]),
});

const QueryArgs = z.object({
    table_name: Table,
    columns: z.array(Column),
    conditions: z.array(Condition),
    order_by: OrderBy,
});

const client = new OpenAI();

const completion = await client.beta.chat.completions.parse({
    model: 'gpt-4o-2024-08-06',
    messages: [
        { role: 'system', content: 'You are a helpful assistant. The current date is August 6, 2024. You help users query for the data they are looking for by calling the query function.' },
        { role: 'user', content: 'look up all my orders in may of last year that were fulfilled but not delivered on time' }
    ],
    tools: [zodFunction({ name: 'query', parameters: QueryArgs })],
});
console.log(completion.choices[0].message.tool_calls[0].function.parsed_arguments);

參考資料

[1]奧特曼在推文中表示: https://x.com/sama/status/1820881534909300769

[2]有網(wǎng)友表示廣大用戶關(guān)心的問題是 GPT-5 和語音模式,不要試圖愚弄人們: https://x.com/ai_for_success/status/1820883341748662513

[3]OpenAI 推出的結(jié)構(gòu)化輸出是一項新功能: https://openai.com/index/introducing-structured-outputs-in-the-api/

責(zé)任編輯:武曉燕 來源: 編程界
相關(guān)推薦

2024-08-07 12:34:29

2025-01-10 13:56:28

2022-01-03 18:24:50

密碼單詞摩爾斯

2025-06-12 02:30:00

人工智能LLM大語言模型

2025-08-08 08:19:45

2023-12-25 15:00:18

結(jié)構(gòu)化布線光纖

2025-03-12 06:55:00

2024-02-19 00:00:00

OpenAIChatGPT功能

2025-08-04 08:58:00

2025-03-11 03:00:00

2024-05-11 13:41:23

2024-05-30 13:13:43

2018-04-03 14:00:03

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)庫

2018-03-08 14:30:30

區(qū)塊鏈數(shù)字貨幣去中心化

2021-12-12 08:37:18

結(jié)構(gòu)化數(shù)據(jù)非結(jié)構(gòu)化數(shù)據(jù)數(shù)據(jù)

2024-06-20 10:36:21

2024-05-15 09:28:01

2023-06-14 16:15:54

網(wǎng)絡(luò)結(jié)構(gòu)化布線

2025-05-19 08:58:00

2024-04-02 11:37:59

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 乐昌市| 巴塘县| 元阳县| 改则县| 咸阳市| 盘山县| 巨鹿县| 太仆寺旗| 贵溪市| 绿春县| 咸阳市| 临沧市| 德令哈市| 房产| 荃湾区| 礼泉县| 百色市| 修水县| 大安市| 闻喜县| 迭部县| 大冶市| 南和县| 宣恩县| 新疆| 禄丰县| 龙游县| 新平| 德兴市| 五家渠市| 奉新县| 台南市| 和林格尔县| 牟定县| 汉源县| 剑川县| 射洪县| 定边县| 通江县| 平舆县| 泌阳县|