NsfwAiApi/Kılavuz
Rol yapma için en iyi yerel LLM mi, yoksa barındırılan bir API mi? API mi?
Rol yapma için en iyi yerel LLM, kabul edilebilir bir kalitede GPU'nuzun taşıyabileceği en büyük sansürsüz modeldir ve bu yanıt her birkaç ayda bir değişir. Donanımı atlamak isterseniz, bir barındırılan uç nokta tek bir URL değişikliğiyle aynı sohbet iş akışını sağlar.

Yerel mi barındırılan mı: hızlı karar
Zaten yetenekli bir GPU'ya sahipseniz, her şeyi çevrimdışı yapmak istiyorsanız veya modelleri ince ayar yapmaktan hoşlanıyorsanız yereli seçin. Hikayede uzun hafıza istiyorsanız, dizüstü bilgisayar veya telefon kullanıyorsanız veya kurulum için dakikalar yerine haftasonları harcamayı tercih ediyorsanız barındırılanı seçin. Birçok kişi her ikisini de yapar: özel deneyler için yerel bir model ve uzun kampanyalar için barındırılan bir model.
| Faktör | Yerel model | Barındırılan API |
|---|---|---|
| Maliyet modeli | Donanım ve güç, token başına ücret yok | Ön ödemeli krediden token başı ödeme |
| Model boyutu | GPU belleğinizle sınırlı | Sağlayıcının çalıştırdığı her şey |
| Bağlam uzunluğu | Bellekle sınırlı, çünkü daha uzun bağlam daha fazla bellek gerektirir | Burada 100.000 token |
| Gizlilik | Hiçbir şey makinenizden ayrılmaz | İstemler sağlayıcıya gider; burada eğitim için kullanılmazlar |
| Kurulum | Çalışma zamanı, ağırlıklar, kuantizasyon, güncellemeler | Bir temel URL ve bir anahtar |
| Her cihazdan çalışır | Sadece kendi makinenizi açığa çıkarırsanız | Evet |
Aslında en iyi yerel modeli ne belirler
En iyi yerel LLM sıralamaları hızla eskir ve herkes için doğru olan tek bir isim yoktur. Bunun yerine, gerçek bir oturumda ortaya çıkan şeylere göre adayları değerlendirin.
- Reddetme davranışı. Birçok temel ve talimat modeli belirli temaları reddetmek üzere ayarlanmıştır. Kurgu için ince ayarlanmış veya sansürsüz olarak işaretlenen modeller genellikle daha az reddeder, ancak kalite değişir, bu yüzden kendi sahnelerinizde test edin.
- Karakterde kalmak. Karakterinizin eylemlerini anlatmaya başlayan, her turda aynı kalıpları tekrarlayan veya odadaki kimin olduğunu unutan bir modeli izleyin.
- Anlatım kalitesi. Yanıtları art arda on kez okuyun. Bazı modeller bir tur için uygundur ancak onuncu yanıttan sonra sıkıcı hale gelebilir.
- Bağlam işleme. Bir model uzun bir pencere vaat edebilir ve yine de ortasındaki detayları kaybedebilir. Sohbetin başlarında verilen bir gerçeğin sonradan önemli olduğu bir test yapın.
- Boyut ve niceleme. Daha yüksek hassasiyetle çalışan daha küçük bir modele kıyasla, ağır nicelemeye sıkıştırılmış daha büyük bir model daha fazla veri kaybedebilir. Karşılaştırın, varsaymayın.
Kullandığınız çalışma zamanı için topluluk tartışmaları ve model kartları güncel öneriler için doğru yerdir. İki veya üç adayı indirin, her birinde aynı sahneyi çalıştırın ve hikayeye devam etmek istemenizi sağlayanı seçin.
Yerel çalıştırmaların yerinin bittiği yer
Rol oyuncularının karşılaştığı en büyük engel bellektir ve bu iki noktada belirir. İlki modelin kendisidir: daha büyük bir model daha iyi yazar ancak daha fazla GPU belleği gerektirir. İkincisi bağlamdır. Uzun bir hikayedeki her mesaj, her yeni adımda tekrar gönderilir ve onu tutan önbellek de uzunlukla büyür, bu nedenle uzun bir kampanya kısa sohbetleri iyi yöneten bir GPU'yu zorlayabilir.
Yaygın geçici çözümler eski turları özetlemek, yalnızca ilgili gerçekleri enjekte eden lorebook'lar kullanmak ve bağlam boyutunu düşürmektir. Bunlar işe yarar ve ayrıca iş görür. 100.000 tokenlik pencereye sahip barındırılan bir uç nokta, hikayenizin çok daha fazlasını açıkça tutmanızı sağlar; bu durum uzun kampanyalar, birçok karakter içeren paylaşılan dünyalar ve haftalarca süren hikayeler için uygundur.
Ödün maliyettir, bu yüzden ölçmek faydalıdır. Diyelim ki bir sohbetin 30.000 tokenlik geçmişi var ve model her yanıtta 300 token yazıyor. Bir tur, 1 milyon token başına 0,15 $'dan 30.000 giriş tokenı için 0,0045 $, artı 1 milyon token başına 0,50 $'dan 300 çıkış tokenı için 0,00015 $ eder. Bu, tur başına 0,00465 $ veya 100 tur için 0,465 $ eder. Uzun bir akşam eğlencesi bir doların çok altında maliyetlidir. fiyatlandırma sayfası oranları ve daha büyük bakiye yükleme işlemleri için bonus seviyelerini listeler.
Python ile çalışan bir barındırılan kurulum
Uç nokta OpenAI-uyumludur, bu nedenle resmi openai paketi, temel URL ve anahtar dışında değişmeden çalışır. Model ID'si uncensored'dir. İlk olarak API anahtarı sayfası'den bir anahtar edinin; yeni hesaplar tek tıkla, ödeme bilgisi gerekmeden 0,50 $'lık deneme kredisi talep edebilir.
Bu betik kayan bir geçmiş tutar, yanıtı akış olarak gönderir ve istemin küçük kalması için eski turları kısaltır. Sistem istemi, zamanınızı harcamaya değen kısımdır: ortamı, kuralları ve stili belirler.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.nsfwaiapi.com/v1",
api_key=os.environ["NSFWAIAPI_KEY"],
)
SYSTEM = '''You are the narrator and all non-player characters in an adult fiction roleplay.
Setting: a rain-soaked port city, late autumn, gaslight and smuggler politics.
Rules:
- Write in third person, past tense, 2 to 4 short paragraphs per reply.
- Never write the player's actions, words or thoughts. Stop where the player decides.
- Keep each character's voice and goals consistent. Track who is present in the scene.
- All characters are adults. Do not write sexual content involving minors under any circumstances.
- Stay in the story. No disclaimers or out-of-character commentary unless the player asks with (OOC).'''
history = [{"role": "system", "content": SYSTEM}]
MAX_TURNS = 40 # keep the last 40 messages besides the system prompt
def say(user_text):
history.append({"role": "user", "content": user_text})
trimmed = [history[0]] + history[1:][-MAX_TURNS:]
stream = client.chat.completions.create(
model="uncensored",
messages=trimmed,
temperature=0.9,
top_p=0.95,
frequency_penalty=0.3,
max_tokens=600,
stream=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)
print()
history.append({"role": "assistant", "content": reply})
say("I push open the door of the Gull and Anchor and look for the harbor master.")
Pencere 100.000 token olduğu için, kırpmanın önem kazanmadan önce MAX_TURNS değerini oldukça yükseltebilirsiniz. Kırpma hâlâ iyi bir alışkanlıktır: daha kısa istemler daha az maliyetlidir ve modeli son olaylara odaklar.
SillyTavern ve benzeri uygulamalar için istemci ayarları
Çoğu rol yapma arayüzü, OpenAI uyumlu veya özel bir sohbet tamamlama kaynağı için bir bağlantı ekranına sahiptir. Örneğin SillyTavern, OpenAI uyumlu bir uç nokta eklemenize olanak tanır. Alanlar her yerde aynıdır:
- Temel veya uç nokta URL:
https://api.nsfwaiapi.com/v1. Bazı uygulamalar/chat/completionsile biten tam yolu ister; uygulama temel URL isterse/v1ile durun. - API anahtarı: anahtarınız, bearer jetonu olarak gönderilir.
- Model:
uncensored. Uygulama model listesini çekebiliyorsaGET /v1/modelsçağrısı yapabilir. - Akış: açık. Yanıtlar yazıldıkça görünür; uygulama yönü beğenmezse erken durdurabilir.
Örnekleme için, 0,8 ile 1,0 arasında bir sıcaklık anlatı metni için uygundur ve top_p yaklaşık 0,95 olmalıdır. Küçük bir sıklık veya varlık cezası, uzun sohbetlerin biriktirdiği tekrarlı kalıpları azaltır. Cezayı yalnızca tekrarlama görürseniz artırın, çünkü yüksek değerler anlatımı tuhaf bir şekilde kaçınmaya iter. Durdurma dizeleri doğrudan iletilir, bu nedenle bir modelin sizin için konuşmaya çalışması durumunda, bir oyuncu adını takip eden bir iki nokta üst üste işareti içeren bir durma dizgesi eklemek yardımcı olur. Uygulamanın bağlam boyutunu ödemek istediğiniz herhangi bir değere ayarlayın; 100.000 tokenin tamamını doldurmanıza gerek yoktur.
Birden fazla sohbet sekmesi veya arkadaşlar için bir bot çalıştırıyorsanız eşzamanlılığı göz önünde bulundurun. Tam bir anahtar 8 eşzamanlı istek ve dakikada 300 istek izni verir; deneme anahtarı 2 ve 60 izni verir. Akışlı bir yanıt, akış bitene kadar slotunu tutar, bu nedenle takılan bir sekme bir slotu tüketebilir. belgeler sınırları ve X-Balance-USD dahil olmak üzere yanıt üst bilgilerini listeler; bu üst bilgi kalan kredinizi gösterir.
Uzun hikayeleri sağlıklı tutan küçük bir rutin
Uzun rol yapma oturumları öngörülebilir şekillerde bozulur ve birkaç alışkanlık çoğunu önler. Her 20 veya 30 turda bir kısa bir hikaye özeti yazın ve bunu sistem mesajından sonra istemin en üstünde tutun. Bunu elle güncelleyin veya modelden üretmesini isteyin, ardından isimlerin, yerlerin ve vaatlerin hayatta kaldığını kontrol edin. İlişkiler ve açık konular gibi asla unutulmaması gereken gerçekleri sistem isteminin kendisine sabitleyin.
Bir yanıt beğenmediğiniz bir yöne giderse, sohbet içinde onunla tartışmak yerine yeniden oluşturmayı tercih edin. Tartışmalar geçmişi kirletir ve modele sahnenin tartışma hakkında olduğunu öğretir. Yönlendirmek istediğinizde, bir sonraki sahnenin ruh hali hakkında bir not gibi, parantez içinde net bir satır ekleyin ve bir sonraki yanıtın bunu taşımasına izin verin. Karakter isimlerini tutarlı tutun ve her oyuncu olmayan karakter için tek satırlık bir ses notu verin, çünkü modeller benzer sesli karakterleri bulanıklaştırır.
Bu modelin dürüst sınırları
Bu, bağımsız bir sağlayıcı tarafından çalıştırılan ve yasal yetişkin kullanım için içerik reddi olmadan yanıt verecek şekilde ayarlanmış bir açık ağırlıklı modeldir. Herhangi bir model satıcısının resmi API'si değildir ve birkaç model arasında bir yönlendirici değildir. Modeller arasında seçim yapamazsınız ve her görevde en iyi kapalı modellerle eşleşmesini beklememelisiniz.
Yalnızca metin üretir. Karakterleriniz için görseller, ses veya lorebook araması için embedding yoktur, bu nedenle portreler veya konuşma istiyorsanız her biri için ayrı bir hizmet eklemeniz gerekir. İnce ayar da yoktur. Kalite ayrıca isteminize bağlı olacaktır: belirsiz bir sistem istemi belirsiz kurgu verir ve örnek diyaloglarla iyi bir karakter profili, herhangi bir örnekleme ayarından daha fazlasını yapar.
Tek kural sabittir. Reşit olmayanların dahil olduğu cinsel içeriklere izin verilmez ve bunu üretmeye çalışan yapılar desteklenmez. Karakterleri yetişkin olarak tutun ve kullanımınızı yasal sınırlar içinde tutun. Kurgu, companion uygulamalar ve yetişkinler için tasarlanmış karakter sohbetleri için daha az reddetme ve uzun bağlam penceresi kombinasyonu faydalı olan kısımdır.
Daha fazla kılavuz
Sorular ve cevaplar
Rol yapma için yerel bir LLM, barındırılan bir API'den daha mı iyidir?
Her ikisi de her yerde kazanmaz. Yerel çalıştırmalar çevrimdışı gizlilik ve token başına maliyet olmaması avantajını sunarken, barındırılan hizmetler daha uzun bağlam penceresi ve donanım sınırı yok avantajı sunar. Birçok kişi her ikisini de kullanır.
Bu API ile SillyTavern kullanabilir miyim?
Evet. SillyTavern ve benzeri uygulamalar OpenAI uyumlu bir uç nokta kabul eder. URL olarak https://api.nsfwaiapi.com/v1'i, anahtarınızı ve model ID olarak uncensored'ı girin.
Bir rol yapma oturumu ne kadar bağlam kullanabilir?
Bağlam penceresi 100.000 token'dır; istem ve yanıt birlikte sayılır. Uzun sohbetler daha pahalıdır çünkü geçmişi her adımda gönderirsiniz.
Karakterlerim için görsel veya ses oluşturuyor mu?
Hayır. Hizmet yalnızca metin içindir; görsel, ses veya video oluşturma ve gömme (embedding) yoktur.
Anahtarınız tek bir formun uzağında
Bir hesap oluşturun, anahtarı kopyalayın ve base URL'yi değiştirin. Kurulum bu kadar basit.
API anahtarını alNsfwAiApiNSFW metin üretimi için sansürsüz LLM API'si