Chuyển đến nội dung chính

Hướng dẫn GPT-5.2 Codex: Xây dựng Data Pipeline trong VSCode

Xây dựng MVP kỹ thuật dữ liệu với GPT-5.2 Codex. Hướng dẫn VSCode từng bước về agentic coding, Python, DuckDB và Streamlit.
Đã cập nhật 5 thg 10, 2026  · 9 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Trong hướng dẫn này, chúng ta sẽ học cách tạo một pipeline kỹ thuật dữ liệu end-to-end bằng GPT-5.2 Codex thông qua tiện ích mở rộng VSCode. Thay vì yêu cầu mô hình xây dựng mọi thứ cùng lúc, chúng ta sẽ xây dựng MVP theo từng lớp, dẫn dắt agent từng bước qua thiết kế, triển khai và kiểm thử. 

Cách tiếp cận này phản ánh cách GPT-5.2 Codex hoạt động hiệu quả nhất trong thực tế và mô phỏng quy trình kỹ thuật dữ liệu ngoài đời. Hãy xem thêm hướng dẫn về phiên bản mới hơn của mô hình, GPT-5.3 Codex, và mô hình tư duy mới của OpenAI, GPT-5.4.

Nếu bạn muốn tìm hiểu thêm về hệ sinh thái OpenAI, tôi khuyến nghị xem khóa học Làm việc với OpenAI API. 

GPT-5.2 Codex là gì?

GPT 5.2 Codex là thế hệ mới nhất của các mô hình mã hóa agentic của OpenAI, được xây dựng cho quy trình kỹ thuật phần mềm thực tế. Nó kế thừa các cải tiến gần đây về hiểu ngữ cảnh dài, tái cấu trúc và di trú lớn, sử dụng công cụ đáng tin cậy, và hỗ trợ Windows gốc mạnh mẽ. 

Những cải tiến này khiến nó đặc biệt hiệu quả cho công việc phát triển dài hơi, end-to-end bên trong các IDE như VSCode. Trong vài tháng qua, tiện ích mở rộng OpenAI Codex VSCode đã được cải thiện đáng kể và hiện cạnh tranh trực tiếp với Claude Code cho phát triển phức tạp, dẫn dắt bởi agent.

1. Tạo GitHub Repository

Chúng ta sẽ bắt đầu bằng cách tạo một GitHub repository mới cho MVP kỹ thuật dữ liệu của mình.

  1. Truy cập https://github.com/new
  2. Nhập Tên repository và mô tả tùy chọn
  3. Đặt quyền hiển thị repository là Public
  4. Bật Initialize this repository with a README
  5. Nhấp Create repository

Tạo GitHub Repository mới

Sau khi repository được tạo, hãy sao chép URL của repository. Chúng ta sẽ dùng URL này ở bước tiếp theo để clone dự án về máy.

2. Cài đặt và cấu hình GPT-5.2 Codex trong VSCode

Trước khi bắt đầu, hãy đảm bảo bạn đã cài đặt Visual Studio Code và có tài khoản ChatGPT Plus đang hoạt động. Gói miễn phí và Go không cung cấp quyền truy cập mô hình Codex trong tiện ích mở rộng VSCode.

1. Clone repository bằng URL bạn đã sao chép trước đó.

2. Chuyển thư mục sang repository và khởi chạy VSCode.

git clone https://github.com/kingabzpro/data-engineering-analytics-mvp.git
cd data-engineering-analytics-mvp
code .

3. Vào Extensions (Ctrl + Shift + X), tìm OpenAI Codex và cài đặt. Thao tác này chỉ mất vài giây.

Tìm Codex trên VSCode Marketplace

4. Nhấp biểu tượng OpenAI ở bảng trái để khởi chạy tiện ích Codex. Bạn sẽ được nhắc đăng nhập bằng tài khoản ChatGPT hoặc tài khoản API. Chọn tài khoản ChatGPT, trình duyệt sẽ mở để phê duyệt quyền truy cập. Khi đã phê duyệt, quay lại VSCode và Codex sẽ sẵn sàng sử dụng.

