プロジェクトの歩み
Adogenの構築は、単なるAIラッパーを作ることではなく、インドネシアのストックフォトコントリビューターが直面する実際の問題を解決することでした。私が主に焦点を当てたのは、処理速度とデータのプライバシーです。
主な機能と技術的判断
AstroとTailwindによる「爆速」パフォーマンス
Astroを選んだことは極めて重要な決断でした。なぜなら、ほとんどのインタラクションは画像キュー部分を除いて静的だからです。ブラウザへのJavaScript配信を最小限に抑えることで、このアプリケーションはLighthouseのスコア100/100 を容易に達成しました。
「Bring Your Own Key」モデルによるデータセキュリティ
ユーザーに月額料金を負担させる代わりに、BYOK(Bring Your Own Key) システムを実装しました。ユーザーは自身のGroqまたはMistralのAPIキーをブラウザのlocalStorage に安全に保存します。これにより:
- サーバー運用コストはほぼゼロ($0)。
- ユーザーの画像は私のサーバーに一切保存されないため、プライバシーが保護されます。
キュー管理アーキテクチャ
無料枠のAIプロバイダーによるレート制限に対処するため、セーフディレイロジックを用いたキューシステムを構築しました。このシステムは、429 Too Many Requests エラーを回避するために、リクエストが一定の間隔で1つずつ送信されることを保証します。
堅牢なCSVサニタイズ
AIからのデータには、しばしば不正な文字や乱雑なフォーマットが含まれています。TypeScript を使用して専用のユーティリティを構築し、改行(\n)のクリーンアップ、禁止記号(©、™)の削除、50キーワード制限の遵守を徹底しました。
// 使用しているサニタイズロジックの例
const clean = (str: string) => {
return str
.replace(/\r?\n|\r/g, " ")
.replace(/[™®©]/g, "")
.replace(/"/g, '""')
.trim();
};