Tổng hợp 134 câu hỏi phỏng vấn AI Engineering kèm đáp án chi tiết, song ngữ Việt–Anh — sắp xếp từ cơ bản đến nâng cao. Ôn luyện miễn phí, tự động lưu tiến độ.
LLM là mô hình ngôn ngữ dựa trên kiến trúc Transformer, được pre-train trên lượng lớn text corpus (hàng trăm tỷ đến hàng nghìn tỷ token). Cốt lõi của LLM là dự đoán token tiếp theo (next-token prediction) dựa trên chuỗi token đầu vào —…
Transformer (Vaswani 2017) gồm các khối chính: Token embedding (biến token ID thành vector) + Positional encoding (thêm thông tin vị trí); Multi-Head Self-Attention (cho phép mỗi token "nhìn" các token khác qua Query/Key/Value); Feed-Forward Network (FFN — 2 lớp linear + activation, thường mở…
Tokenization là bước chia text thành đơn vị nhỏ (token) mà model có thể hiểu — có thể là ký tự, subword, hoặc word. LLM hiện đại thường dùng subword tokenization vì cân bằng được kích thước vocabulary và khả năng xử lý từ chưa…
Self-attention cho phép mỗi token "hỏi" các token khác trong câu mức độ liên quan rồi lấy thông tin tương ứng — giải quyết được hạn chế của RNN (phụ thuộc xa). Với input X, model tính 3 ma trận bằng 3 linear projection: Q…
Context window là số token tối đa model có thể "nhìn thấy" cùng lúc — bao gồm cả prompt (system + user + history) và output đang sinh. Model hiện hành phổ biến ở mức vài trăm nghìn token, một số (như Gemini) lên tới…
Đây là ba tham số sampling kiểm soát cách chọn token tiếp theo từ phân phối xác suất do model sinh ra. Temperature (T) chia logits trước softmax: softmax(logits / T). T=0 → greedy (luôn chọn token xác suất cao nhất, deterministic). T<1 → làm…
Zero-shot: chỉ mô tả task bằng ngôn ngữ tự nhiên, không cho ví dụ. Ví dụ: "Phân loại sentiment của câu sau: 'Sản phẩm rất tệ'". Dùng khi task phổ biến, model lớn đủ khả năng hiểu. One-shot: cho 1 ví dụ input→output trước task…
Chain-of-Thought là kỹ thuật yêu cầu model "suy nghĩ từng bước" trước khi đưa ra đáp án cuối, thay vì trả lời trực tiếp. Tăng độ chính xác đáng kể trên các task reasoning (toán, logic, nhiều bước). Hai dạng: Zero-shot CoT — thêm câu…
ReAct (Yao et al. 2022) kết hợp Reasoning (suy luận bằng CoT) với Acting (gọi tool/API lấy thông tin bên ngoài). Model lặp vòng: Thought → Action → Observation → Thought → ... cho đến khi có đủ dữ kiện để trả lời. Ví dụ…
Prompt Injection là tấn công bảo mật đặc thù của LLM, trong đó attacker chèn instruction độc vào input (user text, tài liệu, kết quả tool) để ghi đè system prompt, làm model làm việc ngoài ý muốn. Phân loại: Direct injection — user gõ…
Các cách theo độ tin cậy tăng dần: 1. Prompt-only — yêu cầu JSON + cho schema mẫu. Kém ổn định, model có thể wrap trong markdown, thêm comment, thiếu field. 2. JSON mode — OpenAI responseformat: {"type": "jsonobject"}, Anthropic prompt patterns. Đảm bảo output…
Prompt chaining là chia một việc phức tạp thành chuỗi prompt nhỏ, đầu ra của bước trước làm đầu vào bước sau. Luồng do lập trình viên định trước, không phải do model quyết. Ví dụ viết một bài blog: sinh dàn ý → viết…
RAG là kỹ thuật bổ sung kiến thức bên ngoài cho LLM tại runtime bằng cách retrieve (tìm kiếm) đoạn tài liệu liên quan từ knowledge base, rồi chèn vào prompt để LLM generate câu trả lời dựa trên ngữ cảnh đó. Tại sao cần:…
RAG cần 2 giai đoạn: Indexing (offline build knowledge base) và Querying (online retrieve + generate). A. Indexing (offline): 1. Data loading — đọc tài liệu (PDF, HTML, Markdown, DB, API). 2. Parsing/cleaning — extract text, xử lý table/image, loại bỏ boilerplate. 3. Chunking —…
1. Fixed-size chunking — cắt theo số ký tự/token cố định (ví dụ 500 token, overlap 50). Đơn giản, nhanh; nhược: cắt giữa câu/ý làm mất ngữ nghĩa. 2. Recursive character chunking (LangChain RecursiveCharacterTextSplitter) — chia theo danh sách separator ưu tiên ["\n\n", "\n", ".…
Vector search (dense) giỏi ngữ nghĩa (semantic) — tìm được câu diễn đạt khác nhưng cùng ý ("car" ↔ "automobile"). Yếu với: từ hiếm (mã sản phẩm SKU-A2391, tên riêng), acronym, exact match, số liệu. Keyword search (sparse — BM25, TF-IDF) giỏi exact match và…
LLM call thuần — input vào, output ra, 1 lượt. Không có bộ nhớ ngoài context, không tương tác bên ngoài. AI Agent = LLM đóng vai trò "brain" kết hợp với tools (truy cập thế giới bên ngoài), memory (state qua nhiều turn), và…
Tool calling (function calling): app khai báo danh sách tool với JSON schema (tên, mô tả, parameters). LLM đọc câu hỏi, nếu cần dùng tool sẽ trả về structured output {"tool": "search", "args": {"query": "..."}}. App thực thi tool, trả kết quả vào context, LLM…
Model Context Protocol (Anthropic công bố 11/2024) là giao thức mở chuẩn hoá cách LLM/agent kết nối với tools, data sources, và prompts bên ngoài. Giống như "USB-C cho AI": thay vì mỗi app AI tự viết integration riêng cho Google Drive, GitHub, Postgres..., các…
Agent cần nhiều loại memory với vai trò khác nhau: 1. Short-term / Working memory — conversation history trong session hiện tại, lưu trực tiếp trong context window. Giới hạn bởi context size; khi quá dài phải xử lý: - Sliding window: giữ N turn…
HITL là để agent dừng lại xin ý kiến người trước khi đi tiếp, thay vì chạy tự chủ hoàn toàn. Khi bắt buộc phải có — quy về ba nhóm: - Hành động không hoàn tác được: xoá dữ liệu, git push --force, merge…
Fine-tuning là quá trình tiếp tục train một model pre-trained trên dataset chuyên biệt của bạn để model "nhớ" phong cách, format, hoặc kiến thức domain. Khác pre-training (train từ đầu trên raw text) và prompt engineering (không đụng vào weights). Các loại: Full fine-tuning…
Vấn đề của full fine-tuning: LLaMA-70B có 70 tỷ tham số → update hết cần hàng trăm GB VRAM, khó train trên GPU phổ thông. Lưu mỗi task 1 bản full weights cũng rất tốn. Ý tưởng LoRA (Hu et al. 2021): giữ nguyên (freeze)…
RLHF là quy trình biến một base model (chỉ biết đoán token tiếp theo) thành trợ lý biết nghe chỉ dẫn và biết từ chối. Base model đọc xong cả internet vẫn không biết nên trả lời thế nào — RLHF dạy nó điều đó.…
Chất lượng dữ liệu quyết định kết quả fine-tune nhiều hơn kỹ thuật fine-tune. Model học đúng những gì được cho xem, kể cả cái sai. Cần bao nhiêu: - LoRA/QLoRA cho tác vụ hẹp — 500 tới vài nghìn ví dụ chất lượng cao…
Embedding là biểu diễn vector số của dữ liệu (text, image, audio) sao cho khoảng cách trong không gian vector phản ánh độ tương đồng ngữ nghĩa. Ví dụ vector của "dog" và "puppy" rất gần nhau; "dog" và "bicycle" xa nhau. Cách tạo text…
DB truyền thống tra cứu bằng khớp chính xác hoặc khoảng giá trị với B-tree hay hash — cực nhanh cho WHERE id = ?. Nhưng câu hỏi "vector nào gần vector này nhất trong 10 triệu vector" thì index đó vô dụng, và quét…
MLOps quản lý lifecycle ML classic (train → deploy → monitor) với mô hình in-house, feature pipeline, model registry. LLMOps kế thừa nhưng phải giải quyết 5 đặc thù của LLM: 1. Model ownership: LLM thường là API bên thứ 3 (OpenAI, Anthropic) → quan…
Quantization là giảm độ chính xác biểu diễn của trọng số (và có thể cả activation) để tiết kiệm bộ nhớ và chạy nhanh hơn, đổi lại mất một ít chất lượng. Các mức thường gặp: - FP32 — độ chính xác lúc train, gần…
LLM sinh token lần lượt, nên stream từng mảnh ra client ngay khi có thay vì đợi xong cả câu trả lời. Được gì: người dùng thấy chữ chạy sau chưa tới một giây, nên tổng thời gian 10 giây vẫn thấy nhanh; và họ…
Prompt là artifact chính của LLM app: sửa một dòng có thể làm sập chất lượng mà không compiler nào báo. Nên quản như code. Đánh version: - Đưa prompt ra ngoài code. Để trong repo thì mỗi lần chỉnh chữ phải build và deploy…
LLM-as-a-judge là dùng một LLM mạnh để chấm output của LLM khác theo các tiêu chí như đúng/sai, hữu ích, bám đề, an toàn. Nó thay được phần lớn công chấm tay: rẻ hơn khoảng ba bậc và chạy được trên hàng chục nghìn mẫu.…
Hallucination là model sinh ra thông tin nghe hợp lý nhưng sai hoặc không có trong nguồn. Hai loại cần tách bạch vì cách xử lý khác nhau: - Nội tại — mâu thuẫn với chính ngữ cảnh đã cung cấp. Đây là loại nghiêm…
Multi-modal AI là model xử lý nhiều loại dữ liệu cùng lúc (chữ, ảnh, âm thanh, video). Chia hai hướng: hiểu đa phương thức (các VLM như GPT-4o, Claude, Gemini) và sinh đa phương thức (DALL·E, Stable Diffusion, Sora). CLIP là nền của gần như…
PII gồm tên, email, số điện thoại, CCCD, số thẻ, địa chỉ, hồ sơ y tế. Với LLM có bốn đường rò: gửi thẳng lên provider bên ngoài, lọt vào log, lọt vào dữ liệu fine-tune rồi bị model ghi nhớ, và chính model sinh…
Chọn sai GPU thì chi phí phục vụ chênh nhau vài lần. Ba yếu tố, và thứ tự quan trọng không như nhiều người nghĩ. 1. VRAM — quyết định có chạy được hay không. Phải chứa đủ: - Trọng số: số tham số ×…
LLM serving có bộ chỉ số riêng; đo như web API thường sẽ không thấy nút thắt nằm ở đâu. Độ trễ — nhìn theo hai pha, đừng nhìn con số tổng: - TTFT (Time To First Token) — từ lúc nhận request đến token…
Minimal working RAG trong Python ~80 dòng (không framework), để show các thành phần rõ ràng: Nâng cấp khi lên production: 1. Chunking — dùng RecursiveCharacterTextSplitter (LangChain) hoặc semantic chunking thay vì split raw. 2. Vector DB — thay SimpleVectorStore bằng Qdrant/Pinecone/pgvector; persist, scale, filter…
Lời gọi LLM hỏng vì nhiều lý do khác nhau, và mỗi loại lỗi cần cách xử lý khác nhau — đây mới là phần chính, không phải đoạn code retry. Lỗi Xử lý ------ 429 quá hạn mức chờ đúng theo header Retry-After provider…
Cache thông thường khớp key chính xác, nên "thủ đô VN?" và "Việt Nam có thủ đô gì?" là hai key khác nhau dù cùng một ý. Semantic cache embed câu hỏi thành vector, tìm câu đã hỏi gần giống, đủ giống thì trả luôn…
Không có 1 method nào đủ — cần defense in depth. Code pattern cho input guardrail: Patterns production hay dùng: 1. Delimiter wrap trước khi inject vào system prompt: 2. Structured input — thay vì cho user gõ free text, dùng form/dropdown reduce attack surface.…
ML Engineer xây model từ dữ liệu: feature engineering, chọn kiến trúc, train, rồi lo cả pipeline MLOps quanh nó — thu thập dữ liệu, feature store, model registry, retrain khi drift. Sản phẩm bàn giao là bộ trọng số + pipeline train. AI Engineer…
Trả lời kém câu này thì feature bị cắt. Điều lãnh đạo muốn nghe là con số có nguồn gốc, không phải niềm tin vào AI. Khung: ROI = (Lợi ích − Chi phí) / Chi phí. Chi phí dễ đo, nhưng đừng chỉ tính…
Câu "sao không 100%" là câu hỏi về kỳ vọng, không phải câu hỏi kỹ thuật. Đáp bằng thuật ngữ (hallucination, temperature) là mất người nghe ngay. Khung trả lời: - Đổi câu hỏi từ đúng/sai sang ngưỡng chấp nhận. Không phải "AI có đúng…
STT (nhận dạng tiếng nói) — chuẩn mở hiện nay là Whisper: - Kiến trúc: Transformer encoder-decoder. Audio → phổ log-mel → encoder → decoder sinh token chữ. - Train đa nhiệm trên ~680k giờ audio kèm văn bản nhiều thứ tiếng, nên cùng một…
Vòng lặp agent về bản chất rất ngắn: gọi model kèm khai báo tool → nếu model xin gọi tool thì chạy tool, nhét kết quả vào hội thoại, gọi lại → lặp cho tới khi model trả lời thẳng. Ví dụ hỏi "GDP Việt…
Bắt đầu bằng phân bố nguyên nhân: khoảng 70% lỗi RAG nằm ở chunking và retrieval, 20% ở prompt và cách ghép ngữ cảnh, 10% ở model. Đừng nhảy vào đổi model trước — đó là chỗ ít khả năng gây lỗi nhất. Nguyên tắc:…
Prompt tốt tách bạch các thành phần rõ ràng để model không phải đoán ý: 1. Vai trò / bối cảnh (role) — "Bạn là chuyên viên phân tích hợp đồng...". 2. Nhiệm vụ cụ thể (task) — nói rõ việc cần làm, tránh mơ…
API chat của LLM nhận một danh sách message, mỗi message có role và content: - system — chỉ dẫn nền, đặt hành vi/persona/ràng buộc cho cả cuộc hội thoại. Thường đặt một lần ở đầu, ưu tiên cao. - user — đầu vào của…
Base model (còn gọi pretrained / foundation model) chỉ được train mục tiêu dự đoán token tiếp theo trên corpus lớn. Nó "biết" ngôn ngữ và kiến thức nhưng chỉ hoàn thành văn bản — đưa vào một câu hỏi, nó có thể tiếp tục…
Nền tảng là in-context learning: model suy ra khuôn mẫu từ ví dụ ngay trong prompt qua attention, trọng số không đổi — "sự học" chỉ tồn tại trong một lần gọi (hiện tượng GPT-3 làm nổi bật). Câu hỏi thực dụng là chọn giữa…
API LLM tính tiền theo token, tách riêng input (prompt) token và output (completion) token — giá output thường cao hơn input vài lần (vì output phải sinh tuần tự, tốn compute hơn). Một token ≈ 4 ký tự tiếng Anh; tiếng Việt và code…
Embedding model biến text thành vector; chọn sai ảnh hưởng trực tiếp chất lượng retrieval. Các tiêu chí: 1. Chất lượng retrieval trên tác vụ của bạn — tham khảo MTEB leaderboard (đặc biệt nhóm Retrieval), nhưng luôn eval lại trên dữ liệu thật của…
Perplexity (PPL) đo mức độ "bất ngờ" của một mô hình ngôn ngữ khi dự đoán một chuỗi text — chính là luỹ thừa của cross-entropy trung bình (exp(mean negative log-likelihood)). Hiểu nôm na: PPL = số lựa chọn khả dĩ trung bình mà model…
Khi context window đã lên tới hàng trăm nghìn — hàng triệu token, câu hỏi "cứ nhét hết tài liệu vào prompt thay vì RAG" trở nên thực tế. Không có bên nào thắng tuyệt đối. Chọn RAG khi: - Kho tri thức lớn hơn…
Knowledge distillation (Hinton 2015) huấn luyện một model student nhỏ để bắt chước một model teacher lớn (hoặc ensemble), thay vì chỉ học từ nhãn cứng của dữ liệu gốc. Điểm cốt lõi: thay vì học hard label (one-hot: đáp án đúng = 1, còn…
Ba framework phổ biến, tối ưu cho mục tiêu khác nhau — chọn theo bài toán, không theo độ nổi tiếng. LangChain — thư viện "keo dán" nhiều thành phần (model, prompt, tool, memory, retriever) qua các abstraction chung. Hợp để dựng nhanh chuỗi LLM…
Không thể cải thiện thứ không đo được. Một hệ eval LLM hoàn chỉnh gồm hai vòng. Offline evaluation (trước khi release): - Golden dataset — tập ví dụ đại diện gồm input và (khi có) đáp án/ngữ cảnh mong muốn. Xây từ log thật,…
Reasoning model (OpenAI o-series, Claude với extended thinking, DeepSeek-R1...) là LLM được huấn luyện để suy nghĩ trước khi trả lời: model sinh một chuỗi reasoning token nội bộ (chain-of-thought) để lập kế hoạch, thử phương án, tự kiểm tra và sửa lỗi, rồi mới…
Synthetic data là dữ liệu do LLM (thường model mạnh — "teacher") sinh ra để huấn luyện hoặc đánh giá, thay vì hoàn toàn do người gán nhãn. Dùng khi dữ liệu thật khan hiếm, đắt, hoặc nhạy cảm về quyền riêng tư. Cách tạo…
Data flywheel là vòng lặp biến tương tác thực của người dùng thành tín hiệu để liên tục cải thiện hệ thống — lợi thế lớn nhất của việc đã có sản phẩm chạy production. Vòng lặp: 1. Ghi trace đầy đủ — mỗi request…
Trong RAG, nếu bước retrieval trả sai đoạn thì generation không thể đúng — nên phải đo riêng chất lượng retrieval bằng các metric IR offline, dựa trên tập query có đánh dấu tài liệu liên quan (ground truth). Recall@k — tỉ lệ tài liệu…
RAG chỉ đúng khi index phản ánh nguồn hiện tại. Re-embed toàn bộ mỗi lần đổi là quá tốn — cần incremental indexing. Xử lý thay đổi theo loại: - Thêm tài liệu mới → chunk, embed, upsert. - Sửa tài liệu → re-chunk phần…
Pipeline mặc định của các thư viện LLM được tối ưu cho English; đưa tiếng Việt vào có ba điểm phải xử lý chủ động: 1. Token inflation — tokenizer BPE học chủ yếu trên English, nên từ tiếng Việt có dấu thường bị tách…
Bốn trục cân nhắc, và trục nào cũng phải đo trên bối cảnh Việt Nam thay vì tin số liệu global: 1. Chất lượng tiếng Việt — benchmark công bố chủ yếu đo English; chất lượng tiếng Việt giữa các model chênh rõ (từ vựng,…
Cả Zalo OA lẫn Messenger đều theo mô hình webhook bất đồng bộ: người dùng nhắn → nền tảng POST sự kiện về endpoint của bạn → bạn xử lý → gọi API của nền tảng để gửi tin trả lời. Không phải request/response đồng…
Cơ chế: khi xử lý prompt, model tính KV cache (attention key/value) cho từng token theo thứ tự từ trái sang phải. Prompt caching cho phép lưu lại phần tính toán của tiền tố (prefix) đã xử lý; request sau có cùng prefix thì bỏ…
Nguyên tắc: cắt theo cấu trúc của tài liệu trước, cắt theo độ dài sau. Cắt cứng theo số ký tự sẽ chia đôi một bảng hoặc một khối code, và cả hai mảnh đều trở nên vô nghĩa khi truy xuất. Thứ tự ưu…
Vấn đề: một chunk như "Doanh thu quý này tăng 3%" không nói rõ công ty nào, quý nào, nên vector của nó không khớp với truy vấn "doanh thu quý 2/2024 của ACME". Contextual retrieval thêm một đoạn ngữ cảnh ngắn (thường 50-100 token)…
Tách đơn vị đem đi tìm khỏi đơn vị đưa vào prompt. Đây là ý chính của small-to-big (còn gọi là parent document retrieval). - Index: chunk nhỏ (~200-300 token). Vector của đoạn ngắn đặc trưng hơn nên khớp truy vấn tốt hơn. - Trả…
Bi-encoder mã hoá truy vấn và tài liệu độc lập thành hai vector rồi so cosine. Vì tài liệu được embed sẵn lúc ingest, lúc truy vấn chỉ cần một lần encode + tìm láng giềng gần — quét hàng triệu tài liệu trong vài…
Không — thường tệ đi. Tăng top-k làm tăng recall của bước truy xuất nhưng đồng thời nhồi thêm chunk nhiễu, và model không đọc đều toàn bộ context. Hiện tượng lost in the middle: độ chính xác cao nhất khi thông tin cần thiết…
Vì phần lớn truy vấn thực tế đều kèm ràng buộc không nằm trong ngữ nghĩa: chỉ tài liệu của phòng ban tôi, chỉ bản hiệu lực năm nay, chỉ tiếng Việt. Similarity không lọc được những thứ này — chúng phải là metadata để…
Không đủ. Bảng xếp hạng công khai đo trên tập dữ liệu chung, tiếng Anh là chính, và các model đứng đầu đôi khi đã được tối ưu cho chính các tập đó. Dữ liệu của bạn có thuật ngữ riêng, viết tắt nội bộ…
Nguyên tắc: trả lỗi về cho model như một tool result bình thường, kèm thông tin đủ để nó tự sửa. Không ném exception ra ngoài vòng lặp, cũng không nuốt lỗi rồi trả chuỗi rỗng. Những gì nên có trong thông báo lỗi: loại…
Dùng tham số toolchoice (Anthropic/OpenAI) hay functioncallingconfig.mode (Gemini). Ba chế độ thường gặp: - auto (mặc định): model tự quyết định gọi tool hay trả lời thẳng. - any / required: bắt buộc gọi một tool nào đó, không được trả lời bằng văn bản.…
Cửa sổ trượt: giữ N lượt gần nhất, cắt bỏ phần đầu. Rẻ, tất định, không gọi thêm LLM. Nhược điểm: mất hẳn thông tin đầu hội thoại — người dùng khai tên, mã đơn, ràng buộc ở lượt 2 thì đến lượt 30 model…
Phân biệt hai lỗi vì cách xử lý khác nhau. Kèm chữ thừa (Here is the JSON: {...}, hoặc bọc JSON trong một khối code fence): xảy ra khi chỉ dặn bằng prompt. Cách chắc chắn là dùng structured output theo schema của provider (responseformat…
Mặc định chọn SSE (server-sent events). Luồng chat LLM là một chiều server → client: client gửi đúng một request, server phát dần các mảnh chữ. Đó chính xác là mô hình SSE. Vì sao SSE hợp hơn: - Chạy trên HTTP thường, đi qua…
Gọi từ route handler phía server (app/api/chat/route.ts) hoặc server action, không bao giờ gọi trực tiếp từ trình duyệt. Lý do: - API key. Bất cứ biến nào có tiền tố NEXTPUBLIC đều nằm trong bundle mà người dùng xem được. Key lộ nghĩa là…
Chia thời gian chờ thành hai giai đoạn và hiển thị khác nhau cho từng giai đoạn. Giai đoạn 1 — trước token đầu tiên (TTFT). Thường 0.5–3 giây, có thể lâu hơn nếu prompt dài hoặc có bước truy xuất. Ở đây hiển thị…
Khi bài toán có đáp án đúng xác định và có thể diễn đạt bằng luật. LLM đắt hơn, chậm hơn, không tất định và có thể sai — chỉ chấp nhận ba nhược điểm đó khi đổi lại được thứ code thường không làm…
Phải huỷ cả ba tầng, thiếu một tầng là vẫn tốn tiền. 1. Client dừng đọc. AbortController huỷ fetch tới route handler của bạn. 2. Server nhận biết client đã ngắt. Route handler dùng req.signal — signal này được kích hoạt khi kết nối đứt.…
Tách rõ lỗi trước khi phát token đầu tiên và lỗi giữa chừng — hai loại này xử lý khác hẳn nhau. Chưa phát token nào: retry an toàn, người dùng không thấy gì. Retry khi gặp 429, 500, 502, 503, 529 và lỗi mạng/timeout.…
Đặt một lớp abstraction cho model ở server: một hàm generate(messages, options) nội bộ, bên trong chọn provider theo thứ tự ưu tiên. Thêm circuit breaker để khi provider chính hỏng liên tục thì bỏ qua luôn trong vài phút, không phải request nào cũng…
Nhà cung cấp giới hạn theo hai chiều: số request mỗi phút (RPM) và số token mỗi phút (TPM). Vượt chiều nào cũng nhận 429, và trong ứng dụng LLM thì TPM thường chạm trần trước vì mỗi request nuốt hàng nghìn token. Ba tầng…
Nguyên tắc: ước lượng trước khi gọi để chặn, ghi nhận sau khi gọi để tính tiền. Ghi nhận (sau mỗi lời gọi). Response của provider trả về số token thật (inputtokens, outputtokens, và phần đọc từ cache nếu có). Lưu một dòng cho mỗi…
Điểm mấu chốt: cái hiển thị cho người dùng và cái gửi lên model là hai thứ khác nhau. DB lưu đầy đủ vĩnh viễn; prompt chỉ lấy ra một tập con. Lược đồ tối thiểu: bảng conversations (id, userid, title, createdat) và bảng messages…
Vấn đề cần lo ở đây là chi phí và uy tín, khác với prompt injection (bảo vệ dữ liệu). Xếp phòng thủ theo thứ tự rẻ đến đắt. 1. Chặn ẩn danh. Yêu cầu đăng nhập cho tính năng tốn tiền. Nếu vẫn cho…