Mis on Baidu Qianfani API?
Baidu Qianfan on Baidu Intelligent Cloudi platvorm hostitud tehisintellektimudelite kasutamiseks ja tehisintellektirakenduste loomiseks. See ühendab mudelite järeldusliidese kõrgema taseme teenustega agentide, töövoogude, failitöötluse, teadmistebaaside, mudelihalduse ja peenhäälestuse jaoks.
Praegune v2 järeldusliides põhineb tuttavatel vestluse lõpetamise kontseptsioonidel. Päringus määratakse mudel ja messages massiiv, mis sisaldab selliseid rolle nagu system, user ja assistant. Toetatud mudelid võivad tagastada tavalisi või voogedastatavaid vastuseid ning ühilduvad mudelid toetavad funktsioonikutseid ja multimodaalseid sisendeid.
Qianfan on mõeldud arendajatele, kes loovad rakendusi, mitte juhuslikuks vestlusroboti kasutamiseks. See sobib hästi hiinakeelsete rakenduste, Baidu ökosüsteemi integratsioonide, dokumentide ja failidega seotud töövoogude, agendirakenduste ning teenuste lähtekohaks, kui ühe pilveplatvormi kaudu on vaja juurdepääsu mitmele hostitud mudelile.
Kaks omavahel seotud arendajaliidest
Qianfan koosneb kahest tihedalt seotud osast:
- v2 järeldusliides: otsesed mudelikutsed selliste lõpp-punktide kaudu nagu
POST /v2/chat/completionsjaGET /v2/models. - Qianfani ja AppBuilderi platvorm: kõrgema taseme agendid, töövood, kohandatud tööriistad, teadmistebaasid, failisisendid, püsivad vestlused ja rakenduse komponendid.
Need liidesed kuuluvad samasse Qianfani arendajaökosüsteemi, kuid agenditöövoos saadaval olev funktsioon ei ole automaatselt saadaval igas põhilises vestluse lõpetamise päringus.
Juurdepääsu saamine ja autentimisandmete hankimine
Tavalised järeldus- ja faililiidesed nõuavad Qianfani API-võtit. Võtmeid luuakse ja hallatakse Baidu Intelligent Cloudi identiteedi- ja juurdepääsuhaldustööriistade kaudu. Hoidke võtit oma serveris või keskkonnamuutujas; ärge paigutage seda brauseri JavaScripti, mobiilirakendusse, lähtekoodihoidlasse ega kliendipoolsesse HTML-i.
Mõned platvormihalduse ja peenhäälestuse toimingud kasutavad lihtsama Beareri API-võtme meetodi asemel Baidu Cloudi juurdepääsuvõtme ja salajase võtmega päringute allkirjastamist. Enne haldus- või treeningtöövoogude rakendamist kontrollige konkreetse lõpp-punkti dokumentatsiooni.
Peamine juurdepääsu loomise järjestus on järgmine:
- Looge Baidu Intelligent Cloudi konto või kasutage olemasolevat kontot ja lubage vajalikud Qianfani teenused.
- Looge API-võti, mille õigused vastavad mudelitele või teenustele, mida teie rakendus kasutab.
- Kontrollige praegust mudelikataloogi ja hinnastamiskonsooli.
- Salvestage võti serveripoolsesse keskkonnamuutujasse, näiteks
QIANFAN_API_KEY. - Saatke autentitud päringud praegusele v2 baas-URL-ile:
https://qianfan.baidubce.com/v2.
Juurdepääsu võivad mõjutada konto, piirkonna, teenusetaseme, kvoodi ja mudeli saadavuse nõuded. Kontrollige praeguseid nõudeid Baidu Intelligent Cloudi konsoolis, mitte ärge eeldage, et kõik loetletud mudelid on iga konto jaoks lubatud.
Kuidas valida mudelit või API-t?
Kasutage mudeli leidmise lõpp-punkti, selle asemel et vana mudelinimi püsivalt koodi kirjutada:
GET https://qianfan.baidubce.com/v2/modelsMudelikataloog võib sisaldada identifikaatoreid, toetatud modaalsusi, konteksti piiranguid, tokenipiiranguid ja mudelipõhist hinnateavet. Kasutage seda teavet ülesandega sobiva mudeli valimiseks ning muudatuste tuvastamiseks enne juurutamist.
Tavalise tekstiassistendi puhul alustage ühilduva vestluse lõpetamise mudeliga. Pildi- või muu meediasisendi korral valige mudel, mille kataloogikirje toetab selgesõnaliselt vajalikku modaalsust. Tööriistade, agentide, failitöötluse või teadmistebaasist otsimise jaoks hinnake Qianfani või AppBuilderi töövoo-liidest, selle asemel et eeldada, et põhiline lõpetamispäring neid funktsioone pakub.
Mudelite võimalused ei ole ühesugused. Voogedastus, funktsioonikutsed, JSON-vormingule suunatud vastused, multimodaalne sisend, veebiotsing ja muud funktsioonid võivad sõltuda valitud mudelist, lõpp-punktist, kontost või platvormi komponendist.
Esimese päringu tegemine
Lihtsaim päring on HTTPS POST-päring v2 vestluse lõpetamise lõpp-punktile. See kasutab Beareri API-võtit, mudeli identifikaatorit ja sõnumimassiivi.
curl --fail-with-body --silent --show-error --request POST "https://qianfan.baidubce.com/v2/chat/completions"
--header "Authorization: Bearer ${QIANFAN_API_KEY}"
--header "Content-Type: application/json"
--data '{
"model": "ernie-4.5-turbo-128k",
"messages": [
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "Explain what an API key is in one paragraph."}
],
"stream": false
}'Näites kasutatav mudelinimi illustreerib praegust päringumustrit ega taga, et mudel on iga konto jaoks lubatud. Tootmiskeskkonnas kontrollige identifikaatorit ja võimalusi praegusest mudelikataloogist.
Sama päring OpenAI Pythoni kliendiga
Qianfani v2 dokumentatsioon tutvustab praegust OpenAI-ga ühilduva kliendi mustrit. Installige või uuendage praegune openai pakett ja määrake selle baas-URL-iks Qianfan:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["QIANFAN_API_KEY"],
base_url="https://qianfan.baidubce.com/v2",
)
response = client.chat.completions.create(
model="ernie-4.5-turbo-128k",
messages=[
{"role": "system", "content": "You are a concise technical assistant."},
{"role": "user", "content": "What is an API key?"},
],
stream=False,
)
print(response.choices[0].message.content)See ühilduvuskiht on mugav arendajatele, kes tunnevad juba OpenAI kliendiliidest. Otsene HTTPS on endiselt kasulik keeltes, mille jaoks sobivat teenusepakkuja SDK-d pole, või siis, kui vajate päringute üle täpset kontrolli.
Vastuse mõistmine
Edukas vestluse lõpetamise vastus sisaldab tavaliselt massiivi choices. Genereeritud assistenditekst on voogedastuseta vastuses saadaval asukohas choices[0].message.content. Rakendused peaksid siiski kontrollima, et oodatud väljad on olemas, ning käsitlema teenusepakkuja vigu, tühje valikuid, katkenud ühendusi ja mudelipõhiseid erinevusi vastustes.
Vestluse mälu rakendab tavaliselt teie rakendus. Säilitage asjakohased varasemad sõnumid ja saatke need järgmise päringuga uuesti. Põhilist vestluse lõpp-punkti ei tohiks käsitleda püsiva vestluste salvestina, välja arvatud juhul, kui kasutate eraldi agenti- või rakendusteenust, mis pakub vestluste haldust.
Kuidas Qianfani hinnastamine toimib?
Qianfan kasutab üldjuhul kasutuspõhist hinnastamist. Teksti järeldustöötluse eest võidakse tasu võtta sisend- ja väljundtokenite alusel, samas kui pildi-, video-, veebiotsingu-, pakktöötluse, peenhäälestuse ja muud teenused võivad kasutada teistsuguseid ühikuid või arveldusreegleid. Platvorm pakub ka tokenipakette ja kvoodipõhiseid teenusevalikuid.
Ühtset hinda, mis kehtiks kõigile Qianfani mudelitele, ei ole. Hinnad võivad mudeli ja teenuse kaupa muutuda, seega peaksid tootmissüsteemid lugema praegust mudelikataloogi ja hinnastamiskonsooli, mitte lisama dokumentatsiooni või koodi eeldusi. Mudeli hinda, konteksti piirangut ja kvooti tuleks käsitleda konfiguratsioonina.
Eelarve koostamisel tuleb arvestada vestluse mõlema poolega: säilitatav ajalugu suurendab sisendtokenite hulka, pikemad genereeritud vastused aga väljundkasutust. Tööriistakutsed, failitöötlus, agendid, meedia genereerimine ja peenhäälestus võivad kaasa tuua eraldi tasud või kvoodinõuded.
Arendajatele kättesaadavad põhivõimalused
Vestlus ja voogedastus
Vestluspäringud kasutavad rollipõhiseid sõnumeid ning võivad toetada mitme vooruga vestlusi, kui teie rakendus saadab asjakohase ajaloo uuesti. Ühilduvad lõpp-punktid saavad järkjärgulist väljundit voogedastada, kui stream väärtuseks määratakse true. Voogedastus võimaldab kasutajaliidesel teksti selle saabumisel kuvada, parandades tajutavat reageerimiskiirust, kuid see ei pruugi vähendada kogu töötlemisaega.
const stream = await client.chat.completions.create({
model: "ernie-4.5-turbo-128k",
messages: [
{ role: "system", content: "Answer briefly." },
{ role: "user", content: "Name two HTTP methods." },
],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}Voogedastuskliendid peavad käsitlema osalist väljundit, võrgukatkestusi, teenusepakkuja vigu ja lõplikke kasutusmetaandmeid, kui need on saadaval. Ärge eeldage, et iga tükk sisaldab teksti.
Funktsioonikutsed ja kohandatud tööriistad
Funktsioonikutsed võimaldavad ühilduval mudelil paluda teie rakendusel käivitada nimeline funktsioon. Teie esitate funktsiooni kirjelduse ja JSON Schema laadis parameetrid. Mudel võib tagastada tööriistakutse; teie rakendus valideerib argumendid, käivitab kohaliku või kaugtoimingu ning saadab tulemuse hilisemas vestluspäringus tagasi.
Mudel ei saa automaatselt luba suvaliste toimingute tegemiseks. Teie rakendus vastutab endiselt autentimise, autoriseerimise, argumentide valideerimise, päringupiirangute, kõrvalmõjude ja tundlike toimingute korral kasutaja kinnituse eest.
Qianfani agendi- ja töövooteenused lisavad laiema tööriistakihi, mis hõlmab kohandatud tööriistu, töövoo komponente, failisisendeid, vestluse identifikaatoreid ja struktureeritud sisutüüpe. Tööriistade ühilduvust tuleb kontrollida valitud mudeli ja rakenduse komponendi puhul.
Failid ja multimodaalne sisend
Toetatud Qianfani agenditöövood võivad vastu võtta üles laaditud teksti-, arvutustabeli-, pildi- ja helifaile. Üles laaditud faile võib siduda vestlustega või kasutada toetatud agentides, nagu kooditõlgid, brauserikasutuse agendid, süvauuringu agendid ja tehisintellekti assistendid.
Pildisisend on saadaval toetatud multimodaalsete mudelite, agendi failide üleslaadimise või komponendipõhiste töövoogude kaudu. Seetõttu on failitugi laiem kui lihtsalt suvalise faili lisamine mis tahes vestluse lõpetamise päringule. Kontrollige lõpp-punkti dokumentatsioonist aktsepteeritavaid failitüüpe, suurusepiiranguid, töötlemise käitumist ja mudeli ühilduvust.
Agendid, töövood ja teadmistebaasid
AppBuilder ja sellega seotud Qianfani komponendid toetavad RAG-rakenduste, agentide, töövoogude, kasutajaliidesele suunatud rakenduste, kohandatud komponentide ja teadmistebaaside visuaalset ning koodipõhist arendust. Need kõrgema taseme tööriistad on kasulikud, kui rakendus vajab otsingupõhist täiendamist, mitmeastmelist täitmist, püsivat töövoo olekut või hallatud failitöötlust.
Need on põhilisest v2 vestluse lõpetamise kutsest eraldi. Alustage otsese järeldustöötlusega, kui rakendus vajab ainult viiba ja vastuse genereerimist; kasutage agenti või töövoogu, kui platvormi hallatav orkestreerimine on nõude osa.
Struktureeritud väljundid
Funktsioonikutsed pakuvad suhteliselt ühtset struktureeritud mehhanismi, paigutades argumendid tööriistakutse skeemi. Mõned mudeli ja lõpp-punkti kombinatsioonid toetavad ka JSON-vormingule suunatud vastuseid, kuid range struktureeritud väljundi käitumine ei ole kogu mudelikataloogis ühtlane.
Kui teie rakendus nõuab kindlat skeemi, kinnitage valitud mudeli, päringuvormingu ja lõpp-punkti tugi. Valideerige tagastatud sisu kohapeal ning käsitlege vigast või poolikut väljundit, selle asemel et eeldada, et tekstivastus on korrektne JSON.
Peenhäälestus ja andmehaldus
Qianfan sisaldab peenhäälestuse ja sellega seotud andmehalduse API-sid. Peenhäälestusülesanded võivad kasutada üles laaditud faile või hallatud andmekogumeid, samas kui ülesannete halduse lõpp-punktid võivad esitada oleku, mudeli, treeningurežiimi, edenemise, mõõdikute ja kontrollpunktide teavet.
Peenhäälestus- ja haldustoimingud võivad kasutada Baidu Cloudi juurdepääsuvõtme ja salajase võtmega allkirjastamist ning nõuda täiendavaid identiteedihalduse õigusi. Neid tuleks kavandada lihtsamast Beareri võtmega järeldusintegratsioonist eraldi.
SDK-d, dokumentatsioon ja arendajatööriistad
Ametlik Qianfani Pythoni SDK on saadaval ning Baidu Cloud pakub SDK ressursse mitme programmeerimiskeele jaoks. Praegune v2 dokumentatsioon tutvustab ühilduvate järelduskutsete jaoks ka OpenAI Pythoni klienti. JavaScripti ja PHP rakendused võivad kasutada toorest HTTPS-i või sobivat HTTP-klienti, kui teenusepakkujapõhine integratsioon pole vajalik.
Qianfani konsool pakub mänguvälja ja platvormihalduse tööriistu. Ametlik dokumentatsioon sisaldab mudelite loendi API-t, järeldusliidese juhendit, agendi failide üleslaadimise juhiseid, kohandatud tööriistade dokumentatsiooni, peenhäälestuse juhendeid ja hinnateavet. Kasutage testimisel mudelikataloogi ja konsooli koos, sest saadaolevad mudelid, kvoodid ja hinnad sõltuvad konto ning teenuse konfiguratsioonist.
Piirangud ja tootmiskeskkonna kaalutlused
- Mudeli ühilduvus: sellised funktsioonid nagu voogedastus, funktsioonikutsed, multimodaalne sisend, JSON-vormingule suunatud väljund ja veebiotsing sõltuvad mudelist või lõpp-punktist.
- Kvoodid: päringute arv minutis ja tokenite arv minutis varieerub mudeli, konto, teenusetaseme, piirkonna ja ostetud kvoodi järgi. Kontrollige tegelikke piiranguid konto konsoolist.
- Latentsus: vastamisaeg sõltub mudeli suurusest, viiba ja väljundi pikkusest, arutlusrežiimist, samaaegsusest, liiklusest, teenusetasemest ning agendi- või tööriistade käivitamisest.
- Piirkondlik ja kontopõhine juurdepääs: saadavus, makseviisid, mudelite kasutusõigused ja funktsioonide juurdepääs võivad erineda konto, seadme, piirkonna ja platvormi konfiguratsiooni järgi.
- API põlvkonnad: hoidke v2 baas-URL, pakettide versioonid, autentimismeetod ja meetodite süntaks kooskõlas. Ärge ühendage vanemate Qianfani liideste näiteid praeguse OpenAI-ga ühilduva v2 mustriga.
- Turvalisus: hoidke API-võtmeid serveripoolselt, kasutage keskkonnamuutujaid või saladuste haldurit, piirake õigusi ning vältige tundlike viipade, failisisu või autentimisandmete logimist.
- Töökindlus: kasutage ajalõppe, piiratud korduskatseid koos eksponentsiaalse tagasitõmbega, vastuse valideerimist, teenusepakkujapõhist veakäsitlust ja osaliste voogude ohutut käsitlemist.
- Andmekäitlus: esitatud uuring ei kinnita Qianfani universaalset poliitikat selle kohta, kas kõiki API sisendeid säilitatakse või kasutatakse treenimiseks. Enne konfidentsiaalse teabe saatmist tutvuge Baidu Cloudi praeguste tingimuste ja lõpp-punktipõhiste andmepoliitikatega.
Millal on Qianfan hea või halb valik?
Qianfan on hea valik, kui vajate Baidu hostitud ERNIE-d või valitud kolmandate osapoolte mudeleid, tugevat hiina keele tuge, juurdepääsu Baidu pilveökosüsteemile, OpenAI-ga ühilduvaid vestluspäringuid, agenditöövooge, teadmistebaase, failitöötlust või mudelite peenhäälestust. See on kasulik ka siis, kui projekt saab kasu Hiina pilveteenusepakkuja integreeritud teenustest, selle asemel et kokku panna eraldi järeldus- ja orkestreerimissüsteemid.
See võib olla halb valik, kui rakendus vajab üle maailma ühtlaselt kättesaadavaid teenuseid, täielikult standardiseeritud ingliskeelset dokumentatsiooni, kõigi mudelite puhul ühesugust võimaluste komplekti või hinnastamist, mis ei varieeru mudeli ja teenuse järgi. Otsese järeldustöötluse, agentide, töövoogude ja peenhäälestuse eristamine muudab platvormi ka keerukamaks kui minimaalne ühe lõpp-punktiga API.
Esimese rakenduse puhul alustage v2 mudelikataloogist, tehke üks autentitud voogedastuseta vestluspäring, lisage kohalik vastuse valideerimine ning hinnake voogedastust, tööriistu, faile või agente alles siis, kui rakendus neid vajab.