chọn mô hình Codex mới trong tiện ích VSCode.

3. Xây dựng dự án Kỹ thuật Dữ liệu

Dự án này được cố ý giới hạn trong phạm vi một Sản phẩm Tối thiểu khả dụng (MVP). Mục tiêu không phải xây dựng một nền tảng dữ liệu cấp sản xuất, mà là tạo một lát cắt kỹ thuật dữ liệu end-to-end hoàn chỉnh, thể hiện cấu trúc của các hệ thống phân tích thực tế.

Trong MVP này, chúng ta xây dựng một pipeline phân tích đơn giản nhưng đáng tin cậy, bao gồm:

  1. Tiếp nhận một tệp CSV chứa dữ liệu sự kiện
  2. Nạp dữ liệu vào DuckDB dưới dạng bảng kho dữ liệu thô (raw_events)
  3. Áp dụng các biến đổi dựa trên SQL để tạo bảng fact sạch, sẵn sàng phân tích (fct_events)
  4. Tính ba chỉ số cốt lõi bằng DuckDB SQL
  5. Hiển thị các chỉ số đó trên bảng điều khiển Streamlit cục bộ

Luồng đầy đủ như sau:

CSV file
  ↓
raw_events        (raw ingestion, 1:1 with source)
  ↓
fct_events        (typed, deduplicated, transformed)
  ↓
metrics           (daily count, 7-day rolling avg, top category)
  ↓
Streamlit UI      (local dashboard)

4. Tạo khung dự án với GPT-5.2 Codex

Ở bước này, chúng ta dùng GPT-5.2 Codex để sinh cấu trúc ban đầu của dự án. Mục tiêu chưa phải triển khai tính năng, mà là tạo nền tảng sạch, có thể chạy được để mở rộng từng bước.

Để giữ cho Codex tập trung, chúng ta dùng một khối điều khiển nhỏ gọi là Codex Harness. Khối này được dán ở đầu mỗi prompt và đảm bảo Codex giữ đúng phạm vi MVP, tạo đầu ra nhất quán, và commit thay đổi sạch, dễ review.

Codex Harness (dán vào mọi tác vụ):

You are GPT-5.2 Codex working in my GitHub repository.

MVP ONLY:
CSV → raw table → transform → 3 metrics → Streamlit dashboard.

SCOPE RULES:
- Implement ONLY what this task asks.
- No auth, schedulers, cloud services, or extra pages.

OUTPUT:
- Be descriptive.
- After changes include:
  1) What changed
  2) Files touched
  3) How to run locally
  4) Quick verification step
- Commit after each major step with a clear message.

Trước khi viết bất kỳ mã nào, Codex được chỉ dẫn rõ ràng sử dụng tìm kiếm web để xác minh các phiên bản phụ thuộc tương thích Python 3.11 mới nhất. Điều này giúp tránh cài đặt gói lỗi thời hoặc không tương thích.

IMPORTANT: USE WEB SEARCH FIRST
TASK 1 (SCAFFOLD):
Use Python 3.11 + uv + DuckDB + Streamlit + Pydantic + pytest.

Create repo structure:
- backend/
  - db.py
  - ingest.py
  - pipeline.py
  - models.py
  - sql/
- app/
  - app.py
- data/
  - sample.csv
- tests/

Add:
1) data/sample.csv (~50 rows) with columns:
   event_time, user_id, event_name, category, amount
2) DuckDB schema for raw_events
3) a command to ingest sample.csv and print row count
4) pyproject.toml for uv
5) README with exact local run steps

Stop after scaffolding. Commit.

Tác vụ scaffolding tạo ra:

  • Cấu trúc thư mục rõ ràng cho logic backend, biến đổi SQL, UI, dữ liệu và kiểm thử
  • Một tập dữ liệu nhỏ sample.csv
  • Lược đồ bảng DuckDB raw_events
  • Một lệnh ingest có thể chạy in ra số dòng
  • Một pyproject.toml và README hoạt động

Sau khi dán prompt, hãy chuyển mô hình sang Agent (Full Access) và xác nhận rằng GPT-5.2 Codex đã được chọn (mặc định là vậy).

