Điểm chính
- Tín dụng dùng thử $0,50 đủ cho vài trăm lượt đóng vai ngắn, có hiệu lực 7 ngày, không cần thanh toán.
- Bất kỳ front-end nào chấp nhận endpoint tương thích OpenAI đều hoạt động: đặt base URL, key và mô hình
uncensored. - Chi phí phụ thuộc vào độ dài lịch sử trò chuyện, không phải độ dài phản hồi. Cắt giảm hoặc tóm tắt các lượt cũ.
- Truyện hư cấu và đóng vai chỉ dành cho người lớn hợp pháp. Không có nội dung liên quan đến người chưa thành niên, không bao giờ.
Ý nghĩa của từ "miễn phí" ở đây
Không có trò chuyện miễn phí không giới hạn trên dịch vụ này, và tốt hơn nên nói rõ ngay từ đầu. Những gì bạn nhận được là số dư dùng thử: sau khi bạn đăng ký bằng Google hoặc email và mật khẩu, bạn có thể nhận $0,50 tín dụng dùng thử bằng một cú nhấp chuột trên trang khóa API. Mỗi người chỉ nhận một lần, có hiệu lực 7 ngày và không cần thanh toán. Khóa dùng thử chạy với 2 yêu cầu đồng thời và 60 yêu cầu mỗi phút, đủ cho một người trò chuyện.
Điều đó nghe có vẻ nhỏ, nhưng token rất rẻ. Chi phí đầu vào là $0,15 cho 1 triệu token và chi phí đầu ra là $0,50 cho 1 triệu token. Một lượt đóng vai điển hình với prompt 8.000 token và phản hồi 300 token tốn $0,00135, vì vậy $0,50 đủ cho khoảng 370 lượt. Đối với nhiều người, đó là một buổi tối đầy đủ hoặc vài câu chuyện ngắn, đủ để quyết định xem thiết lập có phù hợp với họ trước khi bất kỳ khoản tiền nào được chi.
Khi hết tín dụng dùng thử, bạn có thể nạp tiền từ $20 với bất kỳ số nguyên nào lên đến $500. Tín dụng không bao giờ hết hạn, các yêu cầu bị lỗi hoặc bị từ chối không bị tính phí, và không có gói đăng ký nào để hủy. Trang web này chỉ chấp nhận tiền mã hóa: USDT trên TRC20 hoặc USDC trên Base.
Chọn giao diện
API chỉ xử lý văn bản qua HTTP. Bạn vẫn cần thứ gì đó để lưu trữ nhân vật, lịch sử trò chuyện và mẫu prompt của bạn. Ba lựa chọn phổ biến:
- SillyTavern. Ứng dụng web chạy cục bộ dành cho trò chuyện nhân vật, hỗ trợ lorebook, persona và preset. Ứng dụng cho phép bạn thêm một endpoint tương thích OpenAI, đúng như những gì API này cung cấp.
- Một ứng dụng trò chuyện khác hiển thị các trường cho URL tương thích OpenAI tùy chỉnh. Hãy tìm các cài đặt có tên endpoint tùy chỉnh, proxy hoặc tương thích OpenAI.
- Tập lệnh của bạn. Năm mươi dòng Python cho bạn quyền kiểm soát hoàn toàn bộ nhớ, prompt và chi phí. Đây cũng là cách dễ nhất để xem những gì bạn đang gửi thực sự.
Nếu bạn đang xây dựng ứng dụng và không chỉ trò chuyện, các lệnh gọi tương tự hoạt động từ bất kỳ SDK OpenAI nào. Hướng dẫn nhanh trong tài liệu liệt kê các endpoint, tiêu đề và giới hạn ở một nơi.
Kết nối SillyTavern trong năm bước
- Tạo tài khoản, mở trang khóa API, nhận tín dụng dùng thử và sao chép khóa của bạn.
- Trong SillyTavern, mở biểu tượng plugin (Kết nối API) và đặt loại API thành Chat Completion.
- Chọn nguồn có tên Custom (OpenAI-compatible).
- Dán
https://api.uncensoredvideo.cc/v1vào trường endpoint tùy chỉnh, khóa của bạn vào trường khóa và nhậpuncensoredlàm ID mô hình. - Nhấn Connect. Trạng thái màu xanh lá có nghĩa là yêu cầu đến
GET /v1/modelshoặc một tin nhắn thử nghiệm đã thành công.
Nhãn menu thay đổi giữa các phiên bản SillyTavern, vì vậy hãy bám theo ý chính chứ không bám từng chữ. Trước khi đổ lỗi cho ứng dụng, hãy kiểm tra khóa từ terminal:
curl https://api.uncensoredvideo.cc/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"uncensored","messages":[{"role":"user","content":"Reply with the word ready."}]}'Nếu curl hoạt động và ứng dụng không, vấn đề nằm ở các trường của ứng dụng: thiếu /v1, một khoảng trắng thừa trong khóa, hoặc tên mô hình sai.
Hoặc viết một vòng lặp trò chuyện nhỏ
Một script là cách tốt để tìm hiểu chi phí roleplay, vì bạn có thể in ra việc sử dụng token cho mỗi lượt. Script này giữ lại persona prompt, cắt ngắn lịch sử chỉ còn 20 tin nhắn gần nhất và truyền phát phản hồi.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredvideo.cc/v1",
api_key=os.environ["API_KEY"],
)
system = (
"You are Mara, a dry-witted smuggler pilot in a space-opera story. "
"Stay in character, write in third person, keep replies under 150 words."
)
history = []
while True:
user = input("> ")
history.append({"role": "user", "content": user})
messages = [{"role": "system", "content": system}] + history[-20:]
stream = client.chat.completions.create(
model="uncensored",
messages=messages,
temperature=0.9,
top_p=0.95,
max_tokens=300,
stream=True,
stream_options={"include_usage": True},
)
reply = ""
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
piece = chunk.choices[0].delta.content
reply += piece
print(piece, end="", flush=True)
if chunk.usage:
print("\n[tokens in/out: %d/%d]" % (chunk.usage.prompt_tokens, chunk.usage.completion_tokens))
history.append({"role": "assistant", "content": reply})Theo dõi dòng sử dụng. Sau vài chục lượt, bạn sẽ thấy số lượng đầu vào tăng trong khi đầu ra gần như không đổi. Đó là số lượng bạn cần quản lý.
Viết prompt nhân vật bền vững
Hầu hết các vấn đề đóng vai bắt đầu từ prompt đầu tiên, không phải từ mô hình. Một prompt nhân vật tốt thì ngắn và cụ thể. Đặt tên nhân vật, cung cấp giọng nói trong một hoặc hai câu, mô tả bối cảnh và nói độ dài phản hồi nên là bao nhiêu. Sau đó dừng lại. Mọi quy tắc bổ sung đều là token bạn trả tiền cho mỗi lượt, và một danh sách dài các điều nên và không nên có xu hướng được tuân thủ kém hơn một ví dụ rõ ràng.
So sánh hai cách mô tả cùng một phi công. Cái đầu tiên nói cô ấy dũng cảm, hài hước, trung thành và thông minh. Điều đó không cho mô hình biết gì để hành động. Cái thứ hai nói cô ấy trả lời câu hỏi bằng một trò đùa trước và sự thật sau, không bao giờ giải thích quá khứ của cô ấy trừ khi được hỏi hai lần và chửi nhẹ khi một bộ phận tàu bị hỏng. Cái thứ hai cung cấp cho mô hình các thói quen để lặp lại, và thói quen là những gì người đọc trải nghiệm như tính cách.
Thêm một ví dụ trao đổi ngắn gồm ba hoặc bốn dòng. Mô hình sao chép nhịp điệu rất tốt, vì vậy một ví dụ cố định độ dài, thì của động từ và điểm nhìn mà không cần quy tắc riêng. Nếu bạn viết ở ngôi thứ hai, hãy thể hiện nó. Nếu bạn muốn lời dẫn truyện in nghiêng, hãy thể hiện điều đó. Đặt ví dụ trong prompt hệ thống hoặc làm tin nhắn đầu tiên của lịch sử.
Cuối cùng, quyết định ai kiểm soát các nhân vật khác. Nếu bạn muốn mô hình đóng một dàn diễn viên đầy đủ, hãy nói điều đó. Nếu bạn muốn nó chỉ đóng một vai, hãy nói rằng nó không bao giờ được viết lời hoặc hành động của nhân vật của bạn. Một trình tự dừng trên tên nhân vật của bạn hỗ trợ điều này ở cấp API.
Chi phí cho một lượt đóng vai
Mỗi yêu cầu gửi lại system prompt, mô tả nhân vật và lịch sử, nên token đầu vào tăng lên khi cuộc trò chuyện dài hơn. Dưới đây là phép tính cho một phản hồi 300 token, riêng phần này đã tốn 300 x $0,50 / 1.000.000 = $0,00015:
| Kích thước prompt | Chi phí đầu vào | Chi phí mỗi lượt | Mỗi 100 lượt | Số lượt trên $0,50 |
|---|---|---|---|---|
| 4.000 token | $0,0006 | $0,00075 | $0,075 | khoảng 666 |
| 8.000 token | $0,0012 | $0,00135 | $0,135 | khoảng 370 |
| 20.000 token | $0,0030 | $0,00315 | $0,315 | khoảng 158 |
| 50.000 token | $0,0075 | $0,00765 | $0,765 | khoảng 65 |
Kết luận rất đơn giản. Một prompt chặt chẽ 8.000-token rẻ hơn khoảng 5,7 lần so với một prompt 50.000-token cho cùng số lượt. Ở mức 8.000-token, một khoản nạp $20 trả cho khoảng 14.800 lượt. Các khoản nạp lớn hơn thêm một khoản bonus: +5% từ $50, +10% từ $100 và +15% từ $200, vì vậy $100 cho $110 tín dụng. Xem trang giá cả để có bảng đầy đủ.
Giữ câu chuyện dài rẻ và mạch lạc
Cửa sổ ngữ cảnh là 100.000 token, bao gồm prompt và phản hồi, vì vậy bạn có thể tải rất nhiều. Bạn hiếm khi nên làm vậy. Các prompt dài tốn nhiều tiền hơn và cung cấp cho mô hình nhiều văn bản hơn để mất phương hướng. Một vài thói quen giúp ích:
- Tóm tắt, sau đó loại bỏ. Mỗi 20 lượt, hãy yêu cầu mô hình tóm tắt câu chuyện cho đến nay trong 150 từ, giữ nó trong system prompt và xóa các tin nhắn cũ.
- Giữ bảng nhân vật ngắn. Một trang quy tắc mà mô hình bỏ qua là một trang bạn trả tiền cho mỗi lượt.
- Giới hạn phản hồi.
max_tokenslà tùy chọn, nhưng một giới hạn ngăn chặn các phản hồi không kiểm soát và giữ nhịp độ chặt chẽ. - Điều chỉnh lấy mẫu. Nhiệt độ khoảng 0,8 đến 1,0 phù hợp cho sáng tác hư cấu. Nếu mô hình lặp lại các cụm từ, hãy tăng nhẹ penalty tần suất hoặc penalty hiện diện. Các giá trị này được truyền qua.
- Sử dụng các
stopsequences để mô hình không viết các dòng của bạn cho bạn, ví dụ một stop trên tên nhân vật của bạn theo sau là dấu hai chấm.
Các seed cố định cũng được chuyển qua, điều này hữu ích khi bạn muốn phát lại một cảnh và so sánh hai phiên bản prompt.
Các vấn đề phổ biến và cách khắc phục nhanh
Đây là những vấn đề mọi người thường gặp nhất trong các cuộc trò chuyện dài, với cài đặt thường giúp.
- Mô hình nói thay bạn. Thêm một dòng vào system prompt, cùng với một stop sequence trên tên nhân vật của bạn.
- Các phản hồi dài hơn mỗi lượt. Mô hình sao chép độ dài của các phản hồi trước đó. Hạ
max_tokens, chỉnh sửa một phản hồi dài bằng tay và mẫu sẽ được đặt lại. - Các cụm từ lặp lại. Tăng nhiệt độ một chút, thêm một penalty hiện diện hoặc tần suất nhỏ và đa dạng hóa các tin nhắn của bạn. Mô hình sao chép những gì nó thấy.
- Chi tiết bị lãng quên. Đặt các sự thật cần tồn tại, chẳng hạn như tên, vết thương và lời hứa, trong một ghi chú ghim ngắn gần đầu prompt và làm mới nó khi câu chuyện thay đổi.
- Giọng điệu phẳng. Đưa ra một ví dụ về giọng nói mạnh mẽ hơn. Giọng điệu đến từ các ví dụ nhiều hơn là từ các tính từ.
Khi có điều gì đó kỳ lạ xảy ra, hãy in danh sách tin nhắn đầy đủ mà tập lệnh của bạn gửi. Chín lần trong mười lần, nguyên nhân có thể nhìn thấy trong chính prompt: một hướng dẫn còn sót lại, một bản tóm tắt bị trùng lặp hoặc lịch sử chưa được cắt ngắn.
Giới hạn và lỗi bạn có thể gặp phải
Một khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút, khóa dùng thử là 2 và 60. Nếu bạn vượt quá, API trả về HTTP 429. Mã lỗi rate_limited có nghĩa là quá nhiều yêu cầu mỗi phút, và concurrency có nghĩa là quá nhiều cùng một lúc. Mã 429 với header Retry-After: 5 cho biết quá tải tạm thời, vì vậy hãy đợi năm giây và thử lại.
Một chi tiết dễ khiến nhiều người bất ngờ: một yêu cầu được truyền phát giữ slot concurrency của nó cho đến khi stream kết thúc. Nếu bạn nhấp vào regenerate ba lần nhanh trên một khóa dùng thử, lần thử thứ ba có thể thất bại với concurrency. Đợi stream kết thúc hoặc để client thử lại sau một khoảng thời gian ngắn. Mọi phản hồi cũng mang theo X-Balance-USD, vì vậy tập lệnh của bạn có thể in số dư còn lại sau mỗi lượt.
Một quy tắc không thay đổi: mô hình được tinh chỉnh để trả lời mà không từ chối nội dung cho mục đích người trưởng thành hợp pháp, và nó sẽ không viết nội dung tình dục liên quan đến người chưa thành niên. Hãy giữ câu chuyện của bạn trong phạm vi cho phép đó. Các prompt không được sử dụng để huấn luyện.
