
Amazon Bedrock udostępnia wyjścia strukturalne dla modeli Claude
Według AWS wyjścia strukturalne dla modeli Anthropic Claude w Amazon Bedrock są ogólnie dostępne przez bedrock-runtime i bedrock-mantle. Dotyczy to wszystkich modeli Claude tam, gdzie dany model jest dostępny. Funkcja pozwala określić strukturę odpowiedzi za pomocą JSON Schema i wymuszać obsługiwane reguły podczas generowania.
Struktura jest narzucana podczas tworzenia tokenów
Funkcja wykorzystuje dekodowanie z ograniczeniami, aby generowany JSON odpowiadał schematowi, w tym typom pól, polom wymaganym i dozwolonym. AWS opisuje mniejsze zapotrzebowanie na własną logikę parsowania i ponawianie żądań po naruszeniu schematu, a także mniejszą liczbę tokenów wyjściowych. Według firmy przy dużej skali może to obniżyć koszty inferencji. Artykuł nie przedstawia niezależnie zmierzonych oszczędności.
Wymienione zastosowania obejmują pozyskiwanie danych z raportów finansowych, dokumentów zgodności, notatek klinicznych, faktur, umów, e-maili i transkrypcji. Kolejne przykłady to wzbogacanie katalogów produktów, sprawdzanie argumentów narzędzi agentów oraz klasyfikowanie lub kierowanie zgłoszeń, kontaktów sprzedażowych i treści. AWS opisuje też Claude Haiku 5.5 jako model obsługujący podsumowania, skracanie kontekstu, zapytania do baz danych i klasyfikację.
Interfejsy API i argumenty narzędzi
Z funkcji można korzystać przez Boto3 i API bedrock-runtime albo przez Messages API i bedrock-mantle. Obsługuje ona inferencję wsadową oraz odpowiedzi strumieniowe w postaci zdarzeń z określonym typem. Inferencja między regionami jest obsługiwana na bedrock-runtime. W InvokeModel schemat przekazuje się jako obiekt JSON w output_config.format, w natywnej treści żądania Anthropic, a nie jako ciąg znaków JSON.
W bedrock-mantle ustawienie strict: true ogranicza argumenty narzędzi zgodnie ze wskazanym schematem, w tym typami pól, dozwolonymi wartościami i polami. AWS przedstawia Mantle jako interfejs dla aplikacji agentowych z narzędziami po stronie serwera, inferencją w tle i rozmowami zachowującymi stan. Jako przykłady narzędzi podaje wyszukiwanie w sieci i interpreter kodu. Dołączony przykładowy notebook zawiera dalsze przykłady API, także Messages API.
Kompilowanie i ponowne używanie schematów
Bedrock sprawdza schematy względem obsługiwanego podzbioru JSON Schema Draft 2020-12. Nowe schematy kompiluje do artefaktów gramatyki, co może wydłużyć czas pierwszego żądania. Skompilowane gramatyki są przechowywane w pamięci podręcznej konta przez 24 godziny od pierwszego dostępu. Zmiana struktury uruchamia ponowną kompilację; zmiany wyłącznie w polach nazwy lub opisu zachowują gramatykę w pamięci podręcznej.
Każdy obiekt musi mieć additionalProperties: false, aby schemat został zaakceptowany. AWS zaleca czytelne nazwy właściwości i opisy oraz enum dla pól o ograniczonym zbiorze poprawnych wartości. Radzi zaczynać od minimum wymaganych pól, stopniowo zwiększać złożoność, ponownie używać schematów i testować wejścia reprezentatywne dla produkcji. Proste schematy kompilują się szybciej, a schemat wlicza się do rozmiaru danych żądania Converse API.
Obsługiwany jest podzbiór JSON Schema
Obsługiwane typy to object, array, string, integer, number, boolean i null. Wartości enum mogą być ciągami znaków, liczbami, wartościami logicznymi lub null. Lista obejmuje też const, z ograniczeniami anyOf i allOf, odwołania wewnętrzne przez $ref, $def i definitions oraz minItems o wartości 0 lub 1. Wymienione formaty tekstowe to date-time, time, date, duration, email, hostname, uri, ipv4, ipv6 i uuid.
Akceptacja przez API nie oznacza wymuszania każdego ograniczenia podczas generowania. AWS wymienia zewnętrzne odwołania $ref, ograniczenia liczbowe minimum, maximum i multipleOf oraz ograniczenia długości tekstu minLength i maxLength jako akceptowane, lecz niewymuszane podczas generowania. Aplikacja musi sprawdzać je samodzielnie.
Trzeba sprawdzać powód zakończenia odpowiedzi
Odmowa ze względów bezpieczeństwa lub osiągnięcie max_tokens przed ukończeniem może prowadzić do odpowiedzi niezgodnej ze schematem. AWS zaleca więc sprawdzanie powodu zakończenia każdej odpowiedzi i obsługę obu przypadków. Funkcja może ograniczyć opisane prace związane z formatem, ale te kontrole i wskazana walidacja po stronie aplikacji pozostają konieczne.
Źródło: artykuł techniczny AWS o wyjściach strukturalnych Claude w Amazon Bedrock.