Tài liệu

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.

Tab Nhà cung cấp → Thêm nhà cung cấp → máy chủ tương thích OpenAI
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-...
Đường dẫn API là /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".
Chọn cấu hình sẵn chung máy chủ tương thích OpenAI, không chọn OpenAI hay Anthropic. Trang API lưu trữ của twinny cho biết trò chuyện qua các dịch vụ đó “đ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 sẽ được gửi cho nhà cung cấp đó, chứ không phải endpoint của bạn. Nhãn trường ở trên lấy từ bảng biểu mẫu nhà cung cấp, theo đúng thứ tự trong bảng.
Kunavo chưa chạy twinny với endpoint này. Trang này được soạn dựa trên tài liệu riêng của twinny và 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ử. Nút Test provider của twinny mới là thao tác xác minh thực sự — nút 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à hiển thị thành công hoặc lỗi máy chủ trả về, cùng URL đã gọi”.
Chưa có khóa? Tạo tài khoản Kunavo, tạo khóa (bắt đầu bằng 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

  1. Tạo khóa tại /app/keys rồi sao chép khóa — khóa chỉ hiển thị một lần.
  2. 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.
  3. 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ỏ đến localhost:8080.
  4. Đặt Protocol thành https, đặt Tên máy chủ thành api.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.
  5. 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.
  6. 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.

Đây là phiên bản ngắn. Hướng dẫn đầy đủ — lựa chọn mô hình, chi phí của một phiên thực tế và các trường hợp lỗi — nằm trong phần so sánh twinny và Continue.

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ìnhKunavo vào / raPhù hợp ở đâu trong twinny
claude-sonnet-5$1.40 / $7.00bả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.50thô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.20cá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
Thanh toán theo token từ số dư trả trước, không có phí hàng tháng — xem trang Thanh toán. Với ngữ cảnh lặp lại — chiếm phần lớn dữ liệu mà trình chỉnh sửa hoặc ứng dụng trò chuyện gửi đi — bộ nhớ đệm prompt ảnh hưởng đến hóa đơn nhiều hơn lựa chọn mô hình.

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ấpNội dung twinny gửiĐối với api.kunavo.com
Trò chuyệnYêu cầu POST theo định dạng OpenAI đến <API path>/chat/completionsPhù 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/completionsKhông. Kunavo không có route /v1/completions và cũng không có model base hoặc code để chạy tính năng này.
Biểu diễn vectơyêu cầu đến /v1/embeddingsKhô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.