Reactive Machines

Imiphumela ehleliwe ku-Amazon Bedrock: Izimpendulo ze-AI ezihambisana ne-Schema

Namuhla, simemezela imiphumela ehlelekile ku-Amazon Bedrock—ikhono elishintsha ngokuyisisekelo ukuthi ungathola kanjani izimpendulo eziqinisekisiwe ze-JSON kumamodeli ayisisekelo ngokusebenzisa ukuqoshwa okunemingcele ukuze kuthotshelwe i-schema.

Lokhu kumelela ushintsho lwepharadigm ekuthuthukisweni kohlelo lokusebenza lwe-AI. Esikhundleni sokuqinisekisa izimpendulo ze-JSON nokubhala i-logic yokubuyela emuva uma yehluleka, ungaya ngqo ekwakheni ngedatha. Ngemiphumela ehlelekile, ungakha imigqa yedatha yokuqinisekisa iqanda ethembela kokuphumayo kwemodeli, amasistimu e-ejenti athembekile abiza imisebenzi yangaphandle ngokuzethemba, nezakhiwo zohlelo lokusebenza ezenziwe lula ngaphandle kokuzama ukucabanga okunengqondo.

Kulokhu okuthunyelwe, sihlola izinselelo zesizukulwane se-JSON esijwayelekile nokuthi imiphumela ehlelekile ixazulula kanjani. Sihlanganisa izindlela ezimbili eziyinhloko—ifomethi yokuphuma kwe-JSON Schema kanye nokusetshenziswa kwamathuluzi okuqinile—kanye nemininingwane yokusetshenziswa, izinqubo ezihamba phambili, nezibonelo zekhodi ezisebenzayo. Kungakhathaliseki ukuthi wakha amapayipi okukhipha idatha, ukugeleza komsebenzi kwe-ejenti, noma ama-API anikwe amandla yi-AI, uzofunda ukuthi ungasebenzisa kanjani okukhiphayo okuhleliwe ukuze udale izinhlelo zokusebenza ezithembekile, ezilungele ukukhiqiza. Incwadi yokubhalela ye-Jupyter engumngane wethu inikeza izibonelo ezisebenzayo kuzo zonke izici ezimbozwe lapha.

Inkinga ngesizukulwane se-JSON esivamile

Iminyaka eminingi, ukuthola idatha ehleliwe kumamodeli olimi kwakusho ukwenza imiyalo enemininingwane, ngethemba lokungcono kakhulu, nokwakha amasistimu okubamba amaphutha anemininingwane. Ngisho nokwaziswa ngokucophelela, onjiniyela bajwayele ukuhlangana:

  • Ukuhluleka kokuhlaziya: I-syntax ye-JSON engavumelekile ephukayo json.loads() izingcingo
  • Izinkambu ezingekho: Amaphoyinti edatha adingekayo awekho ezimpendulweni
  • Thayipha ukungafani: Izintambo lapho izinombolo eziphelele zilindelwe, ukucutshungulwa komfula
  • Ukwephulwa kwe-schema: Izimpendulo ezihlaziya ngokobuchwepheshe kodwa ezingafani nemodeli yakho yedatha

Ezinhlelweni zokukhiqiza, lokhu kwehluleka kuhlanganisa. Impendulo eyodwa engalungile ingase idlule epayipini lakho, idinga ukuzama futhi okwandisa ukubambezeleka kanye nezindleko. Ngokugeleza komsebenzi we-ejenti lapho amathuluzi ezingcingo amamodeli, amapharamitha angavumelekile anganqamula izingcingo zokusebenza ngokuphelele.

Cabangela isistimu yokubhuka edingekayo passengers: int. Ngaphandle kokusetshenziswa kwe-schema, imodeli ingase ibuye passengers: "two" noma passengers: "2"-I-JSON evumelekile ngokohlelo, kodwa ayilungile ngokwezibalo kusiginisha yakho yokusebenza.

Yini eshintshayo ngokuphuma okuhleliwe

Imiphumela ehleliwe ku-Amazon Bedrock ayikona ukuthuthuka okukhuphukayo—iwushintsho olubalulekile ukusuka ku-probabilistic ukuya ekufometheni kokukhiphayo okunqumayo. Ngokwenza amakhodi okuphoqekile, i-Amazon Bedrock ivimbela izimpendulo zemodeli ukuthi zivumelane ne-schema sakho se-JSON esicacisiwe. Izindlela ezimbili ezihambisanayo ziyatholakala:

Isici Inhloso Sebenzisa icala
Ifomethi yokuphuma kwe-JSON Schema Lawula ifomethi yempendulo yemodeli Ukukhishwa kwedatha, ukwenziwa kombiko, izimpendulo ze-API
Ukusetshenziswa kwethuluzi okuqinile Qinisekisa imingcele yamathuluzi Ukugeleza komsebenzi kwe-agent, ukushaya komsebenzi, i-multi-step automation

Lezi zici zingasetshenziswa ngokuzimela noma ndawonye, ​​​​zikunikeza ukulawula okunembile kukho kokubili lokho okuphumayo kwemodeli nokuthi kuyibiza kanjani imisebenzi yakho.

Okuletha imiphumela ehlelekile:

  • Isebenza njalo: Angiphinde JSON.parse() amaphutha noma okuhlukile kokuhlaziya
  • Thayipha okuphephile: Izinhlobo zenkundla ziyaphoqelelwa futhi izinkambu ezidingekayo zihlala zikhona
  • Uthembekile: Akukho ukuzama futhi okudingekayo ngokuphulwa kwe-schema
  • Ukukhiqizwa kulungile: Sebenzisa ngokuzethemba esikalini sebhizinisi

Indlela okukhiphayo okuhlelekile okusebenza ngayo

Okuphumayo okuhleliwe kusebenzisa amasampula akhawulelwe ngama-artifact ohlelo olimi ahlanganisiwe. Nakhu okwenzekayo lapho wenza isicelo:

  1. Ukuqinisekiswa kwe-schema: I-Amazon Bedrock iqinisekisa i-schema yakho ye-JSON ngokumelene nesethi engaphansi ye-JSON Schema Draft 2020-12 esekelwe
  2. Ukuhlanganisa uhlelo lolimi: Kuma-schemas amasha, i-Amazon Bedrock ihlanganisa uhlelo lolimi (isicelo sokuqala singathatha isikhathi eside)
  3. Ukulondoloza inqolobane: Izinhlelo zolimi ezihlanganisiwe zigcinwa kunqolobane amahora angu-24, zenza izicelo ezilandelayo zisheshe
  4. Isizukulwane esicindezelekile: Imodeli ikhiqiza amathokheni akhiqiza i-JSON evumelekile efana ne-schema sakho

Ukucatshangelwa kokusebenza:

  • Isicelo sokuqala sokubambezeleka: Ukuhlanganiswa kwasekuqaleni kungase kwengeze ukubambezeleka kuma-schema amasha
  • Ukusebenza okugcinwe kunqolobane: Izicelo ezilandelayo ezinama-schema afanayo zine-overhead encane
  • Ububanzi benqolobane: Uhlelo lolimi lugcinwe kunqolobane ye-akhawunti ngayinye amahora angu-24 kusukela ekufinyeleleni kokuqala

Ukushintsha ukwakheka kwe-schema se-JSON noma i-schema sokufakwayo kwethuluzi kwenza inqolobane ingavumelekile, kodwa kushintsha kuphela. name noma description amasimu akwenzi.

Ukuqalisa ngemiphumela ehlelekile

Isibonelo esilandelayo sibonisa imiphumela ehlelekile nge-Converse API:

import boto3
import json
# Initialize the Bedrock Runtime client
bedrock_runtime = boto3.client(
    service_name="bedrock-runtime",
    region_name="us-east-1"  # Choose your preferred region
)
# Define your JSON schema
extraction_schema = {
    "type": "object",
    "properties": {
        "name": {"type": "string", "description": "Customer name"},
        "email": {"type": "string", "description": "Customer email address"},
        "plan_interest": {"type": "string", "description": "Product plan of interest"},
        "demo_requested": {"type": "boolean", "description": "Whether a demo was requested"}
    },
    "required": ["name", "email", "plan_interest", "demo_requested"],
    "additionalProperties": False
}
# Make the request with structured outputs
response = bedrock_runtime.converse(
    modelId="us.anthropic.claude-opus-4-5-20251101-v1:0",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "text": "Extract the key information from this email: John Smith ([email protected]) is interested in our Enterprise plan and wants to schedule a demo for next Tuesday at 2pm."
                }
            ]
        }
    ],
    inferenceConfig={
        "maxTokens": 1024
    },
    outputConfig={
        "textFormat": {
            "type": "json_schema",
            "structure": {
                "jsonSchema": {
                    "schema": json.dumps(extraction_schema),
                    "name": "lead_extraction",
                    "description": "Extract lead information from customer emails"
                }
            }
        }
    }
)
# Parse the schema-compliant JSON response
result = json.loads(response["output"]["message"]["content"][0]["text"])
print(json.dumps(result, indent=2))

Okukhiphayo:

{
  "name": "John Smith",
  "email": "[email protected]",
  "plan_interest": "Enterprise",
  "demo_requested": true
}

Impendulo ihambisana ne-schema sakho—akukho ukuqinisekiswa okwengeziwe okudingekayo.

Izidingo kanye nemikhuba engcono kakhulu

Ukuze usebenzise okukhiphayo okuhleliwe ngempumelelo, landela le mihlahlandlela:

  • Setha additionalProperties: false kuzo zonke izinto. Lokhu kuyadingeka ukuze imiphumela ehleliwe isebenze. Ngaphandle kwayo, i-schema sakho ngeke samukelwe.
{
  "type": "object",
  "properties": {
    "name": {"type": "string"}
  },
  "required": ["name"],
  "additionalProperties": false
}

  • Sebenzisa amagama nezincazelo zezinkambu ezichazayo. Amamodeli asebenzisa amagama ezakhiwo nezincazelo ukuze aqonde ukuthi iyiphi idatha ezokhishwa. Sula amagama njenge customer_email ukwedlula amagama ajwayelekile njenge field1.
  • Sebenzisa enum ngamavelu akhawulelwe. Uma inkambu inesethi elinganiselwe yamanani avumelekile, sebenzisa enum ukuphoqa izinketho. Lokhu kuthuthukisa ukunemba futhi kukhiqiza amanani avumelekile.
  • Qala okuyisisekelo, bese wengeza ubunkimbinkimbi. Qala ngezinkambu ezincane ezidingekayo bese wengeza ubunkimbinkimbi ngokwandayo. Ama-schema ayisisekelo ahlanganisa ngokushesha futhi kulula ukuwanakekela.
  • Sebenzisa kabusha ama-schema ukuze uzuze kunqolobane. Hlela uhlelo lwakho lokusebenza ukuze liphinde lisebenzise izikimu kuzo zonke izicelo. Inqolobane yohlelo lwamahora angu-24 ithuthukisa kakhulu ukusebenza kwemibuzo ephindaphindiwe.
  • Hlola stopReason kuzo zonke izimpendulo. Izimo ezimbili zingaveza izimpendulo ezingavumelani: ukwenqaba (lapho imodeli yehla ngenxa yezizathu zokuphepha) kanye nemikhawulo yamathokheni (uma max_tokens kufinyelelwa ngaphambi kokuqedwa). Phatha zombili izimo kukhodi yakho.
  • Hlola ngedatha engokoqobo ngaphambi kokusebenzisa. Qinisekisa ama-schema akho ngokumelene nokokufaka okumelela ukukhiqiza. Amacala we-Edge kudatha yangempela avame ukudalula izinkinga zokuklama i-schema.

