# Быстрый старт

> Запустите первую оптимизацию примерно за десять минут.

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

## Перед началом

Вам понадобятся:

- Аккаунт Skynet.
- Файл CSV, JSON или Excel (`.csv`, `.json`, `.xlsx` или `.xls`). Каждая строка — один пример.
- Один или несколько входных столбцов, например `message`.
- Один столбец с ожидаемым выходом, например `label`.

> [!TIP]
> Используйте не меньше 5 строк. Если пар меньше 5, Skynet не выделяет тестовую выборку, и итоговая оценка считается на примерах, которые видел оптимизатор.

## 1. Вход

Войдите в Skynet. Затем откройте страницу отправки `/submit`.

> [!NOTE]
> На этой странице используются подписи уровня **Стандартный**. Уровень **С подсказками** использует более простые подписи, пропускает шаг «Оптимизатор» и выбирает **Auto** за вас. Уровень меняется в настройках.

## 2. Задача

Первый шаг — **Задача**. Он спрашивает: «Что вы хотите оптимизировать?»

1. В поле **Цель** опишите, что считается хорошим результатом. Пишите простыми словами, например: «Отнеси каждое обращение в поддержку к billing, bug или other».
2. Необязательно: в поле **Контекст** добавьте сведения, которые помогут оптимизатору.
3. В поле **Тип артефакта** выберите **Промпт**.
4. В поле **Исходная версия** вставьте текущий промпт.

## 3. Входные данные

Второй шаг — **Входные данные**.

1. Выберите **Загрузите файл CSV, JSON или Excel** или **Выбрать из библиотеки**, чтобы использовать сохранённый набор данных.
2. В разделе **Как читать данные** назначьте каждому столбцу роль:
   - **Вход**: код запуска получает этот столбец.
   - **Выход**: ожидаемое значение. Его получает метрика.
   - **Пропустить**: Skynet не использует этот столбец.
3. Оставьте для разбиения вариант **Использовать рекомендацию**. Для большинства наборов данных разбиение составляет 70% обучающей, 15% валидационной и 15% тестовой выборки.

Полные правила описаны в разделе [Наборы данных и разбиение](/docs/ru/concepts/datasets).

## 4. Оптимизатор

Третий шаг — **Оптимизатор** («Оптимизатор, модели и бюджет»).

- Оставьте оптимизатор **Auto**.
- Выберите **Модель рефлексии**. Оптимизатор использует её, чтобы писать новые версии. Эта модель обязательна.
- Необязательно: выберите **Модель задачи**. Её использует ваш код запуска.
- В разделе **Бюджет** оставьте для **Макс. запусков оценщика** значение по умолчанию — 200.

Чтобы выбрать конкретный движок, прочитайте [Движки](/docs/ru/concepts/engines).

## 5. Метрика и запуск

Последний шаг — **Метрика и запуск** («Код и метрика»). Вы пишете два файла.

```python tab="run.py"
from skynet import llm


def run(artifact, input):
    return llm(artifact, input=input["message"])
```

```python tab="metric.py"
def score(input, output, expected=None):
    want = expected["label"].strip().lower()
    got = str(output).strip().lower()
    if got == want:
        return 1.0, {"feedback": "Correct label."}
    return 0.0, {"feedback": f"Expected '{want}', got '{got}'."}
```

`artifact` — текущая версия вашего промпта. `input` содержит столбцы с ролью «Вход» для одного примера. `expected` содержит столбец с ролью «Выход», ключ — имя этого столбца.

Затем нажмите **Проверить** в разделе **Проверка контракта**. Проверка запускает ваш код и метрику в песочнице на 3 примерах. Она проверяет:

| Проверка                         | Когда она не проходит                                              |
| -------------------------------- | ------------------------------------------------------------------ |
| Сигнатура кода запуска           | `run.py` не определяет `run(artifact, input)`                      |
| Сигнатура метрики                | `metric.py` не определяет `score(input, output, expected=None)`    |
| Модель метрики                   | Модель метрики недоступна для использования                        |
| Код запуска на примерах          | Код запуска выбрасывает ошибку на одном из примеров                |
| Возвращаемое значение метрики    | `score` не возвращает корректную оценку и обратную связь           |

> [!NOTE]
> Начать запуск можно только после того, как проверка контракта пройдёт успешно.

## 6. Запуск и наблюдение

На итоговом экране написано «Готово к запуску». На нём есть вкладки «Общее», «Данные», «Модели», «Бюджет» и «Награда». Проверьте настройки, затем запустите оптимизацию.

Чтобы следить за запуском, откройте его из списка оптимизаций. Как понимать оценки и победившую версию, описано в разделе [Чтение результатов](/docs/ru/guides/results).

## Что дальше

- Напишите метрику лучше: [Метрики и оценщики](/docs/ru/concepts/scorers).
- Узнайте, какие движки подходят вашему артефакту: [Как работает оптимизация](/docs/ru/concepts/optimization).
- Узнайте, сколько стоит запуск: [Бюджеты и оплата](/docs/ru/concepts/billing).

---

Source: https://staging.skynetml.com/docs/ru/quickstart
