Upgrade to Pro — share decks privately, control downloads, hide ads and more …

RAG構築のためのAzure OpenAI Serviceリファレンスアーキテクチャ詳解/wa...

RAG構築のためのAzure OpenAI Serviceリファレンスアーキテクチャ詳解/wakarimiragarchitecture

Azure OpenAI Serviceリファレンスアーキテクチャは、マイクロソフトが提案するAzure OpenAI Serviceの使い方の例や、システム構成を分かりやすく説明したドキュメントです。この資料は、大規模なAIモデルをビジネスに取り入れる際の参考になり、業務の効率化やビジネスへの貢献を目指すアプリケーション開発の手助けとして活用できます。

https://www.microsoft.com/ja-jp/events/azurebase/contents/default.aspx?pg=AzureOAIS

そして、これらのリファレンスアーキテクチャには、RAG(Retrieval-Augmented Generation、企業内向け生成AIチャットシステム)を構築するための指針も含まれています。

【Azure OpenAI Service リファレンスアーキテクチャ】 5章 - 企業内向けChatと社内文書検索 https://www.microsoft.com/cms/api/am/binary/RW16NwU

こちらでは、Azure OpenAI Serviceを使用して、ChatGPTのような生成AIを活用した企業内チャットシステムの作成方法について解説されています。このガイドラインを参考にすることで、効率的に企業内にRAGを構築・導入することができます。 今回のセッションでは、この素晴らしいリファレンスアーキテクチャの詳細を世界一わかりみ深く説明します。システム構成、デプロイ方法、開発方法など、幅広いトピックをカバーします。

RAGの導入を検討している方にとって、このセッションは非常に有益ですので、ぜひご覧ください!!

Noriyuki TAKEI

February 27, 2024
Tweet

More Decks by Noriyuki TAKEI

Other Decks in Technology

