İçeriğe atla
Tüm belgeler

Kullanım alanı

Bir oyun NPC diyalog API'si

Her NPC'nin kişiliğini ve görev durumunu sistem mesajı olarak gönder, kısa bir satırı akış halinde geri al. DeepSeek V4.1 Flash Uncensored hemen yanıtlar, kötü adamlar ve haydutlar için karakterinden çıkmaz ve oyunun okuyabileceği JSON döndürebilir. Bin sekiz satırlık konuşma yaklaşık $2.76 tutar.

29 Ekim 2026 tarihinde kontrol edildi

NPC diyaloğunun ihtiyaçları ve nokeep'te karşılığı

NPC diyaloğunun ihtiyacınokeep'te
Hızlı başlayan satırlarAkışı aç, max_tokens değerini küçük tut ve DeepSeek'in varsayılanı olan düşünmeyi kapalı bırak. Saatlik durum kontrolü, tek ve kısa bir sorunun tamamen yanıtlanması; 26 ila 29 Ekim 2026 arasında DeepSeek için günlük ortalama yarım saniye ile 1,7 saniye arasında çıktı. Yoğun bir anda tek bir çağrı çok daha uzun sürebilir. Canlı durum.
Acımasız olabilen karakterlerBir haydut tehdit edebilir, bir tarikat lideri vaaz verebilir: ağırlıklardan reddetme kaldırılmıştır. Yalnızca sert sınırlar reddedilir; bu durumda 422 döner ve ücret alınmaz.
Oyunun kullanabileceği verilerDeepSeek response_format alır, json_schema dahil; böylece bir satır bir ruh hali ve bir eylemle birlikte dönebilir. JSON çıktısı.
Oyuncuya dair hafızaAPI çağrılar arasında hiçbir şey tutmaz. NPC'nin hatırlaması gerekenleri (görev aşaması, geçmişteki bir hakaret) sistem mesajına koy; kayıt dosyan onları tutar.
Planlayabileceğin oyuncu başına maliyetÖnceden ödenmiş krediler, milyonda bir krediye kadar faturalandırılır. Anahtar başına günlük sınır, kontrolden çıkmış bir döngüyü durdurur.

Bin konuşmanın maliyeti

ModelBin konuşma başına, önbelleksizBin konuşma başına, tekrar eden başlangıç önbellekli
DeepSeek V4.1 Flash Uncensored$4.88$2.76
GLM 5.3 Flash Uncensored$2.11$1.34

Bugünkü fiyatlardan hesaplandı: 800 token'lık bir başlangıç, her biri 25 girdi ve 60 çıktı token'lık 8 tur, en uzun çağrı 1.420 token. GLM'in her yanıttan önceki kısa düşünmesi, burada yer almayan çıktı token'ları ekler.

GLM'de aynı bin konuşma, kısa düşünmesinden önce yaklaşık $1.34 tutar; ancak bu düşünme her satırdan önce gelir ve bir NPC'nin ayıramayacağı süreye mal olur. Kısa kişilik promptları her iki durumda da ucuzdur; asıl maliyeti, her çağrıda gönderilen uzun bir lore metni biriktirir.

Akış halinde bir diyalog satırı

Bunu istemcide değil, oyun sunucunda çalıştır: bir oyunun içine konan anahtar oradan çekilip alınabilir. Her parçayı geldiği anda göster; oyuncu izlerken konuşma balonu dolsun.

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

persona = "You are Brannoc, the blacksmith of Hollowmere: gruff, superstitious, owes the thieves guild money. The player has the quest \"Missing ore\" and has not yet found the mine. Speak only as Brannoc, in one to three short sentences. Never mention game mechanics."

stream = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[
        {"role": "system", "content": persona},
        {"role": "user", "content": "Have you seen any ore carts come through town?"},
    ],
    stream=True,
    max_tokens=120,
    temperature=0.8,
)
for chunk in stream:
    if chunk.choices:
        print(chunk.choices[0].delta.content or "", end="", flush=True)

