アカウントの管理¶
Qiskit RuntimeはIBM CloudとIBM Quantum Platformの両方で利用できます。 前者はIBM Cloudアカウントを必要とし、後者はIBM Quantumアカウントを必要とします。 必要なアカウントをお持ちでない場合は、次のリンクを参照してください。
アカウント管理の方法はいくつかあります。 アカウント資格情報は、ディスクに保存することも、セッションで使用して保存しないこともできます。
save_account(): 今後使用するためにアカウントをディスクに保存します。
delete_account(): 保存されたアカウントをディスクから削除します。
active_account(): セッション内の現在のアカウントを一覧表示します。
saved_account(): ディスクに保管されているアカウントをリストします。
資格情報の保存¶
save_account()
メソッドを使用すると、アカウントの認証情報をディスク上の $HOME/.qiskit/qiskit-ibm.json
ファイルに保存することが可能です。認証情報を保存した後は、今後 QiskitRuntimeService()
を使用してアカウントを初期化するだけでよくなります。
注釈
アカウントの資格情報はプレーン・テキストで保存されるため、信頼できるデバイスを使用している場合にのみ実行してください。
IBM Cloud と IBM Quantum のアカウントを保存する例を以下に示します。 channel
パラメーターを使用すると、異なるアカウント・タイプを区別することができます。 チャネルごとに複数のアカウントを保存する場合は、 name
パラメーターを使用して区別することを検討してください。
from qiskit_ibm_runtime import QiskitRuntimeService
# Save an IBM Cloud account on disk.
QiskitRuntimeService.save_account(channel="ibm_cloud", token=<*IBM Cloud API key*>, instance=<*IBM Cloud CRN*> or <*IBM Cloud service name*>)
# Save an IBM Quantum account on disk.
QiskitRuntimeService.save_account(channel="ibm_quantum", token=<*IBM Quantum API token*>)
アカウントの初期化¶
Qiskit Runtime の使用を開始する前に、 Python セッションでアカウントを初期化する必要があります。資格情報が既に保存されている場合は、追加のパラメーターを指定せずに QiskitRuntimeService
インスタンスを初期化できます。
# Read default credentials from disk.
service = QiskitRuntimeService()
IBM Cloud と IBM Quantum の両方のアカウントを保存している場合、 QiskitRuntimeService()
はデフォルトで IBM Cloud アカウントをロードします。代わりにIBM Quantumのアカウントをロードするには、 QiskitRuntimeService(channel="ibm_quantum")
を指定してください。
また、保存時にアカウントにnameを指定した場合は、ロードするアカウントの名前を指定することもできます。
# Save an IBM Cloud account on disk and give it a name.
QiskitRuntimeService.save_account(channel="ibm_cloud", token=<*IBM Cloud API key*>, instance=<*IBM Cloud CRN*>, name="prod")
service = QiskitRuntimeService(name="prod")
セッションを保存するのではなく、単にセッションに対して資格情報を使用する場合は、 QiskitRuntimeService
インスタンスを初期化する際に資格情報を渡すことができます。
# Initialize an IBM Cloud account without saving it.
service = QiskitRuntimeService(channel="ibm_cloud", token=<*IBM Cloud API key*>, instance=<*IBM Cloud CRN*>)