SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

LLMアプリケーションのアーキテクチャ入門

LLMアプリケーションのベストアーキテクチャを探る──ハンズオン実践編


 本連載では、APIコールの遅延やトークンの過剰利用、出力内容の制御など、LLMアプリケーションを開発・運用する課題に焦点をあて、ライブラリやAPI Gatewayを用いたその解決方法について解説します。今回は第一回で整理した内容をベースにした、ハンズオンでの実践編です。

はじめに

  「LLMアプリケーションのベストアーキテクチャを探る──トークンの過剰利用や複雑な構成、入出力の制御をどう解決するか の続編です。本記事では、前半に整理した内容を踏まえ、Kong Gateway(OSS)を用いたハンズオンを交えつつ、実際のアプローチを紹介します。対象の読者層としては以下を想定していますが、該当しない場合でもLLMアプリケーション開発の一端を理解していただけるよう説明していきたいと思います。

  • LLMアプリケーションの開発、運用に興味を持っている方
  • LLMアプリケーションの開発、運用に現在携わっている方
  • CCoE[1]など中央集権的なチームに所属している方

[1] Cloud Center of Excellenceの略で、組織全体で最適なクラウド導入を支援、管理、調整する役割

LLMアプリケーションにおけるAPI Gatewayの活用

 前回の記事では、中央集権的なレイヤーを用いるアプローチの有用性について説明しました。以降では、具体的なユースケースをいくつか取り上げて説明します。

API Key、推論パラメータ、プロンプトの中央管理

 通常、LLMアプリケーションを実装する際は以下のようにAPI Keyや推論パラメータをクライアント側に設定します。例では、OpenAIのSDKを利用していますがどのライブラリを利用しても大枠は同様の実装になるかと思います。

 from openai import OpenAI

 client = OpenAI(
 	api_key="sk-...",
 )
 stream = client.chat.completions.create(
 	model="gpt-4o-mini",
 	messages=[
     	{"role": "system", "content": "あなたは優秀なアシスタントです"},
     	{"role": "user", "content": "日本で一番高い山はなんですか?"}
 	],
 	max_tokens=max_tokens,
 	temperature=temperature,
 	stream=True,
 )

  api_keyはアプリケーションや環境に紐づくものとなるため、仮にAPI Keyをローテーションする場合(流出してしまった場合など)は再発行、および再設定が必要になります。これは、api_keyを環境変数(OPENAI_API_KEY)から読み取るような形式であっても当てはまります。

 また、推論パラメータ(max_token, temperatureなど)やプロンプトについても、対応はapi_keyと同様です。新しい設定を読み込むためには、アプリケーションを再起動する必要があります。

 一方で、API Gatewayにはほとんどの場合でリクエスト・ヘッダーやボディーの変換機能が備わっており、このレイヤーでAPI Keyや共通的に設定したい推論パラメータ、プロンプトを設定することで、アプリケーションの再起動なしにAPI Keyのローテーションやパラメータを変更することが可能です。

API Keyや推論パラメータ、プロンプトをGatewayで設定するイメージ
API Keyや推論パラメータ、プロンプトをGatewayで設定するイメージ

統一的なセキュリティ対策

 プロキシしているLLM APIに関連する通信はすべてAPI Gatewayを通過するため、このレイヤーでセキュリティ対策を講じることで統一的な制御が可能です。LLMアプリケーションでは先に述べた通り、通常のセキュリティ観点に加えてプロンプト・インジェクションの対策や機微情報の入力制限、LLMの出力制限などが必要となります。これらもリクエストやレスポンスボディの中身を確認することで実現できます。

LLM固有のセキュリティ対策をGatewayで設定するイメージ
LLM固有のセキュリティ対策をGatewayで設定するイメージ

キャッシュの活用

 トークン使用量削減のため、もしくは似たような問い合わせに対する応答時間削減のために、LLMアプリケーションではキャッシュがよく活用されます。

LLMアプリケーションにおけるキャッシュの活用
LLMアプリケーションにおけるキャッシュの活用

 通常のAPIレスポンスのキャッシュと考え方は近しいですが、異なる点としては緩くキャッシュ・ヒットさせる点です。つまり、厳密に同じリクエスト(=問い合わせ)でなくても意味的に近しいのであれば、キャッシュ・ヒットさせるということです。

 これを実現するために、アプリケーションで入力に対する埋め込みを作成し、それを基にキャッシュ・ヒットの判定を行います。APIレスポンスのキャッシュは、API Gatewayが担う典型的なタスクであり、埋め込みの作成やそれを基にしたキャッシュ・ヒットの判定ロジックさえ備わっていれば、API Gatewayでトークン使用量や応答時間削減の課題を解決することができます。

API Gatewayを活用したLLMアプリケーションのキャッシュ
API Gatewayを活用したLLMアプリケーションのキャッシュ

オブザーバビリティ

 同様にプロキシしているLLM APIに関する通信はすべてAPI Gatewayを通過するため、このレイヤーでテレメトリー・シグナル(特にメトリクス)を収集すると効率が良いです。API Gatewayのレイヤーで一元的に収集するべきメトリクスとしては、遅延やトークン数が挙げられます。

API Gatewayを活用したLLMアプリケーションのオブザーバビリティ(特に、メトリクス)
API Gatewayを活用したLLMアプリケーションのオブザーバビリティ(特に、メトリクス)

次のページ
Kong Gateway(OSS)を用いた実践例(1)

関連リンク

この記事は参考になりましたか?

LLMアプリケーションのアーキテクチャ入門連載記事一覧
この記事の著者

川村 修平(カワムラ シュウヘイ)

SIerやクラウドベンダーを経て、Kong株式会社でポストセールスエンジニアを務める。コミュニティ活動では、CloudNative Daysというコミュニティでオブザーバビリティチームに所属。著書:Web API開発実践ガイド、OCIで学ぶクラウドネイティブ 実践×理論ガイド、その他技術同人誌

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/22972 2026/01/28 12:34

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング