OpenAI
Ta strona została przetłumaczona maszynowo. Wyświetl oryginalny artykuł w języku angielskim.

Korzystanie z Daybreak w Codex CLI

Z tego przewodnika dowiesz się, jak włączyć Daybreak w Codex CLI, skonfigurować go do zautomatyzowanych przepływów pracy i integracji z SDK oraz rozwiązać problemy z dostępem lub odmową wykonania poleceń. 

Zaktualizowano: 3 hours ago

Aby skorzystać z tych zmian, musisz zaktualizować Codex CLI do wersji 0.163.0 lub nowszej. Aktualizacje CLI wymagają Twojej decyzji: istniejące instalacje działają jak dotychczas, dopóki ich nie zaktualizujesz.

  • Jeśli Twoja automatyzacja instaluje @openai/codex@latest, może uwzględnić tę zmianę przy następnej instalacji lub aktualizacji. Jeśli Codex CLI jest zainstalowany globalnie za pomocą npm, uruchom npm install -g @openai/codex@latest, a następnie codex --version, aby potwierdzić aktualizację.

  • Aby odroczyć zmianę, przypnij wersję @openai/codex@0.162.0. Jednorazowa instalacja z użyciem @latest nie aktualizuje się sama. Przepływy pracy przypięte do starszych wersji działają jak dotychczas.

  • W przypadku integracji w TypeScript zaktualizuj @openai/codex-sdk i dołączone do niego środowisko wykonawcze. W przypadku integracji w Pythonie zaktualizuj openai-codex i jego środowisko wykonawcze Codex. Aktualizacja samego globalnego CLI może nie zaktualizować środowiska wykonawczego SDK. Jeśli konfigurujesz niestandardową ścieżkę do pliku wykonywalnego, zaktualizuj również ten plik.

Ręcznie skonfigurowane identyfikatory modeli, których nie ma w dostępnym katalogu, nadal będą automatycznie obsługiwane w CLI i Codex Desktop na dotychczasowych zasadach, nawet przy włączonym Daybreak. Sam ich brak w katalogu nie uniemożliwia pomyślnego wykonania żądania. 

Modele do cyberbezpieczeństwa mogą być udostępniane w selektorze modeli niezależnie od tych zmian. Po ich udostępnieniu użytkownicy obsługiwanej wersji nie muszą niczego ponownie pobierać, aby zobaczyć nowo dostępne modele. Otwórz ponownie selektor modeli lub uruchom ponownie Codex, aby odświeżyć listę.

Włączanie Daybreak w interaktywnym CLI

  1. Uruchom Codex, korzystając z dotychczasowego sposobu uwierzytelniania.

  2. Aby włączyć Daybreak, wpisz /daybreak.

  3. Codex wyświetli komunikat Daybreak włączony. Dotyczy nowych tur.

  4. Ustawienie będzie obowiązywać w aktywnym wątku i zostanie zapisane jako domyślne dla nowych sesji.

  5. Aby wyłączyć Daybreak, ponownie uruchom tę samą komendę (/daybreak).

Włączanie Daybreak w CLI w trybie nieinteraktywnym

Procesy w trybie nieinteraktywnym działają bez interaktywnego interfejsu użytkownika, zwykle za pośrednictwem codex exec w skryptach, zaplanowanych zadaniach lub CI. Nie pojawia się tu interaktywny monit „Włącz Daybreak” (/daybreak). Zamiast tego możesz:

  1. Włączyć Daybreak dla konkretnego uruchomienia CLI, dodając -c daybreak=true do każdego polecenia, które ma działać z mniejszą liczbą odmów. Możesz na przykład wpisać:

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

  1. Zachowaj dotychczasowe polecenie dla modelu i pozostałe opcje polecenia CLI. Dodaj to ustawienie do każdego wywołania, które ma korzystać z Daybreak, w tym do poleceń w skryptach, zaplanowanych zadaniach i konfiguracji CI.

  2. Ustawić Daybreak jako domyślnie włączony dla nowych sesji i uruchomień CLI, dodając daybreak=true do pliku konfiguracyjnego wczytywanego przez Codex.

  3. Domyślny plik konfiguracji użytkownika to ~/.codex/config.toml. Jeśli Twoja automatyzacja ustawia CODEX_HOME, użyj zamiast tego $CODEX_HOME/config.toml. Umieść ustawienie na najwyższym poziomie, poza sekcjami takimi jak [features].

  4. Wprowadź zmianę w środowisku, w którym faktycznie działa automatyzacja. Aktualizacja konfiguracji na laptopie nie zmienia konfiguracji środowiska wykonawczego CI ani maszyny zdalnej.

  5. Ustawienie obejmuje również nowe sesje interaktywne korzystające z tej samej konfiguracji. Wznowione i rozgałęzione sesje zachowują zapisane ustawienie Daybreak; nowa wartość domyślna w konfiguracji go nie zastępuje.

  6. Pamiętaj, że ustawienie podane w wierszu poleceń zastępuje zapisaną konfigurację na czas danego wywołania. Możesz więc zachować daybreak = true w konfiguracji i użyć -c daybreak=false dla pojedynczego uruchomienia.

