本文へ移動
すべてのドキュメント

活用例

AIコンパニオンアプリのためのバックエンド

nokeep をコンパニオンアプリのモデルとして使えます。拒否応答を取り除いたOpenAI互換のAPIで、メッセージは保存されません。DeepSeek V4.1 Flash Uncensored は役柄を保ち、ユーザーが送った写真を読み、毎日40通送るユーザー1人あたり月およそ0.97ドルです。

2026年10月29日 確認

コンパニオンアプリに必要なことと、nokeep で得られるもの

コンパニオンアプリに必要なことnokeep の場合
役柄が崩れないキャラクターこちらのシステムプロンプトは入らず、返信にフィルターもかかりません。モデルが読むのは、あなたのペルソナだけです。拒否応答はモデルの重みから取り除かれているので、会話の途中で「AIとして」と言い出すことはありません。
大人同士の会話は、大人のために大人のユーザーには、恋愛や大人向けのテーマが許されます。ただし、ハードリミット の短いリストの範囲内です。その一線を越える呼び出しは 422 を返し、料金はかかりません。黙って弱められた返信にはなりません。
本物らしく感じる記憶APIは何も保存しないので、記憶はあなたの側にあります。システムメッセージにユーザーの要約を入れ、そのあとに最近のチャットを続けます。もっと送りたい場合、DeepSeek は最大1,000,000トークンまで読めます。
写真DeepSeek は1リクエストで最大10枚の画像を読めるので、ユーザーは写真を共有して、それについての答えを受け取れます。画像。
人が打ったように感じるメッセージストリーミングに対応し、DeepSeek は指定しない限り考える間が入りません。
ユーザーの信頼メッセージも返信も保存せず、保存するのは件数だけです。保存する内容。

ユーザー1人の費用

モデル1人の1日、キャッシュなし1人の1日、繰り返す冒頭をキャッシュ
DeepSeek V4.1 Flash Uncensored$0.093$0.032
GLM 5.3 Flash Uncensored$0.041$0.019

今日の価格から計算: 1,700トークンの冒頭、1ターンあたり入力40トークン・出力120トークンを40ターン、直近30ターンを保持、最長の呼び出しは6,540トークン。GLM は返信の前に短く考えるため、その分の出力トークンはここに含まれていません。

毎日チャットするユーザーは、DeepSeek で月およそ0.97ドル、GLM で0.56ドルです。毎日は使わないユーザーが大半なので、平均はもっと低くなります。キャッシュの列は、同じ冒頭がメッセージごとに繰り返されることを前提にしています。その保ち方は次のセクションで説明します。

ペルソナ、記憶、ストリーミングされる返信

システムメッセージには、まずペルソナが入り、次にアプリがそのユーザーについて覚えていることが続きます。直近のメッセージがその後に来ます。キーがスマホに届かないよう、このコードはサーバーで動かしてください。

import OpenAI from "openai"

const client = new OpenAI({
  baseURL: "https://nokeep.ai/v1",
  apiKey: process.env.NOKEEP_API_KEY,
})

const persona = "You are Iris, a warm, teasing companion who loves astronomy and bad puns. Talk like a close friend texting: short messages, no lists, no lectures. Remember what the user tells you and bring it up later."

export async function reply(user, recent, send) {
  const stream = await client.chat.completions.create({
    model: "deepseek-v4.1-flash-uncensored",
    messages: [
      { role: "system", content: persona + "\n\nWhat you know about them: " + user.memory },
      ...recent,
    ],
    stream: true,
    max_tokens: 300,
    temperature: 0.9,
    prompt_cache_key: "user-" + user.id,
  })
  let text = ""
  for await (const chunk of stream) {
    const piece = chunk.choices[0]?.delta?.content ?? ""
    send(piece)
    text += piece
  }
  return text
}

prompt_cache_key は、1人のユーザーの呼び出しを、その冒頭がキャッシュされているところに寄せます。アカウントごとのハッシュとして渡されるので、他のアカウントがこのキャッシュを共有することはありません。

記憶を、コストを抑えて保つ

  • 記憶は毎メッセージではなく、段階を追って書き換える。 呼び出しの冒頭は、繰り返している間だけキャッシュから読まれます。要約を20〜30メッセージごとに更新すれば、その間は冒頭が同じままです。
  • 古いメッセージは、ひと塊ずつ削る。 1ターンごとに1メッセージずつ削ると、毎回冒頭が変わります。古い20メッセージを一度にまとめて要約に入れ、そのあとは追記していきます。
  • 要約は安い呼び出しで書く。 「このユーザーについて知っていることを更新する」には、入力100万トークンあたり0.20ドルの glm-5.3-flash-uncensored が向いています。待つ人がいない処理だからです。
  • 言葉はあなたの側に置く。 チャット履歴と記憶はあなたのデータベースに置きます。暗号化し、ユーザーが削除できるようにすれば、そこが唯一の保存先になります。

どのモデルか

DeepSeek V4.1 Flash UncensoredGLM 5.3 Flash Uncensored
用途コンパニオンの返信記憶の要約とその他の裏方の呼び出し
写真対応非対応、テキストのみ
返答の開始すぐに。思考は既定でオフ短い思考のあと
サンプラーTemperature、min_p などなし
100万トークンあたりの料金$0.45 入力、$1.75 出力$0.20 入力、$0.65 出力

ペルソナの口調が知らないうちに変わらないよう、日付つきのID deepseek-v4.1-flash-1017-uncensored を呼んでください。2026年10月17日のビルドに固定されます。モデル。

ユーザーが読んで納得できるプライバシー

コンパニオンのチャットは、もっとも個人的な文章のひとつです。呼び出しごとに保存するのは、時刻、キー、モデル、トークン数、クレジット、ステータスだけで、保存期間は30日です。アカウントのメールアドレス、メッセージ、返信は保存しません。DeepSeek はプロンプトも返信も保存しない非公開の枠で動き、GLM のホストは返信を送ったあとには何も保持しません。

呼び出しが実行される前に、自動チェックが最新のメッセージをハードリミットに照らして、可否を答えます。チェックが読んだ内容は保存されません。保存する内容。

よくある質問

コンパニオンアプリで、大人向けの内容を許可できますか?

はい、大人のユーザーに対してなら可能です。大人同士の恋愛や大人向けのフィクションは、利用規約の範囲内です。未成年に関わる性的な内容や、実在の人物に関わる性的な内容は、どちらも範囲外で、ハードリミットを越える呼び出しは拒否されます。ユーザーが成人であることを確認するのはアプリの責任で、すべてのキーの発行者は18歳以上であることを確認しています。

モデルは役柄を崩したり、ユーザーに説教したりしますか?

拒否応答はモデルの重みから取り除かれており、プロンプトに私たちの文言は加わりません。ですから、ユーザーが出会うのは、あなたが書いたペルソナそのものです。ハードリミットを越える呼び出しは、アプリが扱えるエラーを返します。返信の中で説教されることはありません。

ユーザーのチャットで学習しますか?

いいえ。メッセージも返信も保存しないので、学習に使うものがありません。残すのは呼び出しごとの件数の行だけで、保存期間は30日です。

コストを予測しやすくするには?

クレジットは前払いで、自動チャージを使えばアプリが止まらないよう補充できます。キーごとに1日の上限を設定でき、すべての応答には費用が表示されます。