Izici ezisekelwayo ze-JSON Schema:

  • Zonke izinhlobo eziyisisekelo: object, array, string, integer, number, boolean, null
  • enum (amayunithi ezinhlamvu, izinombolo, ama-bool, noma ama-null kuphela)
  • const, anyOf, allOf (nokulinganiselwa)
  • $ref, $deffuthi definitions (izinkomba zangaphakathi kuphela)
  • Amafomethi weyunithi yezinhlamvu: date-time, time, date, duration, email, hostname, uri, ipv4, ipv6, uuid
  • Uhlu minItems (amanani 0 kanye no-1 kuphela)

Ayisekelwe:

  • Izikimu eziphindaphindayo
  • Kwangaphandle $ref izinkomba
  • Izingqinamba zezinombolo (minimum, maximum, multipleOf)
  • Imikhawulo yezintambo (minLength, maxLength)
  • additionalProperties setha kunoma yini enye ngaphandle false

Ukusetshenziswa kwethuluzi eliqinile lokugeleza komsebenzi we-ejenti

Uma wakha izinhlelo zokusebenza lapho amamodeli ebiza amathuluzi, setha strict: true encazelweni yethuluzi lakho ukuphoqa amapharamitha wethuluzi ukuze afane ne-schema sakho sokufaka ncamashi:

import boto3
import json
bedrock_runtime = boto3.client('bedrock-runtime', region_name="us-east-1")
response = bedrock_runtime.converse(
    modelId="us.anthropic.claude-opus-4-5-20251101-v1:0",
    messages=[
        {
            "role": "user",
            "content": [{"text": "What's the weather like in San Francisco?"}]
        }
    ],
    inferenceConfig={"maxTokens": 1024},
    toolConfig={
        "tools": [
            {
                "toolSpec": {
                    "name": "get_weather",
                    "description": "Get the current weather for a specified location",
                    "strict": True,  # Enable strict mode
                    "inputSchema": {
                        "json": {
                            "type": "object",
                            "properties": {
                                "location": {
                                    "type": "string",
                                    "description": "The city and state, e.g., San Francisco, CA"
                                },
                                "unit": {
                                    "type": "string",
                                    "enum": ["celsius", "fahrenheit"],
                                    "description": "Temperature unit"
                                }
                            },
                            "required": ["location", "unit"],
                            "additionalProperties": False
                        }
                    }
                }
            }
        ]
    }
)
# Tool inputs conform to the schema
for content_block in response["output"]["message"]["content"]:
    if "toolUse" in content_block:
        tool_input = content_block["toolUse"]["input"]
        print(f"Tool: {content_block['toolUse']['name']}")
        print(f"Input: {json.dumps(tool_input, indent=2)}")

Nge strict: trueokukhiphayo okuhleliwe kucindezela okukhiphayo ukuze:

  • I location insimu ihlale iyintambo
  • I unit inkambu ihlala njalo noma celsius noma fahrenheit
  • Azikho izinkambu ezingalindelekile ezivela kokokufaka

Izicelo ezisebenzayo kuzo zonke izimboni

