OpenAI
این صفحه به‌صورت ماشینی ترجمه شده است. مقاله اصلی انگلیسی را مشاهده کنید.

استفاده از Daybreak در Codex CLI

با این راهنما، Daybreak را در رابط خط فرمان Codex فعال کنید، آن را برای گردش‌کارهای خودکار و یکپارچه‌سازی با SDK پیکربندی کنید و مشکلات دسترسی یا خودداری از پاسخ‌گویی را برطرف کنید. 

به‌روزرسانی: 3 hours ago

توجه داشته باشید که برای دسترسی به این تغییرات، باید Codex CLI را به نسخهٔ 0.163.0 یا بالاتر ارتقا دهید. ارتقای CLI اختیاری است: نسخه‌های نصب‌شده تا زمانی که آن‌ها را به‌روزرسانی نکنید، رفتار فعلی خود را حفظ می‌کنند.

  • اگر فرایند خودکار شما @openai/codex@latest را نصب می‌کند، ممکن است در نصب یا به‌روزرسانی بعدی این تغییر را دریافت کند. اگر Codex CLI را با npm به‌صورت سراسری نصب کرده‌اید، npm install -g @openai/codex@latest را اجرا کنید، سپس برای اطمینان از ارتقا، codex --version را اجرا کنید.

  • برای به تعویق انداختن این تغییر، نسخه را روی @openai/codex@0.162.0 ثابت نگه دارید. نصب یک‌باره با @latest باعث به‌روزرسانی خودکار نمی‌شود. گردش‌کارهایی که روی نسخه‌های قدیمی‌تر ثابت شده‌اند، رفتار قبلی خود را حفظ می‌کنند.

  • برای یکپارچه‌سازی‌های TypeScript، بستهٔ @openai/codex-sdk و محیط اجرای همراه آن را به‌روزرسانی کنید. برای یکپارچه‌سازی‌های Python، بستهٔ openai-codex و محیط اجرای Codex آن را به‌روزرسانی کنید. به‌روزرسانی CLI سراسری به‌تنهایی ممکن است محیط اجرای SDK را به‌روزرسانی نکند. اگر مسیر سفارشی برای فایل اجرایی تنظیم کرده‌اید، آن فایل اجرایی را نیز به‌روزرسانی کنید.

شناسه‌های مدلی که به‌صورت دستی تنظیم شده‌اند و با وجود در دسترس بودن کاتالوگ در آن نیستند، در CLI و Codex Desktop همچنان به‌طور خودکار مانند گذشته پردازش می‌شوند؛ حتی زمانی که Daybreak روشن است. نبودن آن‌ها در کاتالوگ به‌تنهایی مانع موفقیت درخواست نمی‌شود. 

مدل‌های سایبری ممکن است طی عرضه‌ای جداگانه در انتخابگر مدل در دسترس قرار گیرند. پس از فعال شدن دسترسی، کاربرانی که از نسخهٔ پشتیبانی‌شده استفاده می‌کنند، برای دیدن مدل‌های تازه در دسترس قرارگرفته نیازی به بارگیری مجدد ندارند. برای تازه‌سازی فهرست، انتخابگر مدل را دوباره باز کنید یا Codex را مجدداً راه‌اندازی کنید.

فعال کردن Daybreak در CLI تعاملی

  1. Codex را با روش معمول احراز هویت خود اجرا کنید.

  2. برای روشن کردن Daybreak، ‏/daybreak را وارد کنید.

  3. Codex این پیام را نمایش می‌دهد: Daybreak روشن است. بر نوبت‌های جدید اعمال می‌شود.

  4. این تنظیم بر رشتهٔ گفتگوی فعال اعمال می‌شود و به‌عنوان پیش‌فرض برای نشست‌های جدید ذخیره خواهد شد.

  5. برای خاموش کردن Daybreak، همان دستور (/daybreak) را دوباره اجرا کنید.

فعال‌سازی Daybreak در CLI غیرتعاملی

گردش‌کارهای غیرتعاملی بدون رابط کاربری تعاملی اجرا می‌شوند؛ معمولاً از طریق codex exec در اسکریپت‌ها، کارهای زمان‌بندی‌شده یا CI. در این حالت، اعلان تعاملی «فعال‌سازی Daybreak» (/daybreak) وجود ندارد. در عوض، می‌توانید:

  1. با افزودن -c daybreak=true به هر دستوری که می‌خواهید با امتناع کمتر از پاسخ‌گویی اجرا شود، Daybreak را برای همان اجرای CLI فعال کنید. برای مثال، می‌توانید وارد کنید:

