Google ADK "из коробки" не поддерживает работу с AWS Bedrock. Можно его подключить через LiteLLM, но это может быть сопряжено с трудностями, например, из-за конфликта версий зависимостей. Есть вариант проще - подключить зависимость anthropic[bedrock], после чего отнаследоваться от класса модели Claude, входящего в ADK и использующего VertexAI, заменив клиента на Bedrock-клиента. Dirty, но работает:
barbitoff programmer`s blog
barbitoff programmer`s blog
вторник, 10 июня 2025 г.
Google ADK + AWS Bedrock + Claude
Google ADK + VertexAI + Claude: работа за HTTP прокси
Проблема
Пытаюсь запустить решение на Google ADK, использующее VertexAI и одну из моделей Claude, за HTTP прокси-сервером. Вызов идет мимо прокси, что приводит к ошибке, хотя прокси прописан в переменной окружения HTTPS_PROXY.
Решение
Вручную расширить класс ADK-модели Claude, добавив поддержку прокси:
from google.adk.agents import Agentfrom google.adk.models.anthropic_llm import Claudefrom google.adk.models.registry import LLMRegistryfrom anthropic import AnthropicVertexfrom functools import cached_propertyimport osimport httpxclass ClaudeWithProxySupport(Claude):@cached_propertydef _anthropic_client(self) -> AnthropicVertex:proxy = os.getenv("HTTPS_PROXY")if not proxy:return super()._anthropic_clientif ("GOOGLE_CLOUD_PROJECT" not in os.environor "GOOGLE_CLOUD_LOCATION" not in os.environ):raise ValueError("GOOGLE_CLOUD_PROJECT and GOOGLE_CLOUD_LOCATION must be set ""for using Anthropic on Vertex.")return AnthropicVertex(project_id=os.environ["GOOGLE_CLOUD_PROJECT"],region=os.environ["GOOGLE_CLOUD_LOCATION"],http_client=httpx.Client(proxy=proxy),)# Register the custom modelLLMRegistry.register(ClaudeWithProxySupport)
пятница, 30 мая 2025 г.
WSL и VPN
Проблема
Есть Windows хост с поднятым корпоративным VPN. Есть гостевой Linux в WSL (конкретно, WSL2). На Windows весь трафик идет через VPN, трафик в обход VPN заблокирован, доступ в интернет только через корпоративный прокси.
В Linux недоступна ни корпоративная сеть, ни интернет (т.к. недоступен корпоративный прокси, расположенный в корпоративной сети), т.к. трафик не заворачивается в VPN.
Решение
https://github.com/sakai135/wsl-vpnkit?tab=readme-ov-file - скачиваем, устанавливаем, запускаем по инструкции. Трафик из WSL начинает заворачиваться в VPN, в результате чего в Linux появляется доступ к корпоративной сети и интернету (через корпоративную проксю).
четверг, 24 апреля 2025 г.
Logitech Options+ за прокси
Обычная версия Logitech Options+ отказывается корректно работать за корпоративным прокси: установка проходит успешно, однако проверка обновлений, а также загрузка информации о девайсах не работает, в итоге ни один девайс добавить не получаестя. Решение - использовать оффлайн-установщик, он не требует подключения к интернету для загрузки информации о девайсах: https://prosupport.logi.com/hc/en-us/articles/10991109278871-Logitech-Options-Offline-Installer.
вторник, 29 октября 2024 г.
gitleaks ломает мердж в Idea
Проблема
Пытаюсь смерджить две ветки в IntelliJ Idea, после разрешения конфликтов появляется уведомление:
В итоге мердж можно только откатить. Причина ясна - gitleaks нашел какую-то уязвимость в коде, который мерджится. Но что если это false-positive и мы хотим все же смерджиться?
Решение
Идем в .git/hooks/pre-commit, там комментим вызов gitleaks:
#"C:\Program Files\Git\gitleaks.exe" protect -v --staged
После мерджа строчку можно раскомментить обратно.
пятница, 20 сентября 2024 г.
Linux Mint: ноутбук засыпает при отключении внешнего монитора при закрытой крышке
Проблема
Ноутбук с Linux Mint работает с закрытой крышкой и внешним монитором. Стоит отключить внешний монитор (точнее, я просто переключаю монитор на другой ноутбук через KVM Switch), ноутбук уходит в сон, хотя в настройках питания стоит "ничего не делать" по закрытию крышки (собственно, по закрытию крышки он и не засыпает).
Решение
В файле /etc/systemd/logind.conf строчки:
#HandleLidSwitch=suspend
#HandleLidSwitchExternalPower=suspend
заменяем на
HandleLidSwitch=ignore
HandleLidSwitchExternalPower=ignore
И делаем:
sudo service systemd-logind restart
четверг, 19 сентября 2024 г.
Spring Boot with Gradle in IntelliJ Idea: profiler cannot connect to the application
When I'm trying to profile my Spring Boot application, built with Gradle and run with :bootRun, in IntelliJ Idea, I face the following error:
"Cannot connect to target JVM. Exception creating connection to: 192.168.x.x; ..."
The reason is obviously in the fact, that IntelliJ tries to use my IP from the network card instead of localhost.
To change that, in my build.gradle I configured the bootRun task in the following way:
bootRun {
jvmArgs('-Djava.rmi.server.hostname=localhost')
}