Mis on Amazon Bedrocki API?
Amazon Bedrock on AWS-i platvorm rakenduste loomiseks alusmudelitega – üldotstarbeliste tehisintellektimudelitega, mis suudavad sisu luua või analüüsida. Selle asemel et mudeleid ise juurutada ja hallata, kutsute AWS-i API-sid ning valite Amazoni või kolmanda osapoole pakkuja toetatud mudeli.
Bedrock sisaldab mitut omavahel seotud API-liidest. bedrock-runtime lõpp-punkt tegeleb inferentsiga ehk päringutega, milles palutakse mudelil sisu luua või analüüsida. bedrock lõpp-punkt pakub juhtimistasandi toiminguid, nagu mudelite avastamine, kohandamine, hindamine ja turvapiirete seadistamine. Agendi- ja teadmistebaasifunktsioonid kasutavad bedrock-agent ja bedrock-agent-runtime. AWS dokumenteerib ka bedrock-mantle lõpp-punkti valitud ühilduvate API-de jaoks.
Uue vestlusrakenduse puhul soovitab AWS üldjuhul kasutada Converse API-t, kui valitud mudel seda toetab. Converse pakub toetatud mudelite jaoks ühist sõnumivormingut, mis hõlmab süsteemijuhiseid, mitmevoorulisi vestlusi, tööriistade kasutamist ja teatud multimodaalset sisu. Kasutage ConverseStream-i siis, kui rakendus peaks väljundit kuvama selle genereerimise ajal.
Kellele Bedrock mõeldud on?
Bedrock on mõeldud arendajatele ja organisatsioonidele, kes juba kasutavad AWS-i või vajavad AWS-i identiteedihaldust, piirkondlikke juhtelemente, kasutuse jälgimist ja juurdepääsu mitme pakkuja mudelitele. See toetab vestlusrakendusi, dokumentide analüüsi, otsinguga täiendatud genereerimist, agente, sisu loomist, tekstivektorite genereerimist, piltide genereerimist, automatiseeritud töövooge ja mudelite kohandamist.
See on vähem sobiv juhul, kui soovite väga lihtsat eraldiseisvat API-t, mille kasutamiseks pole vaja AWS-i kontot, IAM-i seadistamist ega piirkondliku taristu otsuseid. Samuti ei ole see üks mudel: võimalused, hinnad, sisendvormingud ja saadavus sõltuvad valitud mudelist ja piirkonnast.
Juurdepääsu ja autentimisandmete hankimine
Teil on vaja AWS-i kontot, juurdepääsu asjakohastele Bedrocki mudelitele ning õigust kutsuda valitud API-toiminguid. Tootmiskeskkonnas kasutage IAM-i rolli, ajutisi AWS-i autentimisandmeid või muud AWS-i hallatavat identiteedimustrit. IAM määrab, millised kasutajad, rollid ja rakendused tohivad mudeleid avastada, neid käivitada, tööriistu kasutada või muid Bedrocki ressursse juurde pääseda.
AWS pakub katsetamiseks ja arenduseks ka Bedrocki API-võtmeid. Dokumenteeritud pikaajalised API-võtmed aeguvad 30 päeva pärast, mistõttu ei tohiks neid tavaliselt kasutada tootmisteenuse püsiva autentimismehhanismina. API-võtmega päringud kasutavad päist Authorization: Bearer, samal ajal kui AWS-i SDK-päringud kasutavad tavaliselt standardset AWS-i autentimisandmete allkirjastamist.
Peamine käitusaja lõpp-punkt järgib järgmist mustrit:
https://bedrock-runtime.{region}.amazonaws.comEnne päringu saatmist kontrollige, kas valitud mudel on teie piirkonnas saadaval ja kas teie identiteedil on õigus seda käivitada. Mudelite juurdepääs, toetatud piirkonnad ja võimalused ei ole kogu Bedrocki kataloogis ühesugused.
API ja mudeli valimine
Alustage rakenduse vajadustest, mitte eeldusest, et iga mudel toetab kõiki Bedrocki funktsioone.
| Nõue | Tüüpiline valik | Oluline kontroll |
|---|---|---|
| Mitmevooruline tekstiline või multimodaalne vestlus | Converse | Veenduge, et valitud mudel toetab Converse'i ja vajalikke sisutüüpe. |
| Väljundi kuvamine järk-järgult | ConverseStream | Veenduge voogedastuse toes ja töödelge vastuse sündmusi järk-järgult. |
| Mudelipõhised päringufunktsioonid | InvokeModel | Kasutage mudeli dokumenteeritud päringu- ja vastusevormingut. |
| Pakktöötlus või asünkroonne töötlus | Batch või seotud Bedrocki töövood | Kontrollige mudeli, piirkonna ja teenusetaseme saadavust. |
| Teadmistega põhjendatud vastused | Teadmistebaasid või rakenduse hallatav otsing | Kontrollige andmete sissevõttu, otsingut, õigusi ja toetatud mudeleid. |
| Agentidega töövood | Bedrocki agendifunktsioonid või AgentCore | Bedrock Agents Classic ei ole uutele klientidele avatud; AWS suunab uued töökoormused AgentCore'i kasutama. |
Hoidke mudeli ID rakenduse seadetes muudetavana. Nii on lihtsam katsetada mõnda muud mudelit, liikuda piirkondade vahel või mudelit vahetada ilma rakenduse loogikat ümber kirjutamata.
Esimese päringu tegemine Converse'iga
Järgmine Pythoni näide kasutab praegust Boto3 Bedrock Runtime'i klienti. Installige SDK käsuga python -m pip install boto3, seadistage AWS-i autentimisandmed tavalise AWS-i autentimisandmete ahela kaudu, määrake vajaduse korral AWS_REGION ning sisestage selles piirkonnas saadaval oleva mudeli ID.
import os
import boto3
from botocore.exceptions import BotoCoreError, ClientError
region = os.getenv("AWS_REGION", "us-east-1")
model_id = os.environ["BEDROCK_MODEL_ID"]
client = boto3.client("bedrock-runtime", region_name=region)
try:
response = client.converse(
modelId=model_id,
system=[{"text": "Answer clearly and briefly for a developer."}],
messages=[
{
"role": "user",
"content": [{"text": "What is Amazon Bedrock?"}],
}
],
inferenceConfig={
"maxTokens": 300,
"temperature": 0.2,
},
)
text = "".join(
part.get("text", "")
for part in response["output"]["message"].get("content", [])
)
print(text)
except (ClientError, BotoCoreError) as exc:
print(f"Bedrock request failed: {exc}")
raiseSama päringu saab HTTP kaudu saata, kasutades Converse'i ressursiteed /model/{modelId}/converse. API-võtme korral saatke päring piirkondlikule käitusaja lõpp-punktile ja lisage kandemärk:
curl --fail-with-body --silent --show-error
--request POST "https://bedrock-runtime.${AWS_REGION}/model/${BEDROCK_MODEL_ID}/converse"
--header 'Content-Type: application/json'
--header "Authorization: Bearer ${AWS_BEARER_TOKEN_BEDROCK}"
--data '{
"messages": [
{"role": "user", "content": [{"text": "Explain Bedrock in one sentence."}]}
],
"inferenceConfig": {"maxTokens": 200, "temperature": 0.2}
}'Tootmiskeskkonnas eelistage pikaajalise API-võtme rakendusserverisse salvestamisele IAM-i rolle või ajutisi autentimisandmeid.
Vastuse mõistmine
Converse tagastab väljundsõnumi, mis sisaldab üht või mitut sisuosa. Lihtne tekstirakendus võib ühendada text väärtused, nagu on näidatud Pythoni näites. Vastus sisaldab ka metaandmeid, näiteks kasutuse ja latentsuse teavet, millest võib olla kasu kulude jälgimisel ja töökorralduse seirel.
Ärge eeldage, et iga vastus sisaldab ainult teksti. Sõltuvalt mudelist ja päringust võib sisu sisaldada muid toetatud osi, tööriistakasutuse päringuid või multimodaalseid tulemusi. Rakenduse kood peaks vastuse struktuuri kontrollima ning töötlema lõpetamise põhjuseid, tööriistapäringuid ja vigu selgesõnaliselt.
Kuidas Amazon Bedrocki hinnastamine toimib?
Bedrockil ei ole üht universaalset API tellimishinda. Kulu määravad peamiselt valitud mudel, piirkond, modaalsus, sisendi- ja väljundkasutus ning teenusetase. AWS avaldab mudelipõhised hinnad žetoonidele, piltidele, tekstivektoritele ja vajaduse korral muudele ühikutele.
Sõltuvalt mudelist ja piirkonnast võivad saadaval olla järgmised mahutavuse ja reageerimiskiiruse valikud:
- Standard: Üldine nõudepõhine inferents.
- Flex: Mõeldud töökoormustele, mille puhul saab väiksema kulu nimel reageerimiskiiruses järeleandmisi teha.
- Priority: Mõeldud latentsustundlikele päringutele ja on tavaliselt kõrgema hinnaga.
- Batch: Mõeldud asünkroonseks pakktöötluseks ning võib pakkuda soodsamat hinda.
- Provisioned or Reserved Throughput: Mõeldud prognoositava tootmismahu jaoks, kui see on toetatud.
Hinnake kulu täpselt valitud mudeli ja piirkonna hinnakirja põhjal, mitte kogu platvormile rakendatava üldhinna alusel. Jälgige oma telemeetrias sisend- ja väljundžetoone, piltide või tekstivektorite kasutust ning teenusetaset.
Platvormi kaudu saadaolevad võimalused
Vestlus, voogedastus ja multimodaalne sisend
Converse toetab süsteemijuhiseid, mitmevoorulisi sõnumeid ja ühilduvate mudelite ühiseid inferentsiseadeid. ConverseStream tagastab järkjärgulised sündmused, nii et kasutajaliides saab teksti kuvada genereerimise ajal, selle asemel et oodata täielikku vastust.
Ühilduvad mudelid võivad lisaks tekstile vastu võtta pilte ja dokumente. Täpsed vormingud, suurusepiirangud, piirkonnad ja mudeli tugi tuleb valitud mudeli puhul üle kontrollida. Multimodaalne sisend ei tähenda, et iga Bedrocki mudel suudab töödelda kõiki failitüüpe.
Tööriistade ja funktsioonide kutsumine
Tööriistade kasutamine võimaldab mudelil paluda rakenduse määratud funktsiooni, näiteks tellimuse andmete otsimist või siseeteenuse päringut. Teie rakendus käivitab funktsiooni, valideerib selle argumendid ja saadab tulemuse mudelile tagasi. Bedrock ei anna mudelile automaatselt juurdepääsu teie süsteemidele; rakendus vastutab endiselt täitmise, autoriseerimise ja turvakontrollide eest.
Tüüpiline tööriistade töövoog on järgmine:
- kontrollige, kas vastus sisaldab tööriistakasutuse päringut;
- valideerige taotletud nimi ja argumendid;
- käivitage ainult lubatud rakendusefunktsioon;
- saatke tööriista tulemus oodatud sõnumivormingus tagasi;
- jätkake vestlust ja kuvage lõplik vastus.
Struktureeritud väljundid
Töövoogudes, kus mudeli tulemused edastatakse tarkvarale, võib vabavormilist teksti olla keeruline usaldusväärselt parsida. Toetatud Bedrocki mudelid ja API-d võivad tulemusi piirata JSON Schema väljundi seadistuse või rangete tööriistade määratluste abil. Kontrollige valitud mudeli ja lõpp-punkti tuge ning valideerige tagastatud andmed rakenduses ka siis, kui skeem on esitatud.
Failid, teadmistebaasid ja veebiotsing
Toetatud mudelid võivad sisendina vastu võtta dokumente või muud sisu, millele kehtivad mudelipõhised piirangud. Bedrock pakub ka teadmistebaasifunktsioone otsinguga täiendatud rakendustele, kus asjakohane teave leitakse enne vastuse genereerimist.
Bedrock Web Search võib Responses API ning IAM-i kontrollitud otsingu- ja toomistoimingute kaudu pakkuda toetatud mudelitele ajakohast veebiteavet. See on eraldiseisev võimalus, millel on oma mudeli-, õiguste- ja saadavusnõuded; ärge eeldage, et see on saadaval iga Converse'i päringu kaudu.
Kohandamine, agendid ja arendajatööriistad
Sõltuvalt mudeli saadavusest toetab Bedrock peenhäälestust, jätkuõpet, tugevdatud peenhäälestust ja muid kohandamise töövooge. Samuti pakub see turvapiirdeid, hindamisi, viipade haldust, vooge ja agentidega seotud teenuseid.
AWS-i halduskonsool sisaldab teksti-, vestlus- ja pildimänguvälju. Need on kasulikud viipade võrdlemiseks ja toetatud mudelite testimiseks enne integratsioonikoodi kirjutamist. Mänguväli ei kaota vajadust seadistada IAM-i õigusi, valida piirkonda ega kontrollida tootmismahu piiranguid.
Väljundi voogedastus Boto3 abil
Kasutage converse_stream, kui rakendus peaks teksti sündmuste saabudes välja printima või kuvama:
stream = client.converse_stream(
modelId=model_id,
messages=[
{
"role": "user",
"content": [{"text": "Give three practical Bedrock API tips."}],
}
],
inferenceConfig={"maxTokens": 300, "temperature": 0.2},
)
for event in stream["stream"]:
delta = event.get("contentBlockDelta", {}).get("delta", {})
if "text" in delta:
print(delta["text"], end="", flush=True)
print()Voogedastusvastused on sündmuste jadad, mitte üks lõpetatud JSON-sõnum. Teie kood peaks töötlema tekstimuutusi ning arvestama lõpetamise, tööriistakasutuse ja vea sündmustega vastavalt valitud mudeli vastuse lepingule.
Piirangud ja tootmiskeskkonna kaalutlused
Kvoodid ja piiramine
Kvoodid sõltuvad mudelist, piirkonnast, kontost, lõpp-punktist ja päringu tüübist. Käitusaja lõpp-punkt kasutab tavaliselt mudelipõhiseid žetoonikvoote ning mõne mudeli puhul ka päringute arvu minutis piiranguid. Bedrock Mantle'il on toetatud mudelite jaoks eraldi sisend- ja väljundžetoonide kvoodid. Täpsed väärtused ja võimalikud suurendamised leiate AWS Service Quotasest.
Kasutage piiratud samaaegsust, eksponentsiaalset taustaooteaega koos juhusliku hajutusega ning läbimõeldud korduskatsete klassifitseerimist. Vastus 429 võib viidata piirangule või mudeli valmisolekuga seotud seisundile, samal ajal kui 503 ja mudelipõhised ülekoormusvastused võivad viidata ajutistele mahupiirangutele. Ärge proovige pimesi uuesti autentimisvigu, valideerimisvigu ega vigases vormingus päringuid.
Piirkonnad, marsruutimine ja latentsus
Latentsus sõltub mudelist, piirkonnast, päringu suurusest, liiklusest, teenusetasemest ja marsruutimisest. Piirkondadeülesed inferentsiprofiilid võivad suunata päringuid toetatud piirkondade vahel. Standard-, Priority- ja Flex-tasemed ning eraldatud ja reserveeritud maht pakuvad toetuse korral erinevaid kulu-, latentsus- ja mahutavuse kompromisse.
Piirkondlik marsruutimine on oluline ka andmete asukoha seisukohast. Kui kasutatakse piirkondadeülest inferentsi, vaadake üle, kus võidakse säilitada sisendeid ja väljundeid ning kas see vastab organisatsiooni nõuetele.
Privaatsus ja andmekäitlus
AWS-i dokumentatsiooni kohaselt ei kasuta AWS ega mudelipakkujad Bedrocki klientide sisendeid ja väljundeid üldise teenusekäitumisena alusmudelite treenimiseks ega täiustamiseks. Andmekäitlus võib erineda sõltuvalt mudelist, lõpp-punktist, funktsioonist ja kohaldatavatest pakkuja tingimustest.
Bedrock dokumenteerib vaikimisi kuritarvituste tuvastamise ja säilitamise käitumist, sealhulgas erijuhtumeid, mille puhul võidakse sisu AWS-i piirides ülevaatamiseks või kuritarvituste ennetamiseks säilitada. Enne reguleeritud või tundliku teabe töötlemist vaadake üle konkreetse mudeli dokumentatsioon, konto tasandi säilitamisjuhtelemendid, krüptimisseaded, CloudTraili katvus ja IAM-i õigused.
Mudelite ühilduvus
Voogedastuse, piltide, dokumentide, struktureeritud väljundite, tööriistade kasutamise ja peenhäälestuse tugi ei ole kogu kataloogis ühesugune. Käsitlege mudeli võimalusi seadistusena, mida tuleb testida, mitte kogu Bedrocki platvormi garanteeritud omadusena. Hoidke võimaluste kontrollid ja mudelipõhised seaded äriloogikast eraldi.
SDK-d ja dokumentatsioon
AWS pakub ametlikke SDK-sid Pythonile Boto3 kaudu, JavaScriptile ja TypeScriptile AWS SDK for JavaScript v3 kaudu ning Javale, Golangile, .NET-ile, C++-ile, Ruby'le, PHP-le ja teistele AWS-i SDK-dega toetatud keeltele. SDK-d tegelevad AWS-i päringute allkirjastamisega ning pakuvad teenusepõhiseid päringu- ja vastusestruktuure.
Esimese rakenduse puhul kasutage Bedrock Runtime'i SDK-klienti ja Converse'i toimingut. Seejärel tutvuge mudelite saadavuse tabeli, Runtime API Reference'i, kvootide, hinnakirja ja mudelipõhiste võimaluste dokumentatsiooniga. See on oluline, sest süntaktiliselt korrektne päring võib ikkagi ebaõnnestuda, kui mudel pole valitud piirkonnas saadaval või ei toeta soovitud funktsiooni.
Millal on Amazon Bedrock hea või halb valik?
Bedrock on hea valik, kui vajate hallatud juurdepääsu mitme alusmudelite pakkuja mudelitele, AWS-i IAM-i ja piirkondlikke juhtelemente, mudelivalikut, kasutuspõhist arveldamist, konsoolis katsetamist või integratsiooni AWS-i taristuga. See on kasulik ka siis, kui rakendus vajab ühe AWS-i teenuseperekonna piires inferentsi, tööriistu, teadmistebaase, agente, struktureeritud väljundeid ja mudelite kohandamist.
See võib olla halb valik juhul, kui meeskond ei soovi AWS-i konto ja IAM-i haldamist, vajab üht äärmiselt lihtsat konkreetse pakkuja API-t, vajab sihtpiirkonnas kättesaamatut funktsiooni või eeldab kõikide mudelite puhul ühesugust käitumist. Peamine hindamisülesanne on testida täpselt seda mudelit, API-liidest, piirkonda, kvooti, andmekäitlustingimusi ja hinnastust, mida tootmisrakendus hakkab kasutama.
