Skip to main content
Python SDK подходит для серверов, задач данных, автоматизированных агентов и пакетных скриптов. acedatacloud отвечает за вызовы API, acedatacloud-x402 отвечает за подпись заголовка запроса PAYMENT-SIGNATURE. Исходный код и адрес пакета:

Установка зависимостей

Если вы хотите использовать upto, вам также нужно один раз вызвать Permit2 approve CLI, который зависит от web3:
Вывод установки и проверки импорта в чистом Python venv:
Результаты объясняют:
  • acedatacloud и acedatacloud-x402 могут быть установлены и импортированы из PyPI.
  • pip install 'acedatacloud-x402[cli]' включает CLI approve-permit2 для предварительного разрешения upto.

Пример Base или SKALE

Следующий пример не требует API Token. Приватный ключ кошелька подписывается только локально и не отправляется в Ace Data Cloud.
Текущий возврат Python SDK - это dict, поэтому пример использует res["choices"][0]["message"]["content"]. Не предполагайте, что он обязательно имеет атрибут .choices. Результат выполнения программы SKALE paid call:
Результаты объясняют:
  • Программа завершила 402 парсинг, подпись PAYMENT-SIGNATURE и повторный запрос.
  • content ADC_PY_SDK_X402_OK - это фиксированная строка, возвращаемая моделью, указывающая на то, что запрос прошел через платёжный канал X402 к целевому API.
  • id chatcmpl-DlcWajqAHOop3iebmO19XRfT5bTPz - это ID ответа на этот chat completion.
При использовании SKALE нужно просто изменить имя сети:

Пример Solana

Solana использует secret key, закодированный в base58:
Solana путь будет построен и отправлен SPL USDC TransferChecked транзакция, затем подпись транзакции будет помещена в PAYMENT-SIGNATURE envelope. Solana paid retry на производственном API уже вернул HTTP 200 и ADC_SOLANA_E2E_OK. В этом публичном RPC запросе возникли ограничения, стабильное подтверждение подписи в цепочке не было получено; для сверки используйте свой собственный Solana RPC для проверки этой транзакции.

Асинхронный клиент

Тот же обработчик платежей может быть использован для AsyncAceDataCloud:

Использование upto для последующей оценки

Реальные затраты на API, такие как завершение чата и вызовы модели, могут быть известны только после завершения ответа. В это время API может одновременно вернуть exact и upto. Если вы хотите приоритизировать использование upto:
Результат выполнения программы Base upto:
Подтверждение в цепочке:
Результаты объясняют:
  • content ADC_BASE_UPTO_OK указывает на то, что запрос действительно попал в модель API.
  • settled value 3 atomic USDC указывает на то, что upto рассчитывается по фактическому использованию, а не вычитается из полного лимита.
  • settlement tx можно открыть в BaseScan, для сверки сохраните tx hash, payer, completion id и сводку запроса.
upto использует разрешение Permit2 на лимит, фактическая сумма расчета не может превышать этот лимит. Перед первым использованием необходимо сделать одно approve(Permit2, amount) на USDC в целевой цепочке. CLI способ:
Программный способ:
Этот хелпер является идемпотентным. Если allowance уже достаточно, он вернет {"skipped": true}, не отправляя повторно транзакцию в цепочку.

Низкоуровневая подпись

Если вы не используете SDK, вы также можете напрямую вызывать низкоуровневые функции подписи:
Низкоуровневые функции подходят для тестирования, прокси-уровней, интеграции шлюзов или неофициальных SDK. Обычный бизнес-код должен в первую очередь использовать create_x402_payment_handler.