دستورالعملهای هر بخش زیر را دنبال کنید تا Google Assistant را در پروژه خود ادغام کنید.
اتصالات gRPC
سرویس دستیار Google بر روی gRPC ساخته شده است، یک چارچوب RPC با کارایی بالا و منبع باز. این فریم ورک برای پخش صوتی دو طرفه مناسب است.
پایتون
اگر از پایتون استفاده می کنید، استفاده از این راهنما را شروع کنید.
C++
به نمونه C++ ما در GitHub نگاهی بیندازید.
Node.js
به نمونه Node.js ما در GitHub نگاهی بیندازید.
چیزهای اندروید
به دستگاه های تعبیه شده علاقه دارید؟ نمونه Assistant SDK for Android Things را بررسی کنید.
زبان های دیگر
- برای دریافت تعاریف رابط بافر پروتکل برای Google Assistant Service API، مخزن googleapis را کلون کنید.
- برای ایجاد پیوندهای gRPC برای زبان انتخابی خود ، مستندات gRPC را دنبال کنید
- مراحل را در بخش های زیر دنبال کنید.
برای کار با «دستیار» حساب Google خود را تأیید و تأیید کنید
مرحله بعدی این است که به دستگاه خود اجازه دهید تا با استفاده از حساب Google شما با دستیار Google صحبت کند.
توکنهای OAuth را با دامنه دستیار SDK دریافت کنید
Assistant SDK از نشانههای دسترسی OAuth 2.0 برای اجازه دادن به دستگاه شما برای اتصال به دستیار استفاده میکند.
هنگام نمونهسازی، میتوانید از ابزار مجوز استفاده کنید تا به راحتی اعتبار OAuth2.0 را از فایل client_secret_<client-id>.json
که هنگام ثبت مدل دستگاه شما ایجاد شده است، ایجاد کنید.
برای تولید اعتبار موارد زیر را انجام دهید:
از یک محیط مجازی پایتون برای جداسازی ابزار مجوز و وابستگی های آن از بسته های پایتون سیستم استفاده کنید.
sudo apt-get update
sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate
ابزار مجوز را نصب کنید:
python -m pip install --upgrade google-auth-oauthlib[tool]
ابزار را اجرا کنید. اگر این را از ترمینال روی دستگاه (نه یک جلسه SSH) اجرا می کنید، پرچم
--headless
بردارید:google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
هنگامی که آماده ادغام مجوز به عنوان بخشی از مکانیسم تأمین دستگاه خود هستید، راهنمای ما را برای استفاده از OAuth 2.0 برای دسترسی به Google APIها بخوانید تا بدانید که چگونه می توانید نشانه های دسترسی OAuth را به دست آورید، ادامه دهید و از آنها استفاده کنید تا به دستگاهتان اجازه دهید با «دستیار» صحبت کند. API.
هنگام کار با این راهنماها از موارد زیر استفاده کنید:
- محدوده OAuth: https://www.googleapis.com/auth/assistant-sdk-prototype
جریان های OAuth پشتیبانی شده:
- (توصیه می شود) برنامه های نصب شده
- برنامه های کاربردی وب سرور
برای توصیه هایی در مورد نحوه ایمن سازی دستگاه خود ، بهترین شیوه های حفظ حریم خصوصی و امنیت را بررسی کنید.
اتصال gRPC خود را با توکن های OAuth احراز هویت کنید
در نهایت، با خواندن نحوه استفاده از احراز هویت مبتنی بر توکن با Google برای احراز هویت اتصال gRPC به Assistant API، همه قطعات را کنار هم قرار دهید.
دستگاه خود را ثبت کنید
مدل و نمونه دستگاه خود را به صورت دستی یا با ابزار ثبت نام (موجود در پایتون) ثبت کنید.
یک گفتگوی اساسی مکالمه را با دستیار اجرا کنید
- یک سرویس گیرنده gRPC جریان دو طرفه را برای API سرویس دستیار Google پیاده سازی کنید.
- منتظر بمانید تا کاربر درخواست جدیدی را راه اندازی کند (مثلاً منتظر وقفه GPIO با فشار دادن دکمه باشید).
یک پیام
AssistRequest
با مجموعه فیلدconfig
ارسال کنید (بهAssistConfig
مراجعه کنید). مطمئن شوید که فیلدconfig
شامل موارد زیر است:- فیلد
audio_in_config
، که نحوه پردازش دادههایaudio_in
را که در درخواستهای بعدی ارائه میشوند، مشخص میکند (بهAudioInConfig
مراجعه کنید). - فیلد
audio_out_config
، که فرمت مورد نظر را برای سرور برای استفاده در هنگام بازگرداندن پیام هایaudio_out
مشخص می کند (بهAudioOutConfig
مراجعه کنید). - فیلد
device_config
، که دستگاه ثبت شده را برای دستیار شناسایی می کند (بهDeviceConfig
مراجعه کنید). - فیلد
dialog_state_in
که حاویlanguage_code
مرتبط با درخواست است (بهDialogStateIn
مراجعه کنید).
- فیلد
شروع به ضبط کنید.
چندین پیام
AssistRequest
خروجی را با داده های صوتی از درخواست گفتاری در قسمتaudio_in
ارسال کنید.پیام های
AssistResponse
ورودی را مدیریت کنید.فراداده مکالمه را از پیام
AssistResponse
استخراج کنید. برای مثال، ازdialog_state_out
،conversation_state
وvolume_percentage
دریافت کنید (بهDialogStateOut
مراجعه کنید).هنگام دریافت
AssistResponse
باevent_type
END_OF_UTTERANCE
ضبط را متوقف کنید.صدا را از پاسخ دستیار با داده های صوتی که از قسمت
audio_out
می آید، پخش کنید.conversation_state
که قبلاً استخراج کردید بردارید و آن را در پیامDialogStateIn
درAssistConfig
برایAssistRequest
بعدی کپی کنید.
با این کار، باید آماده باشید تا اولین درخواست های خود را از طریق دستگاه خود به دستیار Google ارائه دهید.
یک گفتگوی مکالمه را با Device Actions گسترش دهید
برای فعال کردن قابلیتهای سختافزاری منحصربهفرد دستگاه خاص خود، گفتگوی اصلی مکالمه بالا را گسترش دهید:
- در پیامهای
AssistResponse
ورودی، فیلدdevice_action
استخراج کنید (بهDeviceAction
مراجعه کنید). - بار JSON فیلد
device_request_json
را تجزیه کنید. برای لیست ویژگی های پشتیبانی شده به صفحه Device Traits مراجعه کنید. هر صفحه طرح صفت یک نمونه درخواست EXECUTE را با دستور(های) دستگاه و پارامترهایی که در بار JSON برگردانده می شوند نشان می دهد.
رونوشت درخواست کاربر را دریافت کنید
اگر صفحه نمایشی به دستگاه متصل دارید، ممکن است بخواهید از آن برای نمایش درخواست کاربر استفاده کنید. برای دریافت این رونوشت، قسمت speech_results
در پیامهای AssistResponse
تجزیه کنید. هنگامی که تشخیص گفتار کامل شد، این لیست حاوی یک مورد با stability
روی 1.0 خواهد بود.
متن و/یا ارائه تصویری پاسخ دستیار را دریافت کنید
اگر صفحه نمایشی به دستگاه متصل دارید، ممکن است بخواهید از آن برای نشان دادن پاسخ متنی ساده دستیار به درخواست کاربر استفاده کنید. این متن در قسمت DialogStateOut.supplemental_display_text
قرار دارد.
دستیار از پاسخ های بصری از طریق HTML5 برای سؤالات خاص پشتیبانی می کند ( آب و هوا در Mountain View چیست؟ یا ساعت چند است؟ ). برای فعال کردن این، فیلد screen_out_config
را در AssistConfig
تنظیم کنید. پیام ScreenOutConfig
دارای حالت screen_mode
است که باید روی PLAYING
تنظیم شود.
سپس پیامهای AssistResponse
دارای فیلد screen_out
خواهند بود. می توانید داده های HTML5 (در صورت وجود) را از فیلد data
استخراج کنید.
ارسال سوالات از طریق ورودی متن
اگر یک رابط متنی (به عنوان مثال، یک صفحه کلید) به دستگاه وصل شدهاید، قسمت text_query
در قسمت config
تنظیم کنید (به AssistConfig
مراجعه کنید). فیلد audio_in_config
را تنظیم نکنید.
عیب یابی
اگر با مشکل مواجه شدید به صفحه عیب یابی مراجعه کنید.