Oyunun uygulayabileceği bir satır

NPC'nin yanıtının oyunu değiştirmesi gerektiğinde, akan düz metin yerine JSON iste: gösterilecek satır, animasyon için bir ruh hali ve kodun için bir eylem. Yapıyı promptta da anlat.

Python
import json

reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    max_tokens=200,
    response_format={"type": "json_object"},
    messages=[
        {"role": "system", "content": persona + ' Answer as JSON: {"line": string, "mood": "calm" | "angry" | "afraid", "action": "none" | "give_map" | "attack"}.'},
        {"role": "user", "content": "Tell me where the mine is or I tell the guild you skipped town."},
    ],
)
npc = json.loads(reply.choices[0].message.content)
print(npc["line"], npc["mood"], npc["action"])

Aynı anda çok oyuncu

  • Her anahtar dakikada 120 istek alır, bir hesapta 10 anahtar tutulabilir. 429 aldığında Retry-After başlığı ne kadar beklemen gerektiğini söyler. Hız sınırları.
  • Her ortama günlük sınırı olan kendi anahtarını ver: diyaloğu döngüye sokan bir hata, bakiyende değil sınırda durur. Anahtarlar ve sınırlar.
  • Kişilikleri kısa ve sabit tut. Çağrıdan çağrıya tekrar eden yaklaşık 1.000 token ve üzeri bir kişilik, önbellekten fiyatının bir kısmıyla okunur.
  • Bir çağrı başarısız olduğunda kullanılacak yedek bir satır yaz; yoğun bir an sahneyi asla dondurmasın. 503 busy ücretsizdir.

Hangi model

Sesli satırlar için deepseek-v4.1-flash-uncensored kullan: önce düşünmeden yanıtlar, örnekleme ayarlarını kabul eder ve JSON döndürür. glm-5.3-flash-uncensored token başına daha ucuzdur (milyon başına $0.20 girdi, $0.65 çıktı; DeepSeek'te $0.45 ve $1.75'e karşılık) ama her yanıttan önce kısa süre düşünür. Bu yüzden oyuncunun beklemediği işlere uygundur, örneğin yarının kasaba dedikodusunu yazmak. Karşılaştır.

Oyuncuların sözlerinden neyi tutuyoruz

Çağrı başına bir satır: zaman, anahtar, model, token sayıları, krediler ve durum; 30 gün tutulur. Oyuncunun yazdığı metin de NPC'nin söylediği satır da asla tutulmaz. Kişilik promptuna hiçbir şey eklenmez. Neyi tutuyoruz.

Sorular

Gerçek zamanlı diyalog için yeterince hızlı mı?

Konuşma balonları ve diyalog kutuları için evet: satırı akış halinde al, max_tokens değerini 120 civarında tut ve düşünmeyi kapalı bırak. Süreler yüke göre değişir; durum sayfası her günün ortalamasını gösterir. Dudak senkronlu bir ses satırı için sesi ilk cümle geldikten sonra başlat.

Kötü adamlar küfredebilir, tehdit edebilir ve yalan söyleyebilir mi?

Evet. Modeller karanlık karakterleri jailbreak promptu olmadan yazar. Yalnızca şartlardaki kısa sert sınırlar listesi reddedilir; bu da ücretsiz olan 422 döner.

Oyun istemcisinin içinden çağırabilir miyim?

Çağırabilirsin, çünkü API her kaynağa izin verir; ancak bir oyunun içindeki anahtarı herkes çekip alabilir. Çağrıyı sunucundan yap ve anahtarda günlük bir sınır tut.

Unity, Godot veya Unreal ile çalışır mı?

HTTPS POST gönderebilen her motor çalışır: API, OpenAI'nin chat completions biçimindedir, bu yüzden diline ait bir OpenAI istemci kütüphanesi, bizim temel URL'imize yönlendirilerek olduğu gibi çalışır.