Khóa học
Codestral là một mô hình sinh tiên tiến được tối ưu cho các tác vụ sinh mã, bao gồm điền vào giữa (FIM) và hoàn thành mã. Được huấn luyện trên hơn 80 ngôn ngữ lập trình, Codestral xuất sắc ở cả các ngôn ngữ phổ biến lẫn ít phổ biến, giúp trở thành công cụ linh hoạt cho nhà phát triển.
Bằng cách tận dụng Codestral API, chúng ta có thể tự động hóa và tích hợp việc sinh mã vào quy trình làm việc. Trong hướng dẫn này, chúng tôi sẽ cung cấp từng bước để sử dụng Codestral API.
Nếu bạn muốn có cái nhìn tổng quan về Codestral, hãy xem bài viết của tôi về Mistral’s Codestral là gì.
Các endpoint của Codestral API
Codestral cung cấp hai endpoint API chính để phục vụ các nhu cầu khác nhau:
- codestral.mistral.ai: Phù hợp cho người dùng cá nhân và tích hợp quy mô nhỏ. Endpoint này hiện miễn phí đến ngày 1 tháng 8, 2024, sau đó sẽ chuyển thành dịch vụ thuê bao hàng tháng.
- api.mistral.ai: Thiết kế cho doanh nghiệp và các trường hợp nhu cầu cao, cung cấp giới hạn tốc độ cao hơn và hỗ trợ mạnh cho ứng dụng quy mô lớn.
Mistral khuyến nghị sử dụng endpoint codestral.mistral.ai nếu bạn định dùng Codestral trong plugin IDE hoặc dự định xây dựng công cụ cung cấp endpoint trực tiếp cho người dùng, cho phép họ dùng khóa API của riêng mình.
Mistral khuyến nghị endpoint api.mistral.ai cho các trường hợp sử dụng khác do có giới hạn tốc độ cao hơn và phù hợp với ứng dụng doanh nghiệp.
Trong hướng dẫn này, chúng ta sẽ dùng endpoint codestral.mistral.ai để trình diễn khả năng của Codestral.
Bắt đầu với Codestral API
Lấy khóa API
Để sử dụng Codestral API, bạn cần đăng ký tài khoản Mistral AI và lấy khóa API. Thực hiện các bước sau:
Bước 1: Đăng ký
Truy cập trang đăng ký của Mistral AI và tạo tài khoản.
Bước 2: Lấy khóa API
Đối với api.mistral.ai, đi tới tab API Keys và nhấp Create new key để tạo khóa API của bạn.

Đối với codestral.mistral.ai: Vào tab Codestral (tab có huy hiệu “New” bên dưới tab API Keys) và làm theo hướng dẫn trên trang để nhận khóa API. Lưu ý hiện có danh sách chờ và bạn sẽ cần cung cấp số điện thoại để đăng ký. Khi được chấp thuận, bạn có thể truy cập khóa API cùng với hai endpoint dành riêng cho codestral.mistral.ai trên cùng trang, như bên dưới:

Bài viết này sử dụng các endpoint của codestral.mistral.ai để trình diễn Codestral, vì vậy mọi ví dụ đều sẽ phù hợp với endpoint này.
Xác thực
Để xác thực các yêu cầu API, chúng ta sẽ tạo hai hàm Python dùng thư viện requests. Các hàm này sẽ xử lý việc giao tiếp với hai endpoint API của Codestral, chèn khóa API đã lấy vào phần header của yêu cầu để xác thực. Dưới đây là hai hàm:
call_chat_endpoint— để gọi Chat Endpointhttps://codestral.mistral.ai/v1/chat/completions.call_fim_endpoint— để gọi Completion Endpointhttps://codestral.mistral.ai/v1/fim/completions.
Cách thực hiện trong Python:
import requests
import json
api_key = 'INSERT YOUR API KEY HERE'
def call_chat_endpoint(data, api_key=api_key):
url = "<https://codestral.mistral.ai/v1/chat/completions>"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
def call_fim_endpoint(data, api_key=api_key):
url = "<https://codestral.mistral.ai/v1/fim/completions>"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
"Accept": "application/json"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
if response.status_code == 200:
return response.json()
else:
return f"Error: {response.status_code}, {response.text}"
Tìm hiểu các endpoint của Codestral API
Giờ đây chúng ta đã có khóa API và thiết lập các hàm xác thực, hãy khám phá cách dùng hai endpoint của Codestral để sinh mã. Chúng ta sẽ bắt đầu với endpoint điền vào giữa (FIM).
Endpoint điền vào giữa
Endpoint điền vào giữa được thiết kế để sinh ra đoạn mã khớp giữa một điểm bắt đầu (prompt) và một điểm kết thúc tùy chọn (suffix). Điều này đặc biệt hữu ích khi cần sinh một phần mã cụ thể trong một cấu trúc mã lớn hơn.
URL Endpoint API: https://codestral.mistral.ai/v1/fim/completions
Tham số:
prompt: Điểm bắt đầu của mã.suffix(tùy chọn): Điểm kết thúc của mã.stop(tùy chọn): Chuỗi token để dừng sinh.
Ví dụ:
prompt = "def fibonacci(n: int):"
suffix = "n = int(input('Enter a number: '))\\nprint(fibonacci(n))"
data = {
"model": "codestral-latest",
"prompt": prompt,
"suffix": suffix,
"temperature": 0
}
response = call_fim_endpoint(data)