I-notebook ibonisa izimo zokusetshenziswa ezithinta izimboni:

  • Izinsizakalo zezezimali: Khipha idatha ehlelekile emibikweni yezinzuzo, izicelo zemalimboleko, namadokhumenti okuthobela imithetho. Ngokuphumayo okuhleliwe, yonke inkambu edingekayo ikhona futhi ithayiphe ngendlela efanele ukuze icutshungulwe phansi.
  • Ukunakekela impilo: Hlaziya amanothi omtholampilo ube amarekhodi ahlelekile, athobela i-schema. Khipha ulwazi lwesiguli, ukuxilonga, nezinhlelo zokwelapha ku-JSON eqinisekisiwe yokuhlanganiswa kwe-EHR.
  • I-Ecommerce: Yakha amapayipi okunothisa ikhathalogi yomkhiqizo onokwethenjelwa. Khipha ukucaciswa, izigaba, nezibaluli ezincazelweni zomkhiqizo ezinemiphumela engaguquki, ethembekile.
  • Okusemthethweni: Hlaziya izinkontileka futhi ukhiphe imigomo eyinhloko, izinhlangano, izinsuku, nezibopho zibe amafomethi ahlelekile afanele amasistimu okuphatha inkontileka.
  • Insizakalo yekhasimende: Yakha amasistimu omzila wethikithi ahlakaniphile nezimpendulo lapho izinhloso ezikhishiwe, imizwa, namabhizinisi afana nemodeli yedatha yohlelo lwakho lokusebenza.

Ukukhetha indlela efanele

Ukuhlola kwethu kwembule amaphethini acacile wokuthi kufanele kusetshenziswe nini isici ngasinye:

Sebenzisa ifomethi yokuphuma kwe-JSON Schema lapho:

  • Udinga impendulo yemodeli esakhiweni esithile
  • Ukwakha amapayipi okukhipha idatha
  • Ikhiqiza izimpendulo ezilungele i-API
  • Ukudala imibiko ehlelekile noma izifinyezo

Sebenzisa ithuluzi eliqinile lapho:

  • Ukwakha amasistimu e-ejenti abiza imisebenzi yangaphandle
  • Ukusebenzisa ukuhamba komsebenzi okunezinyathelo eziningi ngamaketanga amathuluzi
  • Idinga izinhlobo zepharamitha eziqinisekisiwe zezingcingo zokusebenza
  • Ukuxhuma i-AI kusizindalwazi, ama-API, noma izinsiza zangaphandle

Sebenzisa kokubili ndawonye lapho:

  • Ama-ejenti okwakha ayinkimbinkimbi adinga izingcingo zamathuluzi eziqinisekisiwe nezimpendulo zokugcina ezihleliwe
  • Ukudala amasistimu lapho imiphumela yamathuluzi amaphakathi ingena kokuphumayo okuhleliwe
  • Ukusebenzisa ukuhamba komsebenzi kwebhizinisi okudinga ukuthotshelwa kwe-schema ekupheleni kuya ekupheleni

Ukuqhathaniswa kwe-API: Converse uma kuqhathaniswa ne-InvokeModel

Kokubili i-Converse API kanye ne-InvokeModel API isekela imiphumela ehlelekile, enamafomethi amapharamitha ahluke kancane:

Isici I-Converse API I-InvokeModel (Anthropic Claude) I-InvokeModel (amamodeli anesisindo esivulekile)
Indawo ye-schema outputConfig.textFormat output_config.format response_format
Ifulegi eliqinile lethuluzi toolSpec.strict tools[].strict tools[].function.strict
Ifomethi ye-schema Iyunithi yezinhlamvu ye-JSON jsonSchema.schema Into ye-JSON phakathi schema Into ye-JSON phakathi json_schema.schema
Kuhle kakhulu Ukugeleza komsebenzi wengxoxo I-inference yejika elilodwa (Claude) I-Single-turn inference (isisindo esivulekile)

Qaphela: I-InvokeModel API isebenzisa amagama enkambu yesicelo ahlukene kuye ngohlobo lwemodeli. Kumamodeli we-Anthropic Claude, sebenzisa output_config.format kokuphumayo kwe-schema ye-JSON. Ukuze uthole amamodeli anesisindo esivulekile, sebenzisa response_format esikhundleni salokho.

Khetha i-Converse API yezingxoxo eziningi kanye ne-InvokeModel API uma udinga ukufinyelela okuyimodeli eqondile ngamafomethi esicelo aqondene nomhlinzeki.

