# GPT-6.1 Terra или GPT-6.1 Sol: что выбрать для работы, кода и API

> AI Release · @ai_release1 · https://ai-release.org/guides/gpt-6-1-terra-ili-gpt-6-1-sol-chto-vybrat-dlya-raboty-k.html

## TL;DR
- Время выполнения: 40–50 минут
- Уровень сложности: Intermediate (нужен Python и работа в терминале)
- Понадобится: Python 3.11+, пакет `openai`, `curl` 8.x, ключ `OPENAI_API_KEY`, доступ к аккаунту, где включена нужная модель
- Terra — под агентные многошаговые задачи в десктопных приложениях (в анонсе OpenAI это бенчмарк OSWorld 2.1), Sol — под API-сценарии и автоматизацию, для которых уже есть отдельные руководства
- Ни цены, ни скорость, ни список стран в постах не публиковались: все замеры вы делаете сами, а id моделей и лимиты берёте из документации

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/gpt-6-1-terra-ili-gpt-6-1-sol-chto-vybrat-dlya-raboty-k-ru-1.jpg?v=1794645936)

- ОС: Linux, macOS или Windows 11 с WSL2 — нужен только терминал и Python, GUI не требуется
- Python 3.11+ и менеджер пакетов pip
- Пакет `openai` (официальный SDK): `pip install --upgrade openai`
- `curl` версии 8.x — для «голых» запросов без SDK
- Действующий ключ OpenAI в переменной окружения `OPENAI_API_KEY` (не в файле репозитория)
- Доступ к модели в аккаунте: без него запрос вернёт 404, даже если ключ верный
- 100 МБ свободного места под виртуальное окружение и логи прогонов
- Чек-лист перед стартом:
  - [ ] `python3 --version` выдаёт 3.11 или новее
  - [ ] `pip show openai` показывает установленную версию
  - [ ] `printenv OPENAI_API_KEY` не пустой
  - [ ] вы знаете, где в кабинете включается доступ к нужной модели

## Что известно из постов, а что — нет
| Модель | Отличие | Цена |
|---|---|---|
| GPT-6.1 Terra | Анонс OpenAI; центральный сценарий — OSWorld 2.1, десктопные приложения и многошаговые задачи (например, собрать 3D-модель по техническому чертежу). В описании упомянут режим medium reasoning | В анонсе цифр нет — сверьтесь с документацией |
| GPT-6.1 Sol | В наших постах — руководства по API, по автоматизации и по оплате/доступу; публичных бенчмарков и цифр по скорости в постах нет | Тарифы разбираются в отдельном материале — сверьтесь с документацией |

Практический вывод для новичка: Terra выбирают, когда задача — «сделай что-то в приложении за несколько шагов», Sol — когда задача — «дай текстовый ответ через API, который я встрою в скрипт». Сравнивать их «по уму» бессмысленно: опубликованных общих замеров нет, поэтому дальше вы строите собственный замер на двух метриках — время ответа и расход токенов.

## Шаг 1. Зафиксировать id моделей и переменные окружения
**Что сделать:** создать рабочую папку, виртуальное окружение и три переменные: ключ, id Terra, id Sol.

```bash
mkdir -p ~/terrsol && cd ~/terrsol
python3 -m venv .venv && source .venv/bin/activate
pip install --upgrade openai
export OPENAI_API_KEY="<ваш-ключ>"
export TERRA_MODEL="<id-terra-из-документации>"
export SOL_MODEL="<id-sol-из-документации>"
```

**Зачем:** id моделей в постах не приводятся, а угадывание строки — главная причина ошибки 404 на первом же запросе. Переменные окружения позволяют менять модель без правки кода.

**Как проверить:** получить список доступных моделей и отфильтровать нужные.

```bash
curl -s https://api.openai.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" | grep -o '"id": *"[^"]*6\.1[^"]*"'
```

На экране появятся строки вида `"id": "..."` — скопируйте точные значения в `TERRA_MODEL` и `SOL_MODEL`. Пустой вывод означает, что доступ к моделям не выдан аккаунту: это вопрос тарифа, а не кода.