Nhập prompt ban đầu và chọn Agent Full Access.

Khi tác vụ hoàn tất, bạn sẽ thấy tất cả thư mục và tệp đã được tạo tự động.

VSCode tạo tệp và thư mục bằng tiện ích Codex.

Để xác thực scaffold, hãy yêu cầu Codex chạy các bước cài đặt và kiểm tra tại chỗ. 

Cài đặt gói Python và kiểm thử script.

Bạn sẽ thấy tất cả phụ thuộc được cài thành công và script xác minh nhanh xác nhận đã ingest 50 dòng từ tập dữ liệu mẫu.

Ở giai đoạn này, dữ liệu mẫu được cố ý để nhỏ. Ở các bước sau, chúng ta sẽ thay thế bằng tập dữ liệu lớn hơn, thực tế hơn.

Tóm tắt đầu ra cho thiết lập dự án.

Cuối cùng, nếu bạn kiểm tra https://chatgpt.com/codex/settings/usage, bạn sẽ thấy phần lớn hạn mức sử dụng vẫn còn, nghĩa là bạn có thể thoải mái tiếp tục xây dựng và lặp lại dự án này, thậm chí mở rộng hướng tới pipeline sẵn sàng sản xuất nếu cần.

Mức sử dụng mô hình Codex trên bảng điều khiển web Codex.

5. Triển khai Ingestion có tính Idempotent

Ở bước này, chúng ta đảm bảo quy trình ingestion có tính idempotent, nghĩa là có thể chạy lại an toàn mà không tạo dữ liệu trùng lặp. Đây là yêu cầu cơ bản trong kỹ thuật dữ liệu, vì các job ingestion thường cần thử lại hoặc chạy lại.

TASK 2 (IDEMPOTENT INGEST):
Make CSV ingestion idempotent.
- Rerunning ingest must not duplicate rows
- Validate required columns
- Validate event_time parseable and amount numeric

Add pytest:
- ingest twice → row count unchanged

Update README verification section.
Commit.

Mục tiêu đạt được ở bước này:

  • Logic ingestion giờ ngăn trùng lặp hàng khi ingest cùng một CSV nhiều lần
  • Áp dụng xác thực dữ liệu cơ bản tại thời điểm ingest
  • Một bài kiểm thử pytest xác nhận tính idempotent bằng cách chạy ingest hai lần và kiểm tra số hàng không đổi

Sau khi tác vụ hoàn tất, bạn có thể xem lịch sử Git trong VSCode và thấy agent AI tự động commit thay đổi sau cập nhật lớn. Điều này mang lại lịch sử phát triển sạch và có thể truy vết.

Lịch sử commit Git trong VSCode

Chúng tôi đã yêu cầu GPT-5.2 Codex chạy bộ kiểm thử như một phần của tác vụ này. Kết quả là các kiểm thử đã chạy thành công và tất cả đều vượt qua.

kiểm thử chạy thành công.

6. Thêm lớp Biến đổi (DuckDB SQL)

Ở bước này, chúng ta giới thiệu lớp biến đổi của pipeline. Các biến đổi được triển khai bằng DuckDB SQL, cho phép chúng ta chuyển dữ liệu thô đã ingest thành bảng fact sạch, sẵn sàng phân tích.

TASK 3 (TRANSFORM SQL):
Create backend/sql/010_fct_events.sql:
- typed columns
- deterministic dedupe

Execute transform from backend/pipeline.py.
Add sanity checks to README:
- raw_events count
- fct_events count

Commit.

Mục tiêu đạt được ở bước này:

  • Một biến đổi dựa trên SQL chuyển raw_events thành fct_events
  • Ép kiểu tường minh để đảm bảo lược đồ nhất quán
  • Khử trùng lặp quyết định để ngăn bản ghi phân tích bị trùng
  • Các bước kiểm chứng rõ ràng được ghi trong README để so sánh số hàng thô và đã biến đổi

Thêm lớp biến đổi bằng Codex

7. Xây dựng lớp Chỉ số với Pydantic

