OpenAI API Ra Quyết Định vs API Phản Hồi

API Quyết định so với API Phản hồi: một yêu cầu được định tuyến theo cả hai cách, những gì mỗi API trả về, cách tính phí chỉ dựa trên đầu vào so với đầu ra cùng với các phép tính, và một ma trận tính năng.

INEZA Felin-Michel

INEZA Felin-Michel

10 tháng 10 2026

OpenAI API Ra Quyết Định vs API Phản Hồi

Apidog cho doanh nghiệp

Triển khai tại chỗ

SSO & RBAC

Tuân thủ SOC 2

Khám phá Apidog Enterprise

Sử dụng API Decisions khi công việc là phân loại, định tuyến, chấm điểm hoặc kiểm soát một cái gì đó và bạn muốn nhận lại xác suất: nó chạy trên GPT-6 Luna, trả về các câu trả lời có kiểu dữ liệu thay vì văn bản, chỉ tính phí đầu vào 0,10 đô la cho mỗi 1 triệu token mà không tính phí đầu ra, đọc hoặc ghi bộ nhớ đệm, và OpenAI cho biết nó nhanh hơn khoảng 10 lần so với API Responses. Sử dụng API Responses khi bạn cần văn bản được tạo, JSON theo lược đồ riêng của bạn, lệnh gọi công cụ, truyền phát hoặc trạng thái hội thoại. Decisions đã bước vào giai đoạn thử nghiệm công khai vào ngày 06-10-2026.

Bài đăng này sẽ chạy một tác vụ (định tuyến phiếu hỗ trợ) thông qua cả hai điểm cuối, so sánh những gì mỗi điểm cuối trả về, tính toán chi phí một lần, và kết thúc bằng một ghi chú di chuyển cùng một cách để thử nghiệm cả hai trong một dự án Apidog. Để hiểu rõ cấu trúc điểm cuối, hãy bắt đầu với trụ cột API Decisions; để biết cơ sở, hãy xem hướng dẫn API Responses của chúng tôi.

nút

Ma trận tính năng

API Decisions API Responses (GPT-6 Luna)
Điểm cuối POST /v1/decisions POST /v1/responses
Đầu ra Các câu trả lời predicate, choice, score (cùng với refusal) với xác suất và độ tin cậy từ điểm cuối Văn bản được tạo, hoặc JSON tuân theo lược đồ của bạn thông qua text.format
Lược đồ JSON riêng của bạn Không Có, json_schema với strict: true
Công cụ / gọi hàm Không Có
Truyền phát Không Có
Trạng thái hội thoại Không Có
Bộ nhớ đệm nhắc Không tính phí bộ nhớ đệm; theo diễn đàn của OpenAI, chưa có bộ nhớ đệm Có, đầu vào được lưu vào bộ nhớ đệm 0,01 đô la cho mỗi 1 triệu
Xử lý theo lô Không được ghi tài liệu Có, 50% so với tiêu chuẩn
Hình ảnh Có, URL dữ liệu base64; tài liệu tham khảo cũng liệt kê các URL HTTP(S) công khai, tối đa 128 mỗi yêu cầu Có, Luna chấp nhận văn bản và hình ảnh
Quyết định nối tiếp (phụ thuộc) Các yêu cầu riêng biệt Một phản hồi được tạo có thể mang các trường phụ thuộc
Giá mỗi 1 triệu, ngữ cảnh ngắn Đầu vào 0,10 đô la; không tính phí đầu ra Đầu vào 0,10 đô la, đầu ra 0,50 đô la bao gồm cả token lý luận
ZDR / HIPAA Được hỗ trợ cho các khách hàng đủ điều kiện; xử lý theo khu vực ở Hoa Kỳ và EU Không được đề cập trong so sánh này; xem trang kiểm soát dữ liệu của OpenAI

Mỗi hàng đều lấy từ hướng dẫn Decisions của OpenAI, tài liệu tham khảo API và trang giá.