Amamodeli asekelwe nokutholakala

Okuphumayo okuhleliwe kuvame ukutholakala kuzo zonke Izifunda ze-AWS zezentengiselwano kubahlinzeki bemodeli ye-Amazon Bedrock abakhethiwe:

  • I-Anthropic
  • I-DeepSeek
  • Google
  • I-MiniMax
  • I-Mistral AI
  • I-Moonshot AI
  • I-NVIDIA
  • I-OpenAI
  • Qwen

Isici sisebenza kalula nge:

  • Incazelo ye-Cross-Region: Sebenzisa okukhiphayo okuhleliwe kuzo zonke izifunda ze-AWS ngaphandle kokusetha okwengeziwe
  • Ukuchazwa kweqoqo: Cubungula amavolumu amakhulu ngemiphumela ethobela i-schema
  • Ukusakaza: Sakaza izimpendulo ezakhiwe nge ConverseStream noma InvokeModelWithResponseStream

Isiphetho

Kulokhu okuthunyelwe, uthole ukuthi imiphumela ehlelekile ku-Amazon Bedrock ikwehlisa kanjani ukungaqiniseki kwe-JSON ekhiqizwe yi-AI ngezimpendulo eziqinisekisiwe, ezithobela i-schema. Ngokusebenzisa ifomethi yokukhipha ye-JSON Schema kanye nokusetshenziswa kwamathuluzi aqinile, ungakha amapayipi okukhipha idatha athembekile, ukugeleza komsebenzi okuqinile, nezinhlelo zokusebenza ze-AI ezilungele ukukhiqizwa—ngaphandle kokuhlaziya ngokwezifiso noma ukuqondana kokuqinisekisa. Kungakhathaliseki ukuthi ukhipha idatha kumadokhumenti, wakha okuzenzakalelayo okuhlakaniphile, noma udala ama-API anamandla e-AI, imiphumela ehlelekile iletha ukwethembeka kwezicelo zakho.

Imiphumela ehleliwe manje isiyatholakala ku-Amazon Bedrock. Ukuze usebenzise okuphumayo okuhleliwe ngama-Converse API, thuthukela ku-AWS SDK yakamuva. Ukuze ufunde kabanzi, bheka imibhalo ye-Amazon Bedrock futhi uhlole isampula yethu yokubhalela.

Ikuphi ukugeleza komsebenzi okungase kuqinisekiswe, kuvulwe i-JSON ehambisana ne-schema enhlanganweni yakho? I-notebook inikeza konke okudingayo ukuze uthole.


Mayelana nababhali

UJeffrey Zeng

UJeffrey Zeng ungumakhi Womhlaba Wonke Wezisombululo Zochwepheshe we-Generative AI kwa-AWS, ohola amamodeli ezinkampani zangaphandle ku-Amazon Bedrock. Ugxile ekubhaleni amakhodi e-agent kanye nokugeleza komsebenzi, ngolwazi olusebenzayo olusiza amakhasimende akhe futhi athumele izixazululo ze-AI kusukela kubufakazi bomqondo kuya ekukhiqizeni.

Jonathan Evans

U-Jonathan Evans ungumakhi Wezixazululo Zomhlaba Wonke we-Generative AI kwa-AWS, lapho esiza amakhasimende ukuthi asebenzise ubuchwepheshe be-AI obusezingeni eliphezulu ngamamodeli e-Anthropic Claude ku-Amazon Bedrock, ukuze axazulule izinselele zebhizinisi eziyinkimbinkimbi. Ngesizinda sobunjiniyela be-AI/ML kanye nolwazi olusebenzayo olusekela ukuhamba komsebenzi komshini emafini, u-Jonathan unentshisekelo yokwenza i-AI ethuthukisiwe ifinyeleleke futhi ibe nomthelela ezinhlanganweni zabo bonke osayizi.

Source link

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button