codex exec -c daybreak=true "Review the changes in this repository."

  1. اعلان فعلی و سایر گزینه‌های دستور را حفظ کنید. این تنظیم را به هر فراخوانی که باید از Daybreak استفاده کند اضافه کنید؛ از جمله دستورهای موجود در اسکریپت‌ها، کارهای زمان‌بندی‌شده و پیکربندی CI.

  2. با افزودن daybreak=true به فایل پیکربندی‌ای که Codex بارگذاری می‌کند، Daybreak را برای نشست‌ها و اجراهای جدید CLI به‌صورت پیش‌فرض فعال کنید.

  3. فایل پیش‌فرض پیکربندی کاربر، ~/.codex/config.toml است. اگر در فرایند خودکار شما CODEX_HOME تنظیم شده است، به‌جای آن از $CODEX_HOME/config.toml استفاده کنید. این تنظیم را در سطح اصلی فایل، خارج از بخش‌هایی مانند [features] قرار دهید.

  4. تغییر را در محیطی اعمال کنید که فرایند خودکار واقعاً در آن اجرا می‌شود. به‌روزرسانی پیکربندی لپ‌تاپ شما، پیکربندی اجراکنندهٔ CI یا دستگاه راه‌دور را به‌روز نمی‌کند.

  5. این تنظیم برای نشست‌های تعاملی جدیدی که از همان پیکربندی استفاده می‌کنند نیز اعمال می‌شود. نشست‌های ازسرگرفته‌شده و منشعب‌شده، وضعیت ذخیره‌شدهٔ Daybreak خود را حفظ می‌کنند؛ مقدار پیش‌فرض جدید در پیکربندی جایگزین آن نمی‌شود.

  6. توجه داشته باشید که تنظیم واردشده در خط فرمان، برای همان فراخوانی بر پیکربندی ذخیره‌شده اولویت دارد. بنابراین می‌توانید daybreak = true را در پیکربندی خود نگه دارید و برای یک اجرای مشخص از -c daybreak=false استفاده کنید.

فعال‌سازی Daybreak با ارائه‌دهندهٔ استنتاج از طریق پراکسی

می‌توانید از Daybreak در Codex CLI استفاده کنید و هم‌زمان درخواست‌های استنتاج را از طریق پراکسی فعلی خود بفرستید. Codex با ارسال درخواستی جداگانه به فهرست مدل‌ها، مشخص می‌کند کدام مدل‌ها در پروژهٔ شما از Daybreak پشتیبانی می‌کنند.

پیش از شروع، مطمئن شوید ارائه‌دهندهٔ پراکسی شما در Codex CLI به‌درستی کار می‌کند و کلید API شرکت OpenAI را از پروژه‌ای در اختیار دارید که به Daybreak و مدل موردنظرتان دسترسی دارد. همچنین به نسخهٔ v0.167.0 از Codex CLI نیاز دارید.مستندات OpenAI دربارهٔ دسترسی پروژه به Daybreak

  1. برای به‌روزرسانی ارائه‌دهندهٔ پراکسی خود، فایل ~/.codex/config.toml را باز کنید و بخش [model_providers.<id>] مربوط به پراکسی خود را پیدا کنید. دو خط آخر مثال زیر را به آن بخش اضافه کنید. شناسهٔ ارائه‌دهنده، نشانی پراکسی و تنظیمات احراز هویت فعلی خود را حفظ کنید.


    [model_providers.proxy]

    name = "Proxied with Cyber"

    base_url = "https://<your-proxy>/v1"

    model_catalog_url = "<https://chatgpt.com/backend-api/codex/models>"

    capabilities.cyber_access_programs = true

    اگر پیکربندی شما از قبل بخش [model_providers.<id>.capabilities] دارد، cyber_access_programs = true را در همان بخش قرار دهید و model_catalog_url را در بخش والدِ ارائه‌دهنده نگه دارید.مرجع پیکربندی Codex

  2. با انتخاب گزینهٔ متناسب با اطلاعات احراز هویت مورد استفادهٔ CLI، احراز هویت درخواست فهرست مدل‌ها را تنظیم کنید.

    1. اگر Codex از کلید API شرکت OpenAI استفاده می‌کند، نشانی فهرست مدل‌های OpenAI را که در مرحلهٔ ۱ وارد کردید حفظ کنید. Codex را با کلید پروژه‌ای اجرا کنید که Daybreak در آن فعال است تا بتواند مستقیماً برای دسترسی به فهرست مدل‌ها احراز هویت کند.

    2. اگر Codex از اطلاعات احراز هویت پراکسی شما استفاده می‌کند، مقدار model_catalog_url را روی نشانی کامل مسیر فهرست مدل‌ها در پراکسی خود تنظیم کنید. آن مسیر را طوری پیکربندی کنید که:

      1. درخواست CLI را با استفاده از اطلاعات معمول احراز هویت پراکسی شما احراز هویت کند.

      2. درخواست را با استفاده از کلید API شرکت OpenAI از پروژه‌ای که Daybreak در آن فعال است، به https://chatgpt.com/backend-api/codex/models ارسال کند.

      3. پاسخ فهرست مدل‌ها را به Codex برگرداند.

  3. برای فعال‌کردن Daybreak، نشست جدیدی در Codex CLI با ارائه‌دهندهٔ پراکسی خود شروع کنید. مدلی را انتخاب کنید که امکان استفاده از Daybreak را دارد، سپس برای فعال‌کردن آن /daybreak را وارد کنید.

    1. اگر Daybreak در دسترس نیست، ابتدا درخواست فهرست مدل‌ها را بررسی کنید. حتی اگر درخواست فهرست مدل‌ها ناموفق باشد، استنتاج می‌تواند با موفقیت انجام شود. مطمئن شوید درخواست با کلید پروژهٔ موردنظر به OpenAI می‌رسد و آن پروژه هم به Daybreak و هم به مدل انتخاب‌شده دسترسی دارد.

