I-initialize ang iyong Qiskit Runtime service account
Bago gamitin ang Qiskit Runtime, kailangan mong i-initialize (i-instantiate) ang iyong account sa pamamagitan ng pag-submit (pag-load) ng mga credentials. Maaaring manu-manong i-submit ang mga credentials na ito sa bawat oras na i-initialize mo ang Qiskit Runtime service, o maaari mo itong i-save para magamit ulit.
- Kung gumagamit ka ng pampublikong computer o ibang hindi pinagkakatiwalaang environment, sundin ang mga tagubilin sa I-initialize ang service sa isang hindi pinagkakatiwalaang environment sa halip.
- Sundin ang mga tagubiling ito kung gusto mong kumonekta gamit ang REST API sa halip na Qiskit.
- Kung kinakailangan, gamitin ang impormasyong ito para i-configure ang iyong firewall upang ma-enable ang access sa mga IBM Quantum API endpoint.
Bago ka magsimulaβ
Tiyaking natapos mo na ang mga hakbang na ito:
- Tiyaking miyembro ka ng isang IBM Cloud account. Tingnan ang I-set up ang iyong IBM Cloud account para sa mga tagubilin.
- Gumawa (o magkaroon ng access) sa kahit isang instance. Sundin ang mga hakbang na ito para ma-verify:
- Mag-log in sa IBM Quantum Platform.
- Tiyaking ang tamang account at rehiyon ay napili sa account switcher sa header.
- Kung mayroon kang isa o higit pang instances na ipinapakita, tapos ka na sa hakbang na ito. Kung wala, gumawa ng instance.
- Tiyaking nagtatrabaho ka sa isang aktibong Python environment na may Qiskit SDK at Qiskit Runtime na naka-install.
- I-activate ang Python virtual environment at patakbuhin ang Python sa iyong virtual environment.
Hanapin ang iyong mga access credentialsβ
- Hanapin ang iyong API key (tinutukoy rin bilang API token). Mula sa dashboard, gumawa ng iyong API key, pagkatapos kopyahin ito sa isang ligtas na lokasyon para magamit mo ito sa authentication. Hindi na muling makikita ang token. Tandaan na maaari kang gumamit ng isang API key para kumonekta sa anumang rehiyon.
- Opsyonal: Hanapin ang instance na gusto mong gamitin mula sa pahina ng Instances. I-hover ang cursor sa ibabaw ng CRN nito, i-click ang icon para kopyahin ito, pagkatapos i-save ito sa isang ligtas na lokasyon para magamit mo ito para matukoy ang instance.
Ikonekta ang Qiskit sa iyong Qiskit Runtime service instanceβ
Ang mga tagubiling ito ay dinisenyo para sa qiskit_ibm_runtime v0.42 o mas bago. Hindi pinapagana ang ilang feature sa mas lumang bersyon ng qiskit_ibm_runtime. Sa mga kasong ito, dapat kang palaging magbigay ng value para sa channel, token, at instance, alinman nang tahasan o sa pamamagitan ng naka-save na account.
Ang pangunahing code para ikonekta ang Qiskit sa iyong Qiskit Runtime service instance ay sumusunod. Gayunpaman, mayroong ilang iba't ibang paraan para i-customize ang mga opsyon ng QiskitRuntimeService, depende sa iyong mga pangangailangan. Inilarawan ang mga opsyong ito sa mga sumusunod na seksyon.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(channel=<channel>,
token=<your-API_KEY>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)
Ang default na channel ay ibm_quantum_platform. Dahil ito ay halos palaging ang naaangkop na channel, hindi ito kasama sa mga halimbawa.
Mabilis na simula: Tukuyin ang mga credentials nang tahasanβ
Ang pinakamabilis na paraan para mapatakbo ang isang QiskitRuntimeService instance ay ang direktang instantiation method: tahasan na ibigay ang API token (key) at CRN (instance identifier) sa bawat oras na kailangan mong i-initialize ang Qiskit Runtime service. Tingnan ang Hanapin ang iyong mga access credentials kung kinakailangan.
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(token=<cloud_api_key>, # Use the 44-character API_KEY you created and saved from the IBM Quantum Platform Home dashboard
instance=<instance_CRN>)
Maaasahan ang landas na ito ngunit maaaring nakakapagod kung kailangan mong paulit-ulit na i-load ang parehong mga detalye. Para maiwasan ang paulit-ulit na pag-load ng iyong mga credentials, kung nagtatrabaho ka sa isang pinagkakatiwalaang Python environment (tulad ng sa isang personal na laptop o workstation), maaari kang gumamit ng naka-save na mga credentials ng account, tulad ng inilarawan sa sumusunod na seksyon.
Bagaman ang input parameter na instance ay opsyonal, inirerekomenda na palagi kang magbigay ng impormasyong ito, maliban kung gusto mong gumamit ng isang service para magtrabaho sa maraming instance. Sa sitwasyong ito, tingnan ang seksyon ng awtomatikong pagpili ng instance.
Mabilis na simula: Tukuyin ang mga naka-save na credentialsβ
Kung nai-save mo na ang iyong mga credentials, gamitin ang sumusunod na code para ilapat ang iyong mga default na credentials. Para sa mga tagubilin sa pag-save ng mga credentials, tingnan ang I-save ang iyong mga access credentials.
from qiskit_ibm_runtime import QiskitRuntimeService
# run every time you need the service
service = QiskitRuntimeService()
...
Kung pinangalanan mo ang isa o higit pang mga set ng credentials β halimbawa, para sa open at premium access β gamitin ang sumusunod na code para gumamit ng isang set ng mga pinangalanang credentials.
from qiskit_ibm_runtime import QiskitRuntimeService
# run every time you need the service
service = QiskitRuntimeService(name="<name_of_saved_credentials>")
...
Mga bagay na dapat isaalang-alang kapag naglo-load ng mga naka-save na credentialsβ
-
Kung mag-initialize ka ng service gamit ang
tokenatname, angtokenay binabalewala at ang mga naka-save na detalye mula sanameaccount ay nilo-load.Sa sumusunod na halimbawa, nilo-load ng service ang mga detalye mula sa
account_Aat hindi ginagamit angtoken_B:from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(token="token_B", name="account_A") -
Kung magbigay ka ng
nameatinstancekapag nagsi-initialize ng service, sinusubukan ng service na i-load angnameaccount at kumonekta sa tinukoy nainstance. Kung may anumang salungatan, mag-a-abot ng babala.Sa sumusunod na halimbawa, sinusubukan ng service na i-load ang mga credentials para sa
account_Aat gamitin ang instance naCRN_Bβ kahit na may ibang instance na tinukoy saaccount_A:from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(instance="CRN_B", name="account_A") -
Sinusubukan ng service na i-load ang default na naka-save na account tanging kung hindi ka nagbibigay ng
tokenonamekapag nagsi-initialize ng service. Gayunpaman, kung tahasan na ibinigay anginstance, sinusubukan ng service na kumonekta sa instance na iyon gamit ang mga default na credentials. Kung may anumang salungatan, mag-a-abot ng babala.Sa sumusunod na halimbawa, sinusubukan ng service na i-load ang mga default na credentials at gamitin ang instance na
CRN_Bβ kahit na may ibang instance na tinukoy sa default na account:from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService(instance="CRN_B") -
Kung mag-save ka ng maraming set ng credentials ngunit hindi mo tinutukoy ang isa kapag nag-initialize ng service at walang default na naka-save na account, ang pinaka-huli sa alpabeto ang gagamitin.
Sa sumusunod na halimbawa, nag-save ang user ng mga account na pinangalanang "my_premium" at "my_open" ngunit hindi niya minarkahan ang alinman bilang default. Pagkatapos ay nag-initialize sila ng service gamit ang sumusunod na code. Sa kasong ito, ginagamit ang mga credentials ng "my_premium":
from qiskit_ibm_runtime import QiskitRuntimeService
service = QiskitRuntimeService() -
Kung patuloy kang nakakakuha ng error na "401 Unauthorized", maaaring sinusubukan mong gumamit ng bearer token sa halip na ang iyong API key.
Awtomatikong piliin ang instanceβ
Kung magbigay ka ng token ngunit hindi magbibigay ng instance CRN kapag nagsi-instantiate ng service, ang QiskitRuntimeService ay nagpapatunay sa account na natukoy ng token at gumagamit ng awtomatikong pagpili ng instance para piliin ang pinaka-angkop na instance para sa hiniling na gawain. Kung mayroon kang maraming instance na available sa loob ng iyong account, awtomatikong pumipili ang service mula sa mga available na instance, depende sa hiniling na resource at sa mga opsyon ng QiskitRuntimeService na ito (kung itinakda): plans_preference, region, tags.
plans_preference: Ang mga uri ng instance plan na uunahin. Halimbawa, kung [open] ay ipinasa, available lamang ang mga Open Plan instance. Ang mga tinatanggap na value ayopen,premium,pay-as-you-go,flex, aton-prem. Kung hindi tinukoy angplans_preference, ang mga libreng plan ay uunahin kaysa sa mga bayad na plan.region: Ang rehiyon ng instance. Ang mga tinatanggap na value ayus-eastateu-de.tags: Ang mga tag ng instance. Tumatanggap ng listahan ng mga string ng pangalan ng tag.
Maaari mong i-set up ang iyong mga naka-save na credentials para awtomatikong pumili ng instance.
Ang instance ay nahanap at ginagamit sa sumusunod na pagkakasunod:
- Kung ang iyong account ay may access lamang sa isang instance, ito ay awtomatikong pinipili.
- Kung ginagamit ang mga naka-save na credentials at tinukoy ang isang instance kasama ang mga credentials, gagamitin ang instance na iyon. Tingnan ang Mga bagay na dapat isaalang-alang kapag naglo-load ng mga naka-save na credentials.
- Kung ang iyong account ay mayroon maraming instance na maaaring ma-access ang hiniling na QPU, ginagamit ng system ang iyong tinukoy na mga kagustuhan sa plan para pumili ng plan at instance. Para sa Qiskit Runtime v0.42 at mas bago, ang mga libreng plan ay uunahin bilang default.
- Kung ang iyong account ay may access sa maraming instance ngunit isa lang ang maaaring ma-access ang hiniling na QPU, ang instance na may access ay pinipili. Kung ang instance na ito ay hindi nauugnay sa isang libreng plan, magkakaroon ng bayad.
Mga Halimbawaβ
Sa halimbawang ito, hinahanap ng service ang lahat ng instance na available sa account para mahanap ang mga maaaring ma-access ang tinukoy na backend:
service = QiskitRuntimeService(token=<your-API_KEY>)
Sa halimbawang ito, hinahanap ng service ang lahat ng instance na available sa account sa rehiyon ng EU para mahanap ang mga maaaring ma-access ang tinukoy na backend:
service = QiskitRuntimeService(token=<your-API_KEY>, region="eu-de")
Sa halimbawang ito, hinahanap ng service ang lahat ng instance na available sa account at may tag na services para mahanap ang mga maaaring ma-access ang tinukoy na backend:
service = QiskitRuntimeService(token=<your-API_KEY>, tags=['services'])
Sa halimbawang ito, hinahanap ng service ang lahat ng premium at open instance na available sa account para mahanap ang mga maaaring ma-access ang tinukoy na backend. Kung ang isang backend ay nasa parehong Premium at Open Plan instance, ang Premium Plan instance ay uunahin dahil premium ay tinukoy nang una sa plans_preference.
service = QiskitRuntimeService(token=<your-API_KEY>, plans_preference=['premium', 'open'])
Alamin kung aling instance ang napiliβ
Ang napiling instance ay ibinabalik bilang isang babala. Bukod dito, maaari kang magpatakbo ng service.active_instance() para matukoy ang aktibong instance.
Lokal na pagsubok gamit ang Qiskit Runtimeβ
Ang klase ng QiskitRuntimeService ay maaaring ma-initialize gamit ang channel=local para magsagawa ng lokal na simulation. Sa kasong ito, hindi kailangan ang authentication at hindi na kailangang magbigay ng mga value para sa token o instance. Kaya naman, hindi inirerekomenda na mag-save ka ng lokal na account. Sa halip, maaari kang gumamit ng direktang instantiation:
from qiskit_ibm_runtime import QiskitRuntimeService
# Initialize for local testing
service = QiskitRuntimeService(channel="local")
Mga susunod na hakbangβ
- Gumawa at pamahalaan ang mga instance.
- I-initialize ang service sa isang hindi pinagkakatiwalaang environment.
- Mag-set up para gumamit ng IBM Quantum Platform gamit ang REST API.
- Sundin ang mga hakbang sa Hello world para sumulat at magpatakbo ng quantum program.