Ở bước này, chúng ta thêm lớp chỉ số, chịu trách nhiệm tính toán các đầu ra phân tích từ dữ liệu đã biến đổi. Các chỉ số được suy ra bằng DuckDB SQL và được cung cấp cho phần còn lại của hệ thống thông qua một giao diện Python có kiểu.

TASK 4 (METRICS):
Create backend/sql/020_metrics.sql.
Expose metrics via a Python function returning a Pydantic model.

Add pytest validating:
- keys exist
- types correct

Commit.

Mục tiêu đạt được ở bước này:

  • Một tệp SQL riêng biệt định nghĩa các chỉ số phân tích cốt lõi
  • Một hàm Python đóng vai trò hợp đồng rõ ràng giữa lớp dữ liệu và UI
  • Định kiểu mạnh cho đầu ra chỉ số bằng Pydantic
  • Kiểm thử tự động xác nhận cả cấu trúc lẫn tính đúng đắn của các chỉ số

Thêm lớp chỉ số bằng Codex

8. Trực quan hóa với bảng điều khiển Streamlit

Ở bước này, chúng ta xây dựng bảng điều khiển phân tích cục bộ bằng Streamlit. Bảng điều khiển chỉ chịu trách nhiệm hiển thị. Nó không tính chỉ số hay biến đổi dữ liệu. Tất cả giá trị được đọc từ lớp chỉ số đã tạo ở bước trước.

TASK 5 (STREAMLIT UI):
Build app/app.py:
- 3 KPI cards
- line chart for daily_count
- UI calls backend metrics function

Add a minimal smoke test.
Commit.

Sau khi hoàn thành tác vụ, Codex cung cấp hướng dẫn để dựng lại cơ sở dữ liệu DuckDB và chạy toàn bộ pipeline dữ liệu. Ở bước này, chúng ta dùng một cơ sở dữ liệu mới được điền bằng tập dữ liệu lớn hơn.

python backend\ingest.py --csv data\sample.csv
python backend\pipeline.py

Sau khi chạy ingestion, đầu ra xác nhận số sự kiện thô đã nạp vào DuckDB:

raw_events row count: 3738

Khi pipeline hoàn tất, khởi chạy ứng dụng Streamlit:

streamlit run app\app.py

Bạn có thể truy cập bảng điều khiển bằng cách mở URL http://localhost:8501 trong trình duyệt.

You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://192.168.18.10:8501

Nếu khi bảng điều khiển tải lần đầu có lỗi, điều này là bình thường trong các lần lặp đầu. Hãy sao chép thông báo lỗi và cung cấp cho GPT-5.2 Codex.

Khi chạy ứng dụng Streamlit trên trình duyệt, xuất hiện lỗi liên quan đến tệp dự án.

Codex sẽ xác định vấn đề và áp dụng bản vá cần thiết. Sau khi sửa, ứng dụng chạy thành công và hiển thị:

  • Tổng số sự kiện
  • Số người dùng duy nhất
  • Tổng số tiền giao dịch
  • Biểu đồ đường hiển thị số lượng sự kiện hàng ngày qua nhiều năm

Bảng điều khiển Streamlit hiển thị các chỉ số chính và biểu đồ

Tại thời điểm này, pipeline MVP end-to-end đã hoàn chỉnh và hoạt động đầy đủ.

9. Kiểm thử và độ tin cậy

Ở bước cuối, chúng ta tập trung vào xác minh và độ tin cậy. Mục tiêu là cung cấp một lệnh duy nhất chứng minh toàn bộ pipeline hoạt động đúng từ ingestion đến chỉ số và kiểm thử.

TASK 6 (VERIFY):
Add a verify command that:
- rebuilds DB from scratch
- ingests sample.csv
- runs transforms
- runs pytest

Document as "Local Demo" and "Verify" in README.
Commit.

Mục tiêu đạt được ở bước này:

  • Một lệnh xác minh duy nhất kiểm tra toàn bộ pipeline end-to-end
  • Tự động thực thi ingestion, biến đổi và kiểm thử theo đúng thứ tự
  • Tài liệu rõ ràng cho phép bất kỳ ai tái lập kết quả trên máy cục bộ