Cùng một tác vụ theo cả hai cách: định tuyến phiếu hỗ trợ

Phiếu hỗ trợ ghi “Tôi bị tính phí hai lần cho đơn hàng của mình.” Các phòng ban bao gồm thanh toán, kỹ thuật, vận chuyển và khác. Sau đây là yêu cầu Responses với Đầu ra có cấu trúc, đây là cách hầu hết các nhóm thực hiện điều này ngày nay:

curl https://api.openai.com/v1/responses \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "input": "Route this support ticket to one department.\n\nTicket: I was charged twice for my order.",
    "text": {
      "format": {
        "type": "json_schema",
        "name": "ticket_route",
        "strict": true,
        "schema": {
          "type": "object",
          "properties": {
            "department": {
              "type": "string",
              "enum": ["billing", "technical", "shipping", "other"]
            }
          },
          "required": ["department"],
          "additionalProperties": false
        }
      }
    }
  }'

Và yêu cầu Decisions cho cùng một phiếu hỗ trợ:

curl https://api.openai.com/v1/decisions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "input": "I was charged twice for my order.",
    "questions": [
      {
        "type": "choice",
        "name": "department",
        "instructions": "Which department should handle this ticket?",
        "choices": [
          {"value": "billing", "description": "Charges, refunds, invoices"},
          {"value": "technical", "description": "Bugs, errors, login problems"},
          {"value": "shipping", "description": "Delivery, tracking, returns in transit"},
          {"value": "other", "description": "Anything else"}
        ]
      }
    ]
  }'

Phần thân yêu cầu Responses mang câu hỏi bên trong lời nhắc và các câu trả lời cho phép bên trong một lược đồ. Phần thân yêu cầu Decisions mang phiếu hỗ trợ thô dưới dạng input và câu hỏi dưới dạng choice với 2 đến 255 giá trị duy nhất; nó không có các trường temperature, reasoning, stream hoặc text, vì không có trường nào tồn tại trên điểm cuối đó.

Mỗi loại trả về gì

Responses trả về văn bản được tạo. Với một lược đồ nghiêm ngặt, văn bản đó là JSON hợp lệ, vì vậy sau khi phân tích cú pháp, bạn sẽ có một nhãn:

{"department": "billing"}

Nếu bạn muốn một số độ tin cậy, bạn thêm một trường vào lược đồ và yêu cầu mô hình viết một số; những gì trả về là văn bản được tạo trông giống như một xác suất, chứ không phải một giá trị được đo lường.

Decisions trả về nhãn cộng với phân phối đằng sau nó. Các số liệu dưới đây là ví dụ hướng dẫn của OpenAI cho đầu vào chính xác này:

{
  "model": "gpt-6-luna",
  "answers": [
    {
      "type": "choice",
      "name": "department",
      "choice": "billing",
      "probabilities": [
        {"value": "billing", "probability": 0.95},
        {"value": "technical", "probability": 0.02},
        {"value": "shipping", "probability": 0.01},
        {"value": "other", "probability": 0.02}
      ],
      "confidence": 0.93
    }
  ]
}

Một đối tượng usage theo sau answers (hiển thị trong phần chi phí). Không cần bộ phân tích cú pháp, không cần biểu thức chính quy. Trường confidence là ngưỡng bạn đặt, và hướng dẫn của OpenAI là đặt ngưỡng đó từ các ví dụ đã được gắn nhãn của riêng bạn, vì không có số liệu chính xác hoặc hiệu chuẩn nào được công bố. Một lời từ chối đến dưới dạng {"type": "refusal", "name": "department"}; các câu hỏi khác trong cùng một yêu cầu vẫn nhận được câu trả lời.

Chi phí: tính toán một lần

Cả hai điểm cuối đều tính phí đầu vào Luna là 0,10 đô la cho mỗi 1 triệu token trong ngữ cảnh ngắn (tối đa 272K token đầu vào). Sự khác biệt nằm ở đầu ra. Lấy một phiếu hỗ trợ 500 token với 1.000.000 yêu cầu:

