OpenAI: GPT-4o (batch)
GPT-4o kết hợp hiểu văn bản và ảnh với viết, lập trình, Structured Outputs và công cụ ứng dụng. Hãy dùng mô hình để xây dựng phản hồi dựa trên bằng chứng, diễn giải nội dung hình ảnh hoặc trả về các trường xác định từ tập hợp nguồn lớn.
Về mô hình
Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.
GPT-4o là mô hình GPT đa dụng của OpenAI cho hiểu văn bản và ảnh, viết và công việc ứng dụng. Chữ “o” có nghĩa là “omni”, còn mô hình được tài liệu hóa này nhận văn bản cùng ảnh và trả về văn bản, bao gồm Structured Outputs. Yêu cầu thực tế có thể kết hợp chỉ dẫn bằng văn bản với ảnh chụp, ảnh chụp màn hình hoặc trang tài liệu, rồi yêu cầu lời giải thích rõ ràng, sản phẩm đã chỉnh sửa hoặc các trường xác định cho giai đoạn khác của ứng dụng.
Với báo cáo, hãy cung cấp tài liệu nguồn và quyết định mà báo cáo cần hỗ trợ. Hãy xác định ngày tháng, đơn vị và nhãn bằng chứng liên quan, rồi yêu cầu phép so sánh phân biệt quan sát, giả định và thông tin còn thiếu. Với nhiệm vụ hình ảnh, hãy chỉ rõ vật thể, biểu đồ hoặc trạng thái giao diện quan trọng và đưa vào ngữ cảnh xung quanh. Với thay đổi mã, hãy cung cấp mã bị ảnh hưởng, hành vi mong muốn và những ràng buộc phải giữ nguyên. Đây là các cách cụ thể dùng năng lực văn bản và ảnh của mô hình, thay vì trông chờ prompt ngầm xác định toàn bộ nhiệm vụ.
Hồ sơ GPT-4o hiện tại của OpenAI liệt kê cửa sổ ngữ cảnh 128,000 token, đầu ra tối đa 16,384 token và mốc kiến thức ngày 1 tháng Mười năm 2023. Nhà sản xuất liệt kê riêng nhiều bản GPT-4o có ngày cụ thể. Hội thoại, tài liệu đầu vào và câu trả lời được tạo dùng chung hạn mức ngữ cảnh, vì vậy tập hợp tài liệu lớn vẫn cần được tổ chức và chừa chỗ cho sản phẩm cuối. Dữ kiện có thể thay đổi hoặc đến từ hệ thống riêng cần được cung cấp trực tiếp hoặc lấy qua công cụ được cấu hình rõ ràng.
Hướng dẫn hình ảnh nhận PNG, JPEG, WebP và GIF không động. GPT-4o hỗ trợ các mức chi tiết ảnh low, high và auto; high cùng auto chia ảnh thành các ô để xử lý. Hãy phóng to nhãn nhỏ, giữ chữ đúng chiều và bảo toàn chú giải hoặc sơ đồ xung quanh khi diễn giải biểu đồ. Giới hạn được tài liệu hóa gồm định vị không gian chính xác, đếm vật thể gần đúng, một số chữ viết không phải Latinh và ảnh toàn cảnh hoặc góc nhìn fisheye. Mô hình cũng có thể mô tả ảnh sai, vì vậy hãy giữ nguồn và yêu cầu những quan sát cụ thể làm cơ sở cho cách diễn giải. Trong quy trình hình ảnh được OpenAI tài liệu hóa, tổng dung lượng dữ liệu của yêu cầu bị giới hạn ở 512 MB và một yêu cầu có thể chứa tối đa 1,500 ảnh; ảnh và văn bản cũng phải nằm trong ngữ cảnh của mô hình.
Quy trình đầu vào tệp của OpenAI cung cấp cho mô hình có khả năng hiểu ảnh cả văn bản được trích xuất và ảnh từng trang PDF. Tài liệu văn phòng không phải PDF cung cấp văn bản được trích xuất thay vì biểu đồ nhúng, còn bảng tính được bổ sung dữ liệu từ tối đa 1,000 hàng đầu mỗi trang tính. Mỗi tệp phải dưới 50 MB, với tổng giới hạn 50 MB cho một yêu cầu. Chat Completions hỗ trợ phần tệp PDF; quy trình Responses được tài liệu hóa nhận thêm các định dạng tệp. Hãy chọn biểu diễn PDF khi độ trung thực hình ảnh quan trọng và giữ mã định danh nguồn hiện rõ trong kết quả.
Truyền phát có thể trả về phản hồi trong lúc nó được tạo. Structured Outputs ràng buộc phản hồi hoàn chỉnh theo tập con được hỗ trợ của JSON Schema, hữu ích cho trích xuất tài liệu hoặc đối tượng ứng dụng có các trường xác định. Chế độ JSON chỉ giải quyết tính hợp lệ của JSON. Hãy xác định kiểu mong đợi, giá trị được phép và cách xử lý khi thiếu bằng chứng, rồi xử lý riêng các trường hợp từ chối rõ ràng hoặc phản hồi chưa hoàn chỉnh. Schema không xác lập giá trị có đúng về mặt dữ kiện hay không, vì vậy các trường được yêu cầu cần truy nguyên được tới tài liệu đã cung cấp.
Nhà sản xuất hỗ trợ gọi hàm, tìm kiếm web, tìm kiếm tệp, trình thông dịch mã và kết nối MCP. Hàm tùy chỉnh cần mô tả có ý nghĩa cùng schema đối số; ứng dụng thực hiện hành động được yêu cầu và trả về kết quả cho bước tiếp theo của mô hình. GPT-4o cũng có thể điều hướng công cụ tạo ảnh riêng trong quy trình Responses được cấu hình. Ảnh do công cụ tạo ra là sản phẩm riêng, còn phản hồi gốc được tài liệu hóa của GPT-4o là văn bản. Lời giải thích cuối của tác tử cần dùng những quan sát đã thực sự được lấy hoặc tính toán, thay vì coi lời gọi công cụ mới được đề xuất là thao tác đã thực hiện.
Predicted Outputs có trên GPT-4o khi tạo lại văn bản hoặc mã phần lớn đã biết với những thay đổi nhỏ. Hãy cung cấp nội dung hiện có và sửa đổi chính xác, rồi kiểm tra sản phẩm trả về. Quy trình này chỉ hỗ trợ văn bản, không kết hợp với gọi hàm và loại trừ logprobs, max_completion_tokens cùng một số tùy chọn khác. Yêu cầu dùng công cụ là lựa chọn riêng khi câu trả lời phụ thuộc vào thông tin mới từ thao tác bên ngoài.
OpenAI tài liệu hóa tinh chỉnh mô hình cho GPT-4o, và hướng dẫn tối ưu chỉ rõ bản ngày 6 tháng Tám năm 2024 cho tinh chỉnh khả năng hình ảnh bằng các ví dụ ảnh. Quy trình tùy biến riêng cho bản đó tách biệt với yêu cầu thông thường tới bí danh mô hình. Với viết, phân tích hoặc trích xuất hằng ngày, hãy bắt đầu bằng yêu cầu hữu ích và ví dụ về đầu ra mong muốn. Yêu cầu tiếp theo có thể làm rõ một dữ kiện còn thiếu, sửa một trường hoặc tinh chỉnh cùng sản phẩm, đồng thời giữ nguyên bằng chứng và ràng buộc của nhiệm vụ.
Ailoot Ultra · Xử lý hàng loạt POST /v1/batches openai/gpt-4o:batch
openai/gpt-4o:batchBắt đầu
GPT-4o kết hợp hiểu văn bản và ảnh với viết, lập trình, Structured Outputs và công cụ ứng dụng. Hãy dùng mô hình để xây dựng phản hồi dựa trên bằng chứng, diễn giải nội dung hình ảnh hoặc trả về các trường xác định từ tập hợp nguồn lớn.
- Đầu vào được chấp nhận
- Văn bản
- Kết quả
- Văn bản
Có trên Ailoot · đầu vào & phương thức
Ailoot Ultra · Xử lý hàng loạt POST /v1/batches
- Đầu vào
text- Đầu ra
text- Định dạng đầu ra
- JSON nội tuyến tại results[].response.body
| Trường | Loại | Yêu cầu | Giá trị & giới hạn | Mặc định |
|---|---|---|---|---|
Trườngendpoint | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn /v1/chat/completions | Mặc định— |
Trườngmodel | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn openai/gpt-4o:batch | Mặc định— |
Trườngrequests | Loạibatch_item[] | Yêu cầuBắt buộc | Giá trị & giới hạn Số mục tối thiểu: 1 | Mặc định— |
Trườngrequests[].custom_id | Loạistring | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngrequests[].body.messages | Loạimessage[] | Yêu cầuBắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngcompletion_window | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn 24h | Mặc định— |
Trườngprovider | Loạiobject|null | Yêu cầuKhông bắt buộc | Giá trị & giới hạn | Mặc định— |
Trườngrequests[].body.model | Loạistring | Yêu cầuKhông bắt buộc | Giá trị & giới hạn openai/gpt-4o:batch, openai/gpt-4o | Mặc định— |
Trườngprovider.only | Loạistring[] | Yêu cầuKhông bắt buộc | Giá trị & giới hạn openai | Mặc định— |
Trườngprovider.allow_fallbacks | Loạiboolean|null | Yêu cầuKhông bắt buộc | Giá trị & giới hạn false, null | Mặc định— |
Tham số phương thức và vòng đời
| Tham số | Hợp đồng |
|---|---|
Tham sốcontent_type | Hợp đồngapplication/json |
Tham sốrequired | Hợp đồngendpoint, model, requests |
Tham sốmaterial_types | Hợp đồngtext |
Tham sốrepresentation | Hợp đồngrequests[] nội tuyến; mỗi phần tử có custom_id và body |
Tham sốrequest_endpoint_profile | Hợp đồng/v1/chat/completions |
Tham sốfile_material | Hợp đồngBên gọi có thể đọc dữ liệu JSONL UTF-8 thực tế trên máy cục bộ vào requests[]. Không sử dụng mục đích tải lên, input_file_id hay tham chiếu tệp. Nếu thiếu tài liệu của khách hàng hoặc tài liệu rỗng, dừng khâu chuẩn bị trước POST. |
Tham sốserialization_order | Hợp đồngendpoint, model, provider (nếu được cung cấp), completion_window (nếu được cung cấp), requests ở cuối |
Tham sốoptional_controls | Hợp đồngprovider.only, provider.allow_fallbacks, completion_window |
Tham sốschema_scope | Hợp đồngPhần thân yêu cầu Chat Completions dạng văn bản trong cấu trúc Batch nội tuyến được mô tả trong tài liệu. |
Vòng đời: asynchronous
GET /v1/batches/{operation_id} · response.id thực tế từ phản hồi tạo gốc; cùng người dùng/khóa/nhóm
Bảng giá
Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.
- Chế độ nhanh
- Chưa chỉ định Khi chọn chế độ nhanh
- Chế độ Flex
- Chưa chỉ định Khi chọn chế độ flex
- Mức độ suy luận tối đa
- Chưa chỉ định Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa
- Giá lưu đệm tường minh
- Chưa bật Khi yêu cầu lưu đệm tường minh
Mức phí Ailoot
Giá theo cấu hình
Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.
| Cấu hình | Biểu mức phí | Token ngữ cảnh, lớn hơn | Token ngữ cảnh, tối đa và bao gồm | Phí |
|---|---|---|---|---|
| Cấu hìnhGiá cơ sở cho token | Biểu mức phíMức phí cơ bản | Token ngữ cảnh, lớn hơn— | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào $0.0025 / 1K token Đầu ra · Token đầu ra $0.01 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.00125 / 1K token Đầu vào · Ghi bộ nhớ đệm — / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
| Cấu hìnhBậc 1 theo độ dài yêu cầu | Biểu mức phí— | Token ngữ cảnh, lớn hơn0 | Token ngữ cảnh, tối đa và bao gồmKhông có giới hạn trên | Phí Đầu vào · Token đầu vào $0.0025 / 1K token Đầu ra · Token đầu ra $0.01 / 1K token Đầu vào · Đọc bộ nhớ đệm $0.00125 / 1K token Đầu vào · Ghi bộ nhớ đệm — / 1K token Đầu vào · Ghi bộ nhớ đệm, 1 giờ — / 1K token |
Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. Cách hoạt động của cơ chế tạm giữ và quyết toán →
Ví dụ yêu cầu
Ailoot Ultra · Xử lý hàng loạt
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"openai/gpt-4o:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
-H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
--data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen
def prepare_requests(customer_path):
path = Path(customer_path)
if not path.is_file(): raise ValueError("Customer JSONL file is missing")
items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
if not items: raise ValueError("Customer JSONL contains no requests")
ids = set()
for item in items:
if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
cid = item["custom_id"]
if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
ids.add(cid)
if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
supplied_model = item["body"].get("model")
if supplied_model is not None and supplied_model not in ['openai/gpt-4o:batch', 'openai/gpt-4o']: raise ValueError("body.model must be an exact documented caller or wire ID")
return {"endpoint":"/v1/chat/completions", "model":"openai/gpt-4o:batch", "requests":items}
if __name__ == "__main__":
material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
body = prepare_requests(material)
key = os.environ.get("AILOOT_API_KEY", "")
if not key: raise SystemExit("Set AILOOT_API_KEY")
request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
with urlopen(request) as response:
raw = response.read()
Path("batch-create-response.json").write_bytes(raw)
print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.
Nhận và lưu kết quả
Ailoot Ultra · Xử lý hàng loạt
JSON nội tuyến tại results[].response.body
GET /v1/batches/{operation_id}
Kiểm tra trạng thái tác vụ
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
-H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Lưu tất cả kết quả đã hoàn tất
Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.
Giữ lại toàn bộ JSON trạng thái gốc, mọi kết quả/custom_id và toàn bộ phần thân phản hồi hoặc lỗi. Lưu results[] đã hoàn tất dưới dạng JSONL mà không lọc.
Nếu cần kiểm tra phản hồi gốc
Giữ nguyên ID thao tác gốc. Phản hồi 503 result_pending_check có X-Should-Retry:false; tuyệt đối không gửi lại lô gốc có trạng thái chưa xác định.
Trường phản hồi
| Trường | Loại |
|---|---|
Trườngresults[].custom_id | Loạistring |
Trườngresults[].response.body.choices[].message.content | Loạistring|null |
Trườngresults[].error | Loạiobject|null |
Trườngusage | Loạiobject|null |
Trườngid | Loạistring |
Trườngmodel | Loạistring |
Trườngendpoint | Loạistring |
Trườngstatus | Loạistring |
Trườngrequest_counts | Loạiobject |
Trườngresults[].id | Loạistring |
Trườngresults[].response.status_code | Loạiinteger |
Trườngresults[].response.request_id | Loạistring |
Lỗi và bước tiếp theo
| Phản hồi | Điều kiện | Bước tiếp theo |
|---|---|---|
Phản hồi400 · invalid_request_error | Điều kiệnCấu trúc nội tuyến không đúng tài liệu, có khóa trùng, định danh phần tử không hợp lệ hoặc xung đột với khả năng đã cấu hình của mô hình. | Bước tiếp theoSửa các trường được chỉ ra trước khi gửi bất kỳ yêu cầu mới nào. |
Phản hồi401 · authentication_error | Điều kiệnKhóa API không hợp lệ. | Bước tiếp theoSử dụng khóa Ailoot đã được cấp quyền. |
Phản hồi403 · permission_error | Điều kiệnNhóm xử lý hàng loạt không khả dụng. | Bước tiếp theoKiểm tra quyền sử dụng của khóa/nhóm. |
Phản hồi422 · invalid_request_error | Điều kiệnXử lý hàng loạt tính phí từ số dư; yêu cầu tạo qua gói thuê bao bị từ chối. | Bước tiếp theoSử dụng nhóm đã được cấp quyền và tính phí từ số dư. |
Phản hồi422 · price_unavailable | Điều kiệnKhông thể báo giá cho dữ liệu đầu vào của lô. | Bước tiếp theoGiữ lại phản hồi; sử dụng dữ liệu đầu vào của họ API được mô tả trong tài liệu. |
Phản hồi402 · billing_error | Điều kiệnKhoản dự trữ cho xử lý hàng loạt không khả dụng. | Bước tiếp theoKhắc phục vấn đề về điều kiện tiếp nhận trước khi gửi yêu cầu mới. |
Phản hồi503 · price_unavailable | Điều kiệnGiá phương thức xử lý hàng loạt/đơn giá gốc không khả dụng. | Bước tiếp theoGiữ lại phản hồi; không thay thế đơn giá. |
Phản hồi503 · api_error | Điều kiệnTuyến cụ thể tới nhà cung cấp không khả dụng. | Bước tiếp theoGiữ lại phản hồi để sửa tuyến. |
Phản hồi503 · result_pending_check | Điều kiệnKết quả gốc cần được kiểm tra; X-Should-Retry:false. | Bước tiếp theoGiữ lại operation_id/id gốc và truy xuất trạng thái của thao tác đó; tuyệt đối không lặp lại POST gốc. |
Phản hồi404 · not_found | Điều kiệnKhông tìm thấy thao tác kiểm tra trạng thái lô hoặc thao tác thuộc một danh tính khác. | Bước tiếp theoSử dụng đúng id gốc và cùng người dùng/khóa/nhóm. |
Bí danh
Bí danh mô hình
Ailoot Ultra openai/gpt-4o:batch
Bí danh đường dẫn phương thức
Dùng các đường dẫn phương thức hiển thị ở trên.
ID gọi liên quan
FAQ · OpenAI: GPT-4o (batch)
- Có những đầu vào và kết quả nào?
POST /v1/batches·openai/gpt-4o:batch:text→text- Yêu cầu sử dụng những trường nào?
POST /v1/batches·openai/gpt-4o:batch:endpoint,model,requests,completion_window,provider- Áp dụng những giới hạn nào?
POST /v1/batches·openai/gpt-4o:batch:requests.min_items:1