Włączanie Daybreak przy korzystaniu z dostawcy wnioskowania przez proxy

Możesz korzystać z Daybreak w Codex CLI, kierując żądania wnioskowania przez dotychczasowy serwer proxy. Codex wysyła osobne zapytanie do katalogu modeli, aby ustalić, które modele obsługują Daybreak w Twoim projekcie.

Zanim zaczniesz, upewnij się, że masz działającą konfigurację dostawcy przez proxy w Codex CLI, klucz API OpenAI z projektu z dostępem do Daybreak i modelu, którego chcesz użyć, oraz Codex CLI w wersji v0.167.0.Dokumentacja OpenAI dotycząca dostępu projektu do Daybreak

  1. Zaktualizuj konfigurację dostawcy przez proxy: otwórz ~/.codex/config.toml i znajdź sekcję [model_providers.<id>] odpowiadającą Twojemu proxy. Dodaj do tej sekcji dwie ostatnie linie z poniższego przykładu. Zachowaj dotychczasowy identyfikator dostawcy, adres URL proxy i ustawienia uwierzytelniania.


    [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

    Jeśli konfiguracja zawiera już sekcję [model_providers.<id>.capabilities], umieść w niej cyber_access_programs = true, a model_catalog_url pozostaw w nadrzędnej sekcji dostawcy.Dokumentacja konfiguracji Codex

  2. Uwierzytelnij zapytanie do katalogu, wybierając opcję odpowiadającą danym uwierzytelniającym używanym przez CLI.

    1. Jeśli Codex używa klucza API OpenAI, zachowaj adres URL katalogu OpenAI z kroku 1. Uruchom Codex z kluczem z projektu z włączonym dostępem do Daybreak, aby umożliwić bezpośrednie uwierzytelnienie w katalogu.

    2. Jeśli Codex używa danych uwierzytelniających Twojego proxy, ustaw model_catalog_url na pełny adres URL trasy katalogu na serwerze proxy. Skonfiguruj tę trasę tak, aby:

      1. Uwierzytelniała żądanie CLI przy użyciu standardowych danych uwierzytelniających Twojego proxy.

      2. Przekazywała żądanie do https://chatgpt.com/backend-api/codex/models przy użyciu klucza API OpenAI z projektu z włączonym dostępem do Daybreak.

      3. Zwracała odpowiedź katalogu do Codex.

  3. Włącz Daybreak, rozpoczynając nową sesję Codex CLI z dostawcą skonfigurowanym do korzystania z proxy. Wybierz model obsługujący Daybreak, a następnie wpisz /daybreak, aby włączyć tę funkcję.

    1. Jeśli Daybreak jest niedostępny, najpierw sprawdź zapytanie do katalogu. Wnioskowanie może działać poprawnie nawet wtedy, gdy żądanie do katalogu kończy się niepowodzeniem. Sprawdź, czy żądanie dociera do OpenAI z kluczem z właściwego projektu i czy projekt ma dostęp zarówno do Daybreak, jak i do wybranego modelu.

Włączanie Daybreak za pomocą SDK dla TypeScript

Przekaż ustawienie Daybreak w konfiguracji klienta:

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);

Użyj daybreak: false, aby wyłączyć Daybreak i przywrócić standardowe zasady odmowy. Zachowaj dotychczasową konfigurację uwierzytelniania.

Włączanie Daybreak za pomocą serwera aplikacji lub SDK dla Pythona

1. Odczytaj wartości availableAccessPrograms.cyber dla wybranego modelu z model/list, a następnie ustaw cyberAccessProgram w parametrach turn/start.

a. Dla modelu z głównej linii i konta z dostępem do Daybreak Blue:

{ "cyberAccessProgram": "daybreakBlue" }

b. Dla modelu do cyberbezpieczeństwa i konta z dostępem do Daybreak Red:

{ "cyberAccessProgram": "daybreakRed" }

c. Aby stosować standardowe zasady odmowy:

{ "cyberAccessProgram": "standard" }

2. Przekazuj wybraną wartość w każdej turze, w której ma obowiązywać. Nie zakładaj, że pominięcie parametru wyłącza Daybreak. Klienci łączący się bezpośrednio z serwerem aplikacji muszą podczas inicjalizacji włączyć funkcję experimentalApi, aby móc używać tego parametru.

3. Niskopoziomowy klient CodexClient z SDK dla Pythona może przekazać ten sam parametr:

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)

4. W tym przykładzie zakładamy, że Daybreak Blue jest dostępny dla wybranego modelu. Klient Pythona domyślnie włącza obsługę eksperymentalnego API. Sama zapisana preferencja wątku nie określa programu używanego w turze na serwerze aplikacji.

Jeśli przed tymi zmianami dodano lokalny katalog modeli