فعال کردن Daybreak از طریق SDK ‏TypeScript

تنظیم Daybreak را از طریق پیکربندی کلاینت ارسال کنید:

import { Codex } from "@openai/codex-sdk";

const codex = new Codex({

  config: { daybreak: true },

});

const thread = codex.startThread();

const result = await thread.run("Review the changes in this repository.");

console.log(result.finalResponse);

برای خاموش کردن Daybreak و بازگشت به روال عادی رد درخواست‌ها، از daybreak: false استفاده کنید. پیکربندی فعلی احراز هویت خود را حفظ کنید.

فعال کردن Daybreak از طریق سرور برنامه یا SDK ‏Python

۱. مقادیر availableAccessPrograms.cyber مدل انتخاب‌شده را از model/list بخوانید، سپس cyberAccessProgram را در پارامترهای turn/start تنظیم کنید.

الف. برای یک مدل از سری اصلی و حسابی با دسترسی به Daybreak Blue:

{ "cyberAccessProgram": "daybreakBlue" }

ب. برای یک مدل سایبری و حسابی با دسترسی به Daybreak Red:

{ "cyberAccessProgram": "daybreakRed" }

ج. برای روال عادی رد درخواست‌ها:

{ "cyberAccessProgram": "standard" }

۲. گزینهٔ انتخاب‌شده را در هر نوبتی که باید از آن استفاده کند بگنجانید؛ فرض نکنید که حذف پارامتر، Daybreak را خاموش می‌کند. کلاینت‌هایی که مستقیماً به سرور برنامه متصل می‌شوند، برای استفاده از این پارامتر باید قابلیت experimentalApi را هنگام راه‌اندازی اولیه فعال کنند.

۳. کلاینت سطح پایین CodexClient در SDK ‏Python می‌تواند همین پارامتر را ارسال کند:

from openai_codex.client import CodexClient

with CodexClient() as client:

client.initialize()

thread = client.thread_start()

turn = client.turn_start(

thread.thread.id,

"Review the changes in this repository.",

params={"cyberAccessProgram": "daybreakBlue"},

)

client.wait_for_turn_completed(turn.turn.id)

۴. در این مثال فرض شده است که Daybreak Blue برای مدل انتخاب‌شده در دسترس است. کلاینت Python قابلیت API آزمایشی را به‌طور پیش‌فرض فعال می‌کند. تنظیم ذخیره‌شدهٔ رشتهٔ گفتگو به‌تنهایی برنامهٔ دسترسی را برای یک نوبت در سرور برنامه تعیین نمی‌کند.

اگر پیش از این تغییرات، کاتالوگ محلی مدل‌ها را اضافه کرده‌اید

اگر قبلاً با ورود از طریق کلید API مدل‌های مورد انتظارتان نمایش داده نمی‌شدند، ممکن است با استفاده از model_catalog_json در config.toml یک کاتالوگ محلی اضافه کرده باشید. Codex به‌جای کاتالوگ خودکار از آن فایل محلی استفاده می‌کند، بنابراین ممکن است فهرست مدل‌های شما قدیمی شود. وقتی پشتیبانی از کاتالوگ خودکار برای محیط شما فراهم شد، برای بازگشت به آن این مراحل را دنبال کنید:

  1. فایل config.toml را باز کنید. برای Codex CLI، فایل ~/.codex/config.toml را باز کنید (یا اگر CODEX_HOME را تنظیم کرده‌اید، فایل $CODEX_HOME/config.toml را باز کنید). در Codex Desktop، به تنظیمات > پیکربندی بروید، سپس باز کردن config.toml را انتخاب کنید.

  2. کاتالوگ محلی را موقتاً غیرفعال کنید. در ابتدای خط model_catalog_json علامت # را اضافه کنید، فایل را ذخیره کنید و Codex را با همان حساب یا کلید API دوباره راه‌اندازی کنید. هر نشانی کاتالوگی را که سازمان شما الزامی کرده است، بدون تغییر نگه دارید.

  3. دسترسی خود را بررسی کنید. در CLI، ‏codex را اجرا کنید، سپس در همان نشست /daybreak را وارد کنید. در نسخهٔ دسکتاپ، انتخابگر پیشرفتهٔ مدل را باز کنید و Daybreak را روشن کنید. اگر به Daybreak Red دسترسی دارید، مطمئن شوید که مدل سایبری مورد انتظارتان نمایش داده می‌شود و می‌توانید با استفاده از آن درخواست ارسال کنید.

  4. پیکربندی‌ای را که درست کار می‌کند حفظ کنید. اگر بررسی موفقیت‌آمیز بود، خطی را که غیرفعال کرده‌اید حذف و فایل را ذخیره کنید. اگر بررسی ناموفق بود، # را بردارید، فایل را ذخیره کنید و Codex را دوباره راه‌اندازی کنید تا تنظیمات قبلی بازیابی شود.

