# Cách Bạn Thay Đổi AI Provider Chỉ Với 1 Dòng Code

> Contract đúng chỗ thì đổi provider nhanh, dễ test, và không ảnh hưởng đến các module khác.

- URL: https://dantech.academy/courses/kotlin-accelerator/engineer-builder/04-clean-architecture-integration/lesson-04-swap-ai-provider-with-one-line
- Khóa học: [Mobile Action Pro](https://dantech.academy/courses/kotlin-accelerator.md)
- Module: Clean Architecture Và Integration
- Thời lượng: 12 phút
- Độ khó: intermediate
- Truy cập: Dành cho học viên
- English: https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/04-clean-architecture-integration/lesson-04-swap-ai-provider-with-one-line.md

## Mục tiêu

- Cách setup contract đúng cho tính năng AI Provider
- Đổi AI provider bằng một dòng DI và nhận ra nó thật dễ dàng
- Giải thích vì sao bản iOS luôn dùng LocalHintProvider mà không cần nhánh if theo platform

## Nội dung bài học

1. Mục Tiêu Bài Học
2. Phần 1: Đường Đi Của Một Cú Tap AI Assistant
3. Phần 2: Hai Contract Cho 1 Task, Vì Sao?
4. Phần 3: 1 Dòng Code, Thay Đổi Tất Cả
5. Phần 4: Cùng Một Code, iOS Luôn Dùng Local
6. Bài Tập: Thêm Provider Thứ Ba
7. Lộ Trình Đọc Code
8. Bad Smells
9. Điều Cần Nhớ

## Học cùng AI agent

Toàn bộ bài học dành cho học viên của khóa. Học viên mở bài trên web và bấm nút **Markdown** để copy toàn bài, rồi dán vào Claude, ChatGPT, Cursor hoặc agent bạn đang dùng. Nhanh hơn: tạo token ở `/profile/ai-agents` và agent đọc bài trực tiếp qua MCP.

- [Đăng ký khóa học](https://dantech.academy/kotlin-accelerator/checkout)

---

- Bài trước: [Clean Architecture Của Cú Tap Sign-In](https://dantech.academy/courses/kotlin-accelerator/engineer-builder/04-clean-architecture-integration/lesson-03-trace-supabase-auth-flow.md)
- Bài tiếp theo: [Composition Root: Nơi Định Nghĩa Các Provider](https://dantech.academy/courses/kotlin-accelerator/engineer-builder/04-clean-architecture-integration/lesson-05-wire-dependencies-at-composition-root.md)