Transcript

  1. Noriyuki TAKEI ෢Ҫ ٓߦ Information • サイオステクノロジー株式会社 • Microsoft MVP

    for Microsoft Azure Favorites • Azure • パデル • スキー • ライブ配信 • ⽢いもの • ⾛ること blog https://tech-lab.sios.jp/ core skill Azureによるクラウドネイティブな アプリ開発 Twitter @noriyukitakei
  2. RAGのない世界とRAGのある世界 RAGを使わない場合 RAGを使う場合 Azure OpenAI Service 休暇規程 1.休暇 有給については …

    外部データベース ② 有給は何⽇取得 できる︖ 有給は何⽇取得 できる︖ 休暇規程 1.休暇 有給については … + 有給 規定⽇数 休暇規程 1.休暇 有給については … 休暇規程 1.休暇 有給については … 休暇規程 1.休暇 有給については … 有給は20⽇です。 有給は20⽇です。 ③ ④ ⑤ ⑥ ⑦ Azure OpenAI Service ② 有給は何⽇取得 できる︖ ③ 有給は何⽇取得 できる︖ ・有給は10⽇です。 ・夏季休暇は… … ① モデルの トレーニング ① 外部データベースへの登録 有給は20⽇です。 ④ 有給は20⽇です。 ⑤ ユーザー ユーザー 管理者 管理者
  3. このリファレンスアーキテクチャが提供してくれるもの 1 RAGアーキテクチャ RAGを実現するために必要なアーキテクチャを提供してくれます。 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定

    モデル就業規則 第1章 総則 …総則には、⼀般的に就業規 則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence
  4. Azure OpenAI Serviceリファレンスアーキテクチャのすごいところ 1 ソースコードが公開されている ソースコードが公開されているので、内部の動きを詳細に把握することが できる。 2 すぐ動く Azure

    Developer CLIとBicepによりインフラがコード化されているので、 コマンド⼀発ですぐ動く。 3 ⽇本語解説 ⽇本語対応による解説がついている︕︕
  5. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence みんな⼤好きAzure OpenAI Serivceです。コレがないと始ま りません。RAGのシステムにて、以下の⽤途に利⽤します。 • Azure AI Searchに対してドキュメント検索するための検 索クエリ⽣成 • Azure AI Searchから取得したドキュメントを元にした回 答⽂⽣成 Azure OpenAI Service
  6. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence Azureが提供するマネージドな全⽂検索サービスです。RAG に必要な外部の情報源、つまりモデル就業規則をAzure AI Searchに取り込みます。 Azure AI Search
  7. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence Azureが提供するマネージドなアプリケーション実⾏基盤です。 RAGのフロントエンド(UI)、バックエンドを動作させるため に使います。 Azure App Service
  8. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence Azureが提供するマネージドなNoSQLデータベースです。プ ロンプトと回答を記録します。 Azure Cosmos DB
  9. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence Pythonスクリプトです。このスクリプトは、RAGに必要な外 部情報源、具体的にはモデル就業規則をAzure AI Searchに 登録するために使⽤されます。後ほど説明しますが、PDFか らテキストをそのまま抽出して登録するのではなく、テキス トを分割して登録する必要があります。このような複雑な処 理をこのスクリプトが⾏います。 インデクサー
  10. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence 機械学習モデルを⽤いてドキュメントの解析を⾏い、テキス ト構造を抽出することができます。これを⽤いて、Pythonス クリプトがPDFファイルからテキストを抜き出します。 Document Intelligence
  11. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence Azureが提供するマネージドなオブジェクトストレージです。 Pythonスクリプトによって分割されたPDFをAzure Blob Storageにアップロードします。 Azure Blob Storage
  12. 有給は何⽇取得で きる︖ 以下の質問の検索クエリを⽣成して 有給は何⽇取得できる︖ 有給取得⽇数 規定 モデル就業規則 第1章 総則 …総則には、⼀般的に就業規

    則の作成の⽬的や適⽤範囲等 を規定します。… 第5章 休暇等 …所定労働⽇の8割以上出勤 した労働者に対しては、10⽇ の年次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 第1章 総則 …総則には、⼀般的に就業規則 の作成の⽬的や適⽤範囲等を… 第5章 休暇等 …所定労働⽇の8割以上出勤し た労働者に対しては、10⽇の年 次有給休暇を与える… 「有給は何⽇取得できる︖」という質問に、以下の内容をもとに回答して。 …最低5⽇間は労働者が⾃由に取得できる⽇数として残し、5⽇を超 える… 有給取得⽇数 規定 …最低5⽇間は労働者が⾃由に 取得できる⽇数として残し、5 ⽇を超 える… 年次有給休暇は、最低でも 10⽇与えられます。 年次有給休暇は、 最低でも10⽇与え られます。 モデル就業規則-1.txt モデル就業規則-2.txt インデックス1 インデックス2 ⑤ プロンプト⼊⼒ ⑥ 検索クエリ⽣成依頼 ① ドキュメント 読み込み ③ 分割してBlobに登録 ④ チャンク化してインデックス化 ⑦ 検索クエリ返却 ⑧ 検索クエリでインデックス検索 ⑨ ドキュメント取得 ⑩ ドキュメントをもとに回答⽣成依頼 ⑪ Webアプリケーションに回答返却 ⑬ ユーザーに回答返却 … Azure App Service 凡例 … Azure OpenAI Service … Azure AI Search … Azure Blob Storage … Pythonスクリプト ⑫ プロンプトと回答の記録 … Azure Cosmos DB ② テキスト抽出 … Document Intelligence
  13. チャンク化について ジェダイ時代のアナキン は、愛する者を守りたい という純粋な願望と若さ 故の激情から、ジェダイ の掟を何度となく破って しまう。特に、妻パド メ・アミダラが死の運命 にあるという予知夢を⾒ た後は[注

    1]、妻を救う ⼒を得たいと願うあまり にシスの暗⿊卿ダース・ シディアス(後の銀河帝 国皇帝)の… ジェダイ時代のアナキンは、愛する 者を守りたいという純粋な願望と若 さ故の激情から、ジェダイの掟を何 度となく破ってしまう。… ダース・ベイダー-01.txt 危機を察して駆けつけたシディアス により救出され、サイボーグ化⼿術 を施されて⼀命は取り留めたものの シディアスが… ダース・ベイダー-02.txt 以降は帝国軍の指揮官として反乱同 盟軍によるレジスタンス活動の制圧 に従事することとなり、『反乱者た ち』ではその反乱軍として… ダース・ベイダー-03.txt Azure OpenAI Service チャンク化 ベクトル化 [0.014032107, -0.0075616054,…] [0.014032107, -0.0075616054,…] [0.014032107, -0.0075616054,…] Azure AI Search テキストをベクトル化するEmbeddings APIは、リクエストのトークン数に限度(text-embedding-ada-002で は8191トークン)があるのでテキストを細かく分割する(チャンク化)が必要になります。
  14. Searched for: 有給取得⽇数制度 Conversations: { ʻroleʼ: ʻsystemʼ, ʻcontentʼ: “Assistant helps

    the customer questions. Be brief in your answers…略 …, e.g. [info1.txt]. Donʻt combine sources, list each source separately, e.g. [info1.txt][info2.pdf].\n” } { ʼroleʻ: ʼuserʻ, ʼcontentʻ: ʼ有給は何⽇取得できる︖\n\nSources:\n001018385-39.pdf: - 40 - 11 本条第4項に定める年次有給休暇の計画的付与制度とは、労働者代表との間で労使 協定を 結んだ場合、最低5⽇間は労働者が⾃由に取得できる…略…\n001018385-30.pdf: 以上の 期間に区分する場合は、最初の期間については労働⽇及び労働⽇ごとの 所定労働ʼ } ① ② ③ 【社内⽂書検索】思考プロセス Azure AI Searchに投げた 検索クエリ システムのロールです。かなり⻑いのですが、 要はプロンプトの下に表⽰される情報をもと に回答を⽣成してくださいという指⽰をAIに しています。 ユーザーのロールです。「有給は何⽇取得できる︖」はユーザーが⼊⼒したプロンプトです。その下に 回答を作成するための情報が列挙されています。これは①のクエリでAzure AI Searchに検索をして返っ てきたドキュメントになります。システムのロールであったように、LLMはこれらのドキュメントに基 づいてプロンプトに対する回答を⽣成します。
  15. ① ② ③ ④ ⑤ ⑥ 【社内⽂書検索】設定画⾯ 「企業向けChat」と同様に、利⽤するモ デルを選択します。 AIの回答のランダム性を制御するパラ

    メータになります。 検索クエリで検索した際に取得するド キュメント数を指定します。つまり、こ こで10と指定すると、検索クエリで検索 して取得した10個のドキュメントをもと に回答を⽣成します。 セマンティック検索を使うかどうかを設 定します。 ここに⼊⼒した値と、Azure AI Search のcategoryというフィールドに⼀致する ドキュメントを検索対象から除外します。 セマンティック検索の機能であるセマン ティックキャプションを使うかどうかを 設定します。セマンティックキャプショ ンを使うと、リランクされたそれぞれの 検索結果に対して抽出的要約(検索結果か ら最も関連の⾼いと思われる⽂章の⼀部 を抽出)を作り出してくれて、回答の精度 が⾼くなります。
  16. バックエンド Python フロントエンド (ブラウザ) Java Script [ …, { “user”:

    “有給は何⽇取得できる?”, “response”: “年次有給休暇は…” } ] messages (ステート) 会話履歴 App Service Azure OpenAI Service Azure AI Search Azure Cosmos DB 画⾯ ① プロンプト 取得 休憩時間はどれくらい︖ 休憩時間に関する… ③ LLM呼び出し ④ LLMからの結果返却 ② API呼び出し ⑤ APIレスポンス返却
  17. バックエンド Python フロントエンド (ブラウザ) Java Script [ …, { “user”:

    “有給は何⽇取得できる?”, “response”: “年次有給休暇は…” }, { “user”: “休憩時間はどれくらい︖”, “response”: “休憩時間に関する…” } ] messages (ステート) 会話履歴 新しい 質問と回答 App Service Azure OpenAI Service Azure AI Search Azure Cosmos DB 画⾯ ⑦ 再レンダリング ⑥ messageのステートに追加
  18. チャンク1 チャンク2 チャンク3 チャンク4 ドキュメント全体 (contosodoc.pdf) ページごとに分割されたドキュメント contosodoc-1.pdf Azure AI

    Searchのレコードにて、 どのチャンクがどのドキュメントに含まれるかを 関連付ける contosodoc-2.pdf contosodoc-3.pdf contosodoc-4.pdf { “id”: “contosodoc-1.pdf”, “category”: null, “content”: “チャンク1の内容”, “sourcepage”: “contosodoc-1.pdf”, “sourcefile”: “contosodoc.pdf” }, オーバーラップ インデックス ドキュメント取り込みの概要
  19. …employment regulations must not be contrary to laws and regulations

    and collective agreements applicable to the workplace. The director of the labor standards office concerned may order changes to employment regulations that are in violation of laws, regulations, or collective agreements (Article 92 of the Labor Standards Law). \nThe Labor Standards Law applies to all workplaces employing at least one worker. However, in workplaces employing at least 10 workers on a regular basis, the preparation or amendment of employment regulations must be reported to the director of the labor standards office concerned (Article 89 of the Labor Standards Law). (Article 89 of the Labor Standards Law). In addition, employment regulations must be prepared and submitted at the workplace level, not at the company level. For example, if a company has two or more sales offices, stores, etc., the number of workers is not totaled for the entire company, but each sales office, store, etc. is considered as one workplace, and the company is obliged to prepare work rules for workplaces with 10 or more workers employed on a regular basis. For companies with multiple sales offices, stores, etc., it is possible to submit a collective notification via the… ① 1000⽂字を抽出する。 ② ①で取得した1000⽂字の末尾から1⽂字ずつ進み、⼀定の範囲内の⽂字を調査して、以下の⽂字がないかを調べる。 • 単語の区切り⽂字(スペース、セミコロン(;)、改⾏など) • ⽂の終わりを表す⽂字(ピリオド(.)、ハテナ(?)、ビックリマーク(!)) 「⽂の終わりを表す⽂字」が登場したら、そこをチャンクの最後尾とする。もし「⽂の終わりを表す⽂字」が登場しなかたったら、⼀番最後に 登場した「単語の区切り⽂字」をチャンクの最後尾とする。 ③ ①で取得した1000⽂字のはじめから1⽂字ずつ戻り、⼀定の範囲内の⽂字を調査して、以下の⽂字がないかを調べる。 • 単語の区切り⽂字(スペース、セミコロン(;)、改⾏など) • ⽂の終わりを表す⽂字(ピリオド(.)、ハテナ(?)、ビックリマーク(!)) 「⽂の終わりを表す⽂字」が登場したら、その前の⽂字をチャンクのスタートの⽂字とする。もし「⽂の終わりを表す⽂字」が登場しなかたっ たら、⼀番最後に登場した「単語の区切り⽂字」をチャンクのスタートの⽂字とする。
  20. …employment regulations must not be contrary to laws and regulations

    and collective agreements applicable to the workplace. The director of the labor standards office concerned may order changes to employment regulations that are in violation of laws, regulations, or collective agreements (Article 92 of the Labor Standards Law). \nThe Labor Standards Law applies to all workplaces employing at least one worker. However, in workplaces employing at least 10 workers on a regular basis, the preparation or amendment of employment regulations must be reported to the director of the labor standards office concerned (Article 89 of the Labor Standards Law). (Article 89 of the Labor Standards Law). In addition, employment regulations must be prepared and submitted at the workplace level, not at the company level. For example, if a company has two or more sales offices, stores, etc., the number of workers is not totaled for the entire company, but each sales office, store, etc. is considered as one workplace, and the company is obliged to prepare work rules for workplaces with 10 or more workers employed on a regular basis. For companies with multiple sales offices, stores, etc., it is possible to submit a collective notification via the… 最終的なチャンクはこの様に なる。
  21. 前のチャンクの終了位置から 100⽂字戻った位置 …取得した1000⽂字 …obliged to prepare work rules for workplaces

    with 10 or more workers employed on a regular basis. For companies with multiple sales offices, stores, etc., it is possible to submit a collective notification via the director of the labor standards office with jurisdiction over the location of the head office, as long as the rules of employment of the sales offices, stores, etc. are the same as those of the head office, both before and after the change. \nWhen preparing or amending the employment regulations, a written opinion signed or stamped by a labor union organized by a majority of the workers (if there is one) or a person representing a majority of the workers (if there is no labor union organized by a majority) must be attached to the notification to the director of the labor standards office having jurisdiction over the location of the head office (the Labor Standards Law). The document must be signed or stamped by a person representing a majority of the workers (written opinion) and must be attached to the application (Article 90 of the Labor Standards Law). \nIn this case, the person representing a majority of the workers must: 1) not be a person in a supervisory or managerial position as stipulated in Article 41, Item 2 of the Labor Standards Law;… 前のチャンクの 終了位置 チャンク1 チャンク2 チャンク3 チャンク4 ドキュメント全体 (contosodoc.pdf)
  22. src backend static frontend Reactのプロジェクト assets index-a90aab6e.js Azure Develoer CLI

    with Bicep クライントPC リポジトリ Azure backend配下の ファイル ② ビルド ③ コピー ① Azureリソース作成 ④ デプロイ ⑤ インデックス作成
  23. リポジトリTOP src data 001018385.pdf infra scripts prepdocs.py → RAGの外部情報源であるモデル就業規約のPDF →

    モデル就業規約のPDFをAzure AI Searchに取り込むスクリプト backend frontend → Azure Developre CLI関連のファイル → バックエンドのプロジェクト → フロントエンドのReactプロジェクト approaches chatreadretrieveread.py → Azure OpenAI ServiceやAzure AI Searchと連携して回答を⽣成する ⼀番⼤事なスクリプト
  24. エンジニア募集(プロフェッショナルサービスチーム) エンジニアファーストの環境で、技術⼒を⾼めませんか︖ 変化や進化を楽しみながら、私たちとともに歩んでくれる仲間を募集してい ます︕ OSS & クラウド技術をコアテクノロジーとしたシステム開発 • 統合認証システム&クラウド連携 •

    OSS&クラウド基盤導⼊、OSSカスタマイズや開発、OSSサポート • クラウドネイティブシステム、データ分析基盤、アプリ開発 • APIエコノミーコンサルティング&技術⽀援サービス 詳細はこちらのサイトからご覧ください︕ https://tech-lab-engineer.sios.jp/