Arendaja platvorm

Amazon Bedrock API

Amazon ülevaade arendajatele, mis hõlmab API-juurdepääsu, hinnastust, SDK-tuge, lõppunkte, võimekusi ja platvormi reegleid.

API võti Nõutud
Peamine API Amazon Bedrock Runtime'i Converse API
SDK tugi Ametlikult toetatud AWS SDK-d hõlmavad Python Boto3-t, JavaScripti või TypeScripti AWS SDK v3, Java, Go, .NET-i, C++, Ruby, PHP-d ja teisi AWS SDK keeli.
Päringupiirangud Kvoodid sõltuvad mudelist, piirkonnast, kontost ja lõpp-punktist. bedrock-runtime kasutab üldjuhul mudelipõhiseid tokenikvoote ning mõne mudeli puhul ka minutis lubatud päringute arvu kvoote. bedrock-mantle kasutab toetatud mudelite puhul eraldi sisendtok
Platvorm

API ülevaade

Lõppunktid (endpoints)

API ligipääs

Juuraadress (Base URL) https://bedrock-runtime.{region}.amazonaws.com
Peamine API Amazon Bedrock Runtime'i Converse API
Hinnad

API Hinnad

Hinnakujundusmudel Kasutuspõhine AWS-i hinnastus, mille määravad mudel, modaalsus, tokenid või muud mudelipõhised ühikud, piirkond, teenusetase ja valikulised mahukohustused.

AWS avaldab mudelipõhised tellimuspõhise kasutuse hinnad. Bedrock toetab toetatud mudelite puhul ka Standardi, Flexi, Priority, Batchi ning reserveeritud või eelvarustatud läbilaskevõime valikuid. Ühtset universaalset API-tellimuse hinda ei ole.

Arendaja töömugavus

SDK info

SDK Ametlikult toetatud AWS SDK-d hõlmavad Python Boto3-t, JavaScripti või TypeScripti AWS SDK v3, Java, Go, .NET-i, C++, Ruby, PHP-d ja teisi AWS SDK keeli.
Kasutusmugavus Mõõdukas. Converse pakub toetatud mudelite jaoks ühtset liidest, kuid AWS-i mandaadid, IAM-i poliitikad, regioonid, mudelitele juurdepääsu haldamine ja mudelispetsiifilised päringuvormingud muudavad kasutuse haldamise keerukamaks.
Dokumentatsioon Põhjalik ja tehniliselt üksikasjalik dokumentatsioon, mis sisaldab eraldi kasutusjuhendeid, API-viiteid, kvoote, mudelite kättesaadavust käsitlevaid lehti, SDK näiteid ja teenusepõhist dokumentatsiooni.
Viivitus Latentsus sõltub mudelist, piirkonnast, päringu suurusest, teenusetasemest, liiklusest ja marsruutimisest. Converse’i vastused sisaldavad latentsusmõõdikuid. Standard-, Priority-, Flex-, piirkondadevahelise inferentsi, reserveeritud võimsuse ja Reserved-t
Featuurid

API võimekused

✓ Voogedastus
✓ Funktsioonide kasutamine
✓ Assistants API
✓ Failide üleslaadimine
✓ Peenhäälestamine
✓ Veebiotsing
✓ Pildi sisend
✓ Struktureeritud väljund
✓ Liivakast
Lühikirjeldus

Amazon Bedrock pakub juhtimistasandi ja käitusaja API-sid mudelite avastamiseks, järeldamiseks, mudelite kohandamiseks, hindamiseks, turvareeglite rakendamiseks, teadmistebaaside, agentide, viipade halduse, töövoogude, andmete automatiseerimise ja muude seotud teenuste jaoks. Kui valitud mudel seda toetab, on Converse soovitatav ühine vestlusliides; ConverseStream võimaldab voogedastust. InvokeModel ja InvokeModelWithResponseStream on endiselt saadaval mudelispetsiifiliseks või madalama taseme järeldamiseks. Tööriistade kasutamist ja funktsioonikutseid toetatakse ühilduvate mudelite puhul tööriistade konfiguratsiooni kaudu. Struktureeritud väljundeid toetatakse JSON Schema väljundi konfiguratsiooni ja toetatud mudelite puhul rangete tööriistamääratluste kaudu. Pildi- ja dokumendisisendeid toetatakse ainult ühilduvate mudelite ja vormingute puhul. Web Search on praegu toetatud mudelite jaoks Responses API kaudu sisseehitatud Bedrocki võimalusena saadaval. Bedrock Agents Classic ei ole uutele klientidele enam avatud; AWS suunab uusi kliente sarnaste agendikäitusaja võimaluste kasutamiseks Amazon Bedrock AgentCore'i juurde.

Näited

API Näited

set -euo pipefail

: "${AWS_BEARER_TOKEN_BEDROCK:?Set AWS_BEARER_TOKEN_BEDROCK to an Amazon Bedrock API key}"
REGION="${AWS_REGION:-us-east-1}"
MODEL_ID="${BEDROCK_MODEL_ID:?Set BEDROCK_MODEL_ID to a model available in your Region}"
URL="https://bedrock-runtime.${REGION}.amazonaws.com/model/${MODEL_ID}/converse"

response="$(curl --fail-with-body --silent --show-error --request POST "$URL" \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer ${AWS_BEARER_TOKEN_BEDROCK}" \
  --data @- <<'JSON'
{
  "system": [
    {"text": "You are a concise technical assistant."}
  ],
  "messages": [
    {"role": "user", "content": [{"text": "Explain Amazon Bedrock Converse in one sentence."}]}
  ],
  "inferenceConfig": {
    "maxTokens": 200,
    "temperature": 0.2
  }
}
JSON
)"
printf '%s\n' "$response" | jq -r '.output.message.content[]? | .text? // empty' || {
  printf '%s\n' "$response"
  exit 1
}
# Install: python -m pip install boto3
import json
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)

messages = [
    {
        "role": "user",
        "content": [{"text": "What is Amazon Bedrock?"}],
    }
]

try:
    response = client.converse(
        modelId=model_id,
        system=[{"text": "Answer clearly and briefly for a developer."}],
        messages=messages,
        inferenceConfig={"maxTokens": 300, "temperature": 0.2},
    )
    text = "".join(
        item.get("text", "")
        for item in response["output"]["message"].get("content", [])
    )
    print(text)

    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()
except (ClientError, BotoCoreError) as exc:
    print(f"Bedrock request failed: {exc}", file=__import__("sys").stderr)
    raise SystemExit(1)
// Install: npm install @aws-sdk/client-bedrock-runtime
import {
  BedrockRuntimeClient,
  ConverseCommand,
  ConverseStreamCommand,
} from "@aws-sdk/client-bedrock-runtime";

const region = process.env.AWS_REGION ?? "us-east-1";
const modelId = process.env.BEDROCK_MODEL_ID;
if (!modelId) throw new Error("Set BEDROCK_MODEL_ID");

const client = new BedrockRuntimeClient({ region });

try {
  const response = await client.send(new ConverseCommand({
    modelId,
    system: [{ text: "You are a concise technical assistant." }],
    messages: [
      { role: "user", content: [{ text: "Explain Amazon Bedrock in one sentence." }] },
    ],
    inferenceConfig: { maxTokens: 200, temperature: 0.2 },
  }));

  const text = (response.output?.message?.content ?? [])
    .map((part) => part.text ?? "")
    .join("");
  console.log(text);

  const stream = await client.send(new ConverseStreamCommand({
    modelId,
    messages: [
      { role: "user", content: [{ text: "List three Bedrock API best practices." }] },
    ],
    inferenceConfig: { maxTokens: 300, temperature: 0.2 },
  }));

  for await (const event of stream.stream ?? []) {
    const textDelta = event.contentBlockDelta?.delta?.text;
    if (textDelta) process.stdout.write(textDelta);
  }
  process.stdout.write("\n");
} catch (error) {
  console.error("Bedrock request failed:", error);
  process.exitCode = 1;
}
<?php

$region = getenv('AWS_REGION') ?: 'us-east-1';
$modelId = getenv('BEDROCK_MODEL_ID');
$apiKey = getenv('AWS_BEARER_TOKEN_BEDROCK');

if (!$modelId || !$apiKey) {
    fwrite(STDERR, "Set BEDROCK_MODEL_ID and AWS_BEARER_TOKEN_BEDROCK\n");
    exit(1);
}

$url = "https://bedrock-runtime.{$region}.amazonaws.com/model/" . rawurlencode($modelId) . "/converse";
$payload = [
    'system' => [
        ['text' => 'You are a concise technical assistant.']
    ],
    'messages' => [
        [
            'role' => 'user',
            'content' => [
                ['text' => 'Explain Amazon Bedrock in one sentence.']
            ]
        ]
    ],
    'inferenceConfig' => [
        'maxTokens' => 200,
        'temperature' => 0.2
    ]
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Content-Type: application/json',
        'Authorization: Bearer ' . $apiKey
    ],
    CURLOPT_POSTFIELDS => json_encode($payload, JSON_THROW_ON_ERROR),
    CURLOPT_TIMEOUT => 60
]);

$body = curl_exec($ch);
if ($body === false) {
    fwrite(STDERR, 'cURL error: ' . curl_error($ch) . "\n");
    curl_close($ch);
    exit(1);
}

$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($body, true);

if ($status < 200 || $status >= 300 || !is_array($data)) {
    fwrite(STDERR, "Bedrock HTTP error {$status}: {$body}\n");
    exit(1);
}