Endpoint instruct
Endpoint instruct cung cấp chỉ dẫn cho mô hình để sinh mã. Nó hữu ích cho các tác vụ sinh mã mở hơn.
URL Endpoint API: https://codestral.mistral.ai/v1/chat/completions
Tham số:
prompt: Chỉ dẫn cho tác vụ sinh mã.temperature(tùy chọn): Kiểm soát độ ngẫu nhiên của mã được sinh.max_tokens(tùy chọn): Giới hạn độ dài mã được sinh.
Ví dụ:
prompt = "Please write me a function that adds up two numbers"
data = {
"model": "codestral-latest",
"messages": [
{
"role": "user",
"content": prompt
}
],
"temperature": 0
}
response = call_chat_instruct_endpoint(data)

Sử dụng API nâng cao
Giới hạn tốc độ
Mỗi endpoint có giới hạn tốc độ khác nhau:
- codestral.mistral.ai: 30 yêu cầu mỗi phút và 2000 yêu cầu mỗi ngày.
- api.mistral.ai: 200 yêu cầu mỗi giây cho mỗi workspace.
Để vận hành trơn tru và tránh vượt quá giới hạn sử dụng, quản lý giới hạn tốc độ là điều quan trọng. Một chiến lược hiệu quả là triển khai logic thử lại (retry), tạm dừng rồi gửi lại yêu cầu sau một khoảng trễ—chúng ta có thể dùng thư viện time của Python để thêm khoảng trễ này.
Ngoài ra, bạn có thể theo dõi mức sử dụng API để đảm bảo nằm trong giới hạn cho phép. Bạn có thể ghi log số lượng yêu cầu đã thực hiện và so sánh với giới hạn tốc độ.
Xử lý lỗi
Các mã lỗi thường gặp gồm:
- 401 Unauthorized: Khóa API không hợp lệ hoặc thiếu xác thực.
- 429 Too Many Requests: Vượt quá giới hạn tốc độ.
- 500 Internal Server Error: Sự cố phía máy chủ của Mistral AI.
Với lỗi 401 Unauthorized, hãy kiểm tra khóa API và đảm bảo khóa được đưa đúng vào header của yêu cầu.
Với lỗi 429 Too Many Requests, hãy thử triển khai logic thử lại để chờ rồi gửi lại yêu cầu sau một khoảng trễ.
Logic thử lại cũng hữu ích để xử lý 500 Internal Server Error nhằm thử lại yêu cầu sau.
Tùy chỉnh đầu ra
Để kiểm soát định dạng và phong cách đầu ra, bạn có thể điều chỉnh các tham số như prompt (cụ thể hoặc tổng quát hơn) và temperature (kiểm soát mức sáng tạo của mô hình).
Hãy thử nghiệm các tham số này để tinh chỉnh cân bằng giữa tính sáng tạo và khả năng dự đoán trong mã được sinh.
Tích hợp Codestral API
Codestral không chỉ hoạt động như một API độc lập—chúng ta có thể tích hợp nó vào quy trình phát triển hiện có. Hãy khám phá hai cách chính: qua tích hợp IDE và trình soạn thảo văn bản hoặc tạo script tùy chỉnh.
IDE và trình soạn thảo
Codestral tích hợp mượt mà với các IDE và trình soạn thảo phổ biến qua plugin hoặc extension. Ví dụ, bạn có thể thiết lập Codestral với Continue.dev cho VS Code hoặc JetBrains:
- Cài đặt extension Continue cho VS Code hoặc JetBrains.
- Chọn Mistral API làm nhà cung cấp và chọn Codestral làm mô hình.
- Nhấp Get API Key để lấy khóa API Codestral.
- Nhấp Add model, thao tác này sẽ tự động điền config.json.
Script tùy chỉnh
Bạn có thể xây dựng script hoặc ứng dụng tùy chỉnh tận dụng Codestral API cho các tác vụ sinh mã. Dưới đây là ví dụ đơn giản về script sinh hàm kiểm thử:
prompt="""Sure, here is a simple function in Python that adds up two numbers:
def add_two_numbers(num1, num2):
return num1 + num2
You can use this function like this:
result = add_two_numbers(5, 3)
print(result) # Outputs: 8
This function takes two arguments, num1 and num2, and returns their sum.\ndef test_add_two_numbers():"""
suffix=""
data = { "model": "codestral-latest", "prompt": prompt, "suffix": suffix, "temperature": 0 }
response = call_fim_endpoint(data)

