クラウディウスが活動するための基盤を築く ノート

クラウディウスが活動するための基盤を築く

この記事では、Claudiusという名前のClaudeベースのチャットボットのサーバーサイドセットアップについて詳述しており、そのアイデンティティシステム、サービス接続性、およびデプロイメントの現実性に焦点を当てています。アイデンティティシステムは、管理者、メンバー、ゲストなどのユーザーロールがサーバーでのみ決定され、クライアントによって操作されないことを保証します。これは、Auth.jsとGoogleプロバイダー、およびMongoDBアダプターを使用して実現され、ロールは管理者メール、許可リスト、またはデフォルトのゲストに基づいて解決されます。解決されたロールは、アプリケーション内での効率的なアクセス用にJWTに埋め込まれます。プロビジョニングプロセスでは、ユーザー固有のフィールドのデフォルト値も設定され、サインインごとにロールが再計算されることが保証されます。接続性は、MongoDB Atlasをpingするヘルスチェックルートを通じて検証され、オプションでBedrockのClaude Haikuモデルに小さな呼び出しを行います。このプローブは、アプリケーションがAIバックエンドと正常に対話できることを確認し、トークン使用量メタデータが返されます。アプリケーションはまた、それぞれの推論プロファイルIDと価格情報を持つAIモデルのカタログを定義します。環境変数は、各開発フェーズで必要に応じて反復的に検証され、現在のセットには認証、データベース、およびBedrockの認証情報が含まれます。このセットアップフェーズ中に、いくつかの重要な問題、または「落とし穴」が発生し、解決されました。Auth.jsアダプターとアプリケーションのデータベースヘルパーの両方が正しいデータベースをターゲットにしていることを確認することが重要な問題でした。接続文字列にデータベースパスが欠落していると、アクセスできない「test」データベースにデフォルト設定されていました。接続プーリングは、MongoDBクライアントをグローバルにキャッシュすることによって最適化されました。モノレポ内での依存関係管理は、ランタイム依存関係に細心の注意を払い、デプロイメント用のオプション依存関係にプラットフォーム固有のバイナリを含めることを必要としました。ユーザーアイデンティティとサービスインタラクションの基盤は確立されましたが、コアチャット機能はまだ実装されていません。