Axios: Пентагон готовится внести в черный список компанию-разработчика модели ИИ
Американское оборонное ведомство 25 февраля запросило у двух своих крупнейших подрядчиков Boeing и Lockheed Martin оценку степени их зависимости от модели искусственного интеллекта Claude компании Anthropic. По информации Axios, это стало первым шагом к официальному признанию Anthropic «риском для цепочки поставок». Такой статус ранее получила китайская компания Huawei. В Boeing и Lockheed Martin подтвердили Axios факт запроса со стороны Пентагона, отметив, что не имеют действующих контрактов с Anthropic. Источники издания уверяют, что Пентагон планирует связаться со «всеми традиционными подрядчиками». Система Claude — единственная модель ИИ, которая работает в интересах Минобороны США. Она применялась в операции по захвату президента Венесуэлы Николаса Мадуро и «может быть использована в потенциальной военной кампании в Иране». При этом руководство Anthropic не предоставляет Пентагону полного контроля над системой, считая, что ее могут использовать для массового наблюдения за американцами или для разработки оружия, которое стреляет без участия человека. Ведомство, в свою очередь, настаивает на том, что согласование отдельных случаев использования с компанией Anthropic нецелесообразно. Попытка преодолеть разногласия была предпринята 24 февраля на встрече главы Пентагона Пита Хегсета и гендиректора Anthropic Дарио Амодеи. В ходе беседы Хегсет выдвинул ультиматум — принять условия Пентагона до конца дня 27 февраля. В противном случае компания получит статус, который не позволит ей в дальнейшем претендовать на оборонные и правительственные контракты.
Read More
Создание кнопок для телеграмм бота с использованием библиотеки pyTelegramBotAPI
Вступление Доброго времени суток. Телеграмм – божественный месседж скаченный у каждого на телефонах/компьютерах и не только. После прочтение этой статьи вы научитесь создавать кнопки для вашего телеграмм бота. Желаю удачи, в прочтении!) Предупреждение Забыл предупредить, в этой статье не будет сказано о создание бота, получение токена через BotFather. Для этого прочитайте документацию библиотеки или посмотрите ролики на эту тему в ютубе(Для удобство ссылку на документацию на русском языке библиотеки pyTelegramBotAPI оставлю в описании). И так, вернемся к теме. Создание url кнопки Url кнопки используются, когда хотим создать кнопку при клике которой, пользователь переходил на сайт. Пример: нажима на “перейти”, телеграмм перекинет его на сайт, который вы оставили при создание url кнопки, но как же собственно создать? Легко! при создание url-кнопки используется тип InlineKeyboardMarkup, в который мы добавляем кнопку и с помощью reply_markup=markup выводим это в чат(обязательно не забудьте указать это, иначе ваша кнопка просто не будете отображаться). Создание Reply кнопки Я не знаю как корректно называются кнопки использующие тип ReplyKeyboardMarkup, но я много практиковался в их создание и покажу вам, как это делается. Вот пример Reply кнопок: Вот весь код самого бота: И так. Что бы создать Replay кнопку, нужно создать переменную, я назвал ее markup(9 строчка кода) в нее помещаем types.ReplyKeyboardMarkup(resize_keyboard=True). Resize_keybord=True выполняет функцию адаптации(я всегда указываю и вам советую тоже).После этого мы создаем переменную уже с самими кнопками и их текстом(10, 11 строчка) и затем добавляем эти переменные коммандой markup.add(__имя ваших переменных__). Коммандой bot.send_message(message.chat.id, text=”Привет, {0.first_name}! Я тестовый бот для твоей статьи для habr.com”.format(message.from_user), reply_markup=markup) и обязательно не забывайте добавлять reply_markup=markup, иначе просто кнопки не будут отображаться.
Read More
Как установить и настроить N8N на своем сервере VPS (в связке с Portainer и Nginx Proxy Manager)
В этой инструкции расскажу как поднять на своем VPS opensource-платформу для автоматизации рабочих процессов N8N и необходимые для ее функционирования сопутствующие сервисы. Я первый раз настраивал n8n по инструкции с официального сайта, но мне не понравилось, что в конфигурации по дефолту используется traefik – по мне так он избыточен для большинства установок N8N и в качестве обратного прокси лучше подходит nginx proxy manager. Через него также можно работать с сертификатами letsencrypt, так что в функциональности относительно официальной инструкции мы, кажется, вообще ничего теряем, а с точки расходования ресурсов сервера – выигрываем, как минимум в потреблении оперативки. Итак, приступим. Что нам потребуется Если вы собираетесь в рамках своих автоматизаций работать с зарубежными сервисами по API(например, для использования по api сервисов, предоставляющих доступ к LLM, вроде OpenAI, OpenRouter и т.п.), то лучше брать VPS-ку где-то не в РФ, так как с российскими ip-адресами некоторые сервисы не работают(бан на стороне сервисов) Если вы намерены использовать n8n для работы с перс.данными(любой совокупности данных, на основе которой можно однозначно определить конкретного человека) – то для выполнения 152-ФЗ вам необходимо хранить и обрабатывать данные, не транслируя их наружу – и тогда наоборот, сервер должен находиться внутри страны, а данные – быть изолированны от зарубежных сервисов. Настройка DNS-записей Для корректной работы поддоменов нам необходимо добавить для купленного домена поддомены для инструментов, которые нам необходимы: Базовая настройка VPS Большинство хостеров при создании VPS выдают только root-учетку с паролем, поэтому начиная работать с новым сервером, мы создадим нового пользователя. Для этого откроем терминал на локальной машине и зайдем на новый сервер с помощью команды ssh root@123.123.123.123 Объяснить с где 123.123.123 – ip-шник вашей VPSПри подключении система попросит ввести пароль, который вам предоставил хостер. Создадим нового пользователя sudo adduser username Объяснить с здесь и в дальнейших командах вместо username – желаемое имя вашего нового пользователяНа этом шаге в терминале надо будет последовательно ответить на несколько вопросов, задаваемых операционкой, но эту информацию можно не заполнять(кроме имени пользователя и пароля, само собой). Далее добавим пользователя в группу sudo, чтоб у него хватило прав на выполнение последущих команд). Добавим нового пользователя в группу sudo sudo usermod -aG sudo username Объяснить с На всякий случай проверим, что пользователь действительно добавился id username Объяснить с Далее отключаемся от сервера logout Объяснить с и заходим под реквизитами созданного пользователя ssh username@123.123.123.123 Объяснить с Установка и настройка Docker + Docker Compose Проверяем, есть ли конфликтующие пакеты и удаляем, если они установлены: sudo apt remove $(dpkg –get-selections docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc | cut -f1) Объяснить с Добавляем репозиторий для docker. Сначала добавим GPG-ключ, для этого последовательно выполним: sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc Объяснить с Ну и сам репозиторий пропишем в sources: sudo tee /etc/apt/sources.list.d/docker.sources <<EOF Types: deb URIs: <https://download.docker.com/linux/ubuntu> Suites: $(. /etc/os-release && echo “${UBUNTU_CODENAME:-$VERSION_CODENAME}”) Components: stable Signed-By: /etc/apt/keyrings/docker.asc EOF Объяснить с Обновим пакеты с учетом добавленного репозитория sudo apt update && sudo apt -y upgrade Объяснить с Ставим docker и docker-compose из добавленного репозитория sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginОбъяснить с Проверяем статус: sudo systemctl status docker Объяснить с Если статус некорректный, то запускаем: sudo systemctl start docker Объяснить с Проверим, поднялся ли тестовый контейнер: sudo docker run hello-world Объяснить с Добавим текущего пользователя в группу docker sudo usermod -aG docker “$USER” Объяснить с Установка portainer Создаем volume sudo docker volume create portainer_data Объяснить с И раскатываем контейнер sudo docker run -d -p 8000:8000 -p 9443:9443 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portioner_data:/data portainer/portainer-ce:lts Объяснить с Заходим по адресу: http://123.123.123.123:8000/ Объяснить с Где 123.123.123.123 – ip вашей VPS Для завершения установки portainer-а заполняем форму регистрации администраторской учетки – и готовы двигаться дальше. docker pull portainer/portainer-ce:latest docker run -d -p 8000:8000 -p 9443:9443 –name portainer –restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_/data portainer/portainer-ce:latest Объяснить с Установка и настройка хостов в Nginx Proxy Manager В portainer-е идем в Environments -> local -> stacks, жмем на кнопку Add stack, указываем: services: app: image: ‘jc21/nginx-proxy-manager:latest’ restart: unless-stopped container_name: nginx-proxy-manager ports: # These ports are in format <host-port>:<container-port> – ’80:80′ # Public HTTP Port – ‘443:443′ # Public HTTPS Port – ’81:81′ # Admin Web Port # Add any other Stream port you want to expose # – ’21:21’ # FTP environment: GENERIC_TIMEZONE=”Europe/Moscow” TZ: “Europe/Moscow” # Uncomment this if you want to change the location of # the SQLite DB file within the container # DB_SQLITE_FILE: “/data/database.sqlite” # Uncomment this if IPv6 is not enabled on your host # DISABLE_IPV6: ‘true’ volumes: – ./data:/data – ./letsencrypt:/etc/letsencryptОбъяснить с Относительно инструкции на официальном сайте в конфиг добавлена строка с container_name. Также необходимо отредактировать строку TZ, указав свою таймзону Далее идем на http://123.123.123.123:81, настраиваем учетку администратора, заполнив форму регистрации и затем в разделе Hosts добавляем необходимые поддомены(domain.net – соответственно ваш домен) по кнопке add proxy host: С такими же настройками добавляем хосты для поддоменов n8n.domain.net, nginx.domain.net, меняя для них только Forward port на первой вкладке: Установка и настройка N8N Ну, и наконец раскатываем стек с n8n, также в portainer-e через добавление конфигурации в разделе stack со следующем конфигом: services: n8n: image: docker.n8n.io/n8nio/n8n:latest container_name: n8n ports: – “5678:5678” dns: – 8.8.8.8 – 1.1.1.1 environment: – NODE_ENV=production – N8N_PROTOCOL=https – N8N_HOST=n8n.domain.net – WEBHOOK_URL=https://n8n.domain.net – EXECUTIONS_DATA_PRUNE=true – EXECUTIONS_DATA_MAX_AGE=168 volumes: – n8n_data:/home/node/.n8n restart: unless-stoppedvolumes: n8n_data:Объяснить с В конфиге соответственно нужно отредактировать строки N8N_HOST и WEBHOOK_URL под ваш домен и нажать на Deploy. В этот раз деплой будет идти чуть дольше. После успешной установки и поднятия контейнера, переходим по адресу n8n.domain.netи заполняем форму, указывая данные нового пользователя Все готово! Мы получили работающую VPS-ку с n8n на борту, с настроенными поддоменами и ssl-сертификатами на них(что позволит использовать те же web-хуки для интеграций с внешними сервисами).Для доступа к нужным инструментам мы теперь можем обращаться к соответствующим доменам: Для подготовки этого материала я использовал инструкции с официальных сайтов:
Read More