API LLM VS Code: Kết nối trình soạn thảo của bạn với khóa riêng
Bạn có thể trỏ VS Code vào bất kỳ endpoint nào tương thích OpenAI bằng cách cung cấp cho một extension ba giá trị: base URL, khóa API và model ID. Trang này chỉ ra nơi đặt các giá trị đó và cách kiểm thử chúng trước.
Cập nhật

Điểm chính
- Hãy kiểm thử khóa với curl trước khi chạm vào trình soạn thảo, để bạn biết bên nào bị lỗi.
- Các extension như Continue và Cline yêu cầu cùng ba giá trị: base URL, khóa, model ID.
- Sử dụng model ID
uncensoredvà base URL https://api.codingllmapi.com/v1. - API chỉ cung cấp endpoint chat completions, vì vậy các tính năng cần endpoint hoàn thành riêng có thể không hoạt động.
Những gì bạn cần trước khi bắt đầu
Một thiết lập API LLM VS Code không có gì đặc biệt. Bản thân VS Code không giao tiếp với các mô hình ngôn ngữ. Một tiện ích mở rộng làm điều đó, và tiện ích mở rộng đó cần biết nơi gửi yêu cầu và cách xác thực bạn. Bất kỳ tiện ích mở rộng nào hỗ trợ nhà cung cấp tương thích OpenAI tùy chỉnh đều có thể sử dụng dịch vụ này.
Hãy thu thập ba giá trị này trước.
- Base URL:
https://api.codingllmapi.com/v1 - ID mô hình:
uncensored - Khóa API: được tạo trên trang quản lý khóa API. Sau khi đăng ký, bạn có thể nhận $0,50 tín dụng dùng thử chỉ với một cú nhấp chuột, có hiệu lực trong 7 ngày và không cần thẻ.
Khóa được đưa vào yêu cầu dưới dạng Authorization: Bearer <key>. Các extension sẽ thêm header đó cho bạn một khi bạn dán khóa vào cài đặt của chúng.
Bước 1: kiểm thử khóa bên ngoài trình soạn thảo
Gỡ lỗi bên trong một extension chậm hơn gỡ lỗi trong terminal. Mở terminal trong VS Code (Ctrl+` trên Windows và Linux, Cmd+` trên macOS), lưu khóa vào biến môi trường và chạy hai lệnh gọi. Lệnh đầu tiên liệt kê các mô hình. Lệnh thứ hai gửi một yêu cầu chat nhỏ.
export LLM_API_KEY="paste-your-key-here"
curl -s https://api.codingllmapi.com/v1/models \
-H "Authorization: Bearer $LLM_API_KEY"
curl -s https://api.codingllmapi.com/v1/chat/completions \
-H "Authorization: Bearer $LLM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}],"max_tokens":10}'
Nếu lệnh gọi thứ hai trả về JSON với một thông báo, thì khóa, URL và model ID đều chính xác. Bất kỳ lỗi nào xảy ra sau đó là do cài đặt của extension, không phải tài khoản của bạn. Nếu bạn gặp lỗi xác thực ở đây, hãy kiểm tra xem bạn đã sao chép toàn bộ khóa và không có dấu ngoặc kép hoặc khoảng trắng thừa nào đi kèm.
Bước 2: cấu hình một extension
Cài đặt của extension thay đổi giữa các phiên bản, vì vậy hãy coi các tên trường bên dưới là hướng dẫn và kiểm tra tài liệu chính thức của extension nếu nhãn khác đi. Ba giá trị luôn giống nhau.
Continue
Continue là một trợ lý mã nguồn mở cho VS Code và JetBrains. Nó đọc một tệp cấu hình từ thư mục home của bạn. Các phiên bản mới hơn sử dụng tệp YAML, và các phiên bản cũ hơn sử dụng config.json. Mục mô hình chứa cùng các trường trong cả hai định dạng. Ở định dạng JSON, nó trông như thế này:
{
"models": [
{
"title": "Uncensored",
"provider": "openai",
"model": "uncensored",
"apiBase": "https://api.codingllmapi.com/v1",
"apiKey": "paste-your-key-here"
}
]
}
Nhà cung cấp là openai vì định dạng truyền tải (wire format) là của OpenAI. Chỉ apiBase báo cho Continue giao tiếp với một máy chủ khác. Tải lại cửa sổ sau khi lưu và chọn mô hình từ menu thả xuống trong bảng chat.
Cline
Cline là một extension agent có thể đọc tệp, chỉnh sửa chúng và chạy lệnh terminal với sự phê duyệt của bạn. Mở cài đặt của nó và chọn nhà cung cấp có tên OpenAI Compatible. Điền vào Base URL, API Key và Model ID. Dán https://api.codingllmapi.com/v1, khóa của bạn và uncensored. Lưu, bắt đầu một nhiệm vụ và phê duyệt việc sử dụng công cụ đầu tiên của nó.
Các extension khác
Nhiều công cụ tuân theo cùng một mẫu dưới các tên như "custom endpoint", "OpenAI-compatible" hoặc "bring your own key". Hãy tìm một trường chấp nhận base URL. Nếu một extension chỉ cung cấp một danh sách cố định các nhà cung cấp mà không có trường URL, thì nó không thể trỏ vào API này.
Những gì hoạt động và những gì có thể không
API này triển khai POST /v1/chat/completions và GET /v1/models. Điều đó bao gồm các bảng chat, lệnh chỉnh sửa, hành động giải thích mã và vòng lặp agent. Nó không bao phủ mọi thứ mà một trình soạn thảo có thể yêu cầu.
| Tính năng trình soạn thảo | Kết quả dự kiến |
|---|---|
| Chat về tệp đang mở | Hoạt động |
| Chọn mã và yêu cầu chỉnh sửa | Hoạt động |
| Nhiệm vụ agent với các lệnh gọi công cụ | Hoạt động nếu extension sử dụng trường tools chuẩn hoặc định dạng prompt riêng của nó |
| Tự động hoàn thành nội tuyến | Phụ thuộc vào extension. Nếu nó cần một endpoint completion hoặc fill-in-the-middle riêng biệt, API này không cung cấp một endpoint như vậy |
| Embeddings và lập chỉ mục codebase | Không khả dụng tại đây vì không có endpoint embeddings. Hãy sử dụng nguồn embeddings khác hoặc tắt tính năng lập chỉ mục. |
| Đầu vào hoặc tạo hình ảnh | Không khả dụng, API chỉ hỗ trợ văn bản |
Nếu một extension gặp sự cố với một tính năng trong bảng này, hãy tắt tính năng đó trong cài đặt của nó thay vì giả định khóa của bạn bị sai. Để xem tổng quan về cách mô hình này hoạt động cho công việc lập trình, hãy xem trang về một mô hình uncensored cho các agent lập trình.
Ngoài các extension: các tập lệnh bạn chạy từ trình soạn thảo
Một extension không phải là cách duy nhất để sử dụng khóa từ VS Code. Nhiều nhà phát triển giữ một tập lệnh nhỏ trong dự án để gửi một tệp đến mô hình và in câu trả lời, sau đó chạy nó từ terminal tích hợp hoặc liên kết nó với một nhiệm vụ. Điều này cho bạn toàn quyền kiểm soát prompt và tránh những bất ngờ từ các hướng dẫn ẩn của extension.
Đây là một tập lệnh Python ngắn xem xét bất kỳ đường dẫn tệp nào bạn truyền vào. Nó đọc khóa từ biến môi trường, vì vậy không có gì bí mật được lưu trong kho lưu trữ của bạn.
import os
import sys
from openai import OpenAI
client = OpenAI(
base_url="https://api.codingllmapi.com/v1",
api_key=os.environ["LLM_API_KEY"],
)
path = sys.argv[1]
with open(path, encoding="utf-8") as f:
source = f.read()
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "Review the code. List bugs first, then style issues. Be brief."},
{"role": "user", "content": source},
],
temperature=0.2,
)
print(resp.choices[0].message.content)
Chạy nó với python review.py src/app.py. Các tệp lớn đều được chấp nhận trong cửa sổ ngữ cảnh 100.000 token, nhưng prompt nhỏ hơn sẽ trả về nhanh hơn và tốn ít chi phí hơn. Nếu bạn muốn câu trả lời hiển thị khi nó được tạo, hãy truyền stream=True và in từng chunk của delta.content khi chúng đến.
Ý tưởng tương tự cũng hoạt động như một nhiệm vụ VS Code trong .vscode/tasks.json: xác định một nhiệm vụ có lệnh là tập lệnh này với tệp hiện tại làm đối số, và kích hoạt nó từ bảng lệnh. Đó là một lượng thiết lập nhỏ, và kết quả là một lệnh xem xét mà bạn hoàn toàn hiểu rõ.
Khắc phục các lỗi thường gặp
Hầu hết các vấn đề đều thuộc về một vài nguyên nhân. Hãy làm việc từ đầu danh sách này.
- 401 hoặc "khóa API không hợp lệ". Khóa đã được dán kèm theo một khoảng trắng ở cuối, hoặc bạn đã sử dụng khóa dành cho một trang web khác. Hãy tạo một khóa mới và dán lại.
- 404 hoặc "không tìm thấy mô hình". ID của mô hình bị đánh sai chính tả, hoặc base URL thiếu
/v1hoặc có nó hai lần. ID chính xác làuncensored. Hãy gọi/v1/modelsđể xem máy chủ báo cáo gì. - 429 với
rate_limited. Bạn đã vượt quá giới hạn số yêu cầu mỗi phút: 300 đối với khóa đầy đủ, 60 đối với khóa dùng thử. Các agent lặp nhanh có thể chạm ngưỡng này. Hãy chờ và thử lại, hoặc giảm số bước tự động. - 429 với
concurrency. Quá nhiều yêu cầu đồng thời: 8 đối với khóa đầy đủ, 2 đối với khóa dùng thử. Một số tiện ích mở rộng gửi nhiều lệnh gọi song song cho một tác vụ. Một phản hồi truyền phát (streaming) giữ slot của nó cho đến khi kết thúc, vì vậy một luồng bị treo có thể chặn các lệnh gọi mới. - 429 với tiêu đề
Retry-After: 5. Quá tải tạm thời. Tiện ích mở rộng nên thử lại sau năm giây. Nếu không, hãy thử lại bằng tay. - Yêu cầu bị từ chối vì quá lớn. Giới hạn body là 8 MB, và cửa sổ ngữ cảnh là 100.000 token cho prompt cộng với câu trả lời. Các agent đính kèm nhiều tệp có thể vượt quá giới hạn này. Hãy thu hẹp ngữ cảnh hoặc xóa lịch sử hội thoại.
Khi yêu cầu hỗ trợ, hãy bao gồm giá trị của tiêu đề phản hồi X-Request-Id. Bạn có thể xem nó với curl -i.
Giữ chi phí hiển thị
Các agent chỉnh sửa gửi đi rất nhiều văn bản, vì mỗi bước thường bao gồm các tệp và lịch sử cho đến thời điểm đó. Giá là $0,15 cho mỗi 1 triệu token đầu vào và $0,50 cho mỗi 1 triệu token đầu ra, điều này giữ cho chi phí của các yêu cầu đơn lẻ thấp, nhưng các vòng lặp sẽ cộng dồn.
Ví dụ thực tế: một bước của agent với 30.000 token đầu vào và 1.000 token đầu ra tốn 30.000 x $0,15 / 1.000.000 = $0,0045 cho đầu vào và 1.000 x $0,50 / 1.000.000 = $0,0005 cho đầu ra, tổng cộng $0,005 cho mỗi bước. Một nhiệm vụ gồm 40 bước như vậy tốn $0,20. Đây chỉ là ước lượng sơ bộ, không phải lời hứa, vì các bước thực tế có kích thước khác nhau.
- Kiểm tra
X-Balance-USDtrong các tiêu đề phản hồi để xem tín dụng của bạn sau một lệnh gọi. - Bắt đầu các tác vụ mới trong các cuộc hội thoại mới để lịch sử cũ không được giữ lại mãi mãi.
- Đặt giới hạn bước hoặc giới hạn yêu cầu của tiện ích mở rộng nếu nó có.
Tín dụng là tín dụng trả trước, vì vậy việc tiêu tốn sẽ dừng lại khi số dư hết, và nó không bao giờ hết hạn. Các khoản nạp tiền chạy từ $20 đến $500 với số nguyên, với bonus 5% từ $50, 10% từ $100 và 15% từ $200. Thẻ (Visa, Mastercard, Apple Pay, Google Pay) và crypto (USDT trên TRC20, USDC trên Base) được chấp nhận. Chi tiết có trên trang giá, và tài liệu liệt kê mọi tham số được hỗ trợ.
Lưu ý về quyền riêng tư và cách sử dụng
Mã bạn gửi đi đến máy chủ của nhà cung cấp, vì vậy đừng dán các bí mật như khóa sản xuất, mật khẩu hoặc dữ liệu khách hàng vào prompt. Các prompt trên dịch vụ này không được sử dụng để huấn luyện. Mô hình được tinh chỉnh để trả lời mà không có từ chối nội dung cho việc sử dụng người lớn hợp pháp, nghĩa là nó sẽ không dừng lại để giảng đạo lý cho bạn về một bài kiểm tra bảo mật hoặc một kịch bản trò chơi chủ đề tối, nhưng bạn vẫn chịu trách nhiệm về những gì bạn yêu cầu nó làm. Nội dung tình dục liên quan đến người chưa thành niên không bao giờ được phép.
Hướng dẫn khác
Hỏi đáp
Tôi có thể sử dụng API này với GitHub Copilot trong VS Code không?
Copilot được gắn với dịch vụ của riêng nó, vì vậy khóa này không thay thế nó. Hãy sử dụng một tiện ích mở rộng chấp nhận một endpoint tùy chỉnh, chẳng hạn như Continue hoặc Cline.
Tôi nhập ID mô hình nào?
Nhập uncensored. Bạn có thể xác nhận nó bằng cách gọi GET /v1/models với khóa của bạn.
Tại sao trình soạn thảo báo lỗi kết nối?
Hãy chạy lệnh kiểm tra curl trước. Nếu curl hoạt động, hãy kiểm tra lại base URL trong tiện ích mở rộng, bao gồm cả /v1 ở cuối và không có khoảng trắng thừa.
Tự động hoàn thành nội tuyến có hoạt động không?
Chỉ khi tiện ích mở rộng có thể sử dụng endpoint chat completions thông thường cho việc này. API này không có endpoint hoàn thành riêng, vì vậy hãy kiểm tra cài đặt tự động hoàn thành của tiện ích mở rộng.
Có cách miễn phí nào để thử nghiệm không?
Người dùng mới có thể nhận $0,50 tín dụng dùng thử trên trang quản lý khóa API sau khi đăng ký. Không cần thẻ, thời hạn 7 ngày và giới hạn mỗi người một lần.
Khóa của bạn chỉ cách một biểu mẫu
Tạo tài khoản, sao chép khóa, thay đổi base URL. Đó là toàn bộ thiết lập.
Lấy khóa API