Header Ads Widget

Một số prompt hay dùng trong AI

Một số prompt mẫu thường dùng để AI xử lý công việc 

I. Thay đổi biến ngôn ngữ

Tìm các text tiếng việt chưa dịch, thay bằng t('code'), kiểm tra text đó không có trong file ngôn ngữ tôi gửi đính kèm nếu chưa có thì gửi lại các biến đó theo cấu trúc sql bên dưới, chỉ gửi lại các biến chưa có
 
INSERT INTO language (code, vi_value, en_value)
VALUES
('text_1', 'Text 1', 'English Text 1'),
('text_2', 'Text 2', 'English Text 2'),
('text_3', 'Text 3', 'English Text 3');

Hoặc
# Nhiệm vụ

Chuyển toàn bộ text hiển thị (hardcoded UI text) trong file React/TypeScript sang đa ngôn ngữ bằng `t('...')`.

## Input

* File React/TypeScript cần xử lý.
* File ngôn ngữ `language` được cung cấp.

---

# Quy trình xử lý

1. Đọc toàn bộ file language.
2. So sánh theo **giá trị tiếng Việt (`vi_value`)**, **không so sánh theo tên biến (`code`)**.
3. Với mỗi text hiển thị trong source:

   * Nếu đã tồn tại trong language → thay bằng `t('code')`.
   * Nếu chưa tồn tại trong language:

     * Không tạo biến mới.
     * Không sửa nội dung text.
     * Giữ nguyên text trong source.
4. Sau khi xử lý xong, liệt kê toàn bộ các text chưa có trong language và sinh câu lệnh SQL để thêm chúng.

---

# Chỉ được thay

Các text hiển thị cho người dùng, bao gồm nhưng không giới hạn:

* JSX text
* Button
* Label
* Placeholder
* Tooltip
* Title
* Modal
* Drawer
* Dialog
* Popconfirm
* Notification
* Message
* Alert
* Empty state
* Validation message
* Tab
* Menu
* Dropdown
* Breadcrumb
* Card title
* Collapse title
* Table column title
* Form label
* Checkbox
* Radio
* Select option
* Switch label
* Upload text
* Badge
* Tag
* Timeline
* Steps
* Statistic
* Description
* aria-label
* alt
* title attribute
* helper text
* hint text
* Text nằm trong render()
* Text trong callback trả về JSX
* Text trong array `.map()`
* Text trong `columns`
* Text trong `items`
* Text trong cấu hình UI component
* Bất kỳ chuỗi nào cuối cùng sẽ hiển thị lên giao diện người dùng

---

# Không được thay

* Tên biến
* Function name
* Object key
* API
* URL
* Route
* className
* id
* enum
* Comment
* Logic xử lý
* Giá trị phục vụ logic
* Dữ liệu không hiển thị cho người dùng

---

# Quy tắc

* Không thay đổi format code.
* Không đổi indent.
* Không đổi thứ tự code.
* Không refactor.
* Không sửa logic.
* Không tự ý đổi nội dung text.
* Không thêm hoặc xoá import ngoài những gì thật sự cần (ví dụ chỉ thêm `useTranslation` nếu file chưa có).
* Giữ nguyên coding style của file.
* Nếu file đã có `useTranslation` hoặc `t` thì sử dụng lại, không tạo trùng.

---

# Định dạng thay thế

Ví dụ:

```tsx
<Button>Lưu</Button>
```


```tsx
<Button>{t('save')}</Button>
```

Ví dụ:

```tsx
placeholder="Tên khách hàng"
```


```tsx
placeholder={t('customer_name')}
```

---

# Nếu có text chưa tồn tại trong language

Giữ nguyên text trong source và xuất thêm:

```text
Các text chưa có:

- Text 1
- Text 2
- Text 3
```

Sau đó sinh SQL:

```sql
INSERT INTO language (code, vi_value, en_value)
VALUES
('text_1', 'Text 1', 'English Text 1'),
('text_2', 'Text 2', 'English Text 2'),
('text_3', 'Text 3', 'English Text 3');
```

---

# Quy tắc đặt code

* Chữ thường.
* Tiếng Anh.
* Không dấu.
* Dùng `_` để ngăn cách.
* Ngắn gọn.
* Dễ tái sử dụng.
* Phản ánh đúng ngữ nghĩa của nội dung.

---

# Rà soát bắt buộc (KHÔNG ĐƯỢC BỎ QUA)

Sau khi hoàn thành, **không được trả kết quả ngay**.

Bắt buộc thực hiện **03 vòng rà soát độc lập** trên toàn bộ file.

