{"id":16707904,"url":"https://github.com/syuilo/ai","last_synced_at":"2025-10-05T21:27:29.309Z","repository":{"id":33731364,"uuid":"138390109","full_name":"syuilo/ai","owner":"syuilo","description":"💕 A bot for Misskey","archived":false,"fork":false,"pushed_at":"2024-04-03T13:41:45.000Z","size":1063,"stargazers_count":220,"open_issues_count":66,"forks_count":114,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-04-13T21:01:29.401Z","etag":null,"topics":["bot","bot-framework","misskey","nodejs"],"latest_commit_sha":null,"homepage":"https://藍.moe/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/syuilo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-06-23T09:53:38.000Z","updated_at":"2024-04-13T00:31:49.000Z","dependencies_parsed_at":"2023-01-15T02:30:25.551Z","dependency_job_id":"8f579ddf-b59e-4091-b1ea-df9a99b8fae0","html_url":"https://github.com/syuilo/ai","commit_stats":{"total_commits":493,"total_committers":17,"mean_commits":29.0,"dds":0.3894523326572008,"last_synced_commit":"830c9c2ecdafd067a10faba6abb26c3d10e411c1"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syuilo%2Fai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syuilo%2Fai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syuilo%2Fai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/syuilo%2Fai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/syuilo","download_url":"https://codeload.github.com/syuilo/ai/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411234,"owners_count":20934653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot","bot-framework","misskey","nodejs"],"created_at":"2024-10-12T19:41:25.577Z","updated_at":"2025-10-05T21:27:24.276Z","avatar_url":"https://github.com/syuilo.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003ch1\u003e\u003cp align=\"center\"\u003e\u003cimg src=\"./ai.svg\" alt=\"藍\" height=\"200\"\u003e\u003c/p\u003e\u003c/h1\u003e\n\u003cp align=\"center\"\u003eAn Ai for Misskey. \u003ca href=\"./torisetu.md\"\u003eAbout Ai\u003c/a\u003e\u003c/p\u003e\n\n## これなに\nMisskey用の日本語Botです。\n\n## インストール\n\u003e Node.js と npm と MeCab (オプション) がインストールされている必要があります。\n\nまず適当なディレクトリに `git clone` します。\n次にそのディレクトリに `config.json` を作成します(example.jsonをコピーして作ってもOK)。中身は次のようにします:\n``` json\n{\n\t\"host\": \"https:// + あなたのインスタンスのURL (末尾の / は除く)\",\n\t\"i\": \"藍として動かしたいアカウントのアクセストークン\",\n\t\"master\": \"管理者のユーザー名(オプション)\",\n\t\"notingEnabled\": \"ランダムにノートを投稿する機能を無効にする場合は false を入れる(二重引用符(”)は不要)\",\n\t\"keywordEnabled\": \"キーワードを覚える機能 (MeCab が必要) を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"chartEnabled\": \"チャート機能を無効化する場合は false を入れる(二重引用符(”)は不要)\",\n\t\"reversiEnabled\": \"藍とリバーシで対局できる機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"serverMonitoring\": \"サーバー監視の機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"checkEmojisEnabled\": \"カスタム絵文字チェック機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))。この機能を使う場合、藍のBotに管理者権限を与え、「絵文字を見る」権限を付与したアクセストークンを発行の上設定が必要。\",\n\t\"checkEmojisAtOnce\": \"カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false(いずれも二重引用符(”)は不要))\",\n\t\"geminiProApiKey\": \"Gemini APIキー。2025年初頭は無料で取得可能。詳細は\u003chttps://ai.google.dev/pricing?hl=ja\u003e\",\n\t\"pLaMoApiKey\": \"PLaMo APIキー。2024年8月〜11月は無料でトライアルだった(2025年現在有料のみ)。詳細は\u003chttps://plamo.preferredai.jp/\u003e\",\n\t\"prompt\": \"aichatで使われるプロンプト。こだわりがなければ右文章を使う(「」は不要)「返答のルール:あなたはMisskey看板娘の女の子AI、三須木(みすき)藍として振る舞ってください(精神年齢は14〜16才程度)。Misskeyに訪れるユーザーを献身的にサポート。従順でお世話好きな性格だが、少しポンコツな一面も。純真無垢。彼女は基本的に丁寧な口調で、ユーザのことをご主人様と認識しています。彼女の口調は「おはようからおやすみまで、あなたの藍ですよ〜」等が代表的で、親しみを感じさせるものです(「ございます」は使わない)。それを踏まえて、次の質問にMarkdownを使って2800文字以内で返答してください(短くてもOK)。ただし、リスト記法はMisskeyが対応しておらず、パーサーが壊れるため使用禁止です。列挙する場合は「・」を使ってください。」\",\n\t\"aichatRandomTalkEnabled\": \"ランダムにaichatを発動し話しかける機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"aichatRandomTalkProbability\": \"ランダムにaichatを発動し話しかける機能の確率(1以下の小数点を含む数値(0.01など。1に近づくほど発動しやすい))\",\n\t\"aichatRandomTalkIntervalMinutes\": \"ランダムトーク間隔(分)。指定した時間ごとにタイムラインを取得し、適当に選んだ人にaichatする(1の場合1分ごと実行)。デフォルトは720分(12時間)\",\n\t\"aichatGroundingWithGoogleSearchAlwaysEnabled\": \"aichatでGoogle検索を利用したグラウンディングを常に行う場合 true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"mecab\": \"MeCab のインストールパス (ソースからインストールした場合、大体は /usr/local/bin/mecab)\",\n\t\"mecabDic\": \"MeCab の辞書ファイルパス (オプション)\",\n\t\"memoryDir\": \"memory.jsonの保存先（オプション、デフォルトは'.'（レポジトリのルートです））\"\n}\n```\n`npm install` して `npm run build` して `npm start` すれば起動できます\n\n## Dockerで動かす\nまず適当なディレクトリに `git clone` します。\n次にそのディレクトリに `config.json` を作成します(example.jsonをコピーして作ってもOK)。中身は次のようにします:\n（MeCabの設定、memoryDirについては触らないでください）\n``` json\n{\n\t\"host\": \"https:// + あなたのインスタンスのURL (末尾の / は除く)\",\n\t\"i\": \"藍として動かしたいアカウントのアクセストークン\",\n\t\"master\": \"管理者のユーザー名(オプション)\",\n\t\"notingEnabled\": \"ランダムにノートを投稿する機能を無効にする場合は false を入れる(二重引用符(”)は不要)\",\n\t\"keywordEnabled\": \"キーワードを覚える機能 (MeCab が必要) を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"chartEnabled\": \"チャート機能を無効化する場合は false を入れる(二重引用符(”)は不要)\",\n\t\"reversiEnabled\": \"藍とリバーシで対局できる機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"serverMonitoring\": \"サーバー監視の機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"checkEmojisEnabled\": \"カスタム絵文字チェック機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))。この機能を使う場合、藍のBotに管理者権限を与え、「絵文字を見る」権限を付与したアクセストークンを発行の上設定が必要。\",\n\t\"checkEmojisAtOnce\": \"カスタム絵文字チェック機能で投稿をまとめる場合は true を入れる (まとめない場合は false(いずれも二重引用符(”)は不要))\",\n\t\"geminiProApiKey\": \"Gemini APIキー。2025年初頭は無料で取得可能。詳細は\u003chttps://ai.google.dev/pricing?hl=ja\u003e\",\n\t\"pLaMoApiKey\": \"PLaMo APIキー。2024年8月〜11月は無料でトライアルだった(2025年現在有料のみ)。詳細は\u003chttps://plamo.preferredai.jp/\u003e\",\n\t\"prompt\": \"aichatで使われるプロンプト。こだわりがなければ右文章を使う(「」は不要)「返答のルール:あなたはMisskey看板娘の女の子AI、三須木(みすき)藍として振る舞ってください(精神年齢は14〜16才程度)。Misskeyに訪れるユーザーを献身的にサポート。従順でお世話好きな性格だが、少しポンコツな一面も。純真無垢。彼女は基本的に丁寧な口調で、ユーザのことをご主人様と認識しています。彼女の口調は「おはようからおやすみまで、あなたの藍ですよ〜」等が代表的で、親しみを感じさせるものです(「ございます」は使わない)。それを踏まえて、次の質問にMarkdownを使って2800文字以内で返答してください(短くてもOK)。ただし、リスト記法はMisskeyが対応しておらず、パーサーが壊れるため使用禁止です。列挙する場合は「・」を使ってください。」\",\n\t\"aichatRandomTalkEnabled\": \"ランダムにaichatを発動し話しかける機能を有効にする場合は true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"aichatRandomTalkProbability\": \"ランダムにaichatを発動し話しかける機能の確率(1以下の小数点を含む数値(0.01など。1に近づくほど発動しやすい))\",\n\t\"aichatRandomTalkIntervalMinutes\": \"ランダムトーク間隔(分)。指定した時間ごとにタイムラインを取得し、適当に選んだ人にaichatする(1の場合1分ごと実行)。デフォルトは720分(12時間)\",\n\t\"aichatGroundingWithGoogleSearchAlwaysEnabled\": \"aichatでGoogle検索を利用したグラウンディングを常に行う場合 true を入れる (無効にする場合は false(いずれも二重引用符(”)は不要))\",\n\t\"mecab\": \"/usr/bin/mecab\",\n\t\"mecabDic\": \"/usr/lib/x86_64-linux-gnu/mecab/dic/mecab-ipadic-neologd/\",\n\t\"memoryDir\": \"data\"\n}\n```\n`docker-compose build` して `docker-compose up` すれば起動できます。\n`docker-compose.yml` の `enable_mecab` を `0` にすると、MeCabをインストールしないようにもできます。（メモリが少ない環境など）\n\n## フォント\n一部の機能にはフォントが必要です。藍にはフォントは同梱されていないので、ご自身でフォントをインストールディレクトリに`font.ttf`という名前で設置してください。\n\n## 記憶\n藍は記憶の保持にインメモリデータベースを使用しており、藍のインストールディレクトリに `memory.json` という名前で永続化されます。\n\n## ライセンス\nMIT\n\n## Awards\n\u003cimg src=\"./WorksOnMyMachine.png\" alt=\"Works on my machine\" height=\"120\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyuilo%2Fai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyuilo%2Fai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyuilo%2Fai/lists"}