В этой статье
Если GPT-6 Astra нужна именно внутри проекта, подключайте её через OpenAI API и Responses API. Это не то же самое, что работа в ChatGPT: в интерфейсе вы ведёте диалог вручную, а в своей программе сами задаёте входные данные, модель, обработку ответа и проверку результата.
Для генерации и анализа кода OpenAI рекомендует начинать с модели gpt-6-astra в официальном руководстве по генерации кода. Это идентификатор, который передаётся в API; отдельная библиотека «для Astra» или специальный режим программирования не нужны.
ChatGPT, Codex или API
У этих вариантов разные границы применения.
ChatGPT удобен, когда нужно вручную вставить фрагмент кода, обсудить ошибку и сравнить варианты исправления в готовом интерфейсе.
Codex — агентный сценарий работы с проектом. Он рассчитан на последовательность действий вокруг репозитория: изучить файлы, изменить код и запустить проверки в доступном окружении.
OpenAI API нужен, когда вызов модели становится частью вашей программы. Например, сервис может принять pull request, отправить изменённый файл на ревью и сохранить замечания в собственной системе.
Доступ к одному из этих способов не означает автоматически доступ к двум другим. Для API отдельно нужны ключ и настройки проекта, а доступность модели и лимиты зависят от текущих условий аккаунта. Их проверяйте в официальной карточке GPT-6 Astra. Если нужен общий ручной сценарий, пригодится инструкция по написанию и проверке кода в ChatGPT.
Установка Python SDK
Пример рассчитан на Python 3.10 или новее. В виртуальном окружении установите официальный пакет:
python -m pip install openai
Ключ API не кладите в .py-файл и не коммитьте в репозиторий. Перед запуском задайте переменную окружения.
В Linux и macOS:
export OPENAI_API_KEY="ваш_ключ"
В PowerShell:
$env:OPENAI_API_KEY = "ваш_ключ"
SDK читает OPENAI_API_KEY из окружения. Поэтому один и тот же файл можно запускать локально, в CI и на сервере с разными ключами. Минимальные шаги установки и первый вызов также приведены в официальном quickstart и справочнике Python-библиотеки.
Первый запрос к GPT-6 Astra
Ниже модель получает небольшую функцию и задачу на ревью. Результат читается через response.output_text, как показано в официальном руководстве по генерации кода, поэтому не нужно вручную разбирать внутренние блоки ответа.
from openai import OpenAI
client = OpenAI()
source_code = """
def display_name(user):
return user.profile.name if user.profile else "Anonymous"
"""
response = client.responses.create(
model="gpt-6-astra",
reasoning={"effort": "medium"},
input=[
{
"role": "user",
"content": [
{
"type": "input_text",
"text": (
"Проверь функцию display_name. Найди ошибку, объясни её "
"и предложи исправленный вариант с тестами.\n\n"
f"{source_code}"
),
}
],
}
],
)
print(response.output_text)
У gpt-6-astra параметр reasoning.effort поддерживает low, medium, high, xhigh и max; значение none для Astra не поддерживается. Для небольшого ревью medium — разумная отправная точка: нужно разобрать условие и предложить тесты, но не выполнять многошаговую миграцию проекта. Подробности о параметре есть в руководстве по использованию GPT-6.
В исходной display_name сначала проверяется user.profile, а затем это же поле читается через user.profile.name. Если user равен None, исключение возникает ещё до проверки user.profile. Кроме того, у непустого объекта может не быть атрибута profile.
Один из вариантов исправления — явно определить поведение для отсутствующего пользователя, профиля и имени:
def display_name(user):
profile = getattr(user, "profile", None)
name = getattr(profile, "name", None)
return name if name is not None else "Anonymous"
Это решение предполагает объектную модель с атрибутами profile и name. Для словарей нужен другой способ доступа, а в рабочем проекте контракт можно закрепить через dataclass, Pydantic-модель или явную проверку атрибутов. Модель может предложить вариант, но контракт данных подтверждает разработчик.
Как проверить ответ, а не только прочитать его
Ответ API — рекомендация, а не доказательство корректности: официальное руководство по генерации кода показывает способ вызова, но работоспособность изменения нужно проверять отдельно. Минимальная локальная проверка должна покрыть как минимум два случая: None и объект с профилем.
from types import SimpleNamespace
def test_display_name_for_none():
assert display_name(None) == "Anonymous"
def test_display_name_for_user_with_profile():
user = SimpleNamespace(
profile=SimpleNamespace(name="Ada")
)
assert display_name(user) == "Ada"
Запустите тесты в том же окружении, где лежит код:
python -m pytest
Если в проекте нет pytest, временно вызовите функцию обычными assert, но для рабочего кода лучше добавить тест в существующий набор. Затем запустите линтер и проведите ручное ревью. Тесты показывают поведение выбранных случаев, но не доказывают отсутствие всех ошибок. Для более сложного изменения отдельно проверьте отсутствующий profile, неожиданный тип данных и формат ответа внешнего API.
Сам вызов модели тоже является частью приложения: обработайте сетевую ошибку, тайм-аут и пустой или непредвиденный ответ. Не позволяйте тексту ревью напрямую менять файлы без ограничений. Повтор после обрыва связи не должен автоматически дублировать операцию, если вокруг вызова есть запись результата или другие побочные эффекты.
Если нужна автоматическая обработка репозитория, следующий шаг — подключение GitHub к ChatGPT. Отдельный пример первого API-вызова на Python разобран в практической инструкции по OpenAI API.
После рабочего API-примера может возникнуть отдельный вопрос оплаты цифровых сервисов. В каталоге Amber Market можно посмотреть доступные подписки и цифровые товары и при необходимости оплатить заказ через СБП. Наличие и условия меняются, поэтому их нужно проверить перед заказом. Каталог не заменяет ключ OpenAI и не гарантирует доступ к GPT-6 Astra: это отдельный маршрут для оплаты подходящего цифрового сервиса.
Итоговая схема проста: выбрать gpt-6-astra, установить openai, передать ключ через окружение, отправить код через Responses API, вывести response.output_text, а затем проверить предложенное изменение тестами и ревью. Граница между «модель ответила» и «код работает» проходит именно на последнем шаге.
Источники
- GPT-6 Astra ModelOpenAI Developers
- Code generationOpenAI Developers
- Developer quickstartOpenAI Developers
- OpenAI Python API libraryOpenAI Developers
- Using GPT-6OpenAI Developers