Vì vậy, khoảng cách rõ ràng chỉ trên nhãn là 50 đô la so với 70 đô la. Khoảng cách lớn hơn là ở phần lý luận, và cách trung thực nhất để nói là Decisions không tính phí bất kỳ token đầu ra nào; cả hai bộ đếm đều hiển thị 0 trong ví dụ tham chiếu của OpenAI:

"usage": {
  "input_tokens": 42,
  "input_tokens_details": {"cached_tokens": 0, "cache_write_tokens": 0},
  "output_tokens": 0,
  "output_tokens_details": {"reasoning_tokens": 0},
  "total_tokens": 42
}

Hai lưu ý. Responses có những đòn bẩy mà Decisions không có: reasoning.effort giảm xuống none trên Luna, lưu vào bộ nhớ đệm lời nhắc giảm đầu vào lặp lại xuống còn 0,01 đô la cho mỗi 1 triệu, và API Batch giảm một nửa mức giá tiêu chuẩn. Không có điều nào trong số đó được ghi tài liệu cho Decisions. Và đầu vào ngữ cảnh dài (hơn 272K token) sẽ nhân đôi tỷ lệ đầu vào trên cả hai, vì vậy một yêu cầu Decisions dài là 0,20 đô la cho mỗi 1 triệu đầu vào (được lấy từ hệ số nhân của trang giá); xử lý khu vực cộng thêm 10%.

Tốc độ

OpenAI cho biết API Decisions nhanh hơn khoảng 10 lần so với API Responses. Không có con số độ trễ tuyệt đối nào được công bố, vì vậy hãy coi tuyên bố này là một định hướng hơn là một ngân sách và đo lường p50 và p95 của riêng bạn trước khi bạn di chuyển một luồng hoạt động. Một nhà phát triển trên diễn đàn OpenAI đã báo cáo rằng các quyết định đầu vào hình ảnh trả về trong khoảng 0,8 giây trên kết nối chậm; đó là một giai thoại, không phải một điểm chuẩn. Hướng này có vẻ hợp lý: Responses tạo ra các token, bao gồm cả lý luận, và bạn phải chờ token cuối cùng.

Quy tắc quyết định

Chọn Decisions khi đầu ra là một trong các trường hợp sau:

Chọn Responses khi bất kỳ điều nào sau đây là đúng:

Nhiều pipeline muốn cả hai: Decisions để phân loại và kiểm soát, Responses để viết câu trả lời.

Di chuyển trình phân loại từ Responses sang Decisions

Nếu bạn đã định tuyến phiếu hỗ trợ với lược đồ enum nghiêm ngặt, việc di chuyển là nhỏ:

  1. Giữ nguyên input, chỉ còn phiếu hỗ trợ thô; câu hỏi chuyển ra khỏi lời nhắc.
  2. Đặt câu hỏi vào questions dưới dạng choice, với các giá trị enum của bạn là choices[].value và mỗi giá trị có một description một dòng. Các giá trị có thể là chuỗi hoặc boolean, và true và "true" là khác biệt.
  3. Xóa bộ phân tích cú pháp. Đọc answers[0].choice và answers[0].confidence; các câu trả lời đến theo thứ tự bạn đã hỏi và phản ánh name bạn đã đặt. Sau đó đặt ngưỡng từ một mẫu đã được gắn nhãn.
  4. Kiểm tra đường dẫn đầu vào. Decisions chỉ chấp nhận tin nhắn người dùng: không có vai trò hệ thống hoặc trợ lý, không có lệnh gọi hàm, không có tệp, không có file_id. Gộp các quy tắc lời nhắc hệ thống vào instructions hoặc mô tả lựa chọn. Hình ảnh được đưa vào dưới dạng URL dữ liệu base64; tài liệu tham khảo cũng liệt kê các URL HTTP(S) công khai, vì vậy hãy kiểm tra hình ảnh được lưu trữ trước.
  5. Tách các chuỗi. “Phân loại, sau đó nếu là thanh toán thì quyết định tính đủ điều kiện hoàn tiền” trở thành hai yêu cầu.

Kiểm tra cả hai trong một dự án Apidog

Cách rõ ràng nhất để quyết định là chạy cả hai yêu cầu đối với cùng các phiếu hỗ trợ đã được gắn nhãn và so sánh. Trong Apidog, lưu khóa một lần dưới dạng một biến môi trường và tham chiếu {{OPENAI_API_KEY}} trong tiêu đề Authorization: Bearer của cả hai yêu cầu đã lưu, để không có khóa gốc nào xuất hiện trong một phần thân đã lưu.

Cung cấp cho cả hai yêu cầu cùng một khẳng định: phòng ban bằng billing. Trên yêu cầu Decisions, đó là một khẳng định JSONPath trên $.answers[0].choice, với $.answers[0].confidence lớn hơn 0.8 và $.usage.output_tokens bằng 0 bên cạnh. Trên yêu cầu Responses, nhãn nằm bên trong văn bản được tạo, vì vậy một tập lệnh ngắn sau yêu cầu sẽ phân tích cú pháp nó thành một biến mà khẳng định kiểm tra. Sau đó so sánh usage trên hai phản hồi: Decisions báo cáo không có token đầu ra và lý luận, Responses thì không.

Biến cặp này thành một kịch bản kiểm tra dựa trên dữ liệu qua một tệp CSV chứa văn bản phiếu hỗ trợ và phòng ban dự kiến, và quá trình chạy sẽ cho thấy mỗi điểm cuối định tuyến bao nhiêu phiếu hỗ trợ đúng cách trên ngưỡng tin cậy của bạn. Giả lập mảng answers để bộ định tuyến có thể được xây dựng trước, như trong phản hồi giả lập có điều kiện, và chạy kịch bản trong CI với Apidog CLI để một thay đổi về từ ngữ hoặc bí danh mô hình sẽ khiến kiểm tra thất bại thay vì định tuyến sai phiếu hỗ trợ. Xem kiểm tra ứng dụng LLM để biết thêm các mẫu khẳng định.

Câu hỏi thường gặp

API Responses có thể trả về xác suất như Decisions không? Không, không phải dưới dạng giá trị đo lường. Một trường confidence trong lược đồ JSON sẽ cho bạn một con số do mô hình viết, đó là văn bản được tạo. Decisions trả về xác suất trên các tùy chọn bạn cung cấp từ chính điểm cuối.

Tôi có thể sử dụng một mô hình khác ngoài GPT-6 Luna trên Decisions không? Không. Hướng dẫn nêu rõ gpt-6-luna là mô hình duy nhất hiện có. Xem tổng quan về GPT-6 Luna của chúng tôi.

Decisions khác với Jev của TypeSafe như thế nào? Cả hai đều trả về các câu trả lời có kiểu dữ liệu với xác suất và chỉ tính phí đầu vào; chúng khác nhau về giá, đầu vào và hình dạng phản hồi. Xem API Decisions so với Jev.

API Decisions có miễn phí không? Không. Nó tính phí 0,10 đô la cho mỗi 1 triệu token đầu vào, không có cấp miễn phí nào cho Decisions được ghi tài liệu. Để biết các cách miễn phí đến Luna, hãy xem cách sử dụng GPT-6 Luna miễn phí.

Bước tiếp theo

Lấy một trình phân loại bạn đang chạy qua Responses ngày nay, xây dựng lại nó thành một câu hỏi choice, và chạy cả hai trên 50 phiếu hỗ trợ đã được gắn nhãn trong Apidog với cùng một khẳng định. Nếu ngưỡng độ tin cậy được giữ vững và mức sử dụng cho thấy không có token đầu ra, bạn đã có câu trả lời. Tải Apidog, sau đó làm theo cách sử dụng API Decisions để thực hiện cuộc gọi đầu tiên và hướng dẫn kiểm tra đầy đủ.

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API