Building with the Claude API là gì? Là khoá developer của Anthropic Academy về tích hợp Claude qua API: gọi API, tool calling, prompt engineering, RAG và agentic workflow. Đây là ghi chú tiếng Việt tóm tắt khoá — thuật ngữ giữ nguyên tiếng Anh kèm chú thích. (Ghi chú đang được cập nhật dần theo tiến độ học khoá ~8 giờ.)
TL;DR — Mỗi lần người dùng bấm "send", request đi qua 5 bước: client → server của bạn → Anthropic API → model xử lý → response về server → response về client. Bạn luôn cần một server riêng vì API key là bí mật, không được lộ ra client. Request bắt buộc có 4 field (API key · model · messages · max_tokens). Bên trong, Claude xử lý qua 4 giai đoạn: tokenization → embedding → contextualization → generation.
Hiểu trọn vòng đời một request giúp bạn ra quyết định kiến trúc tốt hơn và debug nhanh hơn — biết lỗi nằm ở khúc nào trong pipeline.
| # | Bước | Chuyện gì xảy ra |
|---|---|---|
| 1 | Request to server | Web/mobile app gửi input người dùng tới server của bạn (không gọi thẳng Anthropic). |
| 2 | Request to Anthropic API | Server gắn API key + tham số rồi gọi Anthropic API (qua SDK hoặc HTTP thuần). |
| 3 | Model processing | Claude xử lý input qua 4 giai đoạn (xem dưới) và sinh response. |
| 4 | Response to server | Anthropic trả về một response có cấu trúc (message · usage · stop_reason). |
| 5 | Response to client | Server chuyển text sinh ra về app, hiển thị cho người dùng. |
KHÔNG bao giờ gọi Anthropic API trực tiếp từ client-side code.
Thay vào đó: app gửi request tới server của bạn, server giữ key an toàn (biến môi trường / secret manager) rồi mới nói chuyện với Anthropic API.
Server có thể gọi Anthropic API bằng SDK chính thức hoặc HTTP request thuần. Anthropic cung cấp SDK cho Python, TypeScript, JavaScript, Go, Ruby.
Mọi request đều phải có 4 field cốt lõi:
| Field | Mục đích |
|---|---|
| API Key | Xác thực request của bạn với Anthropic. |
| Model | Tên model cần dùng (vd một model id họ claude-…; id tiến hoá theo thời gian nên luôn tra id hiện hành). |
| Messages | Danh sách "messages" chứa input người dùng. Text người dùng được bọc trong một message role: "user", rồi đặt vào list messages. |
| Max Tokens | Giới hạn số token tối đa Claude được sinh ra. |
Khi Anthropic nhận request, Claude chạy qua 4 giai đoạn: tokenization → embedding → contextualization → generation.
1. Tokenization — Claude cắt input thành các mẩu nhỏ gọi là token (có thể là cả từ, một phần từ, dấu cách, hay ký hiệu). Để đơn giản, cứ hình dung mỗi từ ≈ một token. Ví dụ "What is quantum computing?" → What · is · quantum · computing · ?.
2. Embedding — Mỗi token được đổi thành một embedding: một danh sách dài các con số (vector) biểu diễn mọi nghĩa khả dĩ của từ đó — như một "định nghĩa bằng số" nắm bắt quan hệ ngữ nghĩa.
Một từ thường đa nghĩa. Ví dụ "quantum" có thể là: (1) đơn vị rời rạc của một đại lượng vật lý; (2) khái niệm cơ học/vật lý lượng tử; (3) thứ cực nhỏ ở mức hạ nguyên tử; (4) liên quan tới quantum computing. Embedding ban đầu mang theo tất cả các nghĩa này.
3. Contextualization — Claude tinh chỉnh từng embedding dựa trên các từ xung quanh để xác định nghĩa khả dĩ nhất trong ngữ cảnh. Cùng từ "quantum" nhưng đứng cạnh "computing" sẽ được kéo về nghĩa "quantum computing", loại bớt các nghĩa kia.
4. Generation — Các embedding đã ngữ cảnh hoá đi qua một output layer tính xác suất cho mỗi từ kế tiếp khả dĩ. Claude không phải lúc nào cũng chọn từ xác suất cao nhất — nó pha trộn xác suất với một chút ngẫu nhiên có kiểm soát để câu trả lời tự nhiên, đa dạng. Chọn xong một từ, nó thêm vào chuỗi và lặp lại toàn bộ quá trình cho từ tiếp theo.
Sau mỗi token, Claude kiểm tra để quyết định có sinh tiếp không:
max_tokens bạn đặt chưa?Khi sinh xong, API trả về một response có cấu trúc:
| Field | Nội dung |
|---|---|
| Message | Text Claude sinh ra. |
| Usage | Số token input và output (cơ sở để tính chi phí). |
| Stop Reason | Vì sao dừng (xem 3 điều kiện trên). |
Server nhận response này, lấy text và chuyển về client để hiển thị.
Góc Delivery Manager. Cái sơ đồ "5 bước" này không chỉ là kiến thức học thuộc — nó là bản đồ rủi ro để mình thiết kế và vận hành. (1) Bước "server riêng" không thương lượng: với team mình, key luôn nằm ở secret manager phía server, không bao giờ ở repo/client — và đây cũng là chỗ đặt rate-limit + logging tập trung. (2)
max_tokensvàusagelà đòn bẩy chi phí: đặt trần token đúng theo use case (chatbot ngắn vs tổng hợp tài liệu) tránh vừa đốt tiền vừa để câu trả lời lan man. (3)stop_reasonphải được xử lý tường minh trong code: dừng vìmax_tokens(output bị cắt giữa chừng — cần xử lý khác) hoàn toàn khác dừng tự nhiên — nuốt lỗi này là nguồn của những bug "câu trả lời cụt" khó tái hiện. Cuối cùng, biết pipeline 5 bước giúp khoanh vùng sự cố nhanh: lỗi ở server mình, ở request gửi đi, hay ở phía model.
Thuật ngữ giữ nguyên tiếng Anh — đúng cách chúng xuất hiện trong tài liệu gốc và đề thi.
🔴 Core: 5-step request flow · server-side API key (không lộ client) · 4 required fields (API key · model · messages · max_tokens) · messages với role: "user" · Tokenization · Embedding · Contextualization · Generation · stop_reason (max_tokens / end-of-sequence / stop sequence) · usage (input/output tokens).
🟡 Important: SDK (Python · TypeScript · JavaScript · Go · Ruby) vs HTTP request · token (mẩu chữ) · output layer · controlled randomness · response structure (message · usage · stop_reason).
🟢 Good-to-know: đa nghĩa của từ ("quantum") · embedding = "định nghĩa bằng số" · pipeline như bản đồ debug.
Nguồn: Building with the Claude API (Anthropic Academy) — Copyright Anthropic. Phần đề thi thử cho khoá này nằm ở tab "Đề thi thử".
Đề thi thử tự biên soạn, bám sát đề thi chứng chỉ thật. Bản tương tác — chấm điểm, đáp án & giải thích từng câu — nằm ở tab “Đề thi thử” trên trang.
Request Lifecycle Why should you NOT call the Anthropic API directly from client-side code (web or mobile app)?
Request Lifecycle What is the correct order of the five-step request flow?
Request Lifecycle (Select all that apply) Which fields are required in every request to the Claude API? (chọn nhiều đáp án)
Request Lifecycle When a request is built, where is the user's input text placed?
Request Lifecycle What does the "max_tokens" field control?
Request Lifecycle (Select all that apply) For which languages does Anthropic provide official SDKs? (chọn nhiều đáp án)
Model Processing What is the correct order of the four stages Claude uses to process a request?
Model Processing What is a "token"?
Model Processing What does an embedding represent?
Model Processing What is the purpose of the contextualization stage?
Model Processing During generation, does Claude always pick the single highest-probability next word?
Model Processing (Select all that apply) Which conditions cause Claude to stop generating? (chọn nhiều đáp án)
API Response (Select all that apply) Which fields are included in the structured API response? (chọn nhiều đáp án)
API Response Your application receives a response and the output text appears cut off mid-sentence. Which stop reason most likely explains this?