**Пример:** после `export TERRA_MODEL="..."` команда `echo "$TERRA_MODEL"` печатает ровно ту строку, которую вы вставили.

## Шаг 2. Прогнать одинаковый smoke-тест на обеих моделях
![Иллюстрация к разделу «Шаг 2. Прогнать одинаковый smoke-тест на обеих моделях»](https://ai-release.org/guides/img/gpt-6-1-terra-ili-gpt-6-1-sol-chto-vybrat-dlya-raboty-k-ru-2.jpg?v=1794645942)

**Что сделать:** отправить обеим моделям одну и ту же задачу по коду и записать время ответа и токены. Это ваш собственный замер вместо отсутствующих публичных цифр.

```python
import os, time
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
TASK = "Отрефактори функцию и объясни правку: def f(a): return a/0"

for name, model in (("terra", os.environ["TERRA_MODEL"]),
                    ("sol",   os.environ["SOL_MODEL"])):
    t0 = time.perf_counter()
    r = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": TASK}],
        temperature=0.2,
    )
    dt = time.perf_counter() - t0
    u = r.usage
    print(f"{name}\t{model}\t{dt:.2f}s\tin={u.prompt_tokens}\tout={u.completion_tokens}")
```

**Зачем:** одна и та же задача снимает разницу «по-честному». `temperature=0.2` уменьшает разброс между прогонами, `usage` даёт расход токенов для расчёта стоимости по вашему тарифу.

**Как проверить:** запустите `python bench.py` (файл создайте в `~/terrsol`). Ожидаемый вывод — две строки, по одной на модель:

```
terra	<id-terra>	<секунды>	in=<N>	out=<N>
sol	<id-sol>	<секунды>	in=<N>	out=<N>
```

Числа у вас будут свои — важны соотношения. Если строка `terra` не появилась, а вместо неё выброшено исключение, переходите в раздел «Возможные проблемы».

**Пример:** прогоните скрипт три раза и возьмите медиану по каждой модели — одиночный замер сильно шумит из-за сети.

## Шаг 3. Проверить агентный сценарий и зафиксировать результат
![Иллюстрация к разделу «Шаг 3. Проверить агентный сценарий и зафиксировать результат»](https://ai-release.org/guides/img/gpt-6-1-terra-ili-gpt-6-1-sol-chto-vybrat-dlya-raboty-k-ru-3.jpg?v=1794645950)

**Что сделать:** для Terra прогнать проверку «многошаговой задачи» — именно на таких сценариях построен анонс (OSWorld 2.1). Локальный запуск самого бенчмарка в постах не описан, поэтому используйте прокси-тест: 5-шаговая инструкция в одном запросе и чек-лист выполнения.

```bash
curl -s -o out.json -w "%{http_code}\n" https://api.openai.com/v1/chat/completions \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"$TERRA_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"1) Открой план; 2) Назови 3 узла; 3) Собери порядок сборки; 4) Укажи риски; 5) Дай итог списком\"}]}"
```

**Зачем:** анонс Terra про работу с интерфейсами и многошаговые задачи, а не про чат. Если модель «теряет» шаги инструкции, в агентном сценарии вы получите дорогую ошибку — чем сложнее сценарий, тем она дороже.

**Как проверить:** код ответа `200` в последней строке и в `out.json` — ответ, где присутствуют все 5 пунктов. Сверьте по чек-листу:
- [ ] код `200`
- [ ] в ответе 5 нумерованных пунктов из запроса
- [ ] нет пропущенных шагов
- [ ] повторный прогон даёт ту же структуру

Для режима medium reasoning сверьтесь с документацией: имя параметра, который его включает, в постах не приводится.

## Возможные проблемы и решения
**Проблема. Первый же запрос падает на Terra, хотя Sol работает**
- Ошибка: `Error code: 404 - {'error': {'message': 'The model ... does not exist or you do not have access to it', 'type': 'invalid_request_error', 'param': 'model', 'code': 'model_not_found'}}`
- Причина: id модели не совпадает с документацией либо доступ к модели не выдан аккаунту.
- Решение: выполните `curl -s https://api.openai.com/v1/models -H "Authorization: Bearer $OPENAI_API_KEY" | grep -o '"id": *"[^"]*"'`, подставьте точный id в `TERRA_MODEL` и перезапустите `python bench.py`.

**Проблема. Любой запрос отклоняется на авторизации**
- Ошибка: `openai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided', 'type': 'invalid_request_error', 'code': 'invalid_api_key'}}`
- Причина: ключ обрезан при копировании, содержит лишние кавычки/перевод строки или взят из другого проекта.
- Решение: `printenv OPENAI_API_KEY | wc -c` — длина без перевода строки должна соответствовать ключу; затем заново выполните `export OPENAI_API_KEY="<ваш-ключ>"` в том же терминале, где запускаете скрипт. Ключ не храните в git.

**Проблема. Скрипт работает, но падает на втором прогоне**
- Ошибка: `openai.RateLimitError: Error code: 429 - {'error': {'message': 'Rate limit reached for requests', 'type': 'requests', 'code': 'rate_limit_exceeded'}}`
- Причина: параллельные запуски двух моделей или лимит вашего тарифа.
- Решение: запускайте модели последовательно (как в скрипте из Шага 2) и добавьте ожидание между прогонами: `sleep 2`; при повторной ошибке увеличьте интервал и сверьте лимиты с документацией.

## Как выбрать
- Нужен агент, который выполняет многошаговые действия в десктопных приложениях (собрать 3D-модель по чертежу и подобное) — берите Terra: именно этот сценарий вынесен в центр её анонса.
- Нужен текстовый ответ в скрипте, автоматизация и предсказуемый разбор результата — начинайте с Sol: по ней уже есть материалы по API, автоматизации и оплате, детали в [полном обзоре GPT-6.1 Sol](https://ai-release.org/guides/gpt-6-1-sol-polnyy-obzor.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).
- Нужно сравнить Sol с другой моделью по цене и доступу — смотрите [GPT-6 Astra или GPT-6.1 Sol: что выбрать для работы, чата и API](https://ai-release.org/guides/gpt-6-astra-ili-gpt-6-1-sol-chto-vybrat-dlya-raboty-cha.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).
- Решающий критерий — ваш собственный замер из Шага 2: у какой модели время ответа и расход токенов на вашей задаче меньше, ту и ставьте в автоматизацию по умолчанию.
- Где это НЕ работает: цифры скорости и цены из чужих обзоров к вашему аккаунту не применяются — в наших постах по обеим моделям их нет, поэтому тарифы и лимиты сверяйте с документацией.

## Резюме и следующие шаги
Вы зафиксировали id моделей через `/v1/models`, сняли собственный замер по времени и токенам и отдельно проверили многошаговый сценарий для Terra. Дальше оберните скрипт из Шага 2 в функцию с ретраями и логируйте в CSV модель, время и `prompt_tokens`/`completion_tokens` на каждый вызов.

## FAQ
**Чем GPT-6.1 Terra отличается от GPT-6.1 Sol?**
По постам: Terra анонсирована как модель под агентные многошаговые задачи в десктопных приложениях (OSWorld 2.1, режим medium reasoning), а по Sol публиковались руководства по API, автоматизации и оплате — общих бенчмарков для обеих в постах нет.

**Можно ли узнать цену Terra и Sol из этой инструкции?**
Нет: в постах цены не приводятся. Стоимость считайте по вашему тарифу из `prompt_tokens` и `completion_tokens`, которые печатает скрипт, а актуальные ставки сверяйте с документацией.

**Почему запрос возвращает 404, если ключ правильный?**
Потому что ключ и доступ к модели — разные вещи: проверьте точный id через `/v1/models` и наличие доступа к модели в аккаунте.

**Обязательно ли запускать OSWorld 2.1, чтобы проверить Terra?**
Нет: локальный прогон бенчмарка в постах не описан. Достаточно прокси-теста с многошаговой инструкцией и чек-листом из Шага 3.
