OpenAI
Trang này được dịch bằng máy học. Xem bài viết gốc bằng tiếng Anh.

Sử dụng Daybreak trong Codex CLI

Dùng hướng dẫn này để bật Daybreak trong Codex CLI, cấu hình cho các quy trình tự động và tích hợp SDK, đồng thời khắc phục sự cố truy cập hoặc từ chối yêu cầu. 

Đã cập nhật: 4 hours ago

Lưu ý rằng để sử dụng những thay đổi này, bạn cần nâng cấp lên Codex CLI 0.163.0 trở lên. CLI chỉ được nâng cấp khi bạn chủ động thực hiện: các bản cài đặt hiện có vẫn hoạt động như trước cho đến khi bạn cập nhật.

  • Nếu quy trình tự động hóa của bạn cài đặt @openai/codex@latest, thay đổi này có thể được áp dụng vào lần cài đặt hoặc cập nhật tiếp theo. Nếu bạn đã cài đặt Codex CLI toàn cục bằng npm, hãy chạy npm install -g @openai/codex@latest, rồi chạy codex --version để xác nhận đã nâng cấp.

  • Để hoãn áp dụng thay đổi, hãy ghim phiên bản @openai/codex@0.162.0. Bản cài đặt một lần bằng @latest sẽ không tự cập nhật. Các quy trình được ghim ở phiên bản cũ vẫn hoạt động như trước.

  • Với các tích hợp TypeScript, hãy cập nhật @openai/codex-sdk và môi trường thực thi đi kèm. Với các tích hợp Python, hãy cập nhật openai-codex và môi trường thực thi Codex của gói này. Chỉ cập nhật CLI toàn cục có thể không cập nhật được môi trường thực thi của SDK. Nếu bạn cấu hình đường dẫn đến tệp thực thi tùy chỉnh, hãy cập nhật cả tệp thực thi đó.

Các ID mô hình được cấu hình thủ công nhưng không có trong danh mục, dù danh mục vẫn truy cập được, sẽ tiếp tục được xử lý tự động như trước trong CLI và Codex Desktop, ngay cả khi Daybreak đang BẬT. Việc các ID này không có trong danh mục không tự nó khiến yêu cầu thất bại. 

Các mô hình an ninh mạng có thể được triển khai riêng trong bộ chọn mô hình. Sau khi các mô hình này được bật, người dùng đang dùng phiên bản được hỗ trợ không cần tải thêm bản cập nhật để thấy chúng. Mở lại bộ chọn mô hình hoặc khởi động lại Codex để làm mới danh sách.

Bật Daybreak trong CLI tương tác

  1. Khởi chạy Codex với phương thức xác thực bạn thường dùng.

  2. Để BẬT Daybreak, nhập /daybreak.

  3. Codex sẽ thông báo Đã bật Daybreak. Áp dụng cho các lượt mới.

  4. Thiết lập này sẽ áp dụng cho luồng hội thoại đang hoạt động và được lưu làm mặc định cho các phiên mới.

  5. Để TẮT Daybreak, chạy lại cùng lệnh đó (/daybreak).

Bật Daybreak trong CLI không tương tác

Các quy trình không tương tác chạy mà không có giao diện người dùng tương tác, thường thông qua codex exec trong tập lệnh, tác vụ theo lịch hoặc CI. Ở đây không có lời nhắc tương tác “Bật Daybreak” (/daybreak). Thay vào đó, bạn có thể:

  1. Bật Daybreak cho một lần chạy CLI cụ thể bằng cách thêm -c daybreak=true vào mỗi lệnh cần giảm mức độ từ chối. Ví dụ, bạn có thể nhập:

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

  1. Giữ nguyên câu lệnh và các tùy chọn lệnh hiện có. Thêm thiết lập này vào mỗi lần gọi cần dùng Daybreak, bao gồm các lệnh trong tập lệnh, tác vụ theo lịch và cấu hình CI.

  2. Đặt Daybreak làm mặc định cho các phiên và lần chạy CLI mới bằng cách thêm daybreak=true vào tệp cấu hình mà Codex tải.

  3. Tệp cấu hình người dùng mặc định là ~/.codex/config.toml. Nếu quy trình tự động hóa của bạn đặt biến CODEX_HOME, hãy dùng $CODEX_HOME/config.toml thay thế. Đặt thiết lập ở cấp cao nhất, bên ngoài các phần như [features].

  4. Thực hiện thay đổi trong môi trường mà quy trình tự động hóa thực sự chạy. Cập nhật cấu hình trên máy tính xách tay của bạn không làm thay đổi cấu hình trên máy chạy CI hoặc máy từ xa.

  5. Thiết lập này cũng áp dụng cho các phiên tương tác mới dùng cùng cấu hình. Các phiên được tiếp tục hoặc phân nhánh vẫn giữ lựa chọn Daybreak đã lưu; giá trị mặc định mới trong cấu hình không thay thế lựa chọn đó.

  6. Lưu ý rằng thiết lập trên dòng lệnh sẽ ghi đè cấu hình đã lưu cho lần gọi đó. Vì vậy, bạn có thể giữ daybreak = true trong cấu hình và dùng -c daybreak=false cho một lần chạy riêng lẻ.

