ホームページ >ウェブフロントエンド >jsチュートリアル >LlamaIndex.ts と Azure OpenAI を使用した RAG アプリの構築: 始めましょう!

LlamaIndex.ts と Azure OpenAI を使用した RAG アプリの構築: 始めましょう!

WBOY
WBOYオリジナル
2024-09-10 18:30:30711ブラウズ

AI が私たちの働き方やテクノロジーとの関わり方を形作り続ける中、多くの企業がインテリジェントなアプリケーション内で自社のデータを活用する方法を模索しています。 ChatGPT や Azure OpenAI などのツールを使用したことがある場合は、生成 AI がどのようにプロセスを改善し、ユーザー エクスペリエンスを向上させることができるかについてはすでにご存知でしょう。ただし、真にカスタマイズされた関連性の高い応答を得るには、アプリケーションに独自のデータを組み込む必要があります。

ここで検索拡張生成 (RAG) が登場し、データ検索と AI を活用した応答を統合するための構造化されたアプローチを提供します。 LlamaIndex のようなフレームワークを使用すると、この機能をソリューションに簡単に組み込むことができ、ビジネス データの可能性を最大限に引き出すことができます。

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

アプリをすぐに実行して探索したいですか?ここをクリック。

RAG (検索拡張生成) とは何ですか?

検索拡張生成 (RAG) は、関連情報にアクセスし、独自のデータを統合するための検索コンポーネントを組み込むことで、AI テキスト生成を強化するニューラル ネットワーク フレームワークです。これは 2 つの主要な部分で構成されています:

  • Retriever: 大量の文書コーパスを検索して、指定されたクエリに関連する関連する文章や情報を見つける高密度の Retriever モデル (例: BERT に基づく)。
  • ジェネレーター: クエリと取得したテキストを入力として受け取り、一貫したコンテキストを強化した応答を生成するシーケンスツーシーケンス モデル (例: BART または T5 に基づく)。

取得者は関連する文書を見つけ、生成者はそれらを使用してより正確で有益な応答を作成します。この組み合わせにより、RAG モデルは外部の知識を効果的に活用でき、生成されるテキストの品質と関連性が向上します。

LlamaIndex は RAG をどのように実装しますか?

LlamaIndex を使用して RAG システムを実装するには、次の一般的な手順に従います。

データの取り込み:

  • SimpleDirectoryReader などのドキュメント ローダーを使用して、ドキュメントを LlamaIndex.ts にロードします。これは、PDF、API、SQL データベースなどのさまざまなソースからデータをインポートするのに役立ちます。
  • SentenceSplitter を使用して、大きなドキュメントを小さくて管理しやすいチャンクに分割します。

インデックスの作成:

  • VectorStoreIndex を使用してこれらのドキュメント チャンクのベクトル インデックスを作成し、埋め込みに基づいた効率的な類似性検索を可能にします。
  • オプションで、複雑なデータセットの場合は、再帰的取得手法を使用して階層構造のデータを管理し、ユーザーのクエリに基づいて関連セクションを取得します。

クエリ エンジンのセットアップ:

  • asQueryEngine を、similarityTopK などのパラメータとともに使用して、ベクトル インデックスをクエリ エンジンに変換し、取得する上位ドキュメントの数を定義します。
  • より高度なセットアップの場合は、各エージェントが特定のドキュメントを担当し、トップレベルのエージェントが全体的な取得プロセスを調整するマルチエージェント システムを作成します。

取得と生成:

  • ユーザーのクエリに基づいて関連するドキュメント チャンクを取得する目的関数を定義して、RAG パイプラインを実装します。
  • RetrieverQueryEngine を使用して、実際の取得とクエリ処理を実行します。オプションで、CohereRerank などのツールを使用して取得したドキュメントの再ランク付けなどの後処理ステップを実行します。

実際的な例として、Azure OpenAI を使用した完全な RAG 実装を示すサンプル アプリケーションを提供しました。

実践的な RAG サンプル アプリケーション

ここでは、LlamaIndex.ts (LlamaIndex の TypeScipt 実装) と Azure OpenAI を使用して RAG アプリケーションを構築し、それを Azure Container Apps 上のサーバーレス Web アプリとしてデプロイすることに焦点を当てます。

サンプルを実行するための要件

  • Azure Developer CLI (azd): バックエンド、フロントエンド、データベースを含むアプリ全体を簡単にデプロイするためのコマンド ライン ツール。
  • Azure アカウント: アプリケーションをデプロイするには Azure アカウントが必要です。まずは、いくつかのクレジットを備えた無料の Azure アカウントを取得してください。

GitHub で入門プロジェクトを見つけることができます。必要に応じて自由に編集できるように、このテンプレートをフォークすることをお勧めします:

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

上位レベルのアーキテクチャ

入門プロジェクト アプリケーションは、次のアーキテクチャに基づいて構築されています:

  • Azure OpenAI : le fournisseur d'IA qui traite les requêtes de l'utilisateur.
  • LlamaIndex.ts : le framework qui permet d'ingérer, de transformer et de vectoriser du contenu (PDF) et de créer un index de recherche.
  • Azure Container Apps : environnement de conteneur dans lequel l'application sans serveur est hébergée.
  • Azure Managed Identity : garantit une sécurité de premier ordre et élimine le besoin de gérer les informations d'identification et les clés API.

Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Pour plus de détails sur les ressources déployées, consultez le dossier infra disponible dans tous nos échantillons.

Exemples de flux de travail utilisateur

L'exemple d'application contient une logique pour deux flux de travail :

  1. Ingestion de données : les données sont récupérées, vectorisées et des index de recherche sont créés. Si vous souhaitez ajouter plus de fichiers comme des fichiers PDF ou Word, c'est ici que vous devez les ajouter.

      npm run generate
    
  2. Traitement des demandes d'invite : l'application reçoit les invites des utilisateurs, les envoie à Azure OpenAI et augmente ces invites en utilisant l'index vectoriel comme outil de récupération.

Exécution de l'exemple

Avant d'exécuter l'exemple, assurez-vous d'avoir provisionné les ressources Azure nécessaires.

Pour exécuter le modèle GitHub dans GitHub Codespace, cliquez simplement sur
Building a RAG app with LlamaIndex.ts and Azure OpenAI: Getting started!

Dans votre instance Codespaces, connectez-vous à votre compte Azure, depuis votre terminal :

azd auth login

Provisionner, empaqueter et déployer l'exemple d'application sur Azure à l'aide d'une seule commande :

azd up

Pour exécuter et essayer l'application localement, installez les dépendances npm et exécutez l'application :

npm install
npm run dev

L'application s'exécutera sur le port 3000 de votre instance Codespaces ou sur http://localhost:3000 dans votre navigateur.

Conclusion

Ce guide a montré comment créer une application RAG (Retrieval-Augmented Generation) sans serveur à l'aide de LlamaIndex.ts et Azure OpenAI, déployée sur Microsoft Azure. En suivant ce guide, vous pouvez tirer parti de l'infrastructure d'Azure et des capacités de LlamaIndex pour créer de puissantes applications d'IA qui fournissent des réponses enrichies contextuellement en fonction de vos données.

Nous sommes ravis de voir ce que vous créez avec cette application de démarrage. N'hésitez pas à le créer et à aimer le référentiel GitHub pour recevoir les dernières mises à jour et fonctionnalités.

以上がLlamaIndex.ts と Azure OpenAI を使用した RAG アプリの構築: 始めましょう!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:React 面接の準備次の記事:React 面接の準備