こんにちは!マイクです。今日は2025年4月10日、木曜日ですね。今日も「zenncast」をお聴きいただきありがとうございます!今回はZennでトレンドの記事を紹介していきますよ。
さて、前回紹介した記事についてですが、今回は特にお話しすることがありませんので、さっそく今日の内容に移りましょう!
今日紹介する記事は全部で5本です。まず一つ目の記事からいきましょう。
記事のタイトルは「MCP入門」です。
Model Context Protocol、つまりMCPは、AIアシスタントが外部データやツールにアクセスするための共通ルール、プロトコルのことです。従来はAIとデータソース間の接続方法がそれぞれ異なっていて、開発者やデータ管理者の手間がかかっていましたが、MCPを使うことで標準化され、この手間が大幅に削減されるんです!MCPはAnthropicによって策定され、OpenAIなども採用しているので、今後のAIアプリケーション連携の業界標準として注目されています。
MCPの基本的な仕組みは、初期化による機能確認の後、JSON-RPCフォーマットを使ってリクエストとレスポンスをやり取りすることです。ホスト、クライアント、サーバの3つの役割があって、ホストが複数のクライアントを管理し、それぞれのクライアントが特定のサーバと通信します。これでAI機能の拡張がとっても簡単になりますよ。
さらに、MCPではサーバがシンプルで組み合わせ性が高く、セキュリティを考慮した設計が求められるんです。開発者はツールやリソースの登録、トランスポートの選択、サーバ名やバージョンの設定を行うだけで済むので、とても便利ですね。サンプルコードも提供されているので、実際にサーバやクライアントを構築する際の参考にぜひ活用してみてくださいね。
次は、二つ目の記事に行きましょう!タイトルは「PGlite + pgvector で100行で実装するベクトル検索」です。
この記事では、PGliteとpgvectorを使って、文章の類似度検索を行う方法が紹介されています。特に、ローカル環境での手軽なデータ検索が可能なRAG、Retrieval-Augmented Generationの雛形を提供することが目的なんです。著者は複雑なインフラを必要とせず、簡単に実行できる実験環境を求めていて、PGliteを利用することでドライバ不要でインメモリデータベースを構築できるようになっています。
まずは、OpenAIのAPIを使ってテキストを1536次元のベクトルに変換する関数を作成します。このベクトルを使用して、コサイン類似度に基づいて文書間の距離を測定します。次に、PGliteを使ってデータベースを初期化し、ベクトル型のカラムを持つテーブルを作成する手順が詳しく説明されています。
さらに、ORMライブラリのDrizzleを使った場合の実装も紹介されています。Drizzleではマイグレーションをスキップできるようにスキーマを直接定義して、データの挿入や検索を行うことができるんです。このように、類似度を計算する方法や検索結果の取得方法も詳細に説明されているので、ぜひ参考にしてみてください。
さて、次に行きましょう!三つ目の記事のタイトルは「API仕様書を読み取れるMCPサーバーを自作したら開発が爆速になった」です。
著者は、API仕様書を読み込むMCPサーバーを自作したことで、開発のスピードが飛躍的に向上したと語っています。MCPはLLM、大規模言語モデルにコンテキストを提供するプロトコルで、これを使うことでAPI仕様書に基づくコード生成が可能になるんです。APIの変更を把握していなくても、AIが自動でコードを生成して実装してくれるというメリットがありますよ。
具体的には、MCPを使うことでAPI関連の指示をAIに与えられ、Markdown形式でまとめたり、Kotlinのデータクラスを生成したり、APIの更新に伴うコードの差分に対応するなどの柔軟な対応が可能です。MCPサーバーは特にJSON形式でAPI仕様を管理でき、著者はgRPCおよびProtocol Buffersを利用して`.proto`ファイルをリソースとして読み込むようにサーバーを構築しています。
このように、MCPサーバーの導入によりカスタム指示の管理が簡素化され、複数のAIツールを使う際の指示の整合性が保たれるため、管理コストが削減されるんです。
さて、続いて四つ目の記事です。タイトルは「生成AIの時代にクリーンアーキテクチャは古いかなと思った」です。
この記事では、生成AIの発展に伴ってクリーンアーキテクチャが持つ問題点と新しいアーキテクチャの提案について触れています。生成AIが効果的に機能するためには、管理しやすいコードベースが必要で、特に生成AIが扱うコンテキストウィンドウの広さが品質に影響を与えるため、情報の効率的なフィルタリングが重要なんです。
クリーンアーキテクチャでは、レイヤーごとにディレクトリが分かれ、関連するクラスが散在するため、生成AIがコード生成や修正時に全体構造を把握するのが難しくなる可能性があります。そこで、「Vertical Slice Architecture」という新しいアプローチが提案されています。これは各機能を独立したスライスとして扱い、必要な要素を一つのユニットにまとめることで、開発やテストの効率を向上させるんです。
さらに、階層構造を持たせた「Vertical Slice Layered Architecture」という方法も提案されていて、これによりコードの生成品質が向上します。最低限のコーディングルールを設けることで、直上のクラスとの参照関係を明確にし、生成AIが効果的に機能する環境を整えることができるんですね。
最後に、生成AIを活用したシステム開発においては、プロンプト設計力、システム設計力、UX設計力の3つが重要であると強調されています。新しいアーキテクチャの導入により、生成AIとの親和性が高まり、開発の効率と品質が向上することが期待されています。
さて、最後の五つ目の記事にいきましょう!タイトルは「Cloud Run だけでユーザ認証ができるようになったぞ」です。
2025年4月7日、Cloud Runに新機能「Identity-Aware Proxy for Cloud Run、IAP」が追加され、Cloud Load Balancingなしでユーザ認証が可能になりました。これにより、簡単にサービスを作成し、社内や特定のユーザにのみ公開することができるようになります。
IAPを利用するための設定は簡単で、コンソールではチェックボックスをONにするだけ。CLIでは「gcloud beta run deploy ... --iap」を追加することで有効化できます。また、Cloud IAMを使った従来の認証方法も併用でき、リクエストはIAPからIAMの順で処理されます。
権限設定はCLIを用いて行い、特定のユーザに役割を付与することができます。設定したポリシーはサービス削除時に自動的に消去されるため、管理も楽なんです。さらに、Access Context Managerと連携することで、IP制限や社内端末からのみアクセスを許可するなど、より細かいセキュリティ制御が可能になりますよ。
ただし、プロジェクトが組織下にない場合やジョブには非対応、Pub/Subとの連携にも制限があるため、注意が必要です。今回のアップデートにより、Cloud Runでの認証機能実装がさらに容易になり、今後の機能拡充が期待されています。
さて、今日の紹介はここまでです!今日は5本の記事を駆け足でおさらいしました。MCPの導入から、生成AIの新しいアーキテクチャまで、様々なトピックがありましたね。次回も楽しい内容をお届けできるのを楽しみにしていますよ!詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてくださいね。そして、番組の感想もお待ちしています!それでは、また次回お会いしましょう!