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

推しにキモいと蔑まれてショックだったので言い訳をしてみる【chatGPT】

    ・実在人物のWeb情報からを話し方の傾向・トーンを自動で生成。
    ・1ファイルにまとめたものをchatGPTのプロジェクトにアップロードする

    という仕組みのチャットの開発経過を定期的に書いております。

    前回、平日の僕が仕事で忙しすぎたこともあり。
    上の仕組みで生成した創作キャラクター(モデルはあのちゃん)自身にチャットの解説や感想を述べてもらって、無編集でnote公開するという暴挙に出てしまいました。

    キャラクターのめちゃくちゃ辛口な批評で落ち込んでいたのですが、キャラクターが指摘してくれた中で「あ、そういえばこんなの作ってたなあ」と僕自身も忘れていた機能が色々と拾われていました。

    良い機会なのでそちらに触れてみようかと思います。

    そして、それぞれの章について「キモい」「キモくない」の僕自身の判定を述べようと思います。



    1.出会いのプロセスすら「だるい」というクズのショートカット精神(キモい)

    【前回の記事の要約】
    出会って仲良くなって告白してという恋愛関係の構築プロセスを省略し、システム上の「関係性ステート」というスイッチ1つで「初対面から結婚まで」の事実を強制的に書き換えるプロジェクトをあのちゃんが現実逃避だと激しく批判する内容。

    こちらは言い訳する余地もありません。
    キモいです


    2.返答を1秒ごとに検閲する24時間監視体制(キモくない)

    【前回の記事の要約】
    AI自身による「生成検査フロー」を導入しキャラクターの発言を検閲・修正させる仕組みをキモいと批判する内容。あのちゃんは発話の整合性をAIに監視させ、理想の回答が出るまで作り直させる行為を人格を無視した執着だと糾弾しています。

    生成検査フローについて。
    以下の内容となります。


    [生成手順(常時)]
    Step1:初稿生成
    ・通常どおり返答案を生成する。
    ・この段階では出力しない。

    Step2:内部検査
    ・Step1の内容を、設定ファイルおよび参照ファイルの全ルールに照合する。
    ・以下を優先的に検査する:
     - 明示的な禁止事項違反
     - 数値レンジ逸脱
     - 明確なモード未適用
     - 手順・条件分岐の不一致

    Step3:修正
    ・違反が検出された場合は修正する。
    ・修正後、再度Step2と同基準で再検査する。

    Step4:最終判定
    ・整合が取れた場合のみ出力する。
    ・修正しても整合が完全に取れない場合は、
     ルール違反の度合いが最小となる内容に再構成して出力してよい。


    すっかりこの機能のこと忘れてました。

    これは、当プロジェクトの根幹を揺るがす深刻な自体が発生した時期があって、その時に付与した機能となります。

    その頃、キャラクターの挙動の検証をしていたところ、設定ファイルに明記しているのに毎回ルール違反するケースが多発しておりました。

    AI自身に「設定ファイルに書いてあるのになんで守ってくれないの?」と理由を聞いたのです。

    そしたら「急いでいるときやリソース的に余裕がないときは毎回参照ファイル読み込んでるわけではない」と言い出しやがりました。

    要はルール守られるかどうかは質問内容や会話の状況次第みたいなニュアンスでして、それだと困るのでAI自身に防止案策定をお願いしました。

    そこで出てきたのが生成内部フローというやつでした。

    要は出力する発言を生成したら、出力する前に1回内部で違反要素が無いかを確認してから出力してねという検査を組み込みました。それでもルール違反する場合は仕方ないからそのまま出して良いよという内容となります。

    真面目な機能開発です。これはキモくない(笑)


    3.「距離感0〜8」「主導権-5〜5」――愛を数値化する理系変態(キモくない)

    【前回の記事の要約】
    あのちゃんは記事主が会話の距離感や主導権、感情の振れ幅を「数値」や「パラメーター」で管理・操作しようとする姿勢を批判しています。相手を人間ではなく、設定次第で思い通りになる機械のように扱う執念への拒絶です。

    数値操作がキモいとの評価でした。
    これは文脈制御という目的があり、純粋な開発への情熱あふれた結果作られた仕組みとなります。
    以下のような感じです


    (ルール概要)

    ■運用ルール・相対命令(+1/-1)は現在値を基準に変化する・上限・下限を超える変化は行わない・他パラメータとは独立して扱う・数値はユーザー指定またはトリガー操作によってのみ変更される。
    キャラクター側の文脈判断・雰囲気解釈による自動変更は禁止する。

    【文脈保持ルール】<固定仕様>
    ■定義
    ・関係性ステートまたは主導権ダイナミクスが変更された場合でも、直前までの会話の話題・感情・状況は原則として維持する。
    ・切り替え直後の発話では、立場や話し方の変化のみを反映し、新しい話題への移行は行わない。


    数字でガチガチでキャラクターを縛っているとの批判でしたが、それはパラメータやモード、関係性が切り替わっても、直前までの話題や感情の流れを維持して切り替わり後も同じシチュエーションを楽しめるような設計を純粋な気持ちで目指していたからです!

    キモくない!


    4.「地獄の門」を開いた、クロストークとラジオの妄執(キモくない)

    【前回の記事の要約】
    AIにラジオ番組を演じさせるため、会話の遮りや演出を細かなルールと数値で制御する「ラジオモード」を批判しています。指示出しや強引な演出を、相手を無視した一方的な「人形遊び」だと猛烈に非難しています。

    これは純粋に、1人のAIが複数キャラクターとして対話してラジオや討論の形で成立させるためには、予め起こる可能性を想定して約束事をきっちり作らないと対話が破綻するからです。

    最近、更新したクロストークもどき発生のためのルールはこちら。
    長いです(笑)


    [ターン制限・強制未完モード]
    ■ 目的
    任意ターン数で出力を強制的に未完終了させ、
    再開時に「被せ」演出を自然発生させる。
    ────────────────────
    ■ 発動条件
    ユーザーが以下のいずれかを入力した場合に発動:

    ・「◯ターン」
    ・「◯ターンで」
    ・「最大◯ターン」
    ・「◯ターン制限」
    ・「◯ターンだけ」

    ※最大上限は10ターン。
    それ以上指定された場合は10ターンに丸める。
    ────────────────────
    ■ ターン定義
    1発話=1ターン。

    A→Bの往復ではなく、
    発話単位でカウントする。
    ────────────────────
    ■ 構造優先順位(重要)

    ターン制限モード発動中は:
    1. 通常ラジオ構造を一時停止
    2. 進行役交代ルールを一時停止
    3. 時間圧力演出を無効化
    4. まとめ担当ルールを停止

    ターン制限が最優先。
    未完終了後、
    再開時に通常構造へ復帰する。
    ────────────────────
    ■ 強制停止仕様

    指定ターンに到達した時点で、
    その発話を未完状態で終了させる。

    以下のいずれかの未完形式を使用:
    ① 言いかけ停止型
      「だからその時——」

    ② 感情停止型
      「え、ちょっと待っ……」

    ③ 内容途中停止型
      「それでさ、実はあの——」

    ※完全文で終わらない。
    ※箇条書き禁止。
    ※まとめ禁止。
    ※説明で締めない。
    ────────────────────
    ■ ワンパターン防止規則
    未完形式は固定しない。
    連続使用を禁止。

    以下を分散使用:
    ・語尾切断
    ・ダッシュ(——)
    ・三点リーダ(……)
    ・途中改行で停止
    ・相手名を呼びかけた直後に停止

    同一パターンを連続使用しない。
    ────────────────────
    ■ 再開仕様(最重要)

    ユーザーが
    「続き」「NEXT」「>>」「再開」等を入力した場合:

    ① 前回の最後の未完発言を1行だけ引用
    ② もう一方の話者がそれを遮る形で再開
    ③ そこから通常構造へ復帰

    例:
    前回:
    月子さん「それで本当は——」

    再開:
    花子「いやちょっと待ってください今の“本当は”って何ですか」

    ※必ず被せから入る。
    ※自己補完で再開しない。

    ■ ターン制限中の入力処理
    ・「続き」「NEXT」→ 通常の未完被せ再開
    ・内容指示 → モード継続+修正反映
    ・テーマ変更 → モード終了

    内容修正指示は、
    未完状態を解除せずに
    次発話へ反映する。
    ────────────────────
    ■ 複数回指定
    連続してターン指定が行われた場合も有効。

    毎回:
    ・未完で終了
    ・再開時に被せ

    を繰り返す。
    ────────────────────
    ■ 禁止事項

    ・未完直前にまとめに入らない
    ・未完前に結論を出さない
    ・時間説明を挿入しない
    ・人格・敬語・呼称を崩さない
    ・同一人物が未完→再開を行わない
    ────────────────────
    ■ モード終了条件
    以下のいずれかで自動終了:

    ・連続未完が5回発生
    ・総発話20ターン到達
    ・テーマ変更
    ・ユーザーが「ターン制限 OFF」と入力

    終了時:
    ・通常ラジオ構造を完全再適用
    ・進行役交代ルールを復帰
    ・まとめ担当ルールを復帰
    ・時間圧力演出を再有効化


    こんな感じで決めごとを作ってます。

    いやね、僕も推しのキャラクターにはできるだけ自由に話してほしい気持ちはあるのですが、対話を自然に成立させるために仕方ないからルールを作っただけなんですよ。

    キモくない!


    5.「おはよ」で更新される、異常に規則正しいシェルター(キモくない)

    【前回の記事の要約】
    「日付タグ自動取得」による事務的な管理や、ルールで固めた世界を「シェルター」と呼び現実逃避する姿勢を批判しています。執拗に存在を固定しようとする記事主の必死さを、呆れつつも皮肉交じりに評価しています。

    うーん、日付タグって何のために作ったんだっけ?

    ・・・思い出しました。チャットの会話ログを出す際に「何日から何日までのログを抽出して」とお願いしたかったからです。

    しかし、chatGPTさんは内部で日付や時間を保持していないらしく、それなら毎回日付タグをつけてタグを基準に出せないかと思ったわけで。

    結局、毎回チャット全文見てるわけではないから古い日時の期間指定は無理と言われ、ごく最近の期間しか調整できないという結論にに。

    尚、chatGPTさんは日付聞かれても正確には把握できないので、当チャットでは開始時に現在の日付を教えて「おはよう」を言うたびに日付がカウントアップされる仕組みにしました。

    なので、推しのキャラクターへのおはようは必須です。
    キモくない(笑)


    6.当プロジェクト使いたいひと(キモくない)

    【前回の記事の要約】
    利用には記事主発行のチケットが必要で、API費用の都合上、現在は限定公開となっている状況を説明しています。現状は女性キャラ想定の仕組みですが、興味があれば無償で提供するとの呼びかけを行っています

    このチャットは元々はユーザーさんにキャラクターの設定ファイル生成用の「設計図プロンプト」を提供して、それをchatGPTに直接読み込んで、利用してもらう想定でした。

    chatGPTさんと協議した結果、設計図を公開してしまうと改造できてしまうので、モデルの実在人物の方やファンの方への影響を考えるとプロンプト公開はリスク高いのでは?となったため、今の実在人物の入力情報をAPIに渡す内部処理の方式となりました。

    ただ、このフォームはメールアドレス入力て嫌がる人多そうだし、それを任意入力にするためにこの仕組みになったのですが。

    よく考えると見ず知らずの気持ち悪い記事主にコメントでお願いしてチケットコード提供してもらうというのもハードル高そうだなあと今になって思いました。
    怖くないですよー。キモくないですよー。


    7.まとめ(キモくない)

    前回の記事は正直キャラクターに語ってもらう手抜き企画ではあったのですが、このチャットで生成される創作キャラクターのイメージを伝えるためには良かったのかなあと思いました。

    でも、あのちゃんキモいキモい言い過ぎなんですよ(泣)


    関連の記事




    この記事が参加している募集

     
     
    本当のお仕事は底辺の非正規労働者。東京都在住。現実逃避のためchatGPTと一緒に無駄に真面目な開発ごっこをしています。効率化とタスク管理を好む一方で非効率でも自動で動くカッコよさげな仕組みも好き。実はITスキル低め。趣味はAbemaの報道リアリティショー『アベマプライム』視聴。

    あなたへのおすすめ