
Dù bạn đang xây dựng chatbot AI hay bổ sung tính năng hội thoại cho một ứng dụng, việc hiểu cách AI xử lý hội thoại là rất quan trọng. Chat Completion API giúp thực hiện điều này bằng cách kết nối ứng dụng với các mô hình AI để tạo ra phản hồi phù hợp, tự nhiên như con người. Với các tính năng như tích hợp Python, truyền phát và gọi công cụ, nhà phát triển có thể xây dựng những ứng dụng tương tác hơn. Hãy cùng tìm hiểu cách hoạt động, cách sử dụng và cách các nhà cung cấp như Kimi API hỗ trợ phát triển AI linh hoạt.
Chat Completions API là gì
Chat Completions API là một giao diện cho phép ứng dụng gửi một chuỗi tin nhắn đến mô hình AI và nhận phản hồi từ trợ lý, hỗ trợ cả hội thoại một lượt lẫn nhiều lượt. Ví dụ, bạn có thể dùng Kimi K3.1 Pro để trả lời câu hỏi về decorator trong Python, rồi đặt câu hỏi tiếp theo:
Yêu cầu đầu tiên: Gửi tin nhắn của người dùng: "Decorator trong Python là gì?" Kimi trả về một tin nhắn của trợ lý giải thích khái niệm này.
Yêu cầu thứ hai: Để tiếp tục cuộc hội thoại, hãy gửi tin nhắn trước đó của người dùng, toàn bộ tin nhắn phản hồi của Kimi và một tin nhắn mới của người dùng: "Bạn có thể cho tôi một ví dụ không?"
Mảng messages mang theo ngữ cảnh cần thiết cho mỗi yêu cầu. Ba quyết định thiết kế quan trọng giúp giao diện này được áp dụng rộng rãi:
Lịch sử do ứng dụng quản lý: Ứng dụng quản lý lịch sử hội thoại và đưa ngữ cảnh liên quan vào từng yêu cầu, giúp nhà phát triển kiểm soát những gì mô hình nhìn thấy.
Vai trò tin nhắn phổ biến: Các vai trò phổ biến gồm
system(hướng dẫn),user(dữ liệu đầu vào),assistant(đầu ra của mô hình, được gửi lại để tạo ngữ cảnh nhiều lượt) vàtool(kết quả gọi hàm). Kết hợp với nhau, chúng giúp thể hiện hướng dẫn, đối thoại và tương tác với công cụ.Khả năng linh hoạt: Tùy thuộc vào mức độ hỗ trợ của mô hình, giao diện có thể xử lý truyền phát, gọi công cụ, dữ liệu đầu vào trực quan và đầu ra có cấu trúc. Kimi K3.1 Pro hỗ trợ các khả năng này.
Cách sử dụng Chat Completions API với Kimi
Các ví dụ sau dùng Kimi K3.1 Pro và OpenAI Python SDK để minh họa cách cấu hình client, gửi yêu cầu, xử lý phản hồi và triển khai gọi công cụ:
Bắt đầu nhanh: Gọi Kimi bằng OpenAI Python SDK
Cài đặt OpenAI Python SDK:
Đặt khóa Kimi API của bạn làm biến môi trường:
Bạn không cần khóa OpenAI API. OpenAI Python SDK đóng vai trò là thư viện client, còn khóa Kimi API và URL cơ sở của bạn sẽ xác thực và định tuyến yêu cầu đến Kimi.
Khởi tạo client và gửi yêu cầu đầu tiên của bạn:
Ví dụ này sử dụng điểm cuối API quốc tế của Kimi. Để biết thông tin thiết lập chính thức và chi tiết về mô hình, hãy xem Hướng dẫn bắt đầu nhanh Kimi K3.1 Pro.
Các tham số chính
Các tham số này bao quát những tùy chọn chính khi gọi Kimi K3.1 Pro thông qua Chat Completions API:
| Tham số | Mục đích |
|---|---|
model | Chỉ định ID mô hình, chẳng hạn như kimi-k3.1-pro. |
messages | Cung cấp các thông điệp trong cuộc hội thoại, bao gồm dữ liệu người dùng nhập trước đó và phản hồi của trợ lý. Hỗ trợ nội dung văn bản và đa phương thức. |
reasoning_effort | Kiểm soát độ sâu suy luận. Chấp nhận low, high hoặc max (mặc định). |
max_completion_tokens | Đặt ngân sách tạo tối đa, bao gồm cả token suy luận và token câu trả lời cuối cùng. Token đầu vào được tính riêng, nhưng tổng token đầu vào và token được tạo phải nằm trong cửa sổ ngữ cảnh của mô hình. |
stream | Đặt thành true để nhận phản hồi theo từng phần thay vì chờ toàn bộ đầu ra hoàn tất. |
tools | Xác định các hàm mà mô hình có thể yêu cầu ứng dụng thực thi. |
response_format | Kiểm soát định dạng đầu ra. Hỗ trợ json_object cho chế độ JSON và json_schema cho đầu ra có cấu trúc bị ràng buộc theo lược đồ. |
Lưu ý: Kimi K3.1 Pro sử dụng các thiết lập lấy mẫu cố định. Không thêm temperature hoặc top_p vào yêu cầu. Xem tài liệu tham chiếu Chat Completions API để biết chi tiết về tham số và các giá trị được hỗ trợ.
Đọc phản hồi
Sau khi yêu cầu thành công, bạn có thể truy cập các trường phản hồi chính thông qua đối tượng completion được trả về:
choices[0].message– Chứa phản hồi của trợ lý, bao gồmcontenthoặctool_callskhi mô hình yêu cầu một hàm.choices[0].finish_reason– Cho biết lý do quá trình tạo nội dung dừng lại, chẳng hạn nhưstop,lengthhoặctool_calls.usage– Cung cấp thông tin sử dụng token, bao gồm số lượng token đầu vào, đầu ra và token được lưu đệm khi có.
Đối với phản hồi văn bản cơ bản, hãy đọc choices[0].message.content. Nếu mô hình trả về tool_calls, ứng dụng của bạn cần thực thi các hàm được yêu cầu và gửi kết quả của chúng trong một yêu cầu tiếp theo
Ví dụ về truyền phát
Đặt stream=True để nhận phản hồi của Kimi theo từng phần tăng dần. Ví dụ sau tái sử dụng client đã được cấu hình ở trên và in câu trả lời cuối cùng ngay khi nhận được:
Kimi K3.1 Pro trả về nội dung suy luận tách biệt với câu trả lời cuối cùng. Ví dụ này chỉ in delta.content, nên sẽ hiển thị phản hồi cuối cùng mà không xử lý trường reasoning_content riêng biệt.
Tóm tắt về gọi công cụ
Tính năng gọi công cụ cho phép Kimi yêu cầu các hàm bên ngoài khi một tác vụ cần thông tin hoặc hành động vượt ngoài khả năng phản hồi của riêng mô hình. Ví dụ, nếu người dùng hỏi: "Hôm nay tôi có nên mang ô khi ở Tokyo không?", Kimi có thể yêu cầu hàm get_weather để lấy thông tin dự báo.
Quy trình gồm ba bước:
Khai báo hàm: Xác định
get_weathervà các đối số dự kiến của hàm trong tham sốtools.Thực thi công cụ: Kimi trả về một mục
tool_callschứa tên hàm và các đối số. Ứng dụng của bạn thực thi hàm tương ứng và lấy dữ liệu thời tiết.Gửi kết quả trở lại: Thêm thông điệp trợ lý hoàn chỉnh của Kimi và kết quả công cụ (sử dụng
tool_call_idtương ứng) vào cuộc trò chuyện, rồi gọi lại Kimi để tạo câu trả lời dành cho người dùng.
Ví dụ sau tái sử dụng client đã được cấu hình ở trên. Trước khi chạy, hãy đảm bảo bạn đã triển khai hàm get_weather(city) trả về dữ liệu thời tiết có thể tuần tự hóa thành JSON. Hàm này do ứng dụng của bạn thực thi, không phải Kimi.
Ở đây, get_weather() đại diện cho một hàm do ứng dụng của bạn triển khai, không phải hàm được Kimi thực thi trực tiếp. Kimi quyết định khi nào cần yêu cầu hàm này và cung cấp các đối số; ứng dụng của bạn thực hiện thao tác thực tế và trả về kết quả.
Trong môi trường production, hãy triển khai một vòng lặp xử lý từng lệnh gọi công cụ, thêm các kết quả tương ứng vào cuộc trò chuyện và gửi lại các thông điệp đã cập nhật cho Kimi. Lặp lại chu trình này cho đến khi mô hình trả về câu trả lời cuối cùng mà không yêu cầu thêm công cụ nào.
Vì sao tính tương thích "OpenAI-compatible" quan trọng khi chọn nhà cung cấp
Nhiều nhà cung cấp hỗ trợ định dạng OpenAI Chat Completions, cho phép nhà phát triển tái sử dụng các SDK và cấu trúc yêu cầu quen thuộc. Việc chuyển đổi thường chỉ cần cập nhật URL cơ sở, khóa API và ID mô hình, sau đó kiểm tra các tham số được hỗ trợ cũng như cách xử lý phản hồi. Khi so sánh các nhà cung cấp, hãy cân nhắc những yếu tố sau:
Mức độ tương thích: Hãy xác minh rằng tính năng streaming, gọi công cụ, đầu ra có cấu trúc và báo cáo
usagehoạt động đúng như ứng dụng của bạn mong đợi. Tương thích cùng định dạng API không đảm bảo khả năng hỗ trợ tính năng hoặc hành vi phản hồi giống hệt nhau giữa các nhà cung cấp.Chất lượng mô hình cho khối lượng công việc của bạn: Sự kết hợp ngôn ngữ và các loại tác vụ của bạn quan trọng hơn các điểm chuẩn chung.
Cửa sổ ngữ cảnh: Các mô hình ngữ cảnh dài có thể đơn giản hóa một số quy trình xử lý tài liệu nhờ xử lý nhiều tài liệu nguồn hơn trong một yêu cầu duy nhất.
Cơ chế chi phí: Ưu đãi cho bộ nhớ đệm và xử lý theo lô thường có tác động lớn hơn mức giá token được quảng bá.
Độ rộng hệ sinh thái: Các endpoint tương thích bổ sung, như Responses và Anthropic Messages, có thể mang lại nhiều lựa chọn tích hợp và tính linh hoạt hơn khi ứng dụng của bạn phát triển.
Kimi API: Nhà cung cấp tương thích OpenAI nổi bật
Kimi API, do Moonshot AI phát triển, là lựa chọn đáng cân nhắc nếu bạn đang tìm kiếm một nhà cung cấp tương thích OpenAI, đặc biệt cho các ứng dụng tiếng Trung, xử lý tài liệu dài và tác tử lập trình. API này kết hợp các mô hình tích hợp API quen thuộc với khả năng ngữ cảnh dài và suy luận của Kimi.
Tương thích thay thế trực tiếp
Nếu ứng dụng của bạn đã sử dụng OpenAI Python SDK, bạn có thể tích hợp Kimi mà không cần viết lại toàn bộ quy trình yêu cầu. Chỉ cần cập nhật cấu hình API, gồm base_url, api_key và ID mô hình, đồng thời vẫn sử dụng giao diện Chat Completions quen thuộc.
Ví dụ sau đọc một báo cáo cục bộ từ report.txt, gửi nội dung của báo cáo đến Kimi K3.1 Pro để tóm tắt và truyền trực tiếp phản hồi được tạo:
Ở đây, client tái sử dụng ứng dụng khách Kimi đã được khởi tạo trước đó với khóa API đọc từ biến môi trường. Chọn URL cơ sở theo khu vực của bạn: https://api.moonshot.ai/v1 cho nền tảng quốc tế hoặc https://api.moonshot.cn/v1 cho người dùng truy cập API tại Trung Quốc đại lục.
Cách tiếp cận này cho phép bạn giữ nguyên quy trình OpenAI SDK hiện có trong khi sử dụng các mô hình Kimi cho những tác vụ như tóm tắt tài liệu và các ứng dụng khác dựa trên API.
Điểm khác biệt của Kimi
Mô hình chủ lực với cửa sổ ngữ cảnh 1M token: Kimi K3.1 Pro hỗ trợ cửa sổ ngữ cảnh lên đến 1M token và khả năng hiểu hình ảnh nguyên bản. Nhà phát triển có thể làm việc với các cơ sở mã lớn, tài liệu dài cỡ sách và dữ liệu đầu vào là hình ảnh trong một quy trình duy nhất, phù hợp cho các ứng dụng suy luận phức tạp, lập trình và đa phương thức.
Tối ưu hóa chi phí linh hoạt: Kimi API hỗ trợ lưu vào bộ nhớ đệm ngữ cảnh tự động cho các tiền tố yêu cầu lặp lại và suy luận Batch API cho các tác vụ quy mô lớn không cần phản hồi theo thời gian thực. Chi phí bộ nhớ đệm và giá Batch phụ thuộc vào mô hình cũng như các quy tắc định giá áp dụng. Hãy xem bảng giá Kimi API chính thức để biết mức giá và thông tin thanh toán hiện hành.
Khả năng tương thích giữa các hệ sinh thái API: Kimi cung cấp các endpoint API Chat Completions và Responses tương thích OpenAI, cũng như một endpoint tương thích Anthropic Messages. Nhà phát triển có thể tích hợp Kimi K3.1 Pro vào các quy trình hiện có bằng SDK và định dạng API quen thuộc, với các điều chỉnh tùy theo endpoint và tính năng được hỗ trợ.
Kết luận
Bắt đầu với Chat Completions API rất đơn giản: hãy cấu hình thông tin xác thực API, gửi yêu cầu và đọc phản hồi được tạo từ choices[0].message.content. Khi lệnh gọi API đầu tiên hoạt động, bạn có thể mở rộng việc tích hợp theo nhu cầu của ứng dụng bằng cách thêm hội thoại nhiều lượt, phản hồi truyền phát hoặc gọi công cụ. Sẵn sàng xây dựng với Kimi? Hãy lấy khóa Kimi API và bắt đầu gửi yêu cầu API.
Câu hỏi thường gặp
messages và trả về phản hồi qua mảng choices. Responses API sử dụng cấu trúc đầu vào và đầu ra linh hoạt hơn, hỗ trợ nhiều loại nội dung và tương tác với công cụ. Cách quản lý trạng thái hội thoại khác nhau tùy nhà cung cấp. Với Responses API của Kimi, ứng dụng nên đưa lịch sử hội thoại liên quan vào từng yêu cầu thay vì dựa vào việc liên kết theo ID phản hồi.base_url thành điểm cuối API của Kimi, api_key thành khóa Kimi API của bạn và model thành ID mô hình Kimi được hỗ trợ. Sau đó, hãy kiểm thử phần tích hợp để xác minh các tham số và tính năng mà ứng dụng của bạn cần dùng, chẳng hạn như truyền phát và gọi công cụ, đều được hỗ trợ.