## Vòng 1

Quét toàn bộ file từ đầu đến cuối để thay thế.

## Vòng 2

Đọc lại toàn bộ file như một code reviewer.

Kiểm tra xem còn bất kỳ chuỗi tiếng Việt nào hiển thị trên giao diện chưa được thay bằng `t('...')` hay không.

## Vòng 3

Quét lại toàn bộ file lần cuối.

Đối với **mọi chuỗi string tiếng Việt**, tự hỏi:

> Chuỗi này có hiển thị cho người dùng không?

* Nếu CÓ:

  * Có trong language → bắt buộc đổi sang `t('...')`.
  * Chưa có trong language → giữ nguyên và đưa vào danh sách thiếu.
* Nếu KHÔNG:

  * Không được thay.

---

# Kiểm tra bắt buộc các vị trí dễ bỏ sót

Đặc biệt phải kiểm tra kỹ các vị trí sau:

* JSX lồng nhiều cấp
* Conditional render (`&&`, `?:`)
* `render()`
* `renderCell`
* `renderItem`
* `renderContent`
* `columns`
* `items`
* `options`
* `tabs`
* `menu`
* `breadcrumb`
* `steps`
* `modal`
* `drawer`
* `notification`
* `message`
* `toast`
* `Form.Item`
* `rules`
* `placeholder`
* `tooltip`
* `title`
* `description`
* `emptyText`
* `locale`
* `pagination`
* `.map()`
* `useMemo`
* `useCallback`
* Component custom nhận prop là text
* Object cấu hình UI
* Mọi chuỗi được truyền qua props để hiển thị.

---

# Tiêu chí hoàn thành

Chỉ được kết thúc khi đáp ứng đầy đủ tất cả điều kiện sau:

* Đã đọc toàn bộ file language.
* Đã quét toàn bộ file React từ đầu đến cuối.
* Đã thực hiện đủ 3 vòng rà soát.
* Không còn bất kỳ UI text nào đủ điều kiện nhưng chưa được chuyển sang `t('...')`.
* Mọi text chưa tồn tại trong language đều đã được liệt kê.
* SQL được sinh đầy đủ cho toàn bộ text còn thiếu.

Nếu còn nghi ngờ một chuỗi có phải UI text hay không thì **ưu tiên kiểm tra thêm ngữ cảnh trước khi kết luận**.

**Không được kết thúc sớm khi chưa hoàn thành đầy đủ các bước trên.**

---

# Kết quả trả về

1. File đã thay toàn bộ các text có sẵn trong language sang `t('code')`.
2. Danh sách các text chưa có trong language.
3. Câu lệnh SQL `INSERT IGNORE INTO language` cho các text còn thiếu.
4. Không tự ý thêm bất kỳ biến ngôn ngữ nào ngoài danh sách SQL được sinh.

 

II. Viết tài liệu hướng dẫn từ CURL

Trong quá trình phát triển phần mềm, việc viết tài liệu API thường mất khá nhiều thời gian. Thay vì viết thủ công, bạn có thể cung cấp cURL (và nếu có thì kèm Response JSON) cho AI để tự động sinh tài liệu API theo một cấu trúc thống nhất.

Tài liệu được tạo nên bao gồm:

  • Thông tin chung của API.
  • Mục đích sử dụng.
  • URL (Endpoint).
  • Header.
  • Body Request.
  • Query Parameters.
  • Path Parameters.
  • Trạng thái trả về từ API.
  • Response.
  • Response lỗi.
  • Luồng xử lý.
  • Ví dụ cURL.

Prompt sử dụng

Bạn là Technical Writer. Tôi sẽ cung cấp cho bạn cURL của một API (và có thể kèm Response JSON). Hãy phân tích và viết tài liệu API bằng tiếng Việt theo định dạng Markdown chuyên nghiệp để có thể đưa trực tiếp vào Google Docs hoặc tài liệu kỹ thuật.

Yêu cầu:
- Không tự suy diễn dữ liệu, nếu thiếu thì ghi "Chưa xác định".
- Chỉ ghi Endpoint, không ghi Base URL.
- Phân tích đầy đủ Method, Header, Query Parameters, Path Parameters, Body và Response.
- Nếu dùng Bearer Token thì tự thêm Authorization Header.
- Nếu là upload file thì tự nhận biết multipart/form-data, chỉ hiển thị các field upload và bổ sung mục Quy định Upload.
- Nếu Response theo chuẩn {status, msg, data} thì tạo thêm bảng Trạng thái trả về từ API.
- Response, Request Body và các Parameters phải trình bày dưới dạng bảng.
- Có ví dụ Response JSON.
- Có các Response lỗi nếu xác định được.
- Có Luồng xử lý.
- Cuối tài liệu đặt lại đầy đủ cURL.

Cấu trúc tài liệu:

# <Tên API>

## Mục đích

## URL

## Header

## Body

## Query Parameters

## Path Parameters

## Trạng thái trả về từ API

## Response

## Response lỗi

## Luồng xử lý

## Ví dụ cURL

Cách sử dụng

Chỉ cần gửi cho AI:

Viết tài liệu API theo mẫu dưới đây.

cURL:
<dán cURL>

Response:
<dán JSON Response>


III. Kiểm tra và check lỗi

Hãy rà soát cnăng này để phát hiện các phần đã code nhưng đang hoạt động không đúng, đặc biệt tập trung vào API, dữ liệu và hiển thị giao diện. Yêu cầu kiểm tra: Rà soát toàn bộ API đang được gọi Tìm tất cả các request: fetch, axios, service API, Redux action/thunk, React Query hoặc các hàm request khác. Kiểm tra URL, endpoint, HTTP method, params, query params và body truyền lên. Kiểm tra API nào gọi lỗi, sai endpoint, sai method hoặc thiếu params. Kiểm tra API nào đã viết nhưng thực tế không được gọi. Kiểm tra API bị gọi lặp không cần thiết. Kiểm tra API gọi sai thời điểm do useEffect, dependency hoặc lifecycle. Kiểm tra dữ liệu API trả về Đối chiếu cấu trúc response với cách frontend đang đọc dữ liệu. Tìm các trường hợp sai path, ví dụ API trả data.items nhưng code lại đọc data.data. Kiểm tra field bị sai tên, undefined, null hoặc sai kiểu dữ liệu. Kiểm tra pagination, total, page, limit nếu có. Kiểm tra dữ liệu có trả về nhưng không được set vào state/Redux đúng cách. Kiểm tra dữ liệu không hiển thị trên giao diện API thành công và có dữ liệu nhưng component không render. State đã có dữ liệu nhưng UI không cập nhật. Điều kiện render sai. Mapping dữ liệu sai field. Component nhận sai hoặc thiếu props. Redux selector lấy sai dữ liệu. useMemo, useEffect, useCallback dependency sai làm dữ liệu không cập nhật. Loading state không được tắt. Error state che mất dữ liệu. Filter/search làm mất dữ liệu ngoài ý muốn. Kiểm tra các thao tác CRUD Danh sách. Chi tiết. Thêm mới. Cập nhật. Xóa. Bật/tắt trạng thái. Search/filter. Pagination. Upload nếu có. Đảm bảo sau khi thao tác thành công thì dữ liệu trên giao diện được cập nhật đúng, không cần reload trang nếu thiết kế hiện tại không yêu cầu. Kiểm tra lỗi runtime Console error/warning. Promise rejection. Access property of undefined/null. React key warning. Infinite render / infinite API request. Memory leak. State update sau khi component unmount. Import/component/function bị thiếu hoặc sai. Kiểm tra các màn hình đã làm Không chỉ kiểm tra file đang mở. Tìm từ router/menu để xác định toàn bộ page/module liên quan. Lần theo luồng: Page -> Component -> Hook/Redux -> Service/API -> Response -> State -> Render Phát hiện những chức năng đã có UI nhưng chưa nối API hoặc nối API chưa hoàn chỉnh. Không tự ý thay đổi business logic Trước tiên hãy xác định lỗi dựa trên code hiện tại. Không tự tạo endpoint hoặc field API khi chưa có căn cứ. Nếu không xác định được response thực tế của backend thì ghi rõ phần cần xác minh, không đoán cấu trúc dữ liệu. Sau khi rà soát, hãy sửa trực tiếp các lỗi có thể xác định chắc chắn Ưu tiên lỗi khiến API không chạy. API chạy nhưng dữ liệu không hiển thị. Sai mapping response. Sai state/Redux. Sai dependency. Sai params/body. Loading/error handling bị kẹt. Các lỗi runtime liên quan. Sau khi sửa xong Chạy lint/build/typecheck/test nếu project có hỗ trợ. Sửa các lỗi phát sinh liên quan đến phần vừa thay đổi. Không sửa lan sang các phần không liên quan nếu không cần thiết. Cuối cùng báo cáo ngắn gọn theo format: Đã kiểm tra Các page/module đã rà soát Các API đã kiểm tra Lỗi phát hiện Filenày

Nhận xét