第7章. データベースをAIサービスに統合する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
この章では、現在のAPIサービスにデータベースを統合して、ユーザ対話を保存・取得する。
この章では、データベースと構造化クエリ言語 (SQL) の基本的な操作経験を想定しているため、SQL プログラミングとデータベースワークフローのすべての側面をカバーしません。 その代わりに、LLM などの GenAI モデルと相互作用する FastAPI アプリケーションにデータベースを統合する際の、より高度なデータベース概念、開発ワークフロー、ベストプラクティスを学びます。
その一環として、アプリケーション開発におけるリレーショナル(SQL)データベースと非リレーショナル(noSQL)データベースの役割について学び、ユースケースに適したデータベースを自信を持って選択できるようになる。 次に、リレーショナルデータベースの機能と、オブジェクトリレーショナルマッパー(ORM)やデータベース移行ツールなどの関連ツールについてより深く理解する。 最後に、手作業対演習として、SQLAlchemyとAlembicを使って既存のアプリケーションにデータベースを統合し、LLMでユーザの会話を保存・検索する。
この章が終わる頃には、GenAI アプリケーションにおけるデータベース関連の問題の選択、設定、解決に自信が持てるようになるだろう。
データベースの役割
バックエンド・サービスを構築するとき、アプリケーションの状態を保持し、ユーザデータをストアするためにデータベースが必要になることがよくある。 他のケースでは、アプリケーションにデータベースは必要なく、データベースの統合はサービスの複雑さを著しく増大させる可能性があるため、データベースを追加しようとすべきではない。
ここでは 、データベースの使用を見送ることができるいくつかのケースを紹介する:
-
アプリケーションは、新しいユーザ・セッションごとに、起動時に新しい状態から開始することができる。
-
アプリケーションデータの再計算は簡単で、リソース効率も良い。
-
アプリケーション・データはメモリに格納できるほど小さい。
-
あなたのアプリケーションは、サーバエラー、再起動、その他の予期せぬ出来事など、様々な理由によるデータ損失に対して寛容である。
-
異なるユーザ・セッションやアプリケーション・インスタンスがデータを共有する必要はない。
-
必要なデータは、独自のデータベースではなく、外部システム、GenAIモデル、その他のアプリケーションAPIから直接取得することができる。
-
ユーザは、新しいセッションやアクションのたびにデータが再計算されるのを待つことができる。
-
あなたのサービス要件では、データをデータベースの代わりにディスク上のファイル、ブラウザのストレージ、または外部のクラウドストレージに永続化することができる。 ...