ai newsMo., 2. Nov.
EilmeldungAnthropic verzwölffacht den Umsatz, macht aber 23 Milliarden Dollar Verlust

Claude Batch API: Halbe Kosten für Massenabfragen

Claude Batch API reduziert Kosten für Massenabfragen um 50 Prozent

dev.toMontag 08:35 · 02.11.DE9 Min. Lesezeit
Bild: dev.to

Veröffentlicht am 2. November • Ursprünglich veröffentlicht auf apidog.com

Kurze Antwort: Die Claude Batch API verarbeitet Messages-API-Anfragen asynchron mit einer Ermäßigung von 50 Prozent auf sowohl Eingabe- als auch Ausgabe-Tokens. Sie senden bis zu 100.000 Anfragen (oder 256 MB) in einem einzigen Aufruf, pollen, bis der Batch abgeschlossen ist, und lesen dann die Ergebnisse, die über Ihre eigene custom_id verschlüsselt sind. Die meisten Batches sind innerhalb einer Stunde abgeschlossen, das harte Limit liegt bei 24 Stunden.

Sie haben 40.000 Support-Tickets zu klassifizieren, oder einen Produktkatalog neu zu formulieren, oder ein Monat an Protokollen zusammenzufassen. Keines davon ist dringend. Jeder einzelne Aufruf wird trotzdem zum vollen Preis abgerechnet, wenn Sie sie einzeln senden, und Sie verlieren einen ganzen Nachmittag damit, Wiederholungsversuche wegen überschrittener Rate-Limits zu überwachen.

Genau für diese Art von Arbeit wurde die Claude Batch API entwickelt. Sie übergeben Anthropic eine Liste von Anfragen, gehen weg und kommen zurück zu einer Ergebnisdatei, die nur die Hälfte dessen kostet, was die synchronen Aufrufe derselben Befehle kosten würden. Keine eigene Warteschlange, kein Feintuning der Nebenläufigkeit, keine Backoff-Logik.

Dieser Leitfaden stellt vor, was der Batch-Endpunkt tut, was er kostet, wie man einen Job einsendet und einsammelt, und wie Ihr Coding-Agent den gesamten Workflow mit der Apidog CLI testet, bevor Sie ihn auf echte Daten loslassen.

Die Claude Batch API ist ein asynchroner Endpunkt unter /v1/messages/batches, der mehrere Messages-API-Anfragen in einer einzigen Übermittlung entgegennimmt und deren Ergebnisse zurückgibt, sobald die Verarbeitung abgeschlossen ist. Sie tauscht Latenz gegen eine Ermäßigung von 50 Prozent ein. Anthropic dokumentiert sie im Abschnitt batch processing.

Die Einschränkungen, um die Sie herum planen müssen:

Derselbe Endpunkt ist genau das, worüber Menschen stolpern. Ein Batch ist ein Beutel, keine Warteschlange.

Die Ermäßigung beträgt pauschal 50 Prozent auf Eingabe- und Ausgabe-Tokens, für jedes Modell, das die jeweilige Anfrage angibt. Sie können mehrere Modelle in einem Batch mischen, sodass ein billiger Klassifikator und ein teurer Zusammenfasser zusammengehen können.

Lesen Sie die Haiku-Zeilen genau. Haiku 5.5 wird nach Prompt-Größe abgerechnet, sodass ein Prompt über 100.000 Tokens zum Fünffachen des Kurz-Prompt-Preises berechnet wird, unabhängig von der Batch-Ermäßigung. Kalkulieren Sie Haiku-Aufgaben mit langem Kontext mit 0,25 Dollar / 1,25 Dollar, nicht mit 0,05 Dollar / 0,25 Dollar. Prüfen Sie die Preisseite von Anthropic, bevor Sie auf Basis dieser Zahlen planen, und lesen Sie unsere Analyse, wohin die Claude-API-Kosten sich entwickeln, falls die Rechnung der Grund ist, warum Sie hier sind.

Die Batch-Preise addieren sich mit dem Prompt-Caching, und genau dort liegt die eigentliche Ersparnis. Dazu später mehr.