Bật Daybreak khi dùng nhà cung cấp suy luận qua proxy

Bạn có thể dùng Daybreak trong Codex CLI trong khi định tuyến các yêu cầu suy luận qua proxy hiện có. Codex thực hiện một lượt tra cứu danh mục mô hình riêng để xác định những mô hình hỗ trợ Daybreak cho dự án của bạn.

Trước khi bắt đầu, hãy đảm bảo bạn đã có nhà cung cấp proxy hoạt động trong Codex CLI, khóa API OpenAI từ một dự án có quyền truy cập Daybreak và mô hình bạn muốn dùng, cùng Codex CLI phiên bản v0.167.0.Tài liệu OpenAI về quyền truy cập Daybreak của dự án

  1. Cập nhật nhà cung cấp proxy bằng cách mở ~/.codex/config.toml và tìm phần [model_providers.<id>] dành cho proxy của bạn. Thêm hai dòng cuối của ví dụ bên dưới vào phần đó. Giữ nguyên ID nhà cung cấp, URL proxy và các thiết lập xác thực hiện có.


    [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

    Nếu cấu hình của bạn đã có phần [model_providers.<id>.capabilities], hãy đặt cyber_access_programs = true ở đó và giữ model_catalog_url trong phần nhà cung cấp cấp trên.Tài liệu tham khảo về cấu hình Codex

  2. Xác thực yêu cầu tra cứu danh mục bằng cách chọn tùy chọn phù hợp với thông tin xác thực mà CLI của bạn sử dụng.

    1. Nếu Codex dùng khóa API OpenAI, hãy giữ URL danh mục OpenAI ở bước 1. Chạy Codex bằng khóa từ dự án đã bật Daybreak để Codex có thể xác thực trực tiếp với danh mục.

    2. Nếu Codex dùng thông tin xác thực của proxy, hãy đặt model_catalog_url thành URL đầy đủ của một tuyến danh mục trên proxy. Cấu hình tuyến đó để:

      1. Xác thực yêu cầu từ CLI bằng thông tin xác thực proxy thường dùng của bạn.

      2. Chuyển tiếp yêu cầu đến https://chatgpt.com/backend-api/codex/models bằng khóa API OpenAI từ dự án đã bật Daybreak của bạn.

      3. Trả phản hồi danh mục về Codex.

  3. Bật Daybreak bằng cách bắt đầu một phiên Codex CLI mới với nhà cung cấp proxy của bạn. Chọn một mô hình đủ điều kiện dùng Daybreak, rồi nhập /daybreak để bật.

    1. Nếu Daybreak không khả dụng, trước tiên hãy kiểm tra việc tra cứu danh mục. Quá trình suy luận vẫn có thể thành công ngay cả khi yêu cầu danh mục thất bại. Xác minh rằng yêu cầu gửi đến OpenAI sử dụng khóa từ đúng dự án và dự án đó có quyền truy cập cả Daybreak lẫn mô hình đã chọn.

Bật Daybreak qua SDK TypeScript

Truyền thiết lập Daybreak qua cấu hình máy khách:

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

Dùng daybreak: false để tắt Daybreak và áp dụng cơ chế từ chối thông thường. Giữ nguyên cấu hình xác thực hiện có.

Bật Daybreak qua máy chủ ứng dụng hoặc SDK Python

1. Đọc các giá trị availableAccessPrograms.cyber của mô hình đã chọn từ model/list, rồi đặt cyberAccessProgram trong các tham số của turn/start.

a. Với mô hình dòng chính và tài khoản có quyền truy cập Daybreak Blue:

{ "cyberAccessProgram": "daybreakBlue" }

b. Với mô hình an ninh mạng và tài khoản có quyền truy cập Daybreak Red:

{ "cyberAccessProgram": "daybreakRed" }

c. Để áp dụng cơ chế từ chối thông thường:

{ "cyberAccessProgram": "standard" }

2. Truyền lựa chọn này trong mỗi lượt cần áp dụng; đừng cho rằng bỏ qua tham số sẽ tắt Daybreak. Các máy khách kết nối trực tiếp với máy chủ ứng dụng phải bật tính năng experimentalApi khi khởi tạo để dùng tham số này.

3. CodexClient cấp thấp của SDK Python có thể truyền cùng tham số này:

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. Ví dụ này giả định rằng Daybreak Blue khả dụng cho mô hình đã chọn. Máy khách Python bật tính năng API thử nghiệm theo mặc định. Chỉ riêng tùy chọn đã lưu của luồng hội thoại không đủ để chọn chương trình cho một lượt trên máy chủ ứng dụng.

Nếu bạn đã thêm danh mục mô hình cục bộ trước những thay đổi này

Nếu trước đây khi đăng nhập bằng khóa API, bạn không thấy các mô hình mong đợi, có thể bạn đã thêm danh mục cục bộ bằng model_catalog_json trong config.toml. Codex dùng tệp cục bộ đó thay cho danh mục tự động, nên danh sách mô hình của bạn có thể bị lỗi thời. Khi môi trường của bạn đã hỗ trợ danh mục tự động, hãy làm theo các bước sau để chuyển lại:

  1. Mở config.toml. Với Codex CLI, mở ~/.codex/config.toml (hoặc $CODEX_HOME/config.toml nếu bạn đã đặt CODEX_HOME). Trong Codex Desktop, vào Cài đặt > Cấu hình, rồi chọn Mở config.toml.

  2. Tạm thời tắt danh mục cục bộ. Thêm # vào đầu dòng model_catalog_json, lưu tệp rồi khởi động lại Codex bằng cùng tài khoản hoặc khóa API. Giữ nguyên mọi URL danh mục mà tổ chức của bạn yêu cầu.

  3. Kiểm tra quyền truy cập của bạn. Trong CLI, khởi chạy codex, rồi nhập /daybreak trong phiên. Trong Desktop, mở bộ chọn mô hình Nâng cao và bật Daybreak. Nếu bạn có quyền truy cập Daybreak Red, hãy xác nhận rằng mô hình an ninh mạng mong đợi xuất hiện và bạn có thể gửi yêu cầu bằng mô hình đó.

  4. Giữ lại cấu hình hoạt động được. Nếu kiểm tra thành công, hãy xóa dòng bạn đã vô hiệu hóa và lưu tệp. Nếu không thành công, hãy xóa #, lưu rồi khởi động lại Codex để khôi phục cấu hình trước đó.

Khắc phục tình trạng từ chối yêu cầu trong CLI

  • Chạy một tác vụ điển hình với cùng thông tin xác thực, mô hình và cấu hình mà quy trình tự động hóa của bạn sử dụng.

  • Nếu Daybreak không khả dụng, hãy xác nhận rằng:

    • Tài khoản hoặc dự án API của bạn có quyền truy cập Daybreak.

    • Mô hình đã chọn hỗ trợ Daybreak.

  • Trong CLI tương tác, hãy kiểm tra để bảo đảm Daybreak đang Bật. CLI tương tác có thể hiển thị thông báo từ chối khi Daybreak khả dụng nhưng đang TẮT: Daybreak hiện đang tắt. Nếu bạn đang thực hiện công việc bảo mật được cho phép, hãy bật Daybreak rồi thử gửi lại yêu cầu.

    • Lời nhắc sẽ hỏi Bật Daybreak cho yêu cầu tiếp theo của bạn? và đưa ra hai lựa chọn: Bật Daybreak hoặc Để sau.

    • Chọn Bật Daybreak để bật cho yêu cầu tiếp theo, rồi thử gửi lại yêu cầu. Lưu ý rằng yêu cầu bị từ chối sẽ không được tự động thử lại; bạn phải gửi lại yêu cầu. Một số yêu cầu vẫn có thể bị từ chối khi Daybreak đang BẬT.

    • Chọn Để sau để giữ Daybreak ở trạng thái TẮT.

  • Với các quy trình tự động hóa, hãy xác nhận rằng daybreak=true thực sự được truyền đến tiến trình Codex và không bị thiết lập dòng lệnh khác ghi đè.

Sử dụng Daybreak với Codex Security CLI

Codex Security CLI sử dụng @openai/codex-security để quét bảo mật. Các tùy chọn chương trình truy cập của công cụ này tách biệt với các ví dụ về Codex CLI thông thường ở trên.

Để xác thực bằng khóa API, hãy dùng khóa từ một dự án API đã bật Daybreak và chọn rõ chương trình đã được phê duyệt cho dự án đó. Với Daybreak Blue:


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

Chỉ dùng daybreak_red khi dự án của bạn được phê duyệt cho Daybreak Red, hoặc dùng standard để áp dụng các biện pháp bảo vệ tiêu chuẩn. Việc chọn một chương trình không cấp quyền truy cập vào chương trình đó hay các mô hình bổ sung.

Xem tài liệu tham khảo về Codex Security CLI để biết các tùy chọn xác thực và quét.

Sử dụng Daybreak với Codex Security SDK

Codex Security TypeScript SDK (@openai/codex-security) thực hiện quét bảo mật từ ứng dụng hoặc công cụ dành cho nhà phát triển. SDK này tách biệt với Codex SDK thông thường được mô tả ở trên.

Sử dụng thông tin xác thực của tài khoản hoặc dự án API đã được phê duyệt. Một số yêu cầu về an ninh mạng và kết quả phát hiện được bảo vệ đòi hỏi quyền truy cập qua chương trình Trusted Access for Cyber. Việc cài đặt SDK hoặc chọn mô hình không cấp quyền truy cập Daybreak.

Làm theo hướng dẫn về Codex Security SDK để biết các phương thức xác thực, cấu hình và ví dụ quét được hỗ trợ.

Bài viết này có hữu ích không?