script xác minh cuối cùng và kiểm thử đã sẵn sàng.

Chúng tôi đã yêu cầu Codex cập nhật README, commit mọi thay đổi và đẩy chúng lên repository từ xa trên GitHub.

đẩy thay đổi lên máy chủ từ xa GitHub.

Kết quả là một GitHub repository hoàn chỉnh và được tổ chức tốt, bao gồm mọi script, kiểm thử, logic backend và hướng dẫn rõ ràng để chạy và xác minh dự án.

GitHub repository: kingabzpro/data-engineering-analytics-mvp

Nguồn: kingabzpro/data-engineering-analytics-mvp

Những suy nghĩ cuối 

Trước đây tôi đã dùng Codex qua CLI và trong VSCode theo thời gian, nhưng các cập nhật gần đây với GPT-5.2 Codex đã tạo ra khác biệt rõ rệt. Mô hình tốt hơn đáng kể trong việc xây dựng hệ thống hoàn chỉnh, gỡ lỗi và làm việc với các công cụ như MCP và tooling nội bộ. Nó cũng thể hiện hiểu biết mạnh hơn nhiều về codebase hiện có, giúp việc phát triển lặp lại hiệu quả hơn rất nhiều.

Từ đầu đến cuối, toàn bộ MVP này tốn của tôi chưa đến ba mươi phút để scaffold, gỡ lỗi và chạy end-to-end. Codex xử lý thiết lập repository, quản lý phụ thuộc, ingestion dữ liệu, biến đổi SQL, kiểm thử và bảng điều khiển Streamlit với rất ít can thiệp thủ công. Vòng lặp phát triển cảm giác chặt chẽ và dễ đoán, đúng như những gì bạn mong muốn khi xây nhanh.

Dự án này được cố ý là MVP. Nó sẽ cần thêm lặp lại và gia cố để sẵn sàng sản xuất. Dù vậy, cấu trúc lõi phản chiếu khá sát cách thiết kế hệ thống kỹ thuật dữ liệu thực tế, khiến nó trở thành nền tảng vững chắc để xây tiếp.

Nếu bạn muốn mở rộng dự án này hướng tới nền tảng dữ liệu thiên về sản xuất, các thành phần sau là bước tiếp theo tự nhiên nhưng đã được cố ý loại trừ ở đây để giữ phạm vi tập trung:

  • Công cụ điều phối workflow như Airflow, Prefect hoặc Dagster
  • Kho dữ liệu đám mây như Snowflake, BigQuery, Redshift hoặc Databricks
  • dbt như một framework biến đổi riêng, vì các mô hình SQL đang được viết trực tiếp trong DuckDB
  • Nền tảng streaming và ingestion thời gian thực như Kafka, Pulsar, Kinesis hoặc Flink
  • Lớp ngữ nghĩa và kho chỉ số như Looker, Cube, Druid hoặc Pinot
  • Xác thực, phân quyền và đa khách hàng
  • Hạ tầng đám mây, pipeline CI/CD và hạ tầng như mã dùng các công cụ như Terraform hoặc GitHub Actions
  • Tinh chỉnh hiệu năng nâng cao và tối ưu hóa quy mô lớn
  • Công cụ quản trị dữ liệu và khả năng quan sát, bao gồm lineage, catalog và các nền tảng chất lượng dữ liệu

Những công cụ này phổ biến trong hệ thống sản xuất, nhưng việc loại trừ chúng ở đây giúp dự án đơn giản, cục bộ và dễ suy luận, đồng thời vẫn phản ánh các mẫu hình kỹ thuật dữ liệu trong thực tế.

GPT-5.2 Codex FAQs

GPT-5.2 Codex có được bao gồm trong phiên bản miễn phí của VSCode không?

