Transcription
Привет, как дела? Готов заняться чем-нибудь интересным? >> Можешь сделать это как озорной звук или >> вроде того? Готов заняться какой-нибудь игривой шалостью? >> Да, поехали. Мы подключаем твой голос к настоящему телефону. >> Ого, подключаю свой голос к телефону. Это звучит как что-то веселое. >> Итак, если ты хочешь увидеть, как развернуть что-то подобное на реальный телефонный номер, оставайся со мной, я покажу тебе прямо сейчас. Итак, то, что поможет нам подключить телефонную систему к моделям Gemini в реальном времени, это то, что мы будем использовать LifeKit. Это поможет нам подключить все, а нашим телефонным провайдером будет Telnix. Итак, просто чтобы продемонстрировать тебе, как это будет работать, используя мой телефон. Я просто позвоню, позвоню прямо сейчас. >> Здравствуйте. Спасибо за звонок. Чем я могу вам помочь сегодня? >> Можешь поговорить со мной, может быть, по-испански? Скажи половину предложения по-испански, а вторую половину по-польски. >> Вот так. Он тоже сам повесил трубку. И наш отчет о конце звонка также отправляется в A10. Вы это видите? Это чертовски круто, не так ли? Это действительно крутая установка. Я собираюсь начать совершенно новый проект в Cursor. Нажмем "Открыть новый проект". И здесь вы создадите новую папку. Назовем ее Google uh T next YouTube. Нажмите "Создать", а затем "Открыть". И теперь у нас будет папка, в которой мы можем работать в um cursup. Я только что нажал Shift J, чтобы открыть ее. Хорошо. Итак, вы спускаетесь вниз, вы берете эту ссылку на репозиторий. Вы собираетесь скопировать хотя бы get get clone, и просто вы можете либо скопировать это, либо um я просто я просто напечатаю это. Это не так уж и сложно. А затем вам придется зайти в свой URL чуть выше, потому что ваш GitHub-юзернейм будет отличаться от моего. Просто нажмите маленькую стрелку справа, нажмите точку, а затем введите git. И теперь это клонирует весь репозиторий, который я сделал для вас. И мы просто скопируем это. Сделаем все, что нам нужно. Итак, теперь нам нужно перейти в папку. Мы набираем, затем cd lk dash, а затем просто набираем, просто нажимаем tab, и это приведет нас в папку. И теперь вы можете видеть, что это вся наша установка, которая нам нужна. Следующим шагом будет установка всех наших зависимостей. Мы просто набираем uvync, и это запустит виртуальное окружение. Это загрузит все, что нам нужно, и сделало это очень быстро. Um, затем нам нужно перейти LKC cloud off, и это аутентифицирует ваш um проект прямо здесь с um текущим проектом, который у нас есть на lifecape. Наберите это. Да. Это приведет вас к этому экрану. Теперь вы хотите выбрать проект. Я просто выберу Google Tex. Вы можете закрыть это окно. Давайте вернемся. Сделаем это нашим проектом по умолчанию. О, хорошо. Это немного обидно. Um, я просто назову это в вашем случае. Um, если вы не создали проект, это не будет проблемой. Um, я просто буду работать отсюда. Затем мы запускаем эту команду, и она um добавит все наши вещи сюда. Я просто пропущу свой Google API ключ, потому что я не хочу показывать вам его. Я напечатаю X на данный момент. Итак, теперь в вашем локальном файле, который теперь создан запуском этой команды, он заполнил эти три вещи. Теперь нам нужно перейти в нашу учетную запись Google, получить API ключ и просто нажать на одну из этих вещей, которые вы создали раньше. Итак, я просто нажму, например, на эту. Вернемся, а затем я вставлю это в этот раздел в моем файле env.local. И тогда вы замените X, который мы только что напечатали, своим фактическим API ключом. Хорошо. Следующим шагом для нас будет запуск этого. Это загрузит все наши um дополнительные вещи, которые находятся um здесь. Круто. Все готово. Теперь мы копируем эту команду и переходим сюда. Наберите это. >> Здравствуйте. Спасибо за звонок. Чем я могу вам помочь сегодня? >> Привет. У меня все хорошо. Что происходит? >> Ничего особенного. Просто готов помочь, если у вас есть вопросы или что-то нужно. >> Я просто нажимаю Ctrl C, чтобы закрыть это. Мы просто набираем lk agent create. Теперь у меня уже есть агент для этого конкретного проекта. Он спросит вас о нескольких вещах. Вы просто говорите да. Выберите файл.local. Выберите область, в которой вы находитесь. Итак, я просто выберу EU. um, и это просто создаст вам um, это просто обновит наш текущий docker-файл, и это просто отправит его для нас в lifkit cloud, и там все будет um храниться для нас. Я просто скажу да, я хочу просмотреть журналы. Итак, как только он запустится, поехали. >> Здравствуйте. Спасибо за звонок. Чем я могу вам помочь сегодня? >> Привет. У меня все хорошо. >> Рад это слышать. Чем я могу вам помочь сегодня? >> Это потрясающе. Круто. Um, теперь одна вещь, которую я не сделал и не показал вам, это как сделать URL веб-хука и все такое. И я думаю, я сделаю это в следующем тоже. Um, потому что здесь может возникнуть ошибка, где будет сказано "веб-хук не найден", и это правда, потому что у нас его на самом деле нет. Мы должны настроить его в um файле окружения, и именно туда будут отправляться все стенограммы конца звонка. Итак, теперь мы будем подключать tnix к life kit, чтобы мы могли фактически совершить телефонный звонок. Теперь, чтобы сделать это, нам нужно иметь подтвержденную учетную запись с um некоторым кредитом в tix уже. Теперь я очень рекомендую, когда вы создаете учетную запись в telmix, использовать бизнес-электронную почту вместо чего-то вроде @gmail.com. Итак, мы в основном будем читать документацию API, а затем использовать Postman здесь. Теперь, что вы сделаете, это на левой стороне вы увидите "Коммуникации в реальном времени". Перейдите в "Номера". Затем вы можете перейти сюда и нажать "Купить номера". Вы найдете номер, который хотите. Хорошо, все хорошо. Затем вы добавите его в корзину. Затем вы перейдете сюда и разместите свой заказ. Итак, что вы сделаете, когда у вас будет номер телефона, просто запишите его и затем um um поместите его, например, в блокнот где-нибудь. Следующее, что нам также нужно, это API ключи для вашей учетной записи. Итак, в верхнем левом углу вы увидите свои um свои данные для входа, а затем свои API ключи прямо здесь. Вы перейдете сюда и затем нажмете "Создать API ключ", и именно его вы будете использовать для um для этой настройки. Итак, документация, которую мы будем смотреть для создания этого, это вот эта. Итак, вы перейдете в документацию telniks, где говорится "Создать и настроить telnik sip trunk". Технически, вы могли бы скопировать эту страницу, бросить все это в Cursor с помощью bar key, и это сделает все для вас, но я сделал это через Postman. Так что технически вы могли бы сделать это таким образом. Итак, первый um вызов, который вам нужно будет сделать, это um использовать вот этот: httpsapr.tx version 2 outbound voice profiles. Как это выглядит, вот так. Итак, вы скопируете это сюда. Вы выберете post. Как только вы сделаете это, um, что вы сделаете, это в авторизации um вы выберете "bearer token" из этого выпадающего списка, а затем вы вставите API ключ, который мы только что скопировали из telnix. Как только вы это сделаете, вы нажмете "Отправить", и вы получите ответ, который выглядит так. Теперь, что вы хотите сделать, это отметить этот ID, который возвращается от него, потому что мы собираемся использовать его в следующем API вызове. Другая вещь в теле, мы поместили это um тело тоже. Итак, это вот это, от этого фигурного скобки до этой фигурной скобки. Следующее, что мы копируем, это um HTTP-запрос. Мы буквально просто идем и теперь копируем эту вещь. Но единственное, что нам теперь нужно сделать, когда мы это делаем, это заменить эту переменную нашим фактическим ID голосового профиля. Итак, я покажу вам, как это выглядело с моей стороны. Итак, видите, как это начинается с 2837. Мой следующий API вызов, который является следующим, который называется FQDN connection. Я затем um вставляю, заменяю эту переменную этим числом 2837. Теперь, как только я это сделаю, я затем нажимаю "Отправить", и это создает мне еще одну вещь, которую мне нужно повторно использовать. И затем вы берете этот следующий um ID, а затем мы используем этот конечный пункт, который является V2 FQDNS. Мы делаем это снова, post FQDNS. Мы um делаем несколько шагов. Итак, этот ID, это то, что мы копируем в третий um Postman запрос. Итак, это вот этот, тот, который заканчивается на 318. И затем этот FQDN - это то, откуда вы берете его из своей um учетной записи lifegit. Итак, чтобы найти эту вещь FQDN, вы перейдете в настройки своей учетной записи, и там, где написано SIP URI, вы будете копировать только то, что идет после SIP. Итак, в моем случае это SIP um двоеточие, и, по сути, скопируйте все после двоеточия. Итак, в моем случае это было 5X7P1P. Так что для вас это будет что-то совершенно другое, но оно должно заканчиваться на sip.lifekit.cloud, и это то, что вы копируете прямо сюда. Вы оставляете это как есть, и вы оставляете это как есть, а затем нажимаете "Отправить". Как только вы нажмете "Отправить", вы получите еще один ID. Итак, на данный момент нам нужно фактически получить ID нашего номера телефона для номера, который мы купили только что. Итак, тот, который американский номер или любой номер, который вы купили. Итак, здесь um вы введете эту строку прямо здесь, а затем вы замените свой номер вот так. Итак, для меня это было API tnix phone numbers filter = 2184. Это был мой номер телефона. Um, затем вы нажмете "Отправить", и вы получите свой ID номера телефона, и это то, что вы затем используете в следующем вызове. Хорошо. Итак, мы нажимаем на это, и здесь нам нужны две вещи. Итак, нам нужен ID номера телефона и ID соединения. Итак, видите, как это заканчивается на 357. Это из этого запроса заканчивается на 357. Вот куда идет ID соединения. Это um, где идет ID номера телефона. И ID соединения было на самом деле um отсюда. Это было из um этого API запроса здесь FQDN connections. И вуаля, вы создали свой SIP-транк и настройку номера телефона, а также исходящий профиль в Telnix. Итак, теперь, когда вы войдете um, вы увидите что-то вроде этого. Когда вы нажмете um "Коммуникации в реальном времени", затем нажмите "Голос", нажмите "SIP-транкинг", вы должны увидеть что-то вроде этого здесь. Должно быть написано мой QDN. Должен быть один, потому что номер был бы назначен этому. И затем это то, что мы используем, чтобы um подключиться к нашему life kit. Хорошо. Следующие шаги - нам нужно перейти в SIP-транки. И в разделе SIP-транки мы затем нажимаем "Создать новый транк". И как это будет выглядеть в конце, когда вы заполните это, вы дадите этому имя, что-то вроде tix US или EU или что-то еще. Нажмите "Входящие". Введите номер телефона, который у вас есть в Telnx. Я добавил в белый список некоторые IP-адреса. Это на самом деле IP-адреса TNX. Я полагаю, это работает и без них, но я um размещу их ниже. А затем нажмите "Включить Crisp", а затем нажмите "Обновить". Нажмите "Создать" в вашем случае, потому что я уже сделал это. А затем для правил диспетчеризации, вот где мы приходим с этой левой стороны. Мы нажимаем "Создать новое правило диспетчеризации". И вы получите что-то вроде этого. Вверху я назвал это tex dispatch. Тип правила. Я выбрал "индивидуальный префикс комнаты". Я сказал "звонок", а затем тире. Я думаю, на самом деле лучше без тире. Так что я на самом деле сделаю это так. И это, вероятно, самая важная вещь из всего здесь. Вам нужно назвать это чем-то, что вы запомните и что вы знаете, что находится в коде. Код, который я дал вам сегодня, называется test agent. Затем нажмите "Транки". Выберите транк, который мы только что создали секунду назад, а затем нажмите "Создать". Опять же, это очень важно, чтобы вы правильно назвали это, потому что в нашем коде um, по сути, что um lifekit делает, это когда звонок поступает от tn next tix, затем он перенаправляет нас на lifekit. Lifekick принимает звонок. Затем он делает кучу вещей, а затем выбирает um агент, который он должен использовать, используя это правило диспетчеризации. Правило диспетчеризации говорит ему, какого агента использовать. И если у нас нет правильно назначенного имени здесь, то он не будет знать, какого агента использовать. Так что в данном конкретном случае, поэтому очень важно получить это правильно. Также оставил здесь небольшую заметку. Должно соответствовать правилу диспетчеризации. Как только у нас все настроено, мы можем сделать одно из двух. Если у вас уже есть, по какой-то причине это уже развернуто на вашей um учетной записи lifegate. Итак, что я имею в виду под этим, если вы перейдете в свою учетную запись lifegate, и у вас уже есть агент здесь, просто я просто дважды проверю, есть ли он у вас. На самом деле нет способа удалить его здесь. Так что на самом деле вам нужно сделать, это перейти к агенту, выбрать его, вернуться в Cursor, набрать хорошо, agent delete, а затем ввести свой ID агента. Так что я на самом деле сделаю это. Так что я удалю его. Это просто на случай, если у вас уже есть агент. Если нет, вы можете пропустить этот шаг. Наберите LK agent create. Мы скажем да. Выберите ENV local. И здесь вы выбираете US East или US Central. Я um, извините, US East или EU Central. Я выберу EU. И теперь он просто будет использовать все, что мы настроили раньше. Итак, мы говорим ему запускаться um из исходной папки. Мы выбираем его. Мы говорим ему выбрать файл agent.py. Итак, все, что находится прямо здесь. Вы также можете изменить um несколько вещей. Итак, одна из них, например, это подсказка здесь. Это инструкции, которые отправляются um Google. Вы можете изменить эту подсказку как угодно. Вы можете даже добавить новые строки сюда. Это не сломается. Здесь вы устанавливаете температуру. Теперь, из коробки, модель real time 2.5 flash на самом деле является как мыслящей, так и не мыслящей моделью. Так что если она решает думать, иногда это занимает больше времени. Так что я на самом деле установил ее на um false. Если вы хотите, чтобы она думала и занимала больше времени, что я не знаю, зачем вам это нужно в голосовом звонке, но просто скажем, что вы это делаете, вы установите это на true. Окей. В этом случае мы просто хотим установить это на false. Если по какой-то причине вы хотите изменить голос Zephier, женский голос, на Puck, который был оригинальным, который у меня был, вы просто набираете Puck, а затем вам нужно нажать "Сохранить". И теперь, скажем, вы хотите um обновить агента. Итак, так же, как мы сделали здесь. Итак, мы изменили голос. Итак, это было хорошо, agent deploy. Затем мы набираем, затем просто нажимаем Enter. Хорошо, agent deploy. Затем нажмите Enter. И теперь он просто отправит изменения, которые мы сделали здесь. Он просто переделает все, что сделал секунду назад. Он просто обновится. Я собираюсь позвонить этому и посмотреть, работает ли это. Кстати, я использую онлайн-версию моего телефонного провайдера. >> Здравствуйте. Спасибо за звонок. Чем я могу вам помочь сегодня? >> Да. Да. Привет, я просто делаю финальный тест, чтобы показать всем, кто смотрит, что это um работает. >> О, отлично. Есть ли что-то конкретное, что вы хотели бы протестировать? >> Нет, все хорошо, спасибо. И затем мы um повесим трубку, и um между тем, и да, вы также можете ввести свой URL веб-хука, и это отправит его в ваш N8, как только он будет завершен. Если вы хотите смотреть журналы по мере их появления, вы можете набрать LK agent logs, и это фактически запустится, и вы сможете наблюдать в своем терминале, как происходят звонки или что происходит со звонками, если есть какие-либо um ошибки. Так что вы можете увидеть это на моем последнем. Закрытие сеанса um, отключено. Хорошо, я um оставлю это здесь и спасибо вам.