Temel noktalar
- $0,50'lık deneme kredisi, ödeme gerekmeden 7 gün geçerli olan birkaç yüz kısa rol yapma dönüşü için yeterlidir.
- OpenAI uyumlu bir uç nokta kabul eden her ön uç çalışır: base URL'yi, anahtarı ve
uncensoredmodelini ayarlayın. - Maliyet, yanıt uzunluğundan ziyade sohbet geçmişinin uzunluğuyla belirlenir. Eski dönüşleri kısaltın veya özetleyin.
- Yalnızca yasal yetişkinler için kurgu ve rol yapma. Reşit olmayanlar içeren hiçbir şey, hiçbir zaman.
Burada "ücretsiz" ne anlama geliyor
Bu hizmette sınırsız ücretsiz sohbet yoktur ve bunu baştan belirtmek daha iyidir. Aldığınız şey bir deneme bakiyesidir: Google veya e-posta ve şifre ile giriş yaptıktan sonra, API anahtarı sayfası üzerindeki tek bir tıklamayla $0,50 deneme kredisi talep edebilirsiniz. Kişi başına bir kez verilir, 7 gün geçerlidir ve ödeme gerektirmez. Deneme anahtarı 2 eşzamanlı istek ve dakikada 60 istek ile çalışır; bu, tek bir kişinin sohbet etmesi için fazlasıyla yeterlidir.
Küçük görünse de tokenlar ucuzdur. Giriş maliyeti 1 milyon token başına $0,15, çıkış maliyeti ise 1 milyon token başına $0,50'dir. 8.000 tokenlık bir istem ve 300 tokenlık bir yanıt içeren tipik bir rol yapma dönüşü $0,00135'e mal olur; bu nedenle $0,50 yaklaşık 370 dönüşü karşılar. Birçok kişi için bu, bir tam akşam veya birkaç kısa hikaye kadardır; herhangi bir para harcamadan önce kurulumun kendilerine uygun olup olmadığına karar vermek için yeterlidir.
Deneme bakiyesi bittiğinde, $20'den başlayarak $500'e kadar herhangi bir tam miktarda bakiye yükleyebilirsiniz. Kredi asla sona ermez, başarısız veya reddedilen istekler için ücret alınmaz ve iptal edilecek bir abonelik yoktur. Bu site yalnızca kripto kabul eder: TRC20 üzerinde USDT veya Base üzerinde USDC.
Bir ön uç seçin
API yalnızca HTTP üzerinden metin gönderir. Karakterlerinizi, sohbet geçmişinizi ve istem şablonunuzu tutacak bir şeye hâlâ ihtiyacınız var. Üç yaygın seçenek:
- SillyTavern. Karakter sohbetleri için oluşturulmuş yerel bir web uygulaması; lorebooklar, kişilikler ve hazır ayarlar içerir. OpenAI uyumlu bir uç nokta eklemenizi sağlar; bu API tam olarak budur.
- Başka bir sohbet istemcisi özel bir OpenAI uyumlu URL için alanlar sunar. Özel uç nokta, proxy veya OpenAI uyumlu adlı ayarları arayın.
- Kendi betiğiniz. Elli satırlık Python kodu, bellek, istemler ve maliyet üzerinde tam kontrol sağlar. Aynı zamanda gerçekten ne gönderdiğinizi görmenin en kolay yoludur.
Bir uygulama geliştiriyorsanız ve yalnızca sohbet etmiyorsanız, aynı çağrılar herhangi bir OpenAI SDK'sından çalışır. Dokümantasyondaki hızlı başlangıç, uç noktaları, başlıkları ve limitleri tek bir yerde listeler.
SillyTavern'i beş adımda bağlayın
- Bir hesap oluşturun, API anahtarı sayfasını açın, deneme kredisi talep edin ve anahtarınızı kopyalayın.
- SillyTavern'de, fiş simgesini (API Bağlantıları) açın ve API türünü Chat Completion olarak ayarlayın.
- Custom (OpenAI-compatible) adlı kaynağı seçin.
- Özel uç nokta alanına
https://api.uncensoredvideo.cc/v1yapıştırın, anahtar alanına anahtarınızı girin ve model kimliği olarakuncensoredyazın. - Bağlan'a basın. Yeşil durum,
GET /v1/modelsisteğinin veya bir test mesajının başarılı olduğunu gösterir.
Menü etiketleri SillyTavern sürümleri arasında değişir, bu nedenle tam kelime eşleşmesinden ziyade fikre odaklanın. Uygulamayı suçlamadan önce anahtarı bir terminalden test edin:
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."}]}'curl çalışıyorsa ve uygulama çalışmıyorsa sorun, uygulamanın alanlarındadır: eksik /v1, anahtarda fazladan boşluk veya yanlış model adı.
Veya küçük bir sohbet döngüsü yazın
Bir betik, rol yapmanın neye mal olduğunu öğrenmek için iyi bir yoldur çünkü her dönüş için token kullanımını yazdırabilirsiniz. Bu betik bir karakter istemi tutar, geçmişi son 20 mesaja kadar kısaltır ve yanıtı akış olarak gönderir.
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})Kullanım satırına dikkat edin. Birkaç düzine dönüşten sonra, giriş sayısının arttığını ancak çıkışın sabit kaldığını göreceksiniz. Yönetmeniz gereken sayı budur.
Dayanıklı bir karakter istemi yazın
Çoğu rol yapma sorunu modelde değil, ilk istemde başlar. İyi bir karakter istemi kısa ve öz olmalıdır. Karakteri adlandırın, bir veya iki cümleyle bir ses verin, ortamı tanımlayın ve yanıt uzunluğunun ne kadar olması gerektiğini belirtin. Sonra durun. Her ek kural, her dönüşte ödediğiniz bir token demektir; ve uzun bir yapma/yapmama listesi, net bir örneğe göre genellikle daha az takip edilir.
Aynı pilotu tanımlamanın iki yolunu karşılaştırın. İlki onun cesur, komik, sadık ve zeki olduğunu söyler. Bu modele eyleme dökülebilecek bir şey söylemez. İkincisi, önce bir şakayla sonra gerçekle yanıt verdiğini, sorulmadıkça geçmişini açıklamadığını ve bir gemi parçası kırıldığında hafif küfür ettiğini söyler. İkincisi modele tekrarlanacak alışkanlıklar verir; ve okuyucuların kişilik olarak deneyimlediği şey alışkanlıklardır.
Üç veya dört satırlık kısa bir örnek diyalog ekleyin. Modeller ritmi çok iyi kopyalar, bu nedenle bir örnek, ayrı bir kural olmadan uzunluğu, zaman kipi ve anlatım bakış açısını sabitler. İkinci şahıs yazıyorsanız bunu gösterin. İtalik anlatım istiyorsanız bunu da gösterin. Örneği sistem istemine veya geçmişin ilk mesajları olarak yerleştirin.
Son olarak, diğer karakterlerin kontrolünü kimin yapacağına karar verin. Modelin bir kadroyu oynamasını istiyorsanız bunu belirtin. Yalnızca bir rolü oynamasını istiyorsanız, karakterinizin sözlerini veya eylemlerini asla yazmaması gerektiğini belirtin. Karakterinizin adına bir durdurma dizisi, bunu API düzeyinde destekler.
Bir rol yapma dönüşünün maliyeti
Her istek sistem istemini, karakter açıklamasını ve geçmişi yeniden gönderir; bu nedenle sohbet uzadıkça girdi tokenları artar. 300 tokenlık bir yanıt için aritmetik şöyledir; bu yanıt başına 300 x $0,50 / 1.000.000 = $0,00015'e mal olur:
| İstem boyutu | Giriş maliyeti | Dönüş başına maliyet | 100 dönüş başına | $0,50 ile dönüşler |
|---|---|---|---|---|
| 4.000 token | $0,0006 | $0,00075 | $0,075 | yaklaşık 666 |
| 8.000 token | $0,0012 | $0,00135 | $0,135 | yaklaşık 370 |
| 20.000 token | $0,0030 | $0,00315 | $0,315 | yaklaşık 158 |
| 50.000 token | $0,0075 | $0,00765 | $0,765 | yaklaşık 65 |
Sonuç basittir. Sıkı bir 8.000 tokenlık istem, aynı sayıda dönüş için 50.000 tokenlık bir istemden yaklaşık 5,7 kat daha ucuzdur. 8.000 token düzeyinde, $20'lik bir bakiye yükleme yaklaşık 14.800 dönüşü karşılar. Daha büyük yüklemeler bir bonus ekler: $50'den +%5, $100'den +%10 ve $200'den +%15; bu nedenle $100 $110 kredi verir. Tam tablo için fiyatlandırma sayfasına bakın.
Uzun hikayeleri ucuz ve tutarlı tutun
Bağlam penceresi 100.000 tokendır (istem ve yanıt birlikte), bu yüzden çok şey yükleyebilirsiniz. Ancak nadiren yüklemelisiniz. Uzun istemler daha pahalıdır ve modele kaybolması için daha fazla metin verir. Birkaç alışkanlık yardımcı olur:
- Özetleyin, sonra kaldırın. Her 20 dönüşte, modelden o ana kadar olan hikayenin 150 kelimelik bir özetini isteyin, bunu sistem isteminde tutun ve eski mesajları silin.
- Karakter sayfasını kısa tutun. Modelin görmezden geldiği bir kural sayfası, her dönüşte ödediğiniz bir sayfadır.
- Yanıtı sınırlandırın.
max_tokensisteğe bağlıdır, ancak bir sınır koşan yanıtı durdurur ve tempoyu sıkı tutar. - Örneklemeyi ayarlayın. 0,8 ile 1,0 arasındaki sıcaklık kurgu için uygundur. Model ifadeleri tekrar ederse, frekans veya varlık cezasını biraz artırın. Bunlar iletilir.
stopdizileri kullanın böylece model sizin satırlarınızı yazmaz; örneğin karakterinizin adının ve ardından iki nokta üst üstenin geldiği bir durdurma dizisi.
Sabit tohumlar da geçirilir; bu da bir sahneyi tekrar oynatmak ve iki istem sürümünü karşılaştırmak istediğinizde yardımcı olur.
Yaygın sorunlar ve hızlı çözümler
Bunlar, genellikle yardımcı olan ayarla uzun sohbetlerde insanların en sık karşılaştığı sorunlardır.
- Model sizin için konuşuyor. Sistem istemine bir satır ekleyin ve karakterinizin adına bir durdurma dizisi ekleyin.
- Yanıtlar her dönüşte uzuyor. Model önceki yanıtların uzunluğunu kopyalar.
max_tokensdeğerini düşürün, bir uzun yanıtı elle düzenleyin ve kalıp sıfırlanır. - Tekrarlanan ifadeler. Sıcaklığı biraz artırın, küçük bir varlık veya sıklık cezası ekleyin ve kendi mesajlarınızı çeşitlendirin. Model, gördüklerini yansıtır.
- Unutulan detaylar. İsimler, yaralanmalar ve sözler gibi hayatta kalması gereken gerçekleri, istemin üst kısmına yakın kısa bir sabitlenmiş nota olarak yazın ve hikaye değiştiğinde bunu yenileyin.
- Düz ton. Daha güçlü bir ses örneği verin. Ton, sıfatlardan çok örneklerden gelir.
Garip bir durumla karşılaşırsanız, betiğinizin gönderdiği tam mesaj listesini yazdırın. On durumdan dokuzunda neden, istemin kendisinde görünür: kalan bir talimat, çoğaltılmış bir özet veya kısaltılmamış bir geçmiş.
Karşılaşabileceğiniz sınırlar ve hatalar
Tam anahtar 8 eşzamanlı isteğe ve dakikada 300 isteğe izin verir, deneme anahtarı ise 2 ve 60'a. Bu sınırı aşarsanız API HTTP 429 döndürür. rate_limited hata kodu dakikada çok fazla istek anlamına gelir, concurrency ise aynı anda çok fazla istek anlamına gelir. Retry-After: 5 üstbilgisine sahip bir 429 geçici aşırı yüklenmeyi işaret eder, bu nedenle beş saniye bekleyip tekrar deneyin.
Birçok kişinin gözden kaçırdığı bir detay var: akışlı bir istek, akış bitene kadar eşzamanlılık slotunu tutar. Deneme anahtarıyla yenilemeyi üç kez hızlıca tıklarsanız üçüncü deneme concurrency hatası ile başarısız olabilir. Akışın bitmesini bekleyin veya istemciyi kısa bir mola sonrası tekrar denemeye bırakın. Her yanıt X-Balance-USD taşır, böylece betiğiniz her adımdan sonra kalan bakiyeyi yazdırabilir.
Değişmeyen bir kural: model, yasal yetişkin kullanımı için içerik reddi olmadan yanıtlamak üzere ayarlanmıştır ve reşit olmayanları içeren cinsel içerik yazmaz. Hikayelerinizi bu çizginin doğru tarafında tutun. İstemler eğitim için kullanılmaz.
