حالة استخدام
واجهة حوار الشخصيات في الألعاب
أرسل شخصية كل شخصية وحالة المهمة كرسالة النظام، وسترجع سطرًا قصيرًا يُبث. يجيب DeepSeek V4.1 Flash Uncensored فورًا، ويبقى في دوره للأشرار والمحتالين، ويستطيع أن يرجع JSON تقرؤه لعبتك. ألف حوار من ثمانية أسطر تكلّف نحو $2.76.
تم التحقق في 29 أكتوبر 2026
ما يحتاجه حوار الشخصيات، وما تحصل عليه
| ما يحتاجه حوار الشخصيات | في nokeep |
|---|---|
| أسطر تبدأ بسرعة | ابثّ الرد، وأبقِ max_tokens صغيرًا، واترك التفكير مغلقًا، وهو الافتراضي عند DeepSeek. أظهر فحص الحالة الذي يجري كل ساعة، وهو سؤال قصير يُجاب كاملًا، أن متوسط DeepSeek تراوح بين نصف ثانية و1.7 ثانية يوميًا من 26 إلى 29 أكتوبر 2026؛ وقد يطول استدعاء واحد كثيرًا في لحظة ازدحام. الحالة المباشرة. |
| شخصيات قد تكون قاسية | يستطيع قاطع الطريق أن يهدّد، ويستطيع زعيم الطائفة أن يعظ: تمت إزالة الرفض من الأوزان. لا يُرفض إلا الحدود الصارمة، بـ422 ودون أي خصم. |
| حقائق تستطيع لعبتك أن تتصرف بناءً عليها | يقبل DeepSeek الحقل response_format، بما فيه json_schema، فيمكن أن يأتي السطر ومعه مزاج وإجراء. إخراج JSON. |
| ذاكرة عن اللاعب | لا تحتفظ الواجهة بشيء بين الاستدعاءات. ضع ما ينبغي أن تتذكره الشخصية (مرحلة المهمة، إهانة سابقة) في رسالة النظام؛ وملف الحفظ لديك يحتفظ به. |
| تكلفة لكل لاعب يمكنك التخطيط لها | رصيد مدفوع مسبقًا، يُفوتر حتى جزء من مليون من الرصيد. وسقف يومي لكل مفتاح يوقف الحلقة المتكررة قبل أن تستنزف رصيدك. |
ما تكلّفه ألف حوار
| النموذج | لكل 1,000 حوار، دون مخبّأ | لكل 1,000 حوار، ببداية متكررة مخبّأة |
|---|---|---|
| DeepSeek V4.1 Flash Uncensored | $4.88 | $2.76 |
| GLM 5.3 Flash Uncensored | $2.11 | $1.34 |
محسوب من أسعار اليوم: بداية من 800 توكن، و8 أدوار بـ25 توكنًا داخلًا و60 خارجًا، وأطول استدعاء 1,420 توكنًا. التفكير القصير الذي يسبق كل رد في GLM يضيف توكنات خارجة لم يشملها هذا الحساب.
على GLM تكلّف الألف حوار نفسها نحو $1.34 قبل تفكيره القصير، لكن هذا التفكير يسبق كل سطر، وهذا وقت لا تتحمله الشخصية في اللعبة. مطالبات الشخصية القصيرة رخيصة في الحالين؛ ما يتراكم هو وضع كتاب خلفية طويل في كل استدعاء.
سطر حوار يُبث
شغّل هذا على خادم لعبتك، لا في العميل: المفتاح المدمج داخل اللعبة يمكن استخراجه منها. اعرض كل جزء فور وصوله، حتى تمتلئ فقاعة الكلام أمام عين اللاعب.
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)سطر تستطيع لعبتك أن تتصرف بناءً عليه
حين ينبغي أن يغيّر رد الشخصية اللعبة، اطلب JSON بدل النثر المبثوث: السطر الذي يُعرض، ومزاجًا للرسوم المتحركة، وإجراءً لكودك. صف الشكل في المطالبة أيضًا.
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"])لاعبون كثيرون في وقت واحد
- يحصل كل مفتاح على 120 طلبًا في الدقيقة، ويستطيع الحساب أن يضم 10 مفاتيح. بعد 429، تخبرك الترويسة
Retry-Afterبمدة الانتظار. حدود المعدل. - امنح كل بيئة مفتاحها الخاص بسقف يومي: الخلل الذي يكرر حوارًا يتوقف عند السقف، لا عند رصيدك. المفاتيح والسقوف.
- أبقِ مطالبات الشخصية قصيرة وثابتة. مطالبة الشخصية التي تبلغ نحو 1,000 توكن أو أكثر وتتكرر من استدعاء إلى آخر تُقرأ من المخبّأ بجزء من السعر.
- اكتب سطرًا احتياطيًا لحالة فشل الاستدعاء، حتى لا يتجمد المشهد في لحظة ازدحام. الرد
503 busyلا يكلّف شيئًا.
أي نموذج
استخدم deepseek-v4.1-flash-uncensored للأسطر المنطوقة: يجيب دون تفكير مسبق، ويقبل معاملات أخذ العينات، ويرجع JSON. أما glm-5.3-flash-uncensored فأرخص لكل توكن ($0.20 داخل و$0.65 خارج لكل مليون، مقابل $0.45 و$1.75)، لكنه يفكّر قليلًا قبل كل رد، فيناسب الأعمال التي لا ينتظرها اللاعب، مثل كتابة أحاديث بلدة الغد. قارن بينهما.
ما نحتفظ به من كلام اللاعبين
سطر واحد لكل استدعاء: الوقت والمفتاح والنموذج وأعداد التوكنات والرصيد والحالة، ويُحفظ 30 يومًا. لا نحتفظ أبدًا بما كتبه اللاعب، ولا بسطر الشخصية. لا يُضاف أي شيء إلى مطالبة شخصيتك. ما نحتفظ به.
أسئلة
هل هي سريعة بما يكفي لحوار في الوقت الفعلي؟
لفقاعات الكلام وصناديق الحوار، نعم: ابثّ السطر، وأبقِ max_tokens قرب 120، واترك التفكير مغلقًا. تختلف الأوقات مع الحمل، وتعرض صفحة الحالة متوسط كل يوم. وللصوت المتزامن مع الشفاه، ابدأ الصوت بعد وصول الجملة الأولى.
هل يستطيع الأشرار أن يشتموا ويهددوا ويكذبوا؟
نعم. تكتب النماذج الشخصيات القاتمة دون مطالبة لكسر القيود. لا يُرفض إلا القائمة القصيرة من الحدود الصارمة في الشروط، بـ422 لا يكلّف شيئًا.
هل يمكنني استدعاءها من داخل عميل اللعبة؟
يمكنك، لأن الواجهة تقبل أي مصدر، لكن أي أحد يستطيع استخراج مفتاح من لعبة منشورة. استدعِها من خادمك، وأبقِ سقفًا يوميًا على المفتاح.
هل تعمل مع Unity أو Godot أو Unreal؟
أي محرك يستطيع إرسال طلب HTTPS POST يعمل: الواجهة بصيغة إكمال المحادثة الخاصة بـOpenAI، فتعمل مكتبة OpenAI بلغتك كما هي، موجّهةً إلى رابطنا الأساسي.