Thực hành tốt khi sử dụng Codestral API
Để khai thác tốt nhất Codestral, hãy xem một số thực hành tốt để sử dụng API hiệu quả và có trách nhiệm.
Prompt rõ ràng và súc tích
Khi dùng Codestral API, sự rõ ràng là then chốt. Hãy đảm bảo prompt hoặc chỉ dẫn của bạn được xác định rõ và không mơ hồ để nhận đầu ra mã như mong muốn. Bạn có thể định hướng mô hình sinh mã phù hợp kỳ vọng bằng cách cung cấp prompt cụ thể và có ngữ cảnh.
Tinh chỉnh lặp
Tối ưu tương tác với Codestral API là một quá trình tinh chỉnh lặp đi lặp lại. Hãy thử nghiệm các tham số, prompt và đầu vào khác nhau để đạt kết quả mong muốn. Phân tích mã được sinh và dùng chúng để điều chỉnh prompt. Bằng cách liên tục tinh chỉnh cách tiếp cận, bạn có thể cải thiện chất lượng và mức liên quan của mã theo thời gian.
Sử dụng có trách nhiệm
Sử dụng Codestral API một cách có trách nhiệm là quan trọng. Đảm bảo việc sử dụng API tuân thủ các tiêu chuẩn đạo đức và pháp lý. Tránh sinh ra mã có thể độc hại hoặc gây hại. Tuân thủ các thực hành tốt về lập trình an toàn và đạo đức, và tôn trọng quyền riêng tư cũng như quyền lợi của người khác. Sử dụng API có trách nhiệm góp phần tạo nên môi trường phát triển tích cực và bền vững.
Kết luận
Hướng dẫn này cung cấp chỉ dẫn thực tế để sử dụng Codestral API cho sinh mã. Chúng ta đã khám phá các endpoint khác nhau, thực hành tốt và phương án tích hợp.
Tôi khuyến khích bạn thử nghiệm với API và khám phá cách nó có thể nâng cao quy trình phát triển của riêng bạn.
Để tìm hiểu thêm về Mistral, hãy xem hướng dẫn Mistral 7B này và hướng dẫn làm việc với mô hình lớn Mistral này.
Ryan là trưởng nhóm khoa học dữ liệu, chuyên xây dựng các ứng dụng AI sử dụng LLM. Anh là nghiên cứu sinh Tiến sĩ về Xử lý Ngôn ngữ Tự nhiên và Đồ thị Tri thức tại Imperial College London, nơi anh cũng hoàn thành bằng Thạc sĩ Khoa học Máy tính. Ngoài lĩnh vực khoa học dữ liệu, anh viết bản tin Substack hàng tuần, The Limitless Playbook, nơi anh chia sẻ một ý tưởng có thể áp dụng ngay từ các tư tưởng gia hàng đầu thế giới và đôi khi viết về những khái niệm cốt lõi của AI.
