По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Друг! Недавно в нашей статье мы рассказывали, как произвести базовую настройку телефонов в Cisco CME (CUCME) используя интерфейс командной строки. Сегодня мы сделаем то же самое, но уже при помощи графического интерфейса Cisco Configuration Professional (CCP) , про установку которого можно почитать здесь. /p> Добавление CME роутера в CCP Первым делом настроим наш роутер как CME. Для этого выбираем наш роутер в списке Select Community Member и нажимаем Configure и выбираем вкладку Unified Communications Features. Здесь нам будут доступны следующие опции: Cisco Unified Border Element (CUBE) – эта опция настраивает роутер как шлюз для IP телефонии для IP-IP сервисов, таких как IP Telephony Service Provision (IP-TSP). CUBE предоставляет типичные пограничные сервисы такие как NAT/PAT, и добавляет к ним VoIP функциональность для билинга, безопасности, контроля, QoS и прочего. IP Telephony – CUCME – CCP настраивает роутер как отдельную CME систему. IP Telephony – SRST – Позволяет IP телефонам использовать CME роутер как резервное устройство, если они потеряли связь с кластером CUCM. IP Telephony – Cisco Unified Call Manager Express as Cisco Unified Survivable Remote Site Telephony – предоставляет то же самое что и SRST, но с полным набором функций CME. Однако из-за этого уменьшается количество поддерживаемых телефонов. TDM Gateway – добавляет функционал шлюза, который может быть сконфигурирован вместо или совместно с CME. Media Resources – позволяет настроить цифровой сигнальный процессор DSP. Нам нужно поставить галочку IP Telephony, выбрать пункт CUCME – Cisco Unified Communications Manager Express, нажать ОК и затем в открывшемся окне нажать Deliver, после чего на маршрутизаторе будут произведены необходимые начальные настройки (какие именно команды будут применены можно увидеть в окне предпросмотра). Настройка Telephony Service Cisco предоставляет графический интерфейс для конфигурации ephone и ephone-dn (что это такое можно почитать тут). Однако просто взять и добавить ephone-dn (тут они называются “Extensions”) и ephone (они называются “Phones”) нельзя, интерфейс выдаст нам ошибку, что сначала нужно настроить Telephony Service Поэтому займемся настройкой Telephony Service. Чтобы это сделать нужно перейти в меню Configure – Unified Communications – Telephony Settings. Здесь нам необходимо настроить следующие поля: Supported Endpoints – какой протокол будут использовать телефоны (SIP, SCCP или оба) Maximum number of phones – максимальное количество ephone (команда max-ephones) Maximum number of extensions – максимальное количество ephone-dn (команда max-dn) Phone registration source IP address – адрес регистрации телефонов (команда ip source address) Иногда CCP может не обновлять конфигурацию CME, после внесения изменений. Если вы указали все необходимые настройки, но все еще получаете ошибку, что нужно настроить Telephony Settings, то в этом случае нужно вручную обновить конфигурацию, нажав кнопку Refresh. Если вы используете GNS3 для эмуляции роутера с CME, то при попытке войти в меню Telephony Settings будет появляться ошибка “An internal error has occurred”, и начальные настройки нужно ввести через интерфейс командной строки маршрутизатора. После того как мы заполнили поля нажимаем ОК, а затем Deliver. Теперь мы можем добавлять телефоны. Добавление телефонов, номеров и пользователей в CCP Начнем с добавления Extension, который технически является ephone-dn. Переходим во вкладку Configure – Unified Communications – Users, Phones and Extensions – Extensions и внизу нажимаем Create Здесь заполняем следующие поля: Primary Number – номер телефона (единственное обязательное поле) Secondary Number – дополнительный номер Name to be displayed on phone line – имя, которое будет отображаться на телефоне Description – описание Active calls allowed on a Phone Button – количество одновременных звонков (single-line или dual line) После заполнения нужных полей нажимаем ОК и Deliver, после чего телефон появляется в таблице с номерами. Теперь перейдем к настройке Phones. Для этого переходим во вкладку Configure – Unified Communications – Users, Phones, and Extensions – Phones (или Phones and Users, в зависимости от версии) и нажимаем Create. Здесь нам нужно заполнить два обязательных поля: модель телефона Cisco, который мы хотим добавить и его mac адрес, в формате xxxx.xxxx.xxxx . Внизу в столбце Available Extensions появятся созданные нами номера. Нам нужно перенести необходимый номер в правую таблицу, нажав кнопку со стрелкой вправо, выбрав номер линии и указав ее тип и тип звонка (в зависимости от версии CCP, привязка Phone к Extension может производиться в меню создания пользователя). В этом же окне мы можем создать пользователя. Используя свой аккаунт, пользователь может управлять настройками своего телефона через веб-интерфейс. Для этого переходим во вкладку User и указываем логин в строке User ID, а также пароль для входа. При создании юзера из этого меню, он будет ассоциирован с этим телефоном. В зависимости от версии CCP, может меняться местонахождение этой вкладки, и она может быть расположена в Configure – Unified Communications – Users, Phones, and Extensions – User Settings. Применяем настройки также нажатием клавиш ОК и Deliver. Также в CCP можно импортировать большое количество экстеншенов и телефонов в файлах .CSV через Bulk Import Wizard, который находится на панели справа. Также при помощи CCP можно проверить работоспособность системы и телефонов, через меню Configure – View – IOS Show Commands, где из выпадающего списка можно выбрать команду show и CCP отобразит ее вывод.
img
Год назад компания OpenAI выпустила свой блокбастер — чат-бота ChatGPT. Сотни миллионов людей экспериментировали с этим инструментом, и мы видим, что он уже поменял представление о том, как будет выглядеть и восприниматься интернет для пользователей. Сейчас ChatGPT больше не единственный инструмент для диалогового ИИ. У него есть серьезная конкуренция со стороны нескольких инструментов, например, Claude. Среди его отличий от ChatGPT — поддержка API, то есть бот можно встроить в экосистему бизнеса. Claude AI, разработанный исследователями из Anthropic, представляет собой альтернативу ChatGPT, которая генерирует текстовые ответы на диалог. В этой статье мы рассмотрим некоторые интересные возможности ChatGPT и покажем, какую пользу он может принести вам, вашей работе и бизнесу. Что умеет ChatGPT? Обратите внимание на то, что ИИ не обладает собственными знаниями — его работа основана на анализе большого объема текстовых данных. Бот же старается предоставить информацию и помощь на основе этого обучения, например: ответы на вопросы: вы можете спрашивать его о фактах, концепциях, истории и т.д. Составление текста: он поможет написать статьи, эссе, письма, посты. Обучение: если у вас есть вопросы, связанные с изучением новых тем, он найдет и предоставит вам нужную информацию. Перевод: ИИ поможет с переводом текста с одного языка на другой. Генерация идей: если вам нужны идеи для проекта, исследования или творчества, он предложит варианты. Просто поговорить: вы можете пообщаться с чат-ботом на любые темы. Написание кода: ИИ поможет с вопросами по программированию, предоставит фрагменты кода или объяснения алгоритмов. В целом, AI-боты умеют много чего интересного: от поиска идей для украшений, планирования вечеринок, и до более полезных преимуществ, таких как помощь в программировании. Что может сделать нейросеть действительно хорошим помощником? Вы, а точнее, хорошие промты. Они несколько отличаются от привычных нам запросов для поисковых систем: давайте разберемся, как они выглядят. Как правильно написать промт для чат-бота? Лайфхаки для ChatGPT Промты играют решающую роль в том, какой результат вы получите от языковой модели. Промты — это то, что направляет ИИ в генерации ответа для пользователя. Давайте разберемся пошагово в том, что важно для написания хорошего запроса для языковой модели. 1. Определите контекст разговора Чтобы успешно задействовать чат-бота, ваш запрос должен четко отражать контекст текущей ситуации. Например, почувствуйте разницу между запросами: «Напиши письмо с благодарностью для моего преподавателя» и «Напиши письмо от моего имени на 1000 символов о том, как мне понравилось учиться у моего преподавателя, как я усвоил основы программирования и нашел интересную работу благодаря ему». 2. Будьте максимально конкретны Стремитесь писать свой запрос максимально четко и конкретно. Расплывчатые или двусмысленные обращения могут привести к тому, что бот начнет «изобретать велосипед» или просто выдаст результат, который не соответствует вашим ожиданиям. 3. Пишите запросы по очереди Если вы используете ИИ-бот для выполнения какой-либо задачи, например, написания фрагмента текста или исследования темы, вы можете вписывать свои запросы по очереди. Таким образом, вместо того, чтобы запрашивать все сразу, вы можете создать диалог, основанный на предыдущем ответе бота. Таким образом вы сможете вести разговор до тех пор, пока не достигнете желаемого результата. 4. Используйте персонализацию Пользовательский контекст сделает выдачу бота более актуальной. Вписывайте в свой запрос имена, которые должны фигурировать в ответе, местоположение, время или что-то еще, что имеет отношение к контексту. 5. Приводите примеры Главная фишка любой нейросети — в ее способности к обучению, не зря существует такая должность, как промт-инженер. Добавляйте примеры в начало диалога, чтобы машина строила свои ответы на основе того, что вам нужно — это поможет ей более четко понять ваши ожидания. Создание промтов для чат-бота GPT — это процесс, требующий нескольких итераций. Советуем экспериментировать с различными формулировками, чтобы понять, что лучше всего подходит для ваших целей. Проверяйте свои запросы по ходу дела и наблюдайте, как на них реагирует чат-бот. Затем вы можете проанализировать полученный результат и соответствующим образом уточнить подсказки. Чем чаще вы повторяете этот процесс, тем лучшего результата достигнет ваш чат-бот и тем лучше вы научитесь писать эффективные запросы. Лайфхаки для написания эффективного промта Вы можете потренироваться в написании хороших промтов самостоятельно, а можете изучить зарубежные источники: например, ресурс Great Prompts с исчерпывающей информацией о запросах для ИИ. Вот несколько примеров фраз, которые можно использовать для генерации промта в различных контекстах. Для написания кода: «напиши программу, которая...», «создай код для решения задачи...», «пример кода на [язык программирования] для...». Для получения текстового описания: «расскажи о принципах работы...», «сформулируй ответ на вопрос...», «опиши процесс...». Для конкретизации запроса: «дай подробное объяснение по теме...», «как работает...?», «поясни, что такое...». Для тренировки навыков: «подскажи примеры использования...», «какие существуют методы для...», «помоги мне разобраться в...». Для генерации идей: «предложи варианты для...», «какие идеи есть по теме...», «как можно улучшить/изменить...». Для формирования мнения: «как ты относишься к...», «какие преимущества и недостатки...», «сравни... и ... и дай свой вывод». Чем более конкретный и четкий запрос вы дали, тем вероятнее, что модель предоставит вам нужную информацию. Экспериментируйте с разными формулировками, чтобы найти лучший способ взаимодействия с ботом. Как использовать ИИ в программировании? Если вы хотите повысить эффективность написания кода, ChatGPT может оказаться именно тем инструментом, который вам нужен. Вот почему: скорость и эффективность: ChatGPT может быстро генерировать фрагменты кода, сокращая время и усилия, которые тратятся на ручное программирование. Помощь в сложных задачах: он поможет в решении сложных задач по программированию — а вы можете сосредоточиться на стратегических задачах вашего проекта. Снижение количества багов: ChatGPT дает дополнительный код-ревью, а это значит, он может свести к минимуму ошибки в вашем коде. ChatGPT был обучен на огромном объеме данных, которые включали в себя и код из множества языков программирования. В результате он может помочь в программировании на различных языках: Python, JavaScript, Java, C++, C#, Ruby, Swift , R. Это всего лишь примеры — ChatGPT может обрабатывать запросы, включающие и другие языки программирования. Как языковая модель поможет вам писать код Прежде, чем мы разберемся, как ИИ поможет вам с написанием кода, определитесь, что должна делать ваша программа в конечном результате? Представьте, что вы платите за работу программисту, которого видите впервые. Даете ли вы этому человеку достаточно информации, чтобы он мог работать над вашим заданием? Или же ваши формулировки слишком расплывчаты, и человек, которого вы наняли, с большей вероятностью начнет задавать уточняющие вопросы или выдавать результат, который вас не устраивает? Итак, если вы представили перед собой талантливого программиста, работающего только по четкому ТЗ, переходим к тому, с чем вы можете к нему обратиться: Помощь с синтаксисом: если у вас возникли вопросы по синтаксису определенного языка программирования, вы можете получить полезную информацию. Генерация кода: опишите задачу или конкретную проблему, с которой вы сталкиваетесь. Бот предложит фрагменты кода или примеры, которые могут помогут вам в решении. Объяснение алгоритмов: бот предоставит объяснения и примеры, если у вас есть вопросы по поводу определенного алгоритма или концепции программирования. Тестирование кода: если у вас есть кусок кода, который вы хотели бы протестировать, вы можете поделиться им чат-ботом, и он поможет выявить возможные ошибки или предложить улучшения. С чем ИИ не работает или работает неправильно? Разумеется, любой искусственный интеллект — это не панацея и точно не тот инструмент, который сделает все за вас. Вот несколько слабых сторон ИИ, о которых стоит помнить: Отсутствие понимания контекста. ИИ, в том числе и модели на основе GPT-3.5, не всегда способен понимать контекст в том же смысле, в каком его понимает человек. Модели могут давать ответы, которые кажутся логичными, но они основываются на шаблонах и не всегда отражают объективную реальность. Отсутствие эмоционального интеллекта. Разумеется, ИИ не способен распознавать и понимать эмоции человека так, как это делают люди. В общении с ИИ может отсутствовать эмоциональная составляющая и понимание контекста, связанного именно с эмоциями. Неопределенность и недостаток критического мышления. ИИ может давать ответы даже на те вопросы, на которые нет однозначного ответа. Бот полагается на данные, на которых он обучен. Если эти данные предвзяты, неполны или ошибочны, то и результаты работы ИИ могут быть ложными. Беспристрастность и бездушность. ИИ лишен собственных убеждений и чувств. Это означает, что он может предоставлять информацию или выполнять задачи без учета моральных, этических или социальных аспектов. «С эмпатией все понятно, а могу ли я доверять коду, который пишет ИИ?», — спросите вы первым делом. Скорее нет, чем да. Но вы также не можете быть уверенными в коде, который пишут программисты-люди. Прежде чем брать конечный результат в работу, вам нужно провести серию тестов. Правда ли, что ИИ может заменить человека в работе? Первый вопрос, который задает каждый, кто познакомился с возможностями нейросетей — «заменит ли искусственный интеллект человека?» Боты на основе ИИ не заменят сотрудника с его аналитическими данными, эмпатией и пониманием отдельных деталей его професси. Но нейросеть точно подойдет для продуктивного сотрудничества и улучшения перфоманса! Автоматизация рутинной работы может освободить вам время для творческих и стратегических задач. Поэтому вакансии становятся более технологически ориентированными, требуя от сотрудников навыков в области взаимодействия с ИИ. Растет спрос на специалистов, способных обслуживать, программировать и развивать технологии искусственного интеллекта. Важно осознавать, что ИИ ограничен своим программным кодом и данными, на которых он обучен. Так что в областях, требующих творческого мышления, софт-скиллов и этических решений, человек остается попросту незаменимым.
img
gRPC — это мощная платформа для работы с удаленными вызовами процедур (Remote Procedure Calls). RPC позволят писать код так, как будто он будет выполняться на локальном компьютере, даже если он может выполняться на другом компьютере. Что такое RPC? RPC — это форма взаимодействия клиент-сервер, в которой используется вызов функции, а не обычный вызов HTTP. Идея в том, что мы можем вызвать и выполнить функцию где-то на удаленной системе, как если бы это была локальная функция. Он использует IDL (Interface Definition Language - язык описания интерфейса) как форму контракта на вызываемые функции и тип данных. RPC — это протокол "запрос-ответ", т.е. он следует модели "клиент-сервер": Клиент делает запрос на выполнение процедуры на удаленном сервере. Как и при синхронном локальном вызове, клиент приостанавливается до тех пор, пока не будут возвращены результаты процедуры. Параметры процедуры передаются по сети на сторону сервера. Процедура выполняется на сервере и, наконец, результаты передаются обратно клиенту. gRPC воспроизводит этот архитектурный стиль взаимодействия клиент-сервер через вызовы функций. Таким образом, gRPC технически не является новой концепцией. Скорее, он был заимствован из этой старой техники и улучшен, что сделало ее очень популярной. Что такое gRPC? В 2015 году Google открыл исходный код своего проекта, который в конечном итоге получил название gRPC. Но что на самом деле означает буква «g» в gRPC? Многие люди могут предположить, что это для Google, потому что Google это сделал, но это не так. Google меняет значение «g» для каждой версии до такой степени, что они даже сделали README, чтобы перечислить все значения. С момента появления gRPC он приобрел довольно большую популярность, и многие компании используют его. Есть много причин, по которым gRPC так популярен: простая абстракция, он поддерживается во многих языках и он очень эффективный. И помимо всех вышеперечисленных причин, gRPC популярен потому, что очень популярны микросервисы и имеется большое количество взаимодействий между ними. Именно здесь gRPC помогает больше всего, предоставляя поддержку и возможности для решения типичных проблем, возникающих в таких ситуациях. А поскольку разные сервисы могут быть написаны на разных языках, gRPC поставляется с несколькими библиотеками для их поддержки. Архитектура gRPC Мы сказали что производительность gRPC очень высока, но что делает ее такой хорошей? Что делает gRPC намного лучше, чем RPC, если их дизайн очень похож? Вот несколько ключевых отличий, которые делают gRPC столь эффективным. HTTP/2 HTTP был с нами очень долго. Сейчас почти все серверные службы используют этот протокол. HTTP/1.1 долгое время оставался актуальным, затем в 2015 году, появился HTTP/2, который фактически заменил HTTP/1.1 как самый популярный транспортный протокол в Интернете. Если вы помните, что 2015 год был также годом выхода gRPC, и это было вовсе не совпадение. HTTP/2 также был создан Google для использования gRPC в его архитектуре. HTTP/2 — одна из важных причин, почему gRPC может работать так хорошо. И в следующем разделе вы поймете, почему. Мультиплексирование запроса/ответа В традиционном протоколе HTTP невозможно отправить несколько запросов или получить несколько ответов вместе в одном соединении. Для каждого из них необходимо создать новое соединение. Такой вид мультиплексирования запроса/ответа стал возможен в HTTP/2 благодаря введению нового уровня HTTP/2, называемого binary framing. Этот двоичный уровень инкапсулирует и кодирует данные. На этом уровне HTTP-запрос/ответ разбивается на кадры (они же фреймы). Фрейм заголовков (HEADERS frame) содержит типичную информацию заголовков HTTP, а фрейм данных (DATA frame) содержит полезные данные. Используя этот механизм, можно получить данные из нескольких запросов в одном соединении. Это позволяет получать полезные данные из нескольких запросов с одним и тем же заголовком, тем самым идентифицируя их как один запрос. Сжатие заголовка Вы могли столкнуться со многими случаями, когда заголовки HTTP даже больше, чем полезная нагрузка. И HTTP/2 имеет очень интересную стратегию под названием HPack для решения этой проблемы. Во-первых, все в HTTP/2 кодируется перед отправкой, включая заголовки. Это помогает повысить производительность, но это не самое важное в сжатии заголовков. HTTP/2 сопоставляет заголовок как на стороне клиента, так и на стороне сервера. Из этого HTTP/2 может узнать, содержит ли заголовок одно и то же значение, и отправляет значение заголовка только в том случае, если оно отличается от предыдущего заголовка. Как видно на картинке выше, запрос № 2 отправит только новый путь, так как другие значения точно такие же как и были. И да, это значительно сокращает размер полезной нагрузки и, в свою очередь, еще больше повышает производительность HTTP/2. Что такое Protocol Buffer (Protobuf)? Protobuf — это наиболее часто используемый IDL для gRPC. Здесь вы храните свои данные и функциональные контракты в виде так называемого прото-файла. По сути это протокол сериализации данных, такой как JSON или XML. Выглядит это так: message Person { required string name = 1; required int32 id = 2; optional string email = 3; } Так мы определили сообщение Person с полями name, id и email Поскольку это форма контракта то и клиент, и сервер должны иметь один и тот же прото-файл. Файл proto действует как промежуточный контракт для клиента, чтобы вызвать любые доступные функции с сервера. Protobuf также имеет собственные механизмы, в отличие от обычного REST API, который просто отправляет строки JSON в виде байтов. Эти механизмы позволяют значительно уменьшить полезную нагрузку и повысить производительность. Что еще может предложить gRPC? Метаданные Вместо обычного заголовка HTTP-запроса в gRPC есть то, что называется метаданными (Metadata). Метаданные — это тип данных «ключ-значение», которые можно установить как на стороне клиента, так и на стороне сервера. Заголовок может быть назначен со стороны клиента, в то время как серверы могут назначать заголовок и трейлеры, если они оба представлены в виде метаданных. Потоковая передача Потоковая передача (Streaming) — это одна из основных концепций gRPC, когда в одном запросе может выполняться несколько действий. Это стало возможным благодаря упомянутой ранее возможности мультиплексирования HTTP/2. Существует несколько видов потоковой передачи: Server Streaming RPC: когда клиент отправляет один запрос, а сервер может отправить несколько ответов. Например, когда клиент отправляет запрос на домашнюю страницу со списком из нескольких элементов, сервер может отправлять ответы по отдельности, позволяя клиенту использовать отложенную загрузку. Client Streaming RPC: когда клиент отправляет несколько запросов, а сервер отправляет обратно только один ответ. Например, zip/chunk, загруженный клиентом. Bidirectional Streaming RPC: клиент и сервер одновременно отправляют сообщения друг другу, не дожидаясь ответа. Перехватчики gRPC поддерживает использование перехватчиков для своего запроса/ответа. Они перехватывают сообщения и позволяют вам изменять их. Это звучит знакомо? Если вы работали с HTTP-процессами в REST API, перехватчики очень похожи на middleware (оно же промежуточное ПО). Библиотеки gRPC обычно поддерживают перехватчики и обеспечивают простую реализацию. Перехватчики обычно используются для: Изменения запроса/ответа перед передачей. Это можно использовать для предоставления обязательной информации перед отправкой на клиент/сервер. Позволяет вам манипулировать каждым вызовом функции, например, добавлять дополнительные логи для отслеживания времени отклика. Балансировки нагрузки Если вы еще не знакомы с балансировкой нагрузки, это механизм, который позволяет распределять клиентские запросы по нескольким серверам. Но балансировка нагрузки обычно делается на уровне прокси (например, nginx). Так причем это здесь? Дело в том, что gRPC поддерживает метод балансировки нагрузки клиентом. Он уже реализован в библиотеке Golang и может быть легко использован. Хотя это может показаться какой-то магией, это не так. Там есть что-то типа преобразователя DNS для получения списка IP-адресов и алгоритм балансировки нагрузки под капотом. Отмена вызова Клиенты gRPC могут отменить вызов gRPC, когда им больше не нужен ответ. Однако откат на стороне сервера невозможен. Эта функция особенно полезна для потоковой передачи на стороне сервера, когда может поступать несколько запросов к серверу. Библиотека gRPC оснащена шаблоном метода наблюдателя, чтобы узнать, отменен ли запрос, и позволить ей отменить несколько соответствующих запросов одновременно.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59