Bagaimana saya mengajar Yandex. Baik untuk berbicara tentang mainan seks

Kami mengintegrasikan Yandex.Alisa dan toko seks melalui boot Musim Semi.

Topik asisten suara mendapatkan momentum, dan saya memutuskan untuk bergabung dengan tren ini dengan mengintegrasikan pemasok grosir terbesar barang-barang intim dan Yandex.Alisa.

Ide : pemasok memiliki akun pribadi pemilik toko online, dan perlu memberikan data analitik dari pemasok melalui saluran suara Alice.

Integrasi terdiri dari dua bagian:

  • Integrasi layanan web dan REST API dari pemasok barang.
  • Integrasi Yandex.Alice dan layanan web untuk memproses permintaan pengguna.

Integrasi layanan web dan REST API pemasok barang


Layanan harus memahami apa yang sebenarnya diminta pengguna dan meminta data ini dari server pemasok. Kami memutuskan untuk menulis layanan di Spring Boot.

Penyiapan proyek


Kami membuat repositori di Git dan menggunakan spring initializr, kami menyebarkan proyek pada spring boot (kami menentukan web dalam dependensi).

Permintaan ke layanan datang dalam format JSON. Ini memiliki struktur yang terdokumentasi dengan baik , sehingga menghasilkan kelas cukup sederhana:

gambar

Mudahnya, kata kunci disorot dalam permintaan, seperti alamat yang dikenal. Mereka terletak di blok โ€œentitiesโ€ :

gambar

Tetapi dalam kasus kami, lebih nyaman menggunakan bidang Command . Ini berisi teks yang ditentukan oleh pengguna. Karena layanan integrasi terlibat dalam pengenalan makna, kami perlu menguraikan permintaan. Mereka terpisah satu sama lain (permintaan untuk pesanan yang ditempatkan, permintaan untuk pesanan dalam pemrosesan), jadi kami memutuskan untuk menggunakan ekspresi reguler untuk menguraikannya.

Integrasi dengan penyedia diimplementasikan melalui perpustakaan Apache httpclients, dan deserialisasi respons XML melalui jaxb.

Jadi, kami memilah permintaan dan meminta data dari pemasok. Tetapi Alice adalah gadis yang keras, dan karenanya tidak akan menerima jawaban kami selambat-lambatnya tiga detik kemudian. Dan pengguna mungkin ingin mendapatkan deskripsi komparatif dari tokonya selama dua tahun terakhir, yang akan membutuhkan lebih banyak waktu. Untuk mengatasi masalah ini, kami mengaktifkan caching melalui pustaka ehCache dan mengonfigurasi pemuatan data pengguna. Menghadapi nuansa baru: Alice tidak memberikan hampir semua data pengguna yang dipersonalisasi. Artinya, Anda bahkan tidak melihat email dalam permintaan yang masuk. Hanya ada userId yang menampilkan pengidentifikasi unik perangkat. Itu dibuat kunci untuk mengidentifikasi pengguna.

Kuncinya ada di sana, cache itu, masih harus mengerti kapan memuat informasi ke dalamnya. Pengguna tidak langsung meminta data, tetapi pertama-tama meluncurkan skill (ini adalah istilah yang digunakan di Alice, saya akan membicarakannya lebih lanjut di bawah). Untuk server, ini terlihat seperti permintaan dengan tag Command kosong. Pada titik ini, Anda dapat mulai mengunduh data klien, dan kemudian pada saat permintaan pengguna pertama dikirim, semua data telah diunggah ke layanan kami.

Untuk pengujian penuh dan pekerjaan lebih lanjut di prod, kami memutuskan untuk menyebarkan aplikasi di cloud di Heroku. Untuk melakukan ini, buka situs web Heroku , daftar, unduh heroku cli dan instal. Kemudian buka konsol dan masukkan heroku login . Pergi ke direktori dengan proyek cd ~ / myapp dan jalankan heroku create .

Saat Anda membuat aplikasi, Git membuat repositori jarak jauh yang disebut heroku, yang dikaitkan dengan repositori Git lokal Anda. Secara default, Heroku membuat nama acak di server untuk proyek Anda. Anda dapat menggantinya dengan mengirimkan nama aplikasi menggunakan heroku create myapp .

Untuk memeriksa peluncuran aplikasi, jalankan perintah.

heroku ps:scale web=1

Dan jika Anda harus mengikuti jalur โ€œ/โ€œ, maka kami mengeksekusi heroku open .
Titik integrasi pertama siap.

Integrasi Yandex.Alice dan layanan pemrosesan permintaan


Kami menerapkan integrasi melalui penciptaan keterampilan yang disebut pada platform Yandex. Pertama, daftar di Yandex, dan kemudian pergi ke halaman pengembang . Klik "buat dialog" dan pilih jenis dialog:

gambar

Pada tab "Pengaturan" dan Anda harus mengisi kolom:

gambar

  • Nama keterampilan - nama yang akan ditampilkan di katalog Alice. Dengan itu, pengguna akan dapat mengaktifkan skill, misalnya, "Luncurkan skill [Nama Skill]".
  • Nama aktivasi - di sini Anda dapat menentukan berbagai opsi untuk mengakses skill. Secara default, satu opsi untuk nama aktivasi adalah nama skill.
  • Contoh permintaan adalah ungkapan yang digunakan Alice untuk mengaktifkan keterampilan ini. Permintaan akan disajikan sebagai tombol di direktori setelah publikasi.
  • URL Webhook - Anda harus menentukan URL layanan web kami yang akan memproses permintaan pengguna.
  • Yandex.Cloud - Yandex dapat memberikan hibah ke cloud-nya, tetapi kami akan menyebarkan layanan pada heroku, jadi kami tidak mencentangnya.
  • Suara - di sini Anda dapat memilih suara yang keterampilan Anda akan ucapkan. Ada berbagai variasi pria dan wanita. Tetapi perlu mempertimbangkan bahwa pengguna kemungkinan besar akan mengatakan: "Alice, luncurkan skill", dan jika Alice menjawab dengan bariton jantan, ini bisa agak membingungkan.
  • Keterbatasan pada platform yang digunakan - apakah layar diperlukan saat bekerja dengan skill. Dalam kasus kami, tidak, jadi jangan beri tanda centang.
  • Privasi - centang kotak jika Anda tidak ingin keterampilan tercermin dalam katalog.
  • Situs Verifikasi Merek - Alamat situs untuk keterampilan. Keterampilan yang Anda isi bidang ini hanya akan dimoderasi jika Anda telah mengkonfirmasi hak untuk situs yang ditentukan di Yandex.Webmaster.
  • Kategori - dalam kasus kami, ini adalah "bisnis dan keuangan".
  • Deskripsi - mengapa Anda membutuhkan keahlian Anda. Deskripsi keterampilan akan ditampilkan dalam katalog keterampilan dan akan tersedia untuk pengguna.
  • Catatan untuk moderator - mungkin bidang yang paling menarik. Untuk masuk ke katalog, keterampilan harus dimoderasi, yang berarti harus mematuhi aturan tertentu yang dijelaskan di sini. Di bidang ini, Anda dapat menjelaskan proses pengujian. Misalnya, cara melalui otorisasi dan satu skenario pengguna yang khas.
  • Batasan usia - terlepas dari subjek keterampilan, kami akan mengirimkan data yang cocok untuk semua kelompok umur. Karena itu, jangan beri tanda centang.
  • Ikon adalah suatu keharusan :)

Simpan dialognya. Semua perubahan pada pengaturan keterampilan hanya berlaku setelah mengklik tombol "simpan".

Kami mengkonfigurasi integrasi, menulis layanan, sekarang Anda dapat mengujinya.

Buka tab "Pengujian".

gambar

Di sini Anda dapat memeriksa kinerja keterampilan. Demi kenyamanan, kami telah menambahkan akses cepat ke tombol fungsi ke skill.

Ada beberapa batasan: Anda tidak dapat memeriksa ketrampilan untuk frasa awal dan Anda tidak dapat memeriksa input / output suara. Dan jika seharusnya tidak ada masalah dengan frasa, maka pelafalan jawaban yang benar akan diperiksa hanya setelah publikasi keterampilan.
Setelah semua tes, skill dapat dikirim dengan moderasi. Untuk melakukan ini, buka tab "Informasi Umum" dan klik "Moderasi".

gambar

Setelah moderasi, tombol Publikasikan akan muncul sebagai ganti tombol ini. Setelah publikasi, keterampilan akan muncul di katalog Yandex resmi.

Fitur dan batasan


Pada saat ini, keterampilannya agak terpisah dari Alice sendiri (saya harus mengatakan "meluncurkan keterampilan"), yang membuatnya sulit untuk menganggap Alice sebagai asisten suara yang lengkap. Akan sangat bagus untuk membentuk konteks keahlian Anda dan mengajukan pertanyaan langsung kepada Alice. Tidak ada cara untuk mendapatkan informasi pengguna selain dari userId, yang merupakan pengidentifikasi perangkat. Oleh karena itu, setiap perangkat harus diotorisasi ulang, yang membuatnya sulit untuk menyimpan sesi pengguna tunggal. Selain itu, skill tidak dapat mengirim pesan push, jadi tidak akan berhasil untuk membuat skill pengingat.

Di sisi lain, keterampilan dapat menjadi platform yang baik untuk menerapkan kontrol suara, misalnya, peralatan rumah tangga. Selain itu, keterampilan dapat berguna dalam pelatihan atau melakukan percobaan, dalam mengklarifikasi informasi tentang pesanan, harga, dll. Secara umum, di mana pengguna dapat mengajukan pertanyaan singkat yang tepat atau memberikan perintah singkat.

Source: https://habr.com/ru/post/id466021/


All Articles