Không. GPT-5.2 Codex không có trong gói miễn phí. Truy cập các mô hình mã hóa agentic trong VSCode yêu cầu một gói ChatGPT Plus, Team hoặc Enterprise đang hoạt động. Người dùng miễn phí vẫn có thể dùng các tính năng VSCode tiêu chuẩn, nhưng sẽ không có quyền truy cập vào các tính năng agentic "Checkpoints" hoặc khả năng hiểu ngữ cảnh sâu do tiện ích Codex cung cấp.

GPT-5.2 Codex so với Claude Code như thế nào?

Mặc dù cả hai đều là công cụ mã hóa agentic hàng đầu, chúng nổi trội ở các quy trình khác nhau. Claude Code thường được ưa chuộng cho lập kế hoạch kiến trúc quy mô lớn và suy luận đa repo. GPT-5.2 Codex lại được xem là vượt trội hơn cho các chỉnh sửa "phẫu thuật", gỡ lỗi và duy trì tích hợp chặt chẽ với môi trường gốc của VSCode, đặc biệt trên Windows.

Cửa sổ ngữ cảnh của GPT-5.2 Codex là bao nhiêu?

GPT-5.2 Codex có giới hạn 128k token đầu ra và cửa sổ ngữ cảnh 200k được tối ưu bằng "Native Compaction." Điều này cho phép mô hình duy trì ngữ cảnh liên quan trong các phiên phát triển kéo dài—ví dụ như xây dựng toàn bộ pipeline MVP—mà không mất dấu thay đổi tệp hay hướng dẫn trước đó.

GPT-5.2 Codex có thực sự xây dựng toàn bộ ứng dụng từ đầu không?

Có, nhưng hoạt động tốt nhất theo cách lặp. Như minh họa trong hướng dẫn này, yêu cầu một "tái cấu trúc khổng lồ" một lần có thể đôi khi dẫn đến ảo giác hoặc tệp chưa hoàn chỉnh. Quy trình hiệu quả nhất là Agentic Layering: yêu cầu Codex scaffold cấu trúc trước, sau đó triển khai logic theo lớp (ví dụ: Ingestion → Transformation → UI).

Mã của tôi có an toàn khi dùng tiện ích Codex trên VSCode không?

OpenAI cho biết dữ liệu được xử lý qua các gói Enterprise và Team sẽ không được dùng để huấn luyện mô hình của họ. Tuy nhiên, với người dùng ChatGPT Plus cá nhân, bạn phải tự cấu hình cài đặt quyền riêng tư của OpenAI nếu muốn từ chối dùng dữ liệu cho huấn luyện mô hình. Với dữ liệu doanh nghiệp nhạy cảm, luôn dùng API hoặc gói Enterprise.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Là một nhà khoa học dữ liệu được chứng nhận, tôi đam mê tận dụng công nghệ tiên tiến để tạo ra các ứng dụng học máy đổi mới. Với nền tảng vững chắc về nhận dạng giọng nói, phân tích và báo cáo dữ liệu, MLOps, AI hội thoại và NLP, tôi đã rèn giũa kỹ năng phát triển các hệ thống thông minh có thể tạo ra tác động thực sự. Bên cạnh chuyên môn kỹ thuật, tôi cũng là một người truyền đạt tốt, có khả năng chắt lọc các khái niệm phức tạp thành ngôn ngữ rõ ràng, súc tích. Nhờ đó, tôi trở thành một blogger được nhiều người quan tâm trong lĩnh vực khoa học dữ liệu, chia sẻ góc nhìn và kinh nghiệm với cộng đồng các chuyên gia dữ liệu ngày càng lớn. Hiện tại, tôi tập trung vào sáng tạo và biên tập nội dung, làm việc với các mô hình ngôn ngữ lớn để phát triển nội dung mạnh mẽ và hấp dẫn, giúp doanh nghiệp và cá nhân tận dụng tối đa dữ liệu của mình.

Chủ đề
OpenAI
Trí tuệ Nhân tạo

Các khóa học hàng đầu trên DataCamp

Khóa học

Làm việc với OpenAI API

3 giờ
185.3K
Bắt đầu hành trình phát triển ứng dụng tích hợp AI với OpenAI API. Tìm hiểu về chức năng làm nền tảng cho các ứng dụng AI phổ biến như ChatGPT.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm