Mis on AI21 Studio API?
AI21 Studio on AI21 Labsi praegune majutatud arendusplatvorm. Selle peamine API võimaldab chat completions’i kaudu kasutada Jamba keelemudelite perekonda. Chat completion võtab vastu järjestatud sõnumiloendi, näiteks system, user ja assistant, ning tagastab genereeritud teksti.
Platvorm sisaldab ka tavapärasest tekstigeneerimisest kaugemale ulatuvaid teenuseid. Arendajad saavad dokumente hallatavasse teeki üles laadida, kasutada failiotsingut ja vestluslikku otsinguga täiendatud genereerimist (RAG), määratleda tööriistu, mida rakendus saab käivitada, ning kasutada AI21 Maestrot keerukamate töövoogude planeerimiseks ja orkestreerimiseks.
Peamine majutatud API baasaadress on https://api.ai21.com/studio/v1. AI21 pakub ka arendajakonsooli aadressil https://studio.ai21.com/.
Kellele see mõeldud on?
AI21 Studio sobib arendajatele, kes loovad tekstigeneerimise teenuseid, kirjutamis- ja kokkuvõtete koostamise tööriistu, ettevõtete teadmisteassistente, otsinguga põhjendatud rakendusi ning agendipõhiseid töövooge. See on eriti asjakohane siis, kui organisatsioon vajab selliseid võimalusi nagu hallatav privaatne juurutus, partnerpilve juurutus, VPC-põhine juurutus või ise hallatav juurutus.
See sobib vähem juhul, kui peamine vajadus on laia kasutajaskonnaga tarbijaassistent, natiivne pildi- või heligeneerimine, üldotstarbeline veebisirvimine ilma vastava API-teenuse konfigureerimiseta või suur tarbijatele mõeldud pluginate ja rakenduste ökosüsteem. Natiivset pildisisendit ei õnnestunud selle juhendi koostamisel läbi vaadatud kehtivas API dokumentatsioonis kinnitada.
Juurdepääsu hankimine ja API-võtme loomine
- Loo AI21 konto või kasuta olemasolevat kontot, millel on juurdepääs AI21 Studiole.
- Loo API-võti vastava AI21 arendaja- või kontoliidese kaudu.
- Salvesta võti serveripoolsesse keskkonnamuutujasse, näiteks
AI21_API_KEY. - Ära paiguta võtit brauseri JavaScripti, mobiilirakenduse koodi, avalikesse repositooriumidesse ega kliendipoolsesse konfiguratsiooni, mida kasutajad saavad kontrollida.
API-päringud kasutavad bearer-tüüpi autentimist. Tootmiskeskkonnas hoia võtit saladuste halduris või kaitstud juurutuskeskkonnas, vaheta seda vajaduse korral ning väldi võtme kirjutamist rakenduse logidesse.
API ja mudeli valimine
Tavalise tekstigeneerimise või vestlusrakenduse puhul alusta Jamba Chat Completions API-st. Päring sisaldab ajakohast Jamba mudeli identifikaatorit ja sõnumimassiivi. Selle juhendi näidetes kasutatakse jamba-mini; enne juurutamist kontrolli kehtivast AI21 mudelidokumentatsioonist ja oma kontol saadaolevate mudelite seast, millised mudelid on kasutatavad.
Kasuta chat completions’i teenust siis, kui rakendus vajab peamiselt genereeritud teksti, mitme vooruga konteksti, voogedastust või tööriistakutseid. Kasuta teegi- ja otsinguteenuseid siis, kui vastused peavad tuginema üles laaditud dokumentidele. Kasuta Maestrot siis, kui töövoog vajab planeerimist, mitut tööriista, veebiotsingut, failiotsingut, nõudeid, oleku pärimist või valideeritud väljundit.
Need on omavahel seotud võimalused, kuid Maestro on kõrgema taseme orkestreerimisteenus, mitte lihtsalt veel üks chat completion’i võimalus.
Esimese päringu tegemine
Järgmine töötlemata HTTP näide saadab chat completion’i päringu. See kasutab praegust majutatud API mustrit ja hoiab API-võtit serveris.
set -euo pipefail
: "${AI21_API_KEY:?Set AI21_API_KEY first}"
curl --fail-with-body --silent --show-error
--request POST
--url "https://api.ai21.com/studio/v1/chat/completions"
--header "Authorization: Bearer ${AI21_API_KEY}"
--header "Content-Type: application/json"
--data '{
"model": "jamba-mini",
"messages": [
{
"role": "system",
"content": "You are a concise technical assistant."
},
{
"role": "user",
"content": "Explain what an API key is in one sentence."
}
],
"temperature": 0.2,
"max_tokens": 100
}'Päring sisaldab kolme olulist osa: mudelit, vestluse sõnumeid ja genereerimisseadeid. temperature mõjutab varieeruvust, samas kui max_tokens seab genereeritud vastuse ülemise pikkusepiiri. Mudelite täpne saadavus ja kontoõigused tuleb üle kontrollida kehtivast AI21 dokumentatsioonist.
Pythoni SDK näide
AI21 ametlik Pythoni pakett installitakse käsuga pip install ai21. Praegune SDK-muster kasutab AI21Client ja chat completion’eid.
import os
from ai21 import AI21Client
from ai21.models.chat import ChatMessage
client = AI21Client(api_key=os.environ["AI21_API_KEY"])
response = client.chat.completions.create(
model="jamba-mini",
messages=[
ChatMessage(
role="system",
content="You are a concise technical assistant."
),
ChatMessage(
role="user",
content="What is an API key?"
),
],
temperature=0.2,
max_tokens=100,
)
print(response.choices[0].message.content)Vastuse mõistmine
Edukas chat completion’i vastus sisaldab choices-kogu. Genereeritud assistenditekst on saadaval esimese valiku sõnumi sisus, mida Pythoni SDK-s tähistab response.choices[0].message.content.
Ära eelda, et iga edukas HTTP-vastus tähendab, et mudel koostas täpselt sellise vormingu, mida rakendus vajab. Kontrolli nõutud välju, käsitle tühja või ootamatut sisu ning rakenda rakendusepõhist valideerimist, kui tulemust kasutab mõni teine süsteem.
Struktureeritud andmete puhul võib viip paluda kehtivat JSON-i, kuid tavalise Jamba chat completion’i JSON Schema jõustamist ei õnnestunud esitatud uurimismaterjalide põhjal kinnitada. Maestro valideeritud väljundi ja nõuete funktsioonid on kõige selgemalt dokumenteeritud esimese osapoole struktureeritud väljundi võimalus. Kui küsid tavalisest chat completion’ist JSON-vastust, parsige ja valideerige see oma rakenduses, mitte ära usalda mudeli väljundit pimesi.
Kuidas hinnastamine üldjoontes toimib?
AI21 majutatud mudelite kasutus põhineb kasutuspõhiselt arvestataval hinnastamisel, mis sõltub üldjuhul tokenite tarbimisest. Tegelikud kommertstingimused võivad sõltuda mudelist, kontost, paketist, juurutusest ja lepingust. Ettevõtete ning privaatse juurutuse korral kehtivad läbiräägitavad või kontopõhised tingimused.
API dokumentatsiooni põhjal ei tohiks eeldada ühtset hinda, kvooti ega päringupiirangut. Enne kulude hindamist tutvu kehtiva AI21 konto- ja hinnastamisdokumentatsiooniga. Jälgi sisendi ja väljundi kasutust, vali sobiv mudel, piira ebavajalikku konteksti ning määra võimaluse korral rakenduse eelarved.
Arendajatele kättesaadavad põhivõimalused
Chat completion’id ja vestlused
Jamba chat completion’id toetavad süsteemijuhiseid, kasutaja- ja assistendisõnumeid ning mitme vooruga vestlusi. Rakendus peab ise otsustama, kui palju vestlusajalugu saata ja kuidas hallata konkreetse kasutusjuhtumi konteksti.
Vastuste voogedastus
Voogedastus tagastab genereeritud väljundi järk-järgult, selle asemel et oodata täieliku vastuse valmimist. See võib muuta kasutajaliidese kiiremini reageerivaks ja võimaldab serveril teksti varem edasi saata. See ei kaota vajadust ajalõppude, veakäsitluse ega lõpliku vastuse valideerimise järele.
stream = client.chat.completions.create(
model="jamba-mini",
messages=[
ChatMessage(
role="user",
content="Write a short explanation of streaming responses."
)
],
stream=True,
)
for chunk in stream:
content = getattr(chunk.choices[0].delta, "content", None)
if content:
print(content, end="", flush=True)
print()Tööriista- ja funktsioonikutsed
Tööriistakutse võimaldab mudelil paluda rakenduse määratletud toimingu tegemist. Tööriista määratlus sisaldab tavaliselt funktsiooni nime, kirjeldust ja JSON-parameetrite skeemi. Mudel ei soorita välist toimingut ise: rakendus saab tööriistakutse, valideerib selle argumendid, käivitab funktsiooni ja saadab tulemuse järgmises vestlussammus tagasi.
See muster sobib kontrollitud juurdepääsuks ärisüsteemidele, kalkulaatoritele, otsinguteenustele, andmebaasidele ja muudele rakenduse funktsioonidele. Käsitle tööriistaargumente ebausaldusväärse sisendina ning rakenda rakenduses autoriseerimist ja valideerimist.
Failid, failiotsing ja vestluslik RAG
AI21 teegi API toetab tööruumi failide üleslaadimist, loendamist, hankimist, uuendamist, allalaadimist ja kustutamist. Üles laaditud sisu saab kasutada failiotsingu või vestlusliku RAG-iga, et vastused põhineksid dokumendikogul ega tugineks ainult mudeli üldistele keelteadmistele.
Maestro dokumentatsioon kirjeldab samuti agendipõhiste töövoogude failiotsingu tööriistu ja failiidentifikaatoreid. Failihaldus on peamiselt teksti- ja dokumendivõimekus; seda ei tohiks segi ajada majutatud Jamba API kinnitatud natiivse pildimõistmisega.
Maestro orkestreerimine
AI21 Maestro on mõeldud kõrgema taseme töövoogude jaoks, mis hõlmavad planeerimist, tööriistu, veebiotsingut, failiotsingut, nõudeid, oleku pärimist ja valideeritud väljundit. Seda tasub kaaluda siis, kui ühtse chat completion’i päringu haldamine on muutunud keeruliseks, sest rakendus vajab mitut koordineeritud sammu.
Peenhäälestus
AI21 kirjeldab Jamba mudelite peenhäälestuse meetodeid, sealhulgas täielikku peenhäälestust, LoRA-t ja QLoRA-t. Täpne saadavus, majutusviis ja kommertstingimused sõltuvad valitud tootest, juurutusest ja kontost, seega ei tohiks eeldada, et kõik meetodid on saadaval igal majutatud kontol.
SDK-d ja arendajatööriistad
AI21 pakub ametlikke Pythoni ja TypeScripti SDK-sid. Need katavad peamised chat completion’i funktsioonid ning toetavad ka selliseid võimalusi nagu voogedastus, Maestro, teegifailid ja vestluslik RAG. Töötlemata HTTP on praktiline valik ametliku SDK-ta keelte puhul või meeskondadele, kes soovivad päringute üle otsest kontrolli.
AI21 Studio konsool pakub arendajatele platvormile sisenemise võimalust ja mänguväljaku-laadset keskkonda selle proovimiseks. Ametlik dokumentatsioon sisaldab API-viiteid, autentimisjuhiseid, SDK-dokumentatsiooni, funktsioonikutsed, failiteeke, failiotsingut, veebiotsingut, peenhäälestust, kasutus- ja kuluteavet ning päringupiirangute juhiseid.
Turvalisem tootmiskeskkonna päringumuster
Tootmiskeskkonna integratsioon peaks sisaldama piiratud kestusega ajalõppe, kontrollitud korduskatseid, olekukoodide käsitlemist, saladusteta päringulogi ja väljundi valideerimist. Pythoni SDK dokumentatsioon kirjeldab konfigureeritavaid ajalõppe ja automaatseid korduskatseid. Rakendused peaksid siiski kasutama piiratud eksponentsiaalset tagasipöördumist ning käsitlema HTTP 429 vastuseid piirkiiruse ületamise märguannetena.
import os
from ai21 import AI21Client
from ai21.models.chat import ChatMessage
client = AI21Client(
api_key=os.environ["AI21_API_KEY"],
timeout=60,
max_retries=2,
)
response = client.chat.completions.create(
model="jamba-mini",
messages=[
ChatMessage(
role="system",
content="Return valid JSON only with keys: answer and confidence."
),
ChatMessage(
role="user",
content="State whether 2+2 equals 4."
),
],
temperature=0,
max_tokens=100,
)
raw_content = response.choices[0].message.content
print(raw_content)
# Parse and validate raw_content with an application-level JSON validator.Näide küsib JSON-vastust, kuid ei käsitle mudeli vastust tahtlikult usaldusväärse struktureeritud andmena. Tegelikus teenuses parsige sisu, kontrollige selle skeemi ja väärtusi ning tagastage valideerimise ebaõnnestumisel kontrollitud veateade.
Piirangud ja tootmiskeskkonna kaalutlused
- Kvoodid ja päringupiirangud: Piirangud sõltuvad kontost, mudelist, paketist ja juurutusest. Praegused materjalid ei määra kõigile kasutajatele üht universaalset piirangut.
- Latentsus: Ühtset latentsusnäitajat ega SLA-d ei õnnestunud kinnitada. Latentsus varieerub olenevalt mudelist, viiba suurusest, väljundi suurusest, töökoormusest, piirkonnast ja juurutuse tüübist. Voogedastus võib parandada tajutavat reageerimiskiirust.
- Saadavus: Mudelite nimed, funktsioonid ja kasutusõigused võivad muutuda. Kinnita, et valitud mudel ja teenus on sinu kontol lubatud.
- Andmehaldus: Säilitamise, asukoha, kustutamise, logimise ja treenimiseks kasutamise tingimused võivad tootest ja juurutusest sõltuvalt erineda. Enne tundlike andmete saatmist tutvu asjaomase konto- ja ettevõttelepinguga.
- Privaatsus: AI21 pakub juurutusvalikuid, sealhulgas AI21 Studio, partnerpilve, AI21 hallatavat privaatset ja ise hallatavat privaatset lahendust. Ettevõttekliendid peaksid täpsed kontrollimehhanismid üle kontrollima, mitte eeldama, et kõigil majutatud ja privaatsetel valikutel on identsed eeskirjad.
- Tööriistade turvalisus: Tööriistakutsed võivad käivitada tegelikke toiminguid. Valideeri argumendid, rakenda kasutaja autoriseerimist ja nõua pöördumatute toimingute puhul kinnitust.
- Konteksti haldamine: Pikad vestlused ja hangitud dokumendid suurendavad tokenite kasutust ning võivad mõjutada latentsust ja kulu. Vali ülesande jaoks ainult vajalik kontekst.
Eelised ja piirangud
Eelised
- Jamba keelemudelite jaoks tuttav chat completion’i liides.
- Ametlikud Pythoni ja TypeScripti SDK-d koos otsese REST-juurdepääsuga.
- Voogedastus ning tööriista- ja funktsioonikutsed interaktiivsete rakenduste jaoks.
- Hallatavad failiteegid, failiotsing ja vestluslik RAG dokumentidele tuginevate töövoogude jaoks.
- Maestro planeerimise, orkestreerimise, tööriistade, veebiotsingu, failiotsingu ja valideeritud väljundiga töövoogude jaoks.
- Juurutusvalikud, mis ulatuvad tavapärasest jagatud majutatud API-st kaugemale.
Piirangud
- Hinnad, kvoodid ja mõned võimalused sõltuvad kontost, mudelist, paketist või lepingust.
- Tavalise chat completion’i JSON Schema jõustamist ei õnnestunud kinnitada; rakendusepoolne valideerimine on endiselt vajalik.
- Natiivset pildisisendit ei õnnestunud läbi vaadatud kehtivas esimese osapoole API dokumentatsioonis kinnitada.
- Platvorm on peamiselt teksti- ja dokumendikeskne, mitte üldotstarbeline multimodaalse meedia genereerimise teenus.
- Privaatsed juurutused ja mõned ettevõtetele mõeldud võimalused võivad nõuda müügimeeskonna kaudu või läbirääkimiste teel saadavat juurdepääsu.
Millal on AI21 Studio hea või halb valik?
AI21 Studio on hea valik siis, kui vajad majutatud Jamba tekstigeneerimist, tavapärast chat API-t, voogedastust, tööriistakutseid, dokumentide otsingut või ettevõtetele sobivat võimalust privaatsesse juurutusse liikuda. Seda tasub hinnata ka siis, kui Maestro orkestreerimise ja valideeritud väljundi funktsioonid sobivad loodava töövooga.
See võib olla halb valik juhul, kui rakendus sõltub peamiselt pildi-, video- või heligeneerimisest, kinnitatud natiivsest pildisisendist, universaalsest fikseeritud hinnaga paketist või laiast tarbijaassistentide ökosüsteemist. Enne otsuse tegemist testi oma kontol saadaolevaid mudeleid ja teenuseid, kinnita kehtivad hinnad ja piirangud ning hangi töökoormuse jaoks vajalikud andmetöötlustingimused.