عیب‌یابی رد درخواست‌ها در CLI

  • یک کار نمونه را با همان اطلاعات احراز هویت، مدل و پیکربندی مورد استفاده در فرایند خودکار خود اجرا کنید.

  • اگر Daybreak در دسترس نیست، مطمئن شوید که:

    • حساب یا پروژهٔ API شما به Daybreak دسترسی دارد.

    • مدل انتخاب‌شده از Daybreak پشتیبانی می‌کند.

  • در CLI تعاملی، بررسی کنید که Daybreak روشن باشد. اگر Daybreak در دسترس اما خاموش باشد، CLI تعاملی ممکن است این پیام رد درخواست را نمایش دهد: Daybreak در حال حاضر خاموش است. اگر در حال انجام فعالیت امنیتی مجاز هستید، آن را روشن کنید و درخواست خود را دوباره بفرستید.

    • پیامی می‌پرسد: Daybreak برای درخواست بعدی شما روشن شود؟ و گزینه‌های فعال کردن Daybreak و فعلاً نه را ارائه می‌دهد.

    • گزینهٔ فعال کردن Daybreak را انتخاب کنید تا برای درخواست بعدی روشن شود، سپس درخواست را دوباره بفرستید. توجه داشته باشید که درخواست ردشده به‌طور خودکار دوباره ارسال نمی‌شود؛ باید خودتان آن را دوباره بفرستید. برخی درخواست‌ها ممکن است حتی با روشن بودن Daybreak هم رد شوند.

    • گزینهٔ فعلاً نه را انتخاب کنید تا Daybreak خاموش بماند.

  • برای فرایندهای خودکار، مطمئن شوید که daybreak=true به پردازش واقعی Codex منتقل می‌شود و تنظیم دیگری در خط فرمان آن را بازنویسی نمی‌کند.

استفاده از Daybreak با Codex Security CLI

Codex Security CLI برای اسکن‌های امنیتی از @openai/codex-security استفاده می‌کند. گزینه‌های برنامهٔ دسترسی آن با مثال‌های عمومی Codex CLI در بالا متفاوت است.

برای احراز هویت با کلید API، از کلید پروژه‌ای استفاده کنید که Daybreak در آن فعال است و برنامهٔ تأییدشده برای آن پروژه را صریحاً انتخاب کنید. برای Daybreak Blue:


npx @openai/codex-security scan . --auth api-key --cyber-access-program daybreak_blue

از daybreak_red فقط زمانی استفاده کنید که پروژهٔ شما برای Daybreak Red تأیید شده باشد؛ برای استفاده از تدابیر حفاظتی استاندارد، standard را انتخاب کنید. انتخاب یک برنامه به‌خودی‌خود دسترسی به آن برنامه یا مدل‌های بیشتر را فراهم نمی‌کند.

برای آشنایی با گزینه‌های احراز هویت و اسکن، به مرجع Codex Security CLI مراجعه کنید.

استفاده از Daybreak با Codex Security SDK

کیت توسعهٔ TypeScript برای Codex Security با نام @openai/codex-security، اسکن‌های امنیتی را از درون یک برنامه یا ابزار توسعه اجرا می‌کند. این کیت با Codex SDK عمومی که در بالا توضیح داده شد، متفاوت است.

از اطلاعات احراز هویت حساب یا پروژهٔ API تأییدشدهٔ خود استفاده کنید. برخی درخواست‌های امنیت سایبری و یافته‌های محافظت‌شده به Trusted Access for Cyber نیاز دارند. نصب SDK یا انتخاب مدل به‌خودی‌خود دسترسی به Daybreak را فراهم نمی‌کند.

برای آشنایی با روش‌های احراز هویت پشتیبانی‌شده، پیکربندی و مثال‌های اسکن، راهنمای Codex Security SDK را دنبال کنید.

آیا این مقاله مفید بود؟