Installieren Sie das offizielle Python-SDK und erstellen Sie eine Liste von Anfragen. Jede Anfrage trägt eine von Ihnen gewählte custom_id und ein params-Objekt, das genau wie ein normaler messages.create()-Aufruf aussieht.

import anthropic from anthropic.types.message_create_params import MessageCreateParamsNonStreaming from anthropic.types.messages.batch_create_params import Request client = anthropic. Anthropic () tickets = [ " Card declined three times, support chat timed out. ", " Love the new dashboard, the export button is hidden though.

", " Webhook stopped firing after the 2.4 upgrade. ", ] batch = client. messages. batches. create ( requests = [ Request ( custom_id = f " ticket- { i } ", params = MessageCreateParamsNonStreaming ( model = " claude-haiku-5-5 ", max_tokens = 1024, output_config = { " effort ": " low " }, messages = [{ " role ": " user ", " content ": f " Label this ticket billing, bug, or praise. One word. \n\n { text } ", }], ), ) for i, text in enumerate ( tickets ) ] ) print ( batch. id, batch. processing_status ) Vollbildmodus aktivieren Vollbildmodus verlassen Geben Sie der custom_id eine Bedeutung.

Ein Primärschlüssel in der Datenbank oder ein Dateipfad erspart Ihnen späteres Zusammenführen, und es ist das einzige, was ein Ergebnis mit seinem Eingabe verknüpft.

Wenn Sie reines HTTP bevorzugen: derselbe Payload geht per POST an https://api.anthropic.com/v1/messages/batches mit Ihren Headern x-api-key und anthropic-version. Die Referenzdokumentation create a message batch enthält das vollständige Schema.

Rufen Sie den Batch ab, bis processing_status ended anzeigt, und streamen Sie dann die Ergebnisse. Jedes Ergebnis trägt die von Ihnen gesetzte custom_id und einen result.type: succeeded, errored, canceled oder expired.

import time while True: batch = client. messages. batches. retrieve ( batch. id ) if batch. processing_status == " ended ": break print ( " still working: ", batch. request_counts. processing ) time. sleep ( 30 ) labels, retry = {}, [] for result in client. messages. batches. results ( batch. id ): if result. result. type == " succeeded ": msg = result. result. message labels [ result. custom_id ] = next ( b. text for b in msg. content if b. type == " text " ) elif result. result. type == " errored ": retry. append ( result. custom_id ) print ( f " { len ( labels ) } labeled, { len ( retry ) } need another pass " ) Vollbildmodus aktivieren Vollbildmodus verlassen Zwei Fehlerarten sind getrennt zu behandeln. Ein invalid_request-Fehler bedeutet, dass der Anfragekörper fehlerhaft ist; korrigieren Sie ihn, bevor Sie erneut senden. Alles andere ist serverseitig und kann unverändert erneut versucht werden.

Ein expired-Ergebnis bedeutet, dass das 24-Stunden-Fenster geschlossen wurde, bevor die Anfrage lief; senden Sie auch diese erneut.

Pollen Sie im Rhythmus von 30 bis 60 Sekunden. Das Hämmern auf den retrieve-Endpunkt jede Sekunde bringt nichts und zählt zu Ihrem Claude-API-Rate-Limit.

Der größte Nutzen entsteht durch die Kombination beider Ermäßigungen. Wenn alle Anfragen in Ihrem Batch ein langes gemeinsames Präfix teilen, eine Stilvorgabe, eine Taxonomie, einen 40-seitigen Vertrag, markieren Sie dieses Präfix mit cache_control und senden dasselbe markierte Präfix über alle 10.000 Anfragen.

shared_system = [ { " type ": " text ", " text ": " You are a support triage analyst. " }, { " type ": " text ", " text ": taxonomy_document, # thousands of tokens, identical every time " cache_control ": { " type ": " ephemeral " }, }, ] Vollbildmodus aktivieren Vollbildmodus verlassen Setzen Sie diesen System-Block auf jede Request im Batch. Jede Anfrage, deren Präfix byteweise mit einem gültigen Cache-Eintrag übereinstimmt, wird für dieses Präfix zum Cache-Lese-Preis abgerechnet, und die 50-Prozent-Batch-Ermäßigung gilt für Cache-Lesen und -Schreiben gleichermaßen. Planen Sie nicht mit einer perfekten Trefferquote: Ein Batch verarbeitet seine Anfragen gleichzeitig statt sequenziell, daher ist ein Cache-Treffer innerhalb eines Batches nur best effort.

Anthropics Leitfaden zum Prompt-Caching erläutert die Präfix-Regeln: Jedes Byte, das sich vor Ihrem Haltepunkt änd, invalidiert alles danach, also halten Sie Zeitstempel und per Eintrag variierenden Text hinter dem gecachten Block.

Bevor Sie Geld für 100.000 echte Anfragen ausgeben, wollen Sie einen Regressionstest des Batch-Lebenszyklus: erstellen, abrufen, Ergebnisse. Das von Hand in einer GUI zu schreiben ist langsam. Lassen Sie es Ihren Coding-Agent mit der Apidog CLI erledigen.

npm install -g apidog-cli@latest apidog auth login --with-token <YOUR_TOKEN> apidog skill install # pick Claude Code when prompted Vollbildmodus aktivieren Vollbildmodus verlassen Dann ein Prompt für Claude Code:

In Apidog project 4820193, create a test case for POST https://api.anthropic.com/v1/messages/batches that submits two Haiku 5.5 requests with custom_id ticket-0 and ticket-1, asserts the response has an id and processing_status, then polls GET /v1/messages/batches/{id} until processing_status is ended. Run it against the anthropic-staging environment and summarize failures. Vollbildmodus aktivieren Vollbildmodus verlassen Der Agent liest das Payload-Schema, validiert sein eigenes JSON und legt dann den Testfall an und führt ihn aus:

apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file batch-case.json apidog test-case create --project 4820193 --file batch-case.json apidog run --test-case 77214 --project 4820193 -e 992301 -r cli,json Vollbildmodus aktivieren Vollbildmodus verlassen Ihr API-Schlüssel liegt in einer Apidog-Umgebungsvariablen, gelangt also nie in den Prompt oder das Repository. Wechseln Sie das Reporting-Format auf -r junit, und derselbe Befehl läuft bei jedem Merge in der CI; das ist das Setup in unserem Apidog-CLI-Pipeline-Leitfaden. Falls Sie die CLI noch nicht mit Ihrem Agent verbunden haben, beginnen Sie mit der Nutzung der Apidog CLI in Claude Code.

Ein paar Dinge funktionieren nicht. Der schnelle Modus ist auf der Batch API nicht verfügbar, serverseitige Fallback-Mechanismen werden dort abgelehnt, und auf Claude Opus 5.5 und Claude Sonnet 5.5 gibt das Erzwingen von tool_choice als any oder tool einen 400-Fehler innerhalb eines Batches zurück, genau wie beim normalen Aufruf. Nutzen Sie stattdessen tool_choice: auto mit strict: true.

Wenn Sie Multi-Provider-Infrastruktur betreiben, existiert dasselbe Modell anderswo: siehe die OpenAI Batch API und den Batch-Modus der Gemini API. Die Form ist anders, die Ökonomie nicht.

Es ist ein asynchroner Endpunkt, der standardmäßige Messages-API-Anfragen in großen Batches zum halben regulären Token-Preis ausführt. Sie senden eine Liste von Anfragen mit Ihren eigenen IDs, pollen, bis der Batch endet, und lesen die Ergebnisse innerhalb von 29 Tagen.

Zum halben Standardpreis für Eingaben wie Ausgaben. Auf Claude Sonnet 5.5 sind das 1,00 USD pro Million Eingabe-Tokens und 5,00 USD pro Million Ausgabe-Tokens, gegenüber 2,00 und 10,00 USD bei synchroner Verarbeitung.

Die meisten Batches werden innerhalb einer Stunde abgeschlossen. Das Maximum beträgt 24 Stunden, danach geben alle noch nicht verarbeiteten Anfragen das Ergebnis expired zurück und Sie übermitteln sie erneut.

Ja, und die Rabatte summieren sich. Markieren Sie ein gemeinsames Präfix mit cache_control, wiederholen Sie exakt dasselbe Präfix in jeder Anfrage, und die zwischengespeicherten Lesevorgänge werden zu einem Bruchteil des Eingabepreises abgerechnet, zusätzlich zum Batch-Rabatt.

Nur diese eine Anfrage schlägt fehl. Ihr Ergebnis trägt type: "errored" zusammen mit einem Fehlerobjekt; alles andere wird weiterhin erfolgreich verarbeitet. Bei einem Validierungsfehler brauchen Sie eine korrigierte Payload, bei einem Serverfehler ist ein unveränderter Wiederholungsversuch unbedenklich.

Ja. client.messages.batches.cancel(batch_id) versetzt einen Batch in den Zustand canceling. Bereits abgeschlossene Anfragen behalten ihr Ergebnis; der Rest gibt canceled zurück.

Ja. Alle Funktionen der Messages API funktionieren innerhalb eines Batches, einschließlich Vision, Tool-Definitionen und System-Prompts. Ausnahmen sind der schnelle Modus, serverseitiges Fallback und erzwungene Tool-Auswahl bei den Modellen 5.5.

Batch-Verarbeitung ist die zweitgrößte kostenlose Ersparnis auf der Claude API nach dem Prompt-Caching, und sie kostet Sie nichts an Qualität: gleiches Modell, gleiche Funktionen, halber Preis, im Gegenzug für eine Latenz, die Sie ohnehin vermutlich nicht nutzen würden. Speichern Sie Ergebnisse verschlüsselt unter dem Schlüssel custom_id, cachen Sie gemeinsame Präfixe und behandeln Sie expired als Wiederholungsversuch, nicht als Fehlschlag.

Testen Sie den Lebenszyklus, bevor Sie hochskalieren. Installieren Sie das Apidog CLI, richten Sie Ihren Coding-Agenten auf die Batch-Endpunkte und halten Sie die erzeugten Testfälle in der CI laufen, damit eine Schema-Änderung Sie nie bei 100.000 Anfragen überrascht. Das kostenlose Paket umfasst 4 Nutzer, und Sie können Apidog herunterladen und den ersten Testlauf in wenigen Minuten am Start haben.

Automatisch übersetzt. Das Original auf Englisch ist unten aufklappbar.

Original (Englisch) anzeigen

Posted on Nov 2 • Originally published at apidog.com

Trả lời nhanh: Claude Batch API xử lý các yêu cầu Messages API theo cách bất đồng bộ với mức giảm 50% cho cả token đầu vào và đầu ra. Bạn gửi tối đa 100.000 yêu cầu (hoặc 256 MB) trong một lần gọi, thăm dò cho đến khi lô kết thúc, rồi đọc kết quả được đánh khóa theo custom_id của chính bạn. Hầu hết các lô hoàn thành trong vòng một giờ, và giới hạn cứng là 24 giờ.

Bạn có 40.000 phiếu hỗ trợ cần phân loại, hoặc một danh mục sản phẩm cần viết lại, hoặc một tháng bản ghi cần tóm tắt. Không việc nào gấp cả. Mỗi lần gọi đó vẫn bị tính phí đầy đủ khi bạn gửi từng cái một, và bạn mất cả buổi chiều để trông chừng việc thử lại do vượt giới hạn tốc độ.

Claude Batch API ra đời chính xác cho dạng công việc này. Bạn đưa cho Anthropic một danh sách yêu cầu, rồi rời đi, và quay lại với một tệp kết quả có chi phí chỉ bằng một nửa so với việc gọi đồng bộ cùng những lệnh đó. Không cần chạy hàng đợi, không cần tinh chỉnh đồng thời, không cần logic backoff.

Hướng dẫn này trình bày điểm cuối batch làm gì, chi phí ra sao, cách gửi và thu thập một tác vụ, và cách để tác nhân lập trình của bạn kiểm thử toàn bộ quy trình với Apidog CLI trước khi bạn hướng nó vào dữ liệu thật.

Claude Batch API là một điểm cuối bất đồng bộ tại /v1/messages/batches, tiếp nhận nhiều yêu cầu Messages API trong một lần gửi duy nhất và trả về kết quả của chúng khi quá trình xử lý kết thúc. Nó đánh đổi độ trễ để lấy mức giảm 50%. Anthropic tài liệu hóa nó trong phần batch processing.

Những ràng buộc bạn cần thiết kế xoay quanh:

Điểm cuối cùng đó chính là thứ khiến người ta dễ vấp. Một lô là một cái túi, không phải một hàng đợi.

Mức giảm là phẳng 50% cho cả token đầu vào và đầu ra, áp dụng cho bất kỳ mô hình nào mà mỗi yêu cầu chỉ định. Bạn có thể trộn nhiều mô hình trong một lô, nên một bộ phân loại rẻ tiền và một bộ tóm tắt đắt tiền có thể đi cùng nhau.

Hãy đọc kỹ các hàng Haiku. Haiku 5.5 tính giá theo kích thước lời nhắc, nên một lời nhắc vượt qua 100.000 token sẽ bị tính gấp 5 lần mức giá lời nhắc ngắn, bất kể có giảm giá theo lô hay không. Hãy dự phóng công việc Haiku với ngữ cảnh dài ở mức $0.25 / $1.25, chứ không phải $0.05 / $0.25. Hãy kiểm tra trang giá của Anthropic trước khi bạn xây dựng dự phóng dựa trên những con số này, và đọc bài phân tích của chúng tôi về chi phí Claude API đi về đâu nếu hóa đơn là lý do bạn đến đây.

Giá theo lô cũng cộng dồn với bộ nhớ đệm lời nhắc, đó chính là nơi khoản tiết kiệm thật sự nằm. Sẽ nói thêm ở dưới.

Cài đặt SDK Python chính thức và xây dựng một danh sách yêu cầu. Mỗi yêu cầu mang một custom_id do bạn chọn và một đối tượng params trông y hệt một lệnh gọi messages.create() bình thường.

import anthropic from anthropic.types.message_create_params import MessageCreateParamsNonStreaming from anthropic.types.messages.batch_create_params import Request client = anthropic. Anthropic () tickets = [ " Card declined three times, support chat timed out. ", " Love the new dashboard, the export button is hidden though.

", " Webhook stopped firing after the 2.4 upgrade. ", ] batch = client. messages. batches. create ( requests = [ Request ( custom_id = f " ticket- { i } ", params = MessageCreateParamsNonStreaming ( model = " claude-haiku-5-5 ", max_tokens = 1024, output_config = { " effort ": " low " }, messages = [{ " role ": " user ", " content ": f " Label this ticket billing, bug, or praise. One word. \n\n { text } ", }], ), ) for i, text in enumerate ( tickets ) ] ) print ( batch. id, batch. processing_status ) Enter fullscreen mode Exit fullscreen mode Hãy làm cho custom_id mang ý nghĩa.

Một khóa chính trong cơ sở dữ liệu hoặc một đường dẫn tệp sẽ giúp bạn khỏi phải ghép nối về sau, và đó là thứ duy nhất gắn một kết quả trở lại đầu vào của nó.

Nếu bạn thích HTTP thuần, cùng một payload đó được gửi đến POST https://api.anthropic.com/v1/messages/batches với các header x-api-key và anthropic-version của bạn. Tài liệu tham chiếu create a message batch có đầy đủ lược đồ.

Truy xuất lô cho đến khi processing_status hiển thị ended, rồi truyền phát kết quả. Mỗi kết quả mang custom_id bạn đã đặt và một result.type là succeeded, errored, canceled, hoặc expired.

import time while True: batch = client. messages. batches. retrieve ( batch. id ) if batch. processing_status == " ended ": break print ( " still working: ", batch. request_counts. processing ) time. sleep ( 30 ) labels, retry = {}, [] for result in client. messages. batches. results ( batch. id ): if result. result. type == " succeeded ": msg = result. result. message labels [ result. custom_id ] = next ( b. text for b in msg. content if b. type == " text " ) elif result. result. type == " errored ": retry. append ( result. custom_id ) print ( f " { len ( labels ) } labeled, { len ( retry ) } need another pass " ) Enter fullscreen mode Exit fullscreen mode Hai dạng lỗi cần được xử lý riêng. Lỗi invalid_request nghĩa là phần thân yêu cầu bị sai, nên hãy sửa nó trước khi gửi lại. Mọi thứ khác đều thuộc phía máy chủ và an toàn để thử lại nguyên trạng.

Kết quả expired nghĩa là cửa sổ 24 giờ đã đóng trước khi yêu cầu đó chạy, và bạn cũng gửi lại những cái đó.

Hãy thăm dò theo nhịp 30 đến 60 giây. Việc dội liên tục vào điểm cuối retrieve mỗi giây chẳng mang lại gì cho bạn và còn bị tính vào giới hạn tốc độ Claude API của bạn.

Lợi ích lớn nhất đến từ việc kết hợp hai khoản giảm giá. Nếu mọi yêu cầu trong lô của bạn chia sẻ một tiền tố dài, một hướng dẫn văn phong, một hệ phân loại, một hợp đồng 40 trang, hãy đánh dấu tiền tố đó bằng cache_control và gửi cùng tiền tố đã đánh dấu đó trên cả 10.000 yêu cầu.

shared_system = [ { " type ": " text ", " text ": " You are a support triage analyst. " }, { " type ": " text ", " text ": taxonomy_document, # thousands of tokens, identical every time " cache_control ": { " type ": " ephemeral " }, }, ] Enter fullscreen mode Exit fullscreen mode Hãy đặt khối system đó trên mọi Request trong lô. Bất kỳ yêu cầu nào có tiền tố khớp từng byte với một mục bộ nhớ đệm còn hiệu lực sẽ được tính tiền tố đó theo mức giá đọc bộ nhớ đệm, và mức giảm 50% theo lô áp dụng cho cả việc đọc lẫn ghi bộ nhớ đệm. Đừng dự trù cho tỷ lệ trúng hoàn hảo: một lô xử lý các yêu cầu của nó đồng thời thay vì theo thứ tự, nên việc trúng bộ nhớ đệm trong một lô chỉ ở mức cố gắng tốt nhất.

Hướng dẫn bộ nhớ đệm lời nhắc của Anthropic trình bày các quy tắc tiền tố: bất kỳ byte nào thay đổi trước điểm ngắt của bạn đều vô hiệu hóa mọi thứ sau nó, vì vậy hãy giữ dấu thời gian và văn bản theo từng mục ở phía sau khối được đệm.

Trước khi bạn tiêu tiền cho 100.000 yêu cầu thật, bạn muốn có một bài kiểm thử hồi quy trên vòng đời của lô: tạo, truy xuất, kết quả. Viết thủ công việc đó trong một GUI thì chậm. Hãy để tác nhân lập trình của bạn làm điều đó với Apidog CLI.

npm install -g apidog-cli@latest apidog auth login --with-token <YOUR_TOKEN> apidog skill install # pick Claude Code when prompted Enter fullscreen mode Exit fullscreen mode Rồi một lời nhắc cho Claude Code:

In Apidog project 4820193, create a test case for POST https://api.anthropic.com/v1/messages/batches that submits two Haiku 5.5 requests with custom_id ticket-0 and ticket-1, asserts the response has an id and processing_status, then polls GET /v1/messages/batches/{id} until processing_status is ended. Run it against the anthropic-staging environment and summarize failures. Enter fullscreen mode Exit fullscreen mode Tác nhân đọc lược đồ payload, tự xác thực JSON của nó, rồi tạo và chạy ca kiểm thử:

apidog cli-schema get test-case-create apidog cli-schema validate test-case-create --file batch-case.json apidog test-case create --project 4820193 --file batch-case.json apidog run --test-case 77214 --project 4820193 -e 992301 -r cli,json Enter fullscreen mode Exit fullscreen mode Khóa API của bạn nằm trong một biến môi trường của Apidog, nên nó không bao giờ lọt vào lời nhắc hay kho mã. Đổi trình báo cáo sang -r junit và cùng lệnh đó sẽ chạy trong CI ở mỗi lần hợp nhất, đây chính là thiết lập trong hướng dẫn pipeline Apidog CLI của chúng tôi. Nếu bạn chưa nối CLI vào tác nhân của mình, hãy bắt đầu với dùng Apidog CLI trong Claude Code.

Một vài thứ cũng không vượt qua được. Chế độ nhanh không khả dụng trên Batch API, các cơ chế dự phòng từ chối phía máy chủ bị từ chối ở đó, và trên Claude Opus 5.5 và Claude Sonnet 5.5, việc ép buộc tool_choice là any hoặc tool sẽ trả về lỗi 400 bên trong một lô y hệt như khi gọi bình thường. Thay vào đó hãy dùng tool_choice: auto với strict: true.

Nếu bạn vận hành hạ tầng đa nhà cung cấp, mô hình tương tự cũng tồn tại ở nơi khác: xem OpenAI Batch API và chế độ batch của Gemini API. Hình dạng khác nhau, nhưng kinh tế thì không.

Đó là một điểm cuối bất đồng bộ chạy các yêu cầu Messages API tiêu chuẩn theo lô lớn với mức 50% giá token thông thường. Bạn gửi một danh sách yêu cầu kèm ID của riêng bạn, thăm dò cho đến khi lô kết thúc, và đọc kết quả trong vòng 29 ngày.

Bằng một nửa mức giá tiêu chuẩn cho cả đầu vào và đầu ra. Trên Claude Sonnet 5.5, đó là $1.00 mỗi triệu token đầu vào và $5.00 mỗi triệu token đầu ra, so với $2.00 và $10.00 khi đồng bộ.

Hầu hết các lô hoàn thành trong vòng một giờ. Mức tối đa là 24 giờ, sau đó bất kỳ yêu cầu nào chưa được xử lý sẽ trả về kết quả expired và bạn gửi lại nó.

Có, và các khoản giảm giá cộng dồn. Hãy đánh dấu một tiền tố chia sẻ bằng cache_control, lặp lại tiền tố y hệt đó trên mọi yêu cầu, và các lần đọc được đệm sẽ được tính ở một phần nhỏ giá đầu vào, cộng thêm mức giảm theo lô.

Chỉ yêu cầu đó thất bại. Kết quả của nó mang type: "errored" kèm một đối tượng lỗi; mọi thứ còn lại vẫn thành công. Lỗi xác thực cần một payload đã sửa, lỗi máy chủ thì an toàn để thử lại nguyên trạng.

Có. client.messages.batches.cancel(batch_id) chuyển lô sang trạng thái canceling. Các yêu cầu đã hoàn tất giữ nguyên kết quả; phần còn lại trả về là canceled.

Có. Mọi tính năng của Messages API đều hoạt động bên trong một lô, bao gồm thị giác, định nghĩa công cụ và lời nhắc hệ thống. Các ngoại lệ là chế độ nhanh, dự phòng phía máy chủ, và ép buộc chọn công cụ trên các mô hình 5.5.

Xử lý theo lô là khoản tiết kiệm miễn phí lớn thứ hai trên Claude API sau bộ nhớ đệm lời nhắc, và nó chẳng khiến bạn mất gì về chất lượng: cùng mô hình, cùng tính năng, một nửa giá, đổi lại bằng độ trễ mà có lẽ bạn vốn không dùng đến. Hãy đánh khóa kết quả theo custom_id, đệm tiền tố chia sẻ, và xử lý expired như một lần thử lại chứ không phải một thất bại.

Hãy kiểm thử vòng đời trước khi bạn mở rộng quy mô. Cài đặt Apidog CLI, hướng tác nhân lập trình của bạn vào các điểm cuối batch, và giữ ca kiểm thử được tạo chạy trong CI để một thay đổi lược đồ không bao giờ làm bạn bất ngờ ở mốc 100.000 yêu cầu. Gói miễn phí bao gồm 4 người dùng, và bạn có thể tải Apidog và có ca kiểm thử đầu tiên chạy trong vài phút.

Originaltitel: Claude Batch API: Chạy tác vụ bất đồng bộ với chi phí chỉ bằng một nửaQuelle: dev.to (dev.to). Original öffnen