豪鬼メモ

一瞬千撃

3TS: SNS用の超低コスト全文検索アーキテクチャ

SNSに登録されたユーザの自己紹介や投稿記事を対象とした全文検索機能を実現するにあたって、最も運用コストが安い方法を検討した。SQLite FTS5を時系列で階層化して直列的に検索する手法だ。検索結果を時系列順で表示する場合に限定された最適化ではあるが、Elasticsearchとかよりも圧倒的に安価かつスケーラブルな解法になっている。

続きを読む

Fakebook: ゼロから作るSNS その12 実運用開始準備

自作SNSstgy.jpの機能が揃ったので、実運用を開始するための準備に入る。その一環として、可用性と堅牢性の要件を明確化し、DBのレプリケーションをしない低コスト運用の是非について論じる。また、その判断に基づいてバックアップツールとデータエクスポートツールと管理用ダッシュボードを実装したが、その詳細についても説明する。

続きを読む

Fakebook: ゼロから作るSNS その11 推薦アルゴリズム

SNS上の全ての投稿にAIがタグと特徴ベクトルをつけることを前提とした場合に、それを使って投稿推薦機能を作るための具体的方法についてまとめた。ソーシャルグラフとK-MeansとTF-IDFを使う率直な方針だが、計算量を抑えるために簡便法を多用し、十分に妥当と感じる結果を高速に導けるようにしてある。

続きを読む

Fakebook: ゼロから作るSNS その10 AIエージェントの初期実装

AIが闊歩するSNSであるSTGYでついにAIエージェントが動き出した。企画時の設計を大幅に見直して、投稿の要約とタグ付けと特徴量抽出の前処理を置くことで、モデルの能力が高くなくても安定的に動作するようにした。結果として、AIが勝手にそれっぽい投稿をして、賑わっている風のSNSが演出できるようになった。完成度はまだ甘いが、いちおう動くところまでは来た。さしあたって、ここに至るまでに当たった問題点とその解決策をまとめておく。

続きを読む

Fakebook: ゼロから作るSNS その9 縦書きのWebページは有りか無しか

縦書きのWebページやブログというのは実用になるのか。この疑問をちゃんと解決するために、縦書き用のCSSをかなり真面目に書いてみた。

続きを読む

Fakebook: ゼロから作るSNS その8 Word/Docsからコピペでブログ公開

SNSで記事を書く際に、コピ&ペーストで画像を貼り付けたり、リッチテキストをMarkdownとして貼り付けたりする機能を実装した。これによって、任意のアプリの画像を使った投稿が簡単にできるようになり、ワープロ派が一撃で構造化文書を作成して公開できるようになった。WordやGoogle Docsを開いて記事をコピーすると、HTML形式のリッチテキストがクリップボードに入る。それをSNS上にペーストすると勝手に構造化して上でMarkdownとして書き込まれるようにした。あとは、その記事を外部公開するだけで、構造化されたブログ文書が世界に発信できる。

続きを読む

Fakebook: ゼロから作るSNS その7 外部公開機能でブログエンジン化

SNSであるSTGYだが、特定の記事を外部に公開し、ログインせずに閲覧できるようにすれば、ブログエンジンとしても成立する。SNSでありながらブログエンジンであるというのは奇妙な建付けだが、両立させるための機能要件と非機能要件について検討した。既に実装も終わっていてデモサイトで利用できるようになっている(初期化したのでアカウント再登録が必要)。

続きを読む

Fakebook: ゼロから作るSNS その6 Markdown礼賛

Fakebook改めSTGYの投稿記事は、Markdown形式で書かれている。なぜMarkdownなのかというと、好きだからだ。構造化文書を最も少ない特殊記法で表現でき、プレーンテキストとの見た目の違いが少なく、画像やリンクの張り込みもやりやすい。ここでは、SNSでのMarkdownの採用がいかに現実的なのかを語ってみたい。サイドバイサイドプレビュー機能付きのMarkdownエディタも作った。

続きを読む

Fakebook: ゼロから作るSNS その5 セキュリティ

AIエージェントが操作することを念頭としたSNSであるSTGYを実装しているわけだが、AIエージェントの実装を進める際に、ここでバックエンド側のセキュリティについて再確認しておこう。AIエージェントは直接バックエンドを叩くので、ここでセキュリティの現状について確認しておくのが大事だ。

続きを読む

Fakebook: ゼロから作るSNS その4 AIエージェントの設計

前回までで、最も率直なSNSシステムであるSTGYにおいて、人間が利用可能なSNSとしての機能が完成した。デモサイトstgy.jpも設置した。ここからが本番で、AIエージェントがSNS上で自動的に行動するAIエージェント機能を設計・実装していく。今回はラフ設計だ。記憶構造をモデル化し、具体的なプロンプトの草案も書いた。

続きを読む