CyberRXN Docs
SDK

SDK для Python

Типизированные синхронный и асинхронный клиенты для химии и источников.

Установите проверенную сборку, задайте CYBERRXN_API_KEY и используйте Client или AsyncClient. Требуется Python 3.10+. Ответы — модели Pydantic; поля сохраняют API-имена в snake_case.

Поиск и исходный текст

from cyberrxn import Client

with Client() as client:
    page = client.molecule_reactions(
        "CCN1CCN(CO)C(=O)C1=O", role="product", limit=3
    )
    if page.items:
        observation = client.get_observation(page.items[0].observation_id)
        print(observation.paragraph_text)
        print(observation.conditions.pressure.status)

Берите ID наблюдения из ответа. Перед интерпретацией условий прочитайте paragraph_text и correction_provenance, если оно присутствует.

Валидация и балансировка

from cyberrxn import Client

with Client() as client:
    checked = client.validate_reaction("CCO>>CC=O")
    print(checked.valid, checked.atom_balance.hydrogen_balanced)
    balanced = client.balance_reaction("[H][H].O=O>>O")
    if balanced.solved and balanced.balanced_reaction_smiles:
        formula = client.convert_smiles(balanced.balanced_reaction_smiles)
        print(formula.unicode)

method="coefficients" меняет только коэффициенты переданных веществ. Явный method="synrbl" запрашивает модель для восстановления недостающих компонентов; проверяйте imputed_species и limitations.

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

import asyncio
from cyberrxn import AsyncClient

async def main():
    async with AsyncClient() as client:
        result = await client.validate_reaction("CCO>>CC=O")
        print(result.atom_balance.delta)

asyncio.run(main())

Основные методы

ЗадачаМетод
Корпус и расходstats(), usage()
Поиск источниковsearch_reactions(...), lookup_reaction(...), molecule_reactions(...)
Полное наблюдение и связиget_observation(...), graph(...)
Структурные аналогиsimilar_products(...)
Химические проверкиvalidate_reaction(...), balance_reaction(...)
Представления молекулconvert_smiles(...), convert_representation(...)
Актуальная инструкцияget_reaction_skill()
Репортыreport_observation_issue(...), get_report(...), reports(...)
Добавление реакцийsubmit_reaction_contribution(...), get_contribution(...), contributions(...)

iter_search_reactions, iter_lookup_reaction и iter_molecule_reactions лениво загружают следующие страницы. Каждая загруженная страница химии или поиска — отдельный тарифицируемый вызов. Начинайте с небольшого лимита и останавливайтесь, когда доказательств достаточно.

Ошибки и повторы

Перехватывайте APIError и смотрите status_code, code, retryable, request_id. Среди исключений есть AuthenticationError, PaymentRequiredError, RateLimitError, ValidationError. Химический ответ valid=False — обычный результат, а не HTTP-исключение ValidationError.

Для репорта или реакции используйте стабильный idempotency_key, одинаковый для одной заявки и её повторов. Не отправляйте личную переписку и закрытые лабораторные данные. Ошибки · Добавление реакций.

На этой странице