# От молекулы к источнику

Найдите описанный способ получения, прочитайте наблюдение и проверьте условия в контексте.

Canonical: https://docs.cyberrxn.com/ru/docs/guides/first-evidence

Этот процесс подходит для вопроса «Как эту молекулу получали в опубликованном источнике?». Вы найдёте продукт, прочитаете выбранное наблюдение и отделите описанные условия от отсутствующих данных.

Нужны установленный [Python SDK](/ru/docs/sdk/python) и `CYBERRXN_API_KEY` с доступом к запросам корпуса. Актуальный архив и контрольная сумма есть в [установке](/ru/docs/installation). Соответствия для других интерфейсов приведены в [готовых сценариях](/ru/docs/recipes).

## 1. Найдите молекулу продукта

Используйте `molecule_reactions` с `role="product"`. Операция ищет наблюдения, в которых эта молекула присутствует среди продуктов, в том числе вместе с другими молекулами. Начните с трёх результатов, чтобы прочитать каждый.

У `search_reactions(products=...)` другое значение: совпадение полной стороны продуктов с разделением точками. Выбирайте эту операцию, когда вопрос действительно относится к полной стороне. [Семантика поиска](/ru/docs/chemistry/search).

## 2. Прочитайте выбранное наблюдение

Пример делает один поисковый запрос и, если совпадение есть, один запрос полного наблюдения. ID берётся из фактического ответа сервера.

```python
from cyberrxn import Client

with Client() as client:
    matches = client.molecule_reactions(
        "CCN1CCN(CO)C(=O)C1=O", role="product", limit=3
    )
    if not matches.items:
        print("Для этого запроса наблюдений не найдено.")
    else:
        record = client.get_observation(matches.items[0].observation_id)
        print("Наблюдение:", record.observation_id)
        print("Патент:", record.evidence.patent)
        print("Исходный абзац:", record.paragraph_text)
        print("Условия:", record.conditions)
```

Обе успешные операции тарифицируются: два вызова при чтении наблюдения или один при пустой выдаче. После выполнения можно проверить [расход](/ru/docs/api/usage).

В примере выбран первый результат, чтобы показать короткий процесс. Для рабочего вопроса сравните кандидатов и выберите наблюдение, относящееся к нужному получению. Не объединяйте условия разных наблюдений в одну процедуру.

## 3. Прочитайте исходный абзац

Сопоставьте `paragraph_text`, `evidence` и `conditions`. Один абзац может описывать несколько стадий эксперимента.

| Что проверить | Как интерпретировать |
| --- | --- |
| Температура и время | Определите стадию: реакция, обработка, сушка или другая операция. |
| Давление | Сохраните единицы и тип. Вакуум сушки не определяет давление реакции. |
| Агенты | Сохраняйте неразрешённые роли; список агентов не становится автоматически списком катализаторов и растворителей. |
| Пропуски | Сохраните `null` и неизвестные значения. Не подставляйте предположения об обычных условиях. |
| Отсутствующий абзац | Укажите, что для записи недоступен исходный абзац; не выдумывайте цитату. |

Для чтения используйте непрозрачный `observation_id`. Номер патента или UID помогают найти источник, но не заменяют этот ID в запросе API.

## 4. Составьте проверяемый ответ

Полезный результат указывает выбранное наблюдение и патент, объясняет, что сообщает источник, и перечисляет неизвестные запрошенные условия. Цитируйте только текст из полученного источника. Различайте извлечённые доказательства, вычисленные проверки и модельные гипотезы.

Совпадение структуры не доказывает, что процедура сработает в новых условиях. Если нужна проверка атомов и заряда, выполните [химическую валидацию](/ru/docs/chemistry/validation) отдельной операцией и объясните её границы.

## Если данных недостаточно

Пустая выдача означает, что именно этот запрос не нашёл наблюдений. Проверьте структуру и семантику поиска перед расширением запроса. Отсутствующее условие само по себе не является ошибкой корпуса. При прямом расхождении записи с источником используйте [сообщение об ошибке](/ru/docs/contributions).

С ассистентом применяйте тот же ограниченный процесс после [подключения MCP](/ru/docs/mcp). Попросите прочитать актуальную инструкцию, найти несколько наблюдений и получить выбранный источник. Проверьте фактические вызовы инструментов перед тем, как полагаться на заявление о проверке корпуса.
