Qiskit dapat digunakan untuk mengirimkan pekerjaan ke perangkat IBM menggunakan Python (atau Swift dan JavaScript). Tetapi bagaimana jika saya ingin menggunakan bahasa yang berbeda?
Sebagai contoh, misalkan saya memiliki sirkuit spesifik yang ingin saya jalankan. Asumsikan saya sudah membuatnya dalam Python Qiskit, dan menghasilkan string qasm yang sesuai atau (idealnya) objek qobj penuh.
Saya ingin dapat menjalankan ini dan mendapatkan hasilnya kembali dalam bahasa pilihan saya.
Sejauh yang saya mengerti, ini adalah cara untuk melakukan ini melalui HTML. Informasi yang dihasilkan dalam Qiskit dapat diubah menjadi JSON, dan kemudian dikirimkan melalui web. Ini adalah cara ProjectQ mengirimkan pekerjaan ke perangkat IBM (meskipun mereka melakukannya dengan Python).
Karena rekayasa balik kode ProjectQ sedikit menakutkan, saya ingin panduan sederhana untuk menggunakan fitur ini. Terutama dalam bahasa selain Python.
sumber
Jawaban:
Saya akan mencoba menjawab dengan cara ini tetapi saya belum mencobanya sendiri. Balikkan rekayasa membaca kode dengan beberapa gagasan tentang permintaan HTML.
Mari kita asumsikan dalam bahasa pilihan Anda, Anda memiliki kemampuan untuk mengirim permintaan HTTP melalui metode GET dan POST. Ini
api_url
adalah https://quantumexperience.ng.bluemix.net/api/ .Untuk mengirimkan pekerjaan, Anda akan mengirim permintaan POST dengan beberapa informasi (seperti Anda telah mengisi formulir di web dan Anda ingin berbicara dengan server). Ini seperti menangani server dengan kamus informasi. Ini akan menuju tautan https://quantumexperience.ng.bluemix.net/api/Jobs dengan tajuk permintaan POST ditetapkan sebagai
application/json
(menunjukkan bagaimana Anda mengirim informasi). Informasi di sini diajukan dalam format JSON di badan permintaan:Saya kira kita bisa menambahkan params
maxCredits
dan parameter lain untuk pengiriman. perangkat mengacu pada nama backend jika saya mengikuti komentar mereka:simulator
,ibmqx4
, atauibmqx5
. Anda mendapatkan jawaban kembali sebagai JSON lagi dengan argumen id yang merujuk keexecution_id
.Setelah dikirimkan, pekerjaan Anda akan berada dalam antrian. Anda harus meminta GET ID pekerjaan ini untuk mendapatkan jawaban dari backend. URL GET adalah: https://quantumexperience.ng.bluemix.net/api/Jobs/execution_id . Anda akan mendapatkan jawaban JSON lain (masukkan dalam
r_json
variabel). Jika memilikiqasms
item, lihat apakahr_json['qasms'][0]
memilikiresult
item dan Anda akan mendapatkan hasil pengiriman.Ini harus meringkas prosedur.
sumber