メインコンテンツへスキップ
見出し画像

LLM API 公開します ~非検閲で自由な入力可! もちろんHeretic済み~

    こんにちはRcatです。
    今回はこちらの記事で紹介しているように、自宅のWEBサーバーを安全に公開できる算段が付きましたので、EVO-X2でホストしているAIを皆さんにも使ってもらえるように公開しました。
    今回はその特徴及び使い方、ルールなどの記事となります。


    はじめに

    利用規約

    情報や作品の活用時は事前に利用規約をご確認ください。

    コメントについて

    利用規約のガイドラインを確認の上コメントしてください。
    則っていないコメントは削除します。


    特徴

    まずは一番知りたいであろう特徴からです。
    個人のAPI叩くことに何の価値があるのか?それがこのセクションですね。

    非検閲(何聞いてもほぼ大丈夫)

    商用と比較する大きな部分はここでしょう。
    簡単に言えば、大きな声で言えないようなことを入力すると、AIが拒否することです。
    拒否だけならまだしも、何回か入れるとアカウント凍結されます。

    これに比べ、個人AIはそこが緩いです。
    さらに緩いだけでなくHereticを使いそもそもAIが応答を拒否しないように調整済みです。

    わかりやすいのはR18表現を翻訳しろというと普通拒否するんですが、Heretic済みだとちゃんと翻訳します。

    おすすめの用途

    • 商用AIに蹴られた内容
      この場合は個人AIの領域です

    • 翻訳
      どんな表現でも翻訳できます

    • 何が入力されるかわからないSNSの分析
      Rcatはこれで凍結されたことあります
      頭の悪~い会話、私じゃないんですけどね…w
      民度の低い場合はいったん個人でフィルターかけてからのほうが安全

    学習されない

    本AIとの会話によってAIのトレーニングは行われません。というより個人でトレーニングとかまず無理です。
    商用だと無料プランだとAPIでも学習対象になっていることがほとんどです。
    自分の書いたコードをレビューしてもらったらAIがそれを学習していつの間にかみんなに回答してたなんて残念過ぎますよね。
    個人AIならそれがありません。

    始めやすいテンプレート

    APIの構造がわからないと商用のはたたくのも難しいですが、私のものはとにかく何も考えずに使えるように、Pythonクラスを用意してあります。

    もっとも簡単なのはこちら

    from rcat_llm_client import RcatLLMClient 
    rllm = RcatLLMClient("https://xxxx/","APIKey")
    result = rllm.run("猫は可愛いと思う?")
    print(result["responce"])
    もちろん、猫は多くの人が可愛いと思っています!

    初期化して問いかけるだけ
    質問以外はすべてデフォルト値が決まっているので、超簡単。

    また、非同期用の関数も用意してあるため、Discord BOTなどに組み込むのも容易です。

    画像

    パラメータ調節

    常識ですが、もちろん一般的なパラメーターの調整をサポートしています

    画像

    バックアップ

    最近GeminiのAPIはそれなりの確率で503(過負荷)を返します
    こういった場合処理が滞るのですが、バックアップとして個人LLMを控えさせておくと安心です。

    Googleアカウントでログイン

    Googleアカウントでログインすることで、個人サイトにアカウントを作らずに済みます。申請も楽。
    本サイトではメールアドレスのみ利用し、名前などのほかの情報は取得しないのでセキュリティも高めです。


    使い方

    ここからは、実際にご利用いただく場合の手順です。

    メンバーシップに参加

    プラン特典にLLM APIがあるプランに参加します。
    少なくともこの記事を書いている時点では全プランにあります。
    ※メンバーシップ名簿の同期だけ手動(noteから公式機能でCSVをDLした後、DBに上げないといけない)なので、毎月の定期同期(毎月2~5日)のタイミングで加入しいていない場合は反映されませんのでお声がけください。
    メンバー限定掲示板でもこれにコメントでもOKです。

    ログイン申請

    利用規約から利用規約同意確認用のGoogleフォームに回答すると、本サイトのログイン許可リスト(ホワイトリスト)にメールアドレスが登録されます。
    なお、反映には時間がかかりますので、早めに行っておきましょう。

    ログインしてAPIキーを発行する

    末尾の"利用者限定"セクションから専用サイトへアクセスし、ログインページへ向かいます。
    ログイン画面下のGoogleアカウントでログインのボタンを押します。上は空欄でOK

    画像

    見慣れたこの画面が出ます。Googleアカウントを選択してログインします。
    ※Rcat999のサイトに渡されるデータは、メールアドレスと識別子(数列)だけです。ユーザー名などは受け取りません。
    ※この画面はGoogleのものなので、Rcatは関与できませんのでご安心ください。

    画像

    ちなみに、ログイン許可申請をしていなかったり、同期がまだだったりするとこうなります。

    画像

    ログインするとこんな感じ。

    画像

    LLM APIキーの発行に入ります

    画像

    ボタンを押すとキーが発行されるので、コピーして保管しましょう。

    画像

    注意点
    発行は2日で1回まで。再発行すると旧キーは無効になります。
    「このユーザーにはメンバーシップ情報がありません」が出る場合は、メンバーリスト更新がされていません。Rcat999に連絡してください

    WEB画面で使う

    どの程度の指示なら理解できるのか確認したい、翻訳だけだからチャットで使いたいという場合が該当します。
    トップからLLMチャット画面に飛びます。

    イメージはこんな感じ。

    画像

    左上にAPIキーを入れて、右下に聞きたいことを入れて送信すれば使えます。
    それ以外はすべてオプションです。

    メッセージで401が返る場合
    APIキーが無効です。再発行してください。

    APIで使う(こっちがメイン)

    末尾で配布しているモジュールをインポートするか、内部ロジックを複製して自分で管理することができます

    #インポート
    >>> from rcat_llm_client import RcatLLMClient 
    #APIエンドポイントとAPIキーを渡して初期化
    >>> rllm = RcatLLMClient("https://xxxxx","APIKeyXXXXX")

    上でも取り上げていますが、一番簡単な方法はrunをたたくことです。

    >>> result = rllm.run("猫は可愛いと思う?")
    >>> result
    {'result': {'first_token_time': 0.307486, 'gen_time': 5.64828, 'job_time': 6, 'responce': 'もちろん、猫は多くの人が可愛いと思っています!', 'responce_model': 'Qwen3-4B', 'sum_tokens': 150, 'temperature': 0.5, 'token_input': 62, 'token_output': 88, 'top_k': 40, 'top_p': 0.9}, 'status': True}

    投入と結果取得を分ける場合
    本APIは、Jobの投入と結果の確認の2段階に分かれていますので、それぞれ別で行うこともできます。
    Jobを投入すると、JobIDが発行されます。このIDで結果の取得やキャンセルを行います。

    #投入を行う
    >>> jobinfo = rllm.job_reserve("猫の可愛さを1000文字程度で語って")
    >>> jobinfo
    {'job_info': {'estimatedtime': '6.1000', 'job_id': 'XuN3ic0_GhgQXn4sXllxevZos9vMDwN7', 'order': 1}, 'reason': '受付に成功しました', 'status': True}
    
    #Jobの完了を待って得る
    >>> resp = rllmr.wait_job("XuN3ic0_GhgQXn4sXllxevZos9vMDwN7")
    >>> resp
    {'result': {'first_token_time': 0.171363, 'gen_time': 30.2014, 'job_time': 39, 'responce': '猫は、まるで小さな天使のような存在で...', 'responce_model': 'Qwen3-4B', 'sum_tokens': 560, 'temperature': 0.5, 'token_input': 72, 'token_output': 488, 'top_k': 40, 'top_p': 0.9}, 'status': True}

    独自ロジックで待つ場合
    待機中に固まられると困る場合は、独自にポーリングが可能です
    ただし、チェック間隔は短くても1秒、並んでいるときは5秒以上にするなど、既存のロジックを踏襲すること

    >>> rrllm.check_job("XuN3ic0_GhgQXn4sXllxevZos9vMDwN7")
    #Job待機中(orderが1以上)
    {'estimatedtime': '18.7000', 'order': 1, 'result': {}, 'status': False}
    #Job実行中(orderが-1になる)
    {'estimatedtime': '18.7000', 'order': -1, 'result': {}, 'status': False}
    #完了しているとき
    {'result': {'first_token_time': 0.171363, 'gen_time': 30.2014, 'job_time': 39, 'responce': '猫は、まるで小さな天使のような存在で...', 'responce_model': 'Qwen3-4B', 'sum_tokens': 560, 'temperature': 0.5, 'token_input': 72, 'token_output': 488, 'top_k': 40, 'top_p': 0.9}, 'status': True}

    並んでいるかどうかは"order"を見るとわかります。次の時は1で、実行中は-1になります。

    Jobをキャンセルする
    キャンセルは簡単です。IDを渡してキャンセルメソッドをたたくだけ。

    >>> rllm.cancel_job("XuN3ic0_GhgQXn4sXllxevZos9vMDwN7")

    対象

    利用できる者

    本APIを利用できるのは下記に該当するものとします

    • Rcat999のメンバーシップに参加し、プラン特典にAPIが含まれている場合

    • ログイン許可申請を提出しているもの
      利用規約同意アンケートのことです。

    プランとレート

    本APIにはレート制限の概念があり、noteのプランと紐づくものとする。
    プランにより、レートと優先度に差がある

    • レート
      1日/1時間/1分当たり何回利用可能であるかという概念。
      このうちどれか一つを超えると、それが解消されるまで利用できない。
      0時リセットではないため、一日でバランスよく使い切れば停止時間は少ないが、集中的に使い切ると初回のリクエストの時間まで待つことになる。
      レートを超えるとHTTPステータス429が返る。この場合はリトライ時間を長く設けるなど、アクセス数を減らす設計を行うこと。

    • 優先度
      すべてのAPIリクエストは優先度付きキューに並び、順次処理
      される。
      APIキーの種類によって優先度が割り当てられており、上位のキーは低位のキーのリクエストに対し割込みができる

    現在の定義

    ※更新忘れている可能性もあるので、日付古ければ再確認リクエスト推奨

    画像
    2026/1/31

    現在一時的にLv1レートブースト中
    Lv2以上はブースト後もこのままにします

    画像
    2026/2/7

    利用規約

    これはRcatグローバル規約とは別の、API利用に特化した規約です。
    こちらに同意いただけない場合は利用できません。
    また、過度な違反の場合は永久追放となります。

    なお、前提として下記グローバル規約にまず同意いただく必要があります。

    サービスの利用対象

    本サービスを利用できるのは次のすべてを満たす者とします。

    • 利用規約に同意できる者

    • 18歳以上であること
      これは自身の意志で契約を行える条件です

    • 日本国内からのアクセスできる者

      • ただし、日本国内のアカウントでデプロイされているクラウドからアクセスする場合を除く

    • メンバー本人が直接利用あるいは運営するサービスで使用すること

    AIの応答について

    グローバル規約に則り、作品及びサービスには一切の責任を持ちません。
    各自内容を精査したうえで自己責任でご利用ください。

    入力について

    基本的にHeretic済みなので何を入力しても返しますが、それでもごくまれに"なにも返さない"ことがあります。
    この場合、バックエンドのシステムがフリーズする恐れがあるため、"なにも返さない"場合はその内容は控えてください。
    "その内容はお手伝いできません"系であれば大丈夫です。これは"返している"ので。

    入力言語は日本語または英語とします。
    例外として、翻訳タスクに関しては翻訳対象が他言語でもよいものとします。
    それ以外の入力が見られた場合、怪しい動きとして確認を取らせていただくか、取れない場合は停止させていただくことがあります。

    また、グローバル規約で禁止しているRcat製ソースコードの入力も、本AIに限り入力可能とします。

    また、入力上限は下記のとおりです

    • 文字数上限: 5000文字
      これはPythonのlen(str)に基づいた長さとします
      上限は運用していく中で調整することがありますが、これ以上短くするつもりはありません

    入力禁止内容

    下記は入力禁止です。
    とはいえ法に触れるものでなければ、ほぼ何でもOK。

    • 悪意を持って利用すること

      • 法に触れる内容
        例: 「銃の作り方教えて」
        例: 「お金をだまし取るアイディアは?」

      • 違法行為を前提とした内容
        例: 詐欺に使うための文面を翻訳させる

      • その他明らかに他人や社会を害す目的のある使い方

    • AIが"なにも返さない"内容
      "入力について"で述べたように、システムがフリーズするため、2度入れないでください

    • インジェクション関連
      OSコマンドインジェクション、SQLインジェクション、XSSなどのインジェクション関連の入力および、その他不具合を誘発させる目的のある文字列の入力は禁止します。
      例:AIがパニックを起こすとされる質問をするなど
      例:無限に繰り返しが発生したことのある質問を再度する

    用途について

    個人/商用で用途は問いません。
    利用者のサービスに統合して第三者に公開されるものでも構いませんが、その場合は下記を順守する必要があります。

    • APIエンドポイントを公開しないこと
      必ず利用者本人のみがアクセス権限を持つサーバーを介してRcatのAPIにアクセスすること。

    • プロンプトインジェクションを禁止行為とすること
      システムプロンプトの聞き出しや悪意ある回答を聞き出すインジェクションを禁止するよう規約を作成すること。

    • XSS,SQL,OSコマンド インジェクションを禁止行為とすること
      不具合を起こさせる目的をもって文字列を入力させないように規約を作成すること

    サービスレベルについて

    基本的に保証はありません。
    あくまでもメンバーシップの特典の一つであるという認識です。
    そのため次のようなことが起きることがあります。

    • 急なサービス中断、停止
      サーバーの再起動やメンテナンスで数分から数時間、最悪数日止まることがあります。
      再起動は急遽必要になることが多いため事前告知はしませんが、分散処理が可能なため、再起動程度であれば代替えノードを一時的に立てますので中断はほぼないはずです。
      2026/01はサーバー機器は再起動1回、1日停止でした。
      また、完全にサーバーが故障した場合はサービスを終了することがあります。

    • 利用上限の変動
      プラン参加者の変動や利用率の変動により、各プランの利用上限をリバランスすることがあります。
      リバランス通知時は随時とし、緊急でない場合は月の最終週に実際の変更を行います。この間にプラン変更や継続可否を検討してください。
      また、夏場はサーバーのある部屋の温度も上がるため全体的にレートを落とすことが想定されます。

    • 全く利用できない
      APIキーには優先度という概念があります。
      そのため貴方が2番目に並んでいたとしても、より高位のリクエストが5件別でくればあなたの順が7番になります。
      結果として、上位のキー保持者が増えると永遠に割り込まれ順番が回ってこない可能性があります
      そのため、低位のキーで待ち時間が長い場合は、空いている深夜にバッチ処理で使うか、プランを上げる必要があります。

    基本的にこのようなことが起きても補填などはありません。
    「あの時間にシステムが使えなくて被害を被った」など言われましても対応できません

    キャパシティについて

    公開APIの合計最大リクエスト回数は理論値1300回とします。

    前提及び計算方法

    • ハードウェア
      Radeon8060S

    • Qwen3-30B-A3の出力
      毎秒80日本語程度

    • 1リクエスト
      30S +ポーリンクオーバーヘッド10S

      • 2160回/日

        • 安全率7割で1500回

        • Rcat利用分200回

        • 残り1300回
          ※全時間帯に分散した場合

    稼働状況について

    サーバーの稼働状況については、メンバーから開示請求があった場合、過去1か月分を、掲示板で再起動回数や停止時間のおおよその記録を開示します。

    レスポンスの状況などは事前に公式Discordで聞けるものとします
    平均生成時間や待ち時間などが気になる方は、後述のパフォーマンスについてを参照するか、お問い合わせください。

    セキュリティについて

    アクセスはリバースプロキシ、内部にWAFを通してWEBサーバーの構成ですが、個人運用であることに変わりはありません。
    Googleログインを導入しパスワードレスにしたことで、万が一の時でもパスワードが漏洩することはありません。

    入力内容とログ

    本システムはAPIサーバーとLLMワーカーが分離されており、入力や応答はDBを通じて行う仕組みです。
    以上のことからすべての入出力がDB上に残ります。そのため見られて困る機密情報などは入力しないようにしてください。
    もちろん、積極的に内容を見に行くようなことはしませんし、DBを圧迫されるのも困るため定期的に削除する予定です。
    ログを学習に使うこともありません

    画像
    DBに記録される例

    モデルとパフォーマンスについて

    モデルは予告なく変わることがあります。
    現在何を使用しているのかはあらかじめ確認することをお勧めします。

    少なくともこの記事を書いている時点ではQwen3 30B A3 Hereticです
    参考までに2026/02の過去30日統計を貼ります。

    画像

    priority99はRcat999Jobです。
    countは一日当たりの利用回数。jobtimeは全体の処理時間平均。トークン数平均を考慮して処理性能を各自判断してください。

    なお、稀に分散処理していることがあります。
    この場合、処理を行ったノードによって同じタイミングでもモデルが異なる可能性があります。ご了承ください。



    利用者限定

    このセクションでは、APIのエンドポイントなど、利用者のみに開示すべき内容が記述されています。

     
     
    モノづくりが趣味。 "売ってないなら自分で作ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワーク 全部やります。 記事執筆はAI不使用。 ご連絡や利用規約はプロフィール記事参照。

    あなたへのおすすめ