$text = '';
foreach (($data['output']['message']['content'] ?? []) as $part) {
    $text .= $part['text'] ?? '';
}
echo $text . PHP_EOL;
Põhimõtted

Andmete kasutus

Andmete kasutus

AWS-i dokumentatsiooni kohaselt ei kasuta AWS ega mudelite pakkujad Amazon Bedrocki klientide sisendeid ja väljundeid üldjuhul aluseks olevate baasmudelite treenimiseks ega täiustamiseks. Andmete käsitlemine võib mudeliti, lõpp-punktiti, funktsiooniti ja kohaldatavate pakkuja tingimuste alusel erineda. Enne tootmises kasutamist peaksid kliendid tutvuma valitud mudeli dokumentatsiooni ja tingimustega.

Andmete säilitamine

Säilitamine sõltub lõpp-punktist, mudelist, funktsioonist ja konto seadetest. Bedrocki dokumentatsioon kirjeldab väärkasutuse tuvastamise vaikimisi säilitamisreegleid ning erandlikke mudelijuhtumeid, mille korral võidakse sisendeid ja genereeritud vastuseid AWS-i piires nõutava läbivaatamise eesmärgil säilitada kuni 30 päeva. Piirkondadeülene inferents võib põhjustada säilitatud andmete talletamise sihtpiirkondades. Tundlike töökoormuste puhul tuleks üle vaadata konto tasemel säilitamise juhtseaded ja mudelipõhine dokumentatsioon.

Päringupiirangud

Kvoodid sõltuvad mudelist, piirkonnast, kontost ja lõpp-punktist. bedrock-runtime kasutab üldjuhul mudelipõhiseid tokenikvoote ning mõne mudeli puhul ka minutis lubatud päringute arvu kvoote. bedrock-mantle kasutab toetatud mudelite puhul eraldi sisendtok

Arendaja juhend

Amazon Bedrock API: arendajaplatvorm, funktsioonid, hinnakujundus ja näited

Amazon Bedrock on Amazon Web Servicesi hallatav arendajaplatvorm, mis võimaldab ühtsete API-de, SDK-de, konsooli testkeskkondade, agentide, teadmistebaaside, veebotsingu, turvapiirete, peenhäälestuse, struktureeritud väljundite ja muude generatiivse tehisintellekti teenuste kaudu kasutada Amazoni ja kolmandate osapoolte pakkujate alusmudeleid.
Amazon Bedrock pakub hallatavat API-kihti generatiivse tehisintellekti rakenduste loomiseks, ilma et peaksite alusmudeleid ise juurutama. Platvorm võimaldab mudelite järeldamist Bedrock Runtime’i API-de kaudu. Toetatud vestluspõhiste töövoogude korral on soovitatav kasutada API-sid Converse ja ConverseStream, samal ajal kui täiendavad juhtimistasandi, agentide, teadmistebaaside, kohandamise ja hindamise API-d toetavad tootmiskeskkonna rakenduste arendamist.
Amazon Bedrock on AWS-i hallatav arendajaplatvorm, mille kaudu saab Amazoni ja kolmandate osapoolte alusmudeleid kasutada ühiste inferentsi-API-de, SDK-de ja konsoolitööriistade abil. See toetab vestluspõhist inferentsi, voogedastust, tööriistade kasutamist, struktureeritud JSON-väljundeid, multimodaalset sisu, veebiotsingut, agente, teadmistebaase, peenhäälestust ja mudelite hindamist.

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.com

Enne 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õueTüüpiline valikOluline kontroll
Mitmevooruline tekstiline või multimodaalne vestlusConverseVeenduge, et valitud mudel toetab Converse'i ja vajalikke sisutüüpe.
Väljundi kuvamine järk-järgultConverseStreamVeenduge voogedastuse toes ja töödelge vastuse sündmusi järk-järgult.
Mudelipõhised päringufunktsioonidInvokeModelKasutage mudeli dokumenteeritud päringu- ja vastusevormingut.
Pakktöötlus või asünkroonne töötlusBatch või seotud Bedrocki töövoodKontrollige mudeli, piirkonna ja teenusetaseme saadavust.
Teadmistega põhjendatud vastusedTeadmistebaasid või rakenduse hallatav otsingKontrollige andmete sissevõttu, otsingut, õigusi ja toetatud mudeleid.
Agentidega töövoodBedrocki agendifunktsioonid või AgentCoreBedrock 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}")
    raise

Sama 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:

  1. kontrollige, kas vastus sisaldab tööriistakasutuse päringut;
  2. valideerige taotletud nimi ja argumendid;
  3. käivitage ainult lubatud rakendusefunktsioon;
  4. saatke tööriista tulemus oodatud sõnumivormingus tagasi;
  5. 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.

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.

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.

Allikad 18