Tài liệu
twinny
twinny không yêu cầu URL cơ sở. Ứng dụng yêu cầu giao thức, tên máy chủ, cổng và đường dẫn API; với trò chuyện, đường dẫn đó chính là API base — tức https, api.kunavo.com và /v1, còn cổng thì để trống.
twinny không có trường base URL — Add provider → OpenAI-compatible server, sau đó Protocol https, Hostname api.kunavo.com, Port để trống và API path /v1, rồi chat panel sử dụng key của bạn.
Label Kunavo
Type Chat
Provider OpenAI-compatible server
Hostname api.kunavo.com
Port (leave blank — "Blank means the protocol's default")
Protocol https
API path /v1
Model name claude-sonnet-5
FIM template (Autocomplete only — not part of a Chat provider)
API key sk-kn-.../v1, không phải /v1/chat/completions. Bảng nhà cung cấp của twinny giải thích gọn trong một câu — "Với trò chuyện, đường dẫn là API base; twinny thêm /chat/completions" — vì vậy đường dẫn đã chứa route sẽ tạo thành /v1/chat/completions/chat/completions và gây lỗi 404. Ở đây không có trường URL cơ sở duy nhất nào để nhập sai, nhưng cùng bảng đó có một lối tắt: dán https://api.kunavo.com/v1 vào Tên máy chủ thì URL sẽ được "tách thành giao thức, host, cổng và đường dẫn".sk-kn-) và nạp tín dụng từ $10 — các lệnh gọi được thanh toán từ số dư đó và các lệnh gọi thất bại không bị tính phí. Sau đó, bảng điều khiển mở tại phần thiết lập twinny.Từng bước
- Tạo khóa tại
/app/keysrồi sao chép khóa — khóa chỉ hiển thị một lần. - Mở thẻ Providers từ biểu tượng robot ở đầu thanh bên, hoặc chạy lệnh Manage twinny providers từ bảng lệnh.
- Add provider → trong mục On your machine, chọn
OpenAI-compatible server, cấu hình sẵn tổng quát. Cấu hình này mặc định trỏ đếnlocalhost:8080. - Đặt Protocol thành
https, đặt Tên máy chủ thànhapi.kunavo.com, xóa nội dung trong Cổng và đặt Đường dẫn API thành/v1. Giữ nguyên Loại ởChat. - Dán key vào API key — twinny gửi key dưới dạng
Authorization: Bearer. Sau đó đặt Tên model, bằng cách nhập hoặc dùng Chọn từ các model của máy chủ, vì Kunavo hỗ trợGET /v1/models. - Nhấn Test provider, rồi nhấn Use this provider để đặt làm nhà cung cấp trò chuyện đang hoạt động. Dùng Copy để sao chép hàng cấu hình cho model thứ hai thay vì nhập lại bốn trường endpoint.
Đã kiểm tra đối chiếu với trang Other local servers của twinny vào 21 tháng 9, 2026. Cài đặt của bên thứ ba có thể thay đổi; nếu tên trường ở đây không còn khớp với những gì bạn thấy, trang đó là nguồn có thẩm quyền, không phải trang này.
Xác minh trước khi gỡ lỗi ứng dụng khách
Một yêu cầu sẽ xác định liệu lỗi nằm ở endpoint, khóa hay tệp cấu hình. Nếu lệnh này trả về JSON, cùng base URL và khóa sẽ hoạt động trong twinny.
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."Đặt model id nào vào trường
Mọi mô hình văn bản đều có thể truy cập bằng model id — danh sách đang hoạt động là GET /v1/models, còn danh mục kèm giá nằm trên trang mô hình. Mức giá tính bằng USD trên mỗi 1M token, đầu vào / đầu ra.
| ID mô hình | Kunavo vào / ra | Phù hợp ở đâu trong twinny |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | bảng trò chuyện, chỉnh sửa trực tiếp trong dòng và đánh giá mã — cấu hình mặc định phù hợp |
claude-haiku-4-5 | $0.70 / $3.50 | thông điệp commit, trợ lý terminal và thao tác mã, nơi số lượng sử dụng chiếm ưu thế |
gpt-5-6-terra | $0.70 / $4.20 | các tệp dài được dán vào trò chuyện, và ý kiến thứ hai từ một họ model khác khi phần đánh giá chưa đủ sâu |
Trò chuyện hoạt động. Tự động hoàn thành và chỉ mục thì không.
twinny phân chia công việc giữa ba loại nhà cung cấp, mỗi loại được cấu hình riêng — vì vậy câu “twinny hoạt động với Kunavo” chỉ đúng với một loại. Hai loại còn lại không phải là cấu hình bạn chưa tìm ra; các route mà chúng cần không được Kunavo hỗ trợ.
| Loại nhà cung cấp | Nội dung twinny gửi | Đối với api. |
|---|---|---|
| Trò chuyện | Yêu cầu POST theo định dạng OpenAI đến <API path>/ | Phù hợp — đây là nội dung của trang phía trên. |
| Tự động hoàn thành (FIM) | lời nhắc fill-in-the-middle thô đến /v1/ | Không. Kunavo không có route /v1/ |
| Biểu diễn vectơ | yêu cầu đến /v1/ | Không. Kunavo không cung cấp model embedding, vì vậy không thể tạo chỉ mục workspace tại đây. |
Cả hai hạn chế đều không ngăn cản việc thiết lập, vì twinny chỉ giữ một nhà cung cấp đang hoạt động cho mỗi loại và chúng độc lập với nhau. Trang API lưu trữ của twinny gọi cách kết hợp này là “cấu hình phổ biến”: một model base nhỏ chạy cục bộ để hoàn thành, cùng với một model lưu trữ để trò chuyện, đánh giá và chỉnh sửa. Chỉ mục workspace cũng tương tự — bước embedding không được cung cấp ở đây, và tài liệu của twinny hướng dẫn dùng model cục bộ như nomic-embed-text trên Ollama để thay thế. Các vector từ những model khác nhau không thể kết hợp, vì vậy đổi model đó đồng nghĩa phải tạo lại chỉ mục thay vì cập nhật.
Câu hỏi thường gặp
Làm thế nào để kết nối twinny với endpoint API tùy chỉnh?
Mở thẻ Providers từ biểu tượng robot trong thanh bên twinny, chọn Add provider, rồi trong mục "On your machine" chọn cấu hình sẵn tổng quát có tên "OpenAI-compatible server". Tài liệu twinny nêu rằng biểu mẫu nhà cung cấp chấp nhận mọi tên máy chủ, cổng, giao thức và đường dẫn, vì vậy hãy đặt Protocol thành https, đặt Hostname thành host của endpoint, để Port trống nhằm dùng cổng mặc định của giao thức, rồi đặt API path thành API base. Dán key vào trường API key; twinny sẽ gửi key trong header Authorization: Bearer. Sau đó nhấn Test provider — thao tác này gửi một yêu cầu nhỏ để kiểm tra chức năng của nhà cung cấp và báo thành công hoặc lỗi máy chủ trả về, cùng URL đã gọi.
Đường dẫn API của twinny cần là /v1 hay /v1/chat/completions?
Với nhà cung cấp trò chuyện, đường dẫn cần là /v1. Bảng nhà cung cấp của twinny ghi rằng “Với trò chuyện, đường dẫn là API base; twinny thêm /chat/completions”, vì vậy tiện ích mở rộng tự tạo route đầy đủ; nếu đường dẫn đã chứa phần đó thì kết quả sẽ là /v1/chat/completions/chat/completions và gây lỗi 404 thay vì lỗi xác thực. Trên cùng biểu mẫu, quy ước cho tự động hoàn thành và embeddings thì ngược lại: ở đó API path là route đầy đủ, với các giá trị mặc định trong cấu hình sẵn tổng quát lần lượt là /v1/completions và /v1/embeddings.
Nhập API key twinny ở đâu, và có trường URL cơ sở không?
Khóa được nhập vào trường API key của nhà cung cấp và được gửi dưới dạng Authorization: Bearer; tài liệu twinny cho biết khóa được lưu cùng nhà cung cấp trong bộ nhớ lưu trữ của VS Code và được che trong nhật ký twinny. Không có một trường URL cơ sở duy nhất — điểm cuối được chia thành Protocol, Hostname, Port và API path. Có một lối tắt: dán cả URL vào Hostname; tài liệu cho biết URL được dán, chẳng hạn https://my-box:8080/v1, sẽ được tách thành giao thức, tên máy chủ, cổng và đường dẫn, vì vậy dán https://api.kunavo.com/v1 sẽ điền cùng lúc ba trường.
Tính năng tự động hoàn thành của twinny có thể chạy qua cổng dịch vụ lưu trữ như Kunavo không?
Không; nguyên nhân là thiếu route chứ không phải thiếu cài đặt. Cấu hình sẵn OpenAI-compatible tổng quát của twinny gửi lời nhắc fill-in-the-middle thô đến route dạng /v1/completions, trong khi api.kunavo.com không cung cấp /v1/completions; danh mục cũng không có model base hoặc code nào được huấn luyện cho fill-in-the-middle. Hãy giữ tự động hoàn thành trên máy chủ cục bộ — FAQ của twinny gợi ý qwen2.5-coder:1.5b-base trên Ollama — và dùng nhà cung cấp lưu trữ cho trò chuyện. twinny gọi cách kết hợp này là cấu hình phổ biến; vì nhà cung cấp đang hoạt động được chọn theo từng loại nên không cần chuyển đổi.
Kunavo có thể cung cấp năng lượng cho chỉ mục workspace của twinny không?
Không. Chỉ mục workspace tạo embedding cho các tệp của bạn bằng nhà cung cấp Embeddings, còn Kunavo không cung cấp model embedding — không model nào trong danh mục có endpoint đó, vì vậy yêu cầu sẽ bị từ chối thay vì được xử lý. Tài liệu riêng của twinny khuyên dùng nomic-embed-text trên Ollama cho tác vụ này; model chạy trên máy của bạn và độc lập với nhà cung cấp phục vụ trò chuyện. Đây là cấu hình phân tách, không phải trở ngại khiến thiết lập bị chặn; lưu ý rằng nếu sau này đổi model embedding thì cần tạo lại chỉ mục, vì vector từ các model khác nhau không thể kết hợp.
Vì sao không dùng cấu hình sẵn OpenAI hoặc Anthropic của twinny với key Kunavo?
Vì những cấu hình sẵn đó không gửi yêu cầu đến nơi bạn nghĩ. Trang API lưu trữ của twinny cho biết trò chuyện với API lưu trữ sẽ đi qua SDK của nhà cung cấp đến endpoint cố định, vì vậy các trường tên máy chủ, cổng và đường dẫn bị ẩn — key bạn dán sẽ được gửi đến endpoint riêng của nhà cung cấp đó, chứ không phải cổng API của bạn. Cấu hình sẵn chung "OpenAI-compatible server" cho phép chỉnh sửa các trường endpoint, đó là lý do đây là cấu hình được nêu ở trên. Model id được chuyển nguyên đến endpoint bạn đã cấu hình, vì vậy dùng id Claude với nhà cung cấp tương thích OpenAI là cách kết hợp được dự định, không phải sai lệch.
Kunavo đã kiểm thử twinny chưa?
Chưa. Kunavo chưa chạy kiểm thử thực tế ứng dụng khách này; cấu hình ở trên được trích từ tài liệu riêng của twinny, đã kiểm tra vào ngày 21 tháng 9 năm 2026, và từ bảng route của Kunavo. Một trang hướng dẫn thiết lập đã xuất bản không phải là một bài kiểm thử. Bạn có thể kiểm tra miễn phí bằng nút Test provider của twinny; nút này báo URL đã gọi cùng mọi phản hồi từ máy chủ. Một lệnh curl đến /v1/models sẽ xác định liệu lỗi thuộc về endpoint, key hay biểu mẫu.