Jeśli wcześniej po zalogowaniu kluczem API nie pojawiały się oczekiwane modele, być może masz dodany lokalny katalog za pomocą model_catalog_json w pliku config.toml. Codex używa tego lokalnego pliku zamiast automatycznego katalogu, więc Twoja lista modeli może się zdezaktualizować. Gdy obsługa automatycznego katalogu będzie dostępna w Twoim środowisku, wykonaj poniższe kroki, aby do niego wrócić:

  1. Otwórz config.toml. W przypadku Codex CLI otwórz ~/.codex/config.toml (lub $CODEX_HOME/config.toml, jeśli ustawiono CODEX_HOME). W Codex Desktop przejdź do Ustawienia > Konfiguracja, a następnie wybierz Otwórz config.toml.

  2. Tymczasowo wyłącz lokalny katalog. Dodaj # na początku wiersza model_catalog_json, zapisz plik i uruchom ponownie Codex z tym samym kontem lub kluczem API. Pozostaw bez zmian wszystkie adresy URL katalogów wymagane przez Twoją organizację.

  3. Sprawdź swój dostęp. W CLI uruchom codex, a następnie wpisz /daybreak w sesji. W aplikacji Desktop otwórz zaawansowany selektor modeli i włącz Daybreak. Jeśli masz dostęp do Daybreak Red, upewnij się, że pojawia się oczekiwany model do cyberbezpieczeństwa i że możesz wysłać do niego żądanie.

  4. Zachowaj działającą konfigurację. Jeśli sprawdzenie się powiedzie, usuń wyłączony wiersz i zapisz plik. Jeśli się nie powiedzie, usuń #, zapisz plik i uruchom ponownie Codex, aby przywrócić poprzednią konfigurację.

Rozwiązywanie problemów z odmowami w CLI

  • Uruchom reprezentatywne zadanie z tymi samymi danymi uwierzytelniającymi, modelem i konfiguracją, których używa Twoja automatyzacja.

  • Jeśli Daybreak jest niedostępny, upewnij się, że:

    • Twoje konto lub projekt API ma dostęp do Daybreak.

    • Wybrany model obsługuje Daybreak.

  • W interaktywnym CLI sprawdź, czy Daybreak jest włączony. Interaktywny CLI może wyświetlić komunikat odmowy, gdy Daybreak jest dostępny, ale wyłączony: Daybreak jest obecnie wyłączony. Jeśli prowadzisz autoryzowane prace związane z bezpieczeństwem, włącz go i ponów żądanie.

    • Pojawi się pytanie Włączyć Daybreak dla następnego żądania? z opcjami Włącz Daybreak i Nie teraz.

    • Wybierz Włącz Daybreak, aby włączyć go dla następnego żądania, a następnie ponów żądanie. Pamiętaj, że żądanie, które spotkało się z odmową, nie jest ponawiane automatycznie — musisz wysłać je ponownie. Niektóre żądania mogą nadal spotykać się z odmową przy włączonym Daybreak.

    • Wybierz Nie teraz, aby pozostawić Daybreak wyłączony.

  • W przypadku automatyzacji upewnij się, że ustawienie daybreak=true trafia do właściwego procesu Codex i nie jest nadpisywane przez inne ustawienie wiersza poleceń.

Korzystanie z Daybreak w Codex Security CLI

Codex Security CLI używa @openai/codex-security do skanowania pod kątem bezpieczeństwa. Opcje programów dostępu w tym narzędziu są odrębne od ogólnych przykładów użycia Codex CLI podanych powyżej.

Aby uwierzytelnić się za pomocą klucza API, użyj klucza z projektu API z włączonym dostępem do Daybreak i jawnie wybierz program, do którego zatwierdzono dostęp dla tego projektu. W przypadku Daybreak Blue:


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

Używaj daybreak_red tylko wtedy, gdy Twój projekt ma zatwierdzony dostęp do Daybreak Red, lub standard, aby korzystać ze standardowych zabezpieczeń. Wybranie programu nie przyznaje dostępu do niego ani do dodatkowych modeli.

Informacje o uwierzytelnianiu i opcjach skanowania znajdziesz w dokumentacji Codex Security CLI.

Korzystanie z Daybreak w Codex Security SDK

Codex Security SDK dla TypeScript (@openai/codex-security) uruchamia skanowanie pod kątem bezpieczeństwa z poziomu aplikacji lub narzędzia programistycznego. Jest to odrębne narzędzie od opisanego powyżej ogólnego Codex SDK.

Użyj danych uwierzytelniających konta lub projektu API z zatwierdzonym dostępem. Niektóre żądania dotyczące cyberbezpieczeństwa i chronione wyniki wymagają dostępu w ramach Trusted Access for Cyber. Zainstalowanie SDK lub wybranie modelu nie przyznaje dostępu do Daybreak.

Informacje o obsługiwanych metodach uwierzytelniania, konfiguracji i przykłady skanowania znajdziesz w przewodniku po Codex Security SDK.

Czy ten artykuł był pomocny?