Mis on IBM watsonx.ai API?
IBM watsonx.ai API on IBM-i ettevõtetele mõeldud tehisintellektiplatvormi arendajaliides. Selle abil saab rakendus saata toetatud alusmudelitele viipasid ja sõnumeid, vastu võtta genereeritud vastuseid ning kasutada seotud tehisintellekti toiminguid, näiteks tekstiembedding'uid, tulemuste ümberjärjestamist, dokumentide ekstraheerimist, hindamist, prognoosimist ja mudelite häälestamist.
Põhiliides on versioonitud REST API. IBM pakub ka ametlikku ibm-watsonx-ai Pythoni paketti ja @ibm-cloud/watsonx-ai Node.js-i SDK-d. Päringutes määratakse mudel tavaliselt väärtusega model_id ning IBM Cloudi projekt või juurutuskontekst väärtusega project_id või mõne töövoo puhul ruumi identifikaatoriga.
watsonx.ai on mõeldud eelkõige ettevõtete rakendustele, mitte igapäevaseks vestlusroboti kasutamiseks. See sobib hästi meeskondadele, kes loovad hallatud siseabilisi, otsinguga täiendatud genereerimise süsteeme, tehisintellekti agente, koodigeneraatoreid, dokumenditöövooge, masinõpperakendusi ning rakendusi, mis vajavad IBM Cloudi, hübriidpilve või valitud kohapealse juurutamise võimalusi.
Kuidas saada juurdepääs ja mandaadid?
Alustuseks looge IBM Cloudi konto või kasutage olemasolevat kontot ning aktiveerige toetatud piirkonnas vajalik watsonx.ai teenus. Olenevalt tootest ja paketist võib juurdepääs olla saadaval watsonx.ai SaaS-keskkonna, IBM Cloudi, AWS-i või mõne muu toetatud ettevõtetele mõeldud juurutuslahenduse kaudu.
- Valige toetatud piirkond ning aktiveerige watsonx.ai või watsonx.ai Runtime.
- Avage watsonx.ai arendajate juurdepääsu jaotis ning märkige üles piirkondlik teenuse lõpp-punkt.
- Looge IBM Cloudi API-võti ja salvestage see keskkonnamuutujasse või saladuste haldurisse, mitte rakenduse lähtekoodi.
- Märkige üles valitud toimingu jaoks vajalik projekti ID või juurutusruumi identifikaator.
- Valige alusmudelite kataloogist praegu saadaolev mudel ning kontrollige selle toetatud funktsioone.
Toorete HTTP-päringute korral vahetatakse IBM Cloudi API-võti lühiajalise IAM-i juurdepääsuloa vastu. Saadud luba saadetakse Authorization: Bearer päises. SDK-d võivad autentimist lihtsustada, kuid rakendus vajab endiselt õiget teenuse URL-i, projekti konteksti ja mudeli identifikaatorit.
Mudeli ja API-toimingu valimine
Uue vestlus- või tekstigeneratsioonirakenduse puhul alustage praegusest tekstivestluse API-st, POST /ml/v1/text/chat, või selle SDK-ekvivalendist. See toiming on mõeldud sõnumitele, mille rollid on näiteks system, user ja assistant. Valitud mudel peab toetama funktsioone, mida kavatsete kasutada.
Otse alusmudeliga järeldamine erineb konkreetse juurutusega seotud järeldamisest. Kataloogis olevat mudelit saab kutsuda standardse mudeli järeldamise tee kaudu, samas kui projekti või juurutusruumi juurutatud mudel võib vajada juurutusepõhist lõpp-punkti. Prompt Lab ja praegune API viitedokumentatsioon aitavad määrata valitud mudeli jaoks sobiva päringu vormi.
Mudelite võimalused ei ole ühesugused. Enne rakenduse loomist kontrollige, kas valitud mudel toetab vestlust, visuaalset sisendit, voogedastust, tööriistu, JSON-väljundit, häälestamist, kontekstipiiranguid ja teie rakenduses kasutatavaid parameetreid. Saadavus võib sõltuda mudelist, piirkonnast, paketist ja juurutuse tüübist.
Esimese päringu tegemine REST-i abil
Järgmine näide kasutab praegust tekstivestluse mustrit. Selles vahetatakse IBM Cloudi API-võti IAM-i loa vastu ja saadetakse seejärel vestluspäring piirkondlikule watsonx.ai lõpp-punktile. Versiooni päringuparameeter on nõutav, et IBM saaks API-t edasi arendada, säilitades samal ajal versioonipõhise käitumise.
set -euo pipefail
: "${IBM_CLOUD_API_KEY:?Set IBM_CLOUD_API_KEY}"
: "${WATSONX_PROJECT_ID:?Set WATSONX_PROJECT_ID}"
WATSONX_URL="${WATSONX_URL:-https://us-south.ml.cloud.ibm.com}"
WATSONX_MODEL_ID="${WATSONX_MODEL_ID:-ibm/granite-4-h-small}"
TOKEN=$(curl --fail-with-body -sS -X POST
"https://iam.cloud.ibm.com/identity/token"
-H "Content-Type: application/x-www-form-urlencoded"
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey"
--data-urlencode "apikey=${IBM_CLOUD_API_KEY}"
| python -c 'import json,sys; print(json.load(sys.stdin)["access_token"])')
curl --fail-with-body -sS -X POST
"${WATSONX_URL}/ml/v1/text/chat?version=2025-02-11"
-H "Authorization: Bearer ${TOKEN}"
-H "Content-Type: application/json"
-H "Accept: application/json"
-d "$(cat <<JSON
{
"model_id": "${WATSONX_MODEL_ID}",
"project_id": "${WATSONX_PROJECT_ID}",
"messages": [
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "Explain what an API gateway does in one paragraph."}
],
"max_tokens": 200,
"temperature": 0.2
}
JSON
)"Näites eeldatakse, et IBM_CLOUD_API_KEY ja WATSONX_PROJECT_ID on juba määratud. Muutke WATSONX_URL piirkonnale, kus teenus on aktiveeritud, ning muutke WATSONX_MODEL_ID mudelile, mis on kontol praegu saadaval.
API vastuse mõistmine
Edukas vestlusvastus sisaldab kogumit choices. Genereeritud assistendi sõnum loetakse tavaliselt väärtusest choices[0].message.content. Rakendused ei tohiks eeldada, et kõik vastused on identsed: voogedastusvastused saabuvad järk-järgult, tööriistakutsed kasutavad funktsiooniteavet sisaldavaid sõnumivälju ning veavastuseid tuleb käsitleda eraldi.
Tootmiskood peaks kontrollima HTTP olekukoode ning säilitama tõrkeotsingu jaoks kasulikku päringu- või korrelatsiooniteavet, logimata samal ajal API-võtmeid või tundlikku viibateksti. Olenevalt lõpp-punktist, mudelist ja teenuse konfiguratsioonist võib vastus sisaldada ka kasutusteavet või muid metaandmeid.
Kuidas watsonx.ai API hinnastamine toimib?
watsonx.ai ühendab paketitasud kasutuspõhiste tasudega. Alusmudeli järeldamist võidakse mõõta ressursiühikutes, mis vastavad 1000 sisend- ja väljundmärgile, samas kui mõne mudeli ja juurutusrežiimi eest võetakse tunnipõhist tasu. IBM pakub tasuta mänguväljaku- või proovikasutuse mahtusid, Essentials pay-as-you-go paketti ning Standardi ettevõttepaketti.
Esitatud hinnateave näitab Standardi avaldatud alustava eksemplari hinnana 1110 USA dollarit kuus, kuid see ei ole kõigi API töökoormuste puhul ühesugune kulu. Mudeli kasutus, maht, majutus, häälestamine, teksti ekstraheerimine ja muud funktsioonid võivad lisada eraldi tasusid. Hinnad ja saadavus sõltuvad riigist, piirkonnast, mudelist, GPU konfiguratsioonist, paketist ja teenuse asukohast, seega vaadake enne tootmislahenduse kavandamist IBM-i praegust hinnakirja.
Arendajatele saadaolevad põhivõimalused
- Vestlus ja teksti genereerimine: saatke toetatud alusmudelitele vestlus- või juhistepõhiseid sõnumeid.
- Voogedastus: saate järk-järgult saabuvaid väljundsündmusi, selle asemel et oodata kogu vastust, mis võib interaktiivsetes rakendustes parandada tajutavat reageerimiskiirust.
- Tööriista- või funktsioonikutsed: määrake funktsioonid, mida mudel saab valida, ning täitke need JSON-argumentidega. Välist funktsiooni käivitab rakendus, mitte mudel, ja rakendus peaks selle argumente valideerima.
- Struktureeritud vastused: ühilduvate mudelite ja API-de puhul saab JSON-objekti väljundit taotleda väärtusega
response_format. Juhitud JSON või skeemipõhised juhtelemendid võivad sõltuda mudelist või lüüsiteest, seega kontrollige enne rangetele skeemidele tuginemist nende tuge. - Valitud multimodaalne sisend: visioonivõimelised mudelid saavad töödelda pildisisu, kui mudel ja päringu vorming seda toetavad. See ei tähenda, et kõik watsonx.ai mudelid pilte aktsepteerivad.
- Failipõhised töövood: faile saab üles laadida või registreerida andmevarade või ühendustena dokumentide ekstraheerimiseks, otsinguks, häälestamiseks ja seotud töövoogudeks. API-t ei tohiks käsitleda universaalse mitmeosalise failide sissevõtu lõpp-punktina.
- Agendid: watsonx.ai agenditöövood ja Agent Lab toetavad rakendusi, mis kasutavad tööriistu ja väliseid andmeid.
- Muud toimingud: API-d ja platvormi töövood hõlmavad embedding'uid, tulemuste ümberjärjestamist, dokumentide teksti ekstraheerimist, hindamist, aegridade prognoosimist ja alusmudelite häälestamist.
Pythoni SDK kasutamine
Ametlik Pythoni SDK on kasulik märkmike, andmeteaduse töövoogude, järeldamise ja häälestamisega seotud arenduse jaoks. Järgmises näites kasutatakse praegust ModelInference liidest ning mandaate hoitakse keskkonnamuutujates.
import os
from ibm_watsonx_ai import Credentials
from ibm_watsonx_ai.foundation_models import ModelInference
credentials = Credentials(
url=os.getenv("WATSONX_URL", "https://us-south.ml.cloud.ibm.com"),
api_key=os.environ["IBM_CLOUD_API_KEY"],
)
model = ModelInference(
model_id=os.getenv("WATSONX_MODEL_ID", "ibm/granite-4-h-small"),
credentials=credentials,
project_id=os.environ["WATSONX_PROJECT_ID"],
)
response = model.chat(
messages=[
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "What is an API gateway?"},
],
params={"max_tokens": 200, "temperature": 0.2},
)
print(response["choices"][0]["message"]["content"])Voogedastuseks pakub SDK funktsiooni chat_stream. Enne sündmuse kuvamist või kliendile edastamist tuleks kontrollida, kas see sisaldab järk-järgult saabuvat sisu. SDK meetodite nimed ja toetatud parameetrid võivad versioonide vahel muutuda, seega hoidke pakett ajakohasena ning vähem levinud toimingute lisamisel tutvuge kehtiva dokumentatsiooniga.
Struktureeritud väljund ja tööriistakutsed
Struktureeritud väljund on kasulik siis, kui rakenduse järgmine osa ootab proosa asemel masinloetavaid andmeid. Ühilduv päring võib sisaldada JSON-objekti tüüpi response_format. Rakendus peaks siiski tagastatud teksti parsima, käsitlema vigast väljundit ning kontrollima, kas valitud mudel toetab soovitud vormingut.
json_response = model.chat(
messages=[
{"role": "system", "content": "Return a JSON object with a key named benefits."},
{"role": "user", "content": "Give two API gateway benefits."},
],
params={
"response_format": {"type": "json_object"},
"max_tokens": 200,
},
)
print(json_response["choices"][0]["message"]["content"])Tööriistakutsed järgivad teistsugust juhtvoogu. Rakendus edastab funktsiooni nime, kirjelduse ja parameetrite määratluse. Kui mudel funktsiooni taotleb, valideerib rakendus JSON-argumendid, teeb toimingu ja saadab tulemuse vestlusesse tagasi. Ärge lubage mudeli genereeritud argumentidel mööda minna autoriseerimisest, sisendi valideerimisest või ärireeglitest.
Node.js-i ja teiste keelte tugi
IBM pakub JavaScripti ja TypeScripti teenuste jaoks @ibm-cloud/watsonx-ai Node.js-i SDK-d. See pakub watsonx.ai praeguseid toiminguid, näiteks tekstivestlust, ning võib sobida veebitaustateenustele. PHP ja teised keeled saavad REST API-t otse kutsuda standardsete HTTP-klientide, näiteks cURL-i abil; teenusepakkuja spetsiifiline pakett ei ole vajalik.
Prompt Lab on peamine interaktiivne arendajatööriist. See võimaldab viipasid ja mudeleid katsetada ning genereerida koodipaneeli kaudu päringunäiteid. Käsitlege genereeritud näiteid lähtekohana: enne juurutamist kontrollige mudelit, API versiooni, lõpp-punkti, parameetreid ja SDK süntaksit kehtiva dokumentatsiooni põhjal.
Voogedastus, failid ja multimodaalsed päringud
Voogedastus sobib kasutajale suunatud vestlusliidestele, sest teksti saab kuvada selle saabumise ajal. See ei kõrvalda mudeli- ega võrgulatentsust ning rakendused vajavad endiselt tühistamise, ajalõpu ja osalise vastuse käsitlemist.
Failitöövood põhinevad üldjuhul IBM Cloudi andmevaradel, ühendustel või muudel registreeritud ressurssidel. See on kasulik dokumentide ekstraheerimiseks, otsinguks ja häälestamiseks, kuid toob kaasa projekti salvestusruumi, õiguste ja säilitamisega seotud kaalutlused. Veenduge, kuidas valitud töövoog faili salvestab ja sellele juurde pääseb, selle asemel et eeldada, et faili töödeldakse ainult mälus.
Pildisisend on saadaval ainult valitud visioonivõimeliste mudelite puhul. Enne pildipõhise funktsiooni loomist kontrollige mudelipõhist sisuvormingut ja piirkondlikku saadavust. Esitatud teabe põhjal ei paku watsonx.ai kontrollitud esimese osapoole üldist pildi- ega videogenereerimise toodet.
Olulised piirangud ja tootmiskasutuse kaalutlused
Kõigile watsonx.ai mudelitele ja juurutustele ei kehti ühtset avalikku päringumäära ega kindlat latentsusväärtust. Kvoodid ja päringupiirangud sõltuvad IBM Cloudi kontost, teenusepaketist, piirkonnast, mudelist, juurutusest ja lüüsi konfiguratsioonist. Latentsus sõltub mudelist, viibast ja väljundi suurusest, järjekorrast, piirkonnast ning sellest, kas järeldamine toimub jagatud või pühendatud keskkonnas.
- Käsitlege ajutisi HTTP 429, 503 ja 504 vastuseid piiratud arvu korduskatsete ja eksponentsiaalse viivitusega.
- Jälgige märkide või ressursiühikute kasutust ning määrake rakendustaseme eelarved.
- Hoidke API-võtmed, projekti identifikaatorid ja juurutuse konfiguratsioon lähtekontrollist väljas.
- Kasutage piirkondlikku lõpp-punkti, mis vastab andmete asukoha ja juurutuse nõuetele.
- Kontrollige iga valitud mudeli puhul konteksti, väljundi, voogedastuse, tööriistade, visiooni ja JSON-i tuge.
- Testige tõrkehaldust vigaste päringute, kättesaamatute mudelite, kvoodi ammendumise ja teenusekatkestuste korral.
- Vaadake üle salvestatud varade, seire-, hindamis- ja haldusfunktsioonide säilitamise ning juurdepääsu käitumine.
IBM märgib, et watsonx-i klientide viipasid, häälestusandmeid, treeningandmeid ja alusmudelite väljundeid ei kasutata IBM-i arendatud mudelite treenimiseks ega täiustamiseks. Salvestatud projekti varadel, seadistatud seiresüsteemidel, ühendatud andmeallikatel ja kolmandate osapoolte mudelipakkujatel võivad siiski olla eraldi juurdepääsu-, säilitamis- ja lepingutingimused. Täpse juurutuse kohta vaadake kehtivat teenusedokumentatsiooni.
Eelised ja piirangud
watsonx.ai peamine eelis on selle ettevõtetele suunatud ulatus. See ühendab juurdepääsu mudelitele IBM Cloudi IAM-i, piirkondlike ja hübriidjuurutuse võimaluste, halduse, seire, andmeühenduste, agentide, häälestamise ja laiemate masinõppetoimingutega. Ametlikud REST-i, Pythoni ja Node.js-i liidesed võimaldavad platvormi olemasolevatesse teenustesse integreerida, selle asemel et kasutada ainult veebiliidest.
Kompromissiks on keerukus. Arendajad peavad mõistma projekte või ruume, piirkondlikke lõpp-punkte, IAM-i lube, versioonitud päringuid ja mudelipõhist käitumist. Hinnastamine on sageli kasutuspõhine või ettevõtetele suunatud ning funktsioonid võivad pakettide, piirkondade ja juurutusrežiimide lõikes erineda. Meeskonnad, kes otsivad lihtsat ja odavat tarbijatele mõeldud vestlusrobotit või ühtset API-t, mille võimalused on kõigi mudelite puhul samad, võivad leida, et platvorm on nende vajaduste jaoks liiga mahukas.
Millal seda API-t kasutada?
Valige watsonx.ai API, kui vajate hallatud ettevõtete tehisintellekti arendust, IBM Granite'i või valitud kolmandate osapoolte mudeleid, piirkondlikku või hübriidpilve juurutust, otsingu- ja dokumenditöövooge, agente, häälestamist, mudeli elutsükli haldust või integratsiooni IBM Cloudi projektidega.
See on kehvem valik, kui vajadus on seotud juhusliku isikliku vestluse, minimaalse tarbijatele suunatud integratsiooni, eraldiseisva pildi- või videogenereerimise või prognoositava ühe hinnaga API-ga, mille võimalused on kõigi mudelite puhul ühesugused. Sellistel juhtudel võivad konto seadistamine, teenuse valimine ja kasutuspõhine hinnastamine kaaluda üles platvormi ettevõtetele mõeldud funktsioonide eelised.
