ENGINE / SDK / ВЫЧИСЛЕНИЯ
GPU провайдера.
Один путь для пайплайнов.
Смета и текущий баланс до оплаты. Стабильные задачи после перезапуска. SEO, CALMF, аналитика цепочки и рендер используют штатный шлюз лицензирования.
1. Создайте проект одной командой
python3 -m venv .venv-tools
source .venv-tools/bin/activate
python -m pip install --index-url https://engine.yeti3.ru/sdk/simple/ yeti3-sdk==0.1.6
yeti3 init my-gpu-project --scenario provider-gpu
cd my-gpu-project
yeti3 run
yeti3 check --offlineWindows PowerShell: py -3 -m venv .venv-tools, затем .venv-tools\Scripts\Activate.ps1. CLI закрепляет весь набор ядра 0.4.5 и модуль GPU в engine.lock.json, проверяет SHA-256 и зависимости. Первый запуск не требует токена и не расходует деньги.
Либо подключите к существующему проекту
python -m pip install --index-url https://engine.yeti3.ru/sdk/simple/ yeti3-engine==0.4.5 yeti3-provider-gpu==0.1.0
python -m pip checkИспользуйте отдельное виртуальное окружение Python 3.12+. Ранние каналы ядра 0.4.3 не подходят этому модулю.
2. Подключите модуль к ядру
import os
from pathlib import Path
from yeti3.kernel.engine import Engine
from yeti3.network import NetworkClient
from yeti3_provider_gpu import ProviderGPUModule
token = Path(os.environ["YETI3_GPU_TOKEN_FILE"]).read_text().strip()
client = NetworkClient("https://license.gochain.space", token)
engine = Engine()
engine.register(ProviderGPUModule(client))
engine.boot()
gpu = engine.capabilities.get("compute.provider")
status = gpu.status() # текущий центральный баланс и состояние сервисаСерверный файл содержит существующий лицензированный токен сайта или владельца. Не передавайте его в HTML, URL, журнал или браузер. Показ баланса берите из ответа сервера, не рассчитывайте по локальному кэшу. Регистрация не арендует GPU.
3. Смета → подтверждение → запуск
plan = gpu.prepare(
project=licensed_project_id,
key="seo:home:revision-42",
task="seo.analyze",
inputs={"text": public_page_text, "max_tokens": 512},
public_data=True,
cash_limit_kopecks=50_00,
max_seconds=900,
)
# Сохраните plan в PostgreSQL своего проекта ДО подтверждения.
# Покажите plan["reserve_kopecks"] / 100, баланс и лимит 50 рублей.
# Только авторизованный плательщик подтверждает именно этот digest.
receipt = gpu.launch(plan, confirmed_digest=approved_digest)
# Сохраните receipt. После таймаута повторяйте тот же plan, не prepare().
job = gpu.get(receipt)
events = gpu.events(receipt, after=0)
# gpu.cancel(receipt) запрашивает отмену; дождитесь подтверждения сервера.Переменные licensed_project_id, public_page_text, approved_digest поступают из серверного проекта и формы подтверждения. Это интеграционный фрагмент, а не автономный скрипт. План хранится только на сервере; его digest обнаруживает изменение, но не заменяет авторизацию плательщика.
Финансовые резервы, фактическая стоимость, возврат остатка и удаление GPU выполняются централизованно. Отмена не означает бесплатное уже использованное время. Не подменяйте денежный баланс токенами или бонусами.
Один интерфейс, разные задачи
| Направление | task / capability | Что исполняется |
|---|---|---|
| SEO | seo.analyze / seo.compute | Публичные тексты, рекомендации по структуре и метаданным |
| CALMF | calmf.analyze / calmf.compute | Обезличенные агрегаты и поиск возможных аномалий |
| Блокчейн | blockchain.analyze / blockchain.analytics.compute | Аналитический отчёт по агрегатам цепочки |
| Пайплайны | pipeline.analyze / pipeline.compute | Разбор времени этапов и рекомендации |
| Автотесты | tests.analyze / tests.compute | Объяснение очищенных результатов тестирования |
| Каталог | catalog.review / catalog.compute | Описание и анализ публичной документации пакета |
| Текст | text.generate, text.summarize | Черновики и краткое изложение |
| Медиа | blender.render, render.queue / media.compute | Кадр Blender либо существующая очередь пакетов рендера |
В каждый этап передавайте отдельный стабильный ключ. Сохраняйте план и ID задачи в существующую БД. Для общего лимита пайплайна резервируйте бюджет всех этапов транзакционно: независимые лимиты задач не являются общим лимитом проекта.
Сейчас текстовые задачи использует поддерживаемый шлюзом text.generate. Они не выполняют произвольный Python, shell, обучение модели или настоящий тест безопасности пакета. Для нового вычислительного runtime нужен отдельный проверенный адаптер провайдера.
Изоляция, CALMF и цепочка
Клиент работает от центрального аккаунта или лицензированного сайта; сервер повторно проверяет владельца проекта, права на источники и баланс. Публичная кнопка не должна автоматически расходовать деньги владельца.
Модуль пишет только метаданные жизненного цикла в Project Chain и событие compute.provider.lifecycle. Подключите штатного потребителя CALMF проекта к этому событию. Промпты, результаты и токены в журнал не отправляются. Медицинские данные, персональные данные и секреты отправлять запрещено.
Проверка хешей, подписей, запись блоков, доставка событий CALMF и выполнение автотестов продолжают работать в обычном проверяемом runtime. Ответ языковой модели не подтверждает целостность или безопасность.
Индикатор GPU: статусы, графики и расходы →
Индикатор GPU: статусы, графики и расходы →
Индикатор GPU: статусы, графики и расходы →