Terraformテンプレートは、Redis Enterpriseをベクトルデータベースとして使用して、Azure Openaiアプリケーションのエンドツーエンドの展開を自動化します。

単一のテラフォームスクリプトで展開します:
text-davinci-003およびtext-embedding-ada-002モデルを備えたAzure Openaiインスタンス./docsフォルダーからすべてのファイルを備えたAzureストレージバケットこのリポジトリで使用されるアプリケーションの例を使用すると、ChatGptを使用してドキュメントを分析できます。
アプリには2つのデータフローがあります。最初 - ドキュメントコンテキストからのバッチ生成埋め込み。これらの埋め込みは、Azure Redis Enterpriseに保存されます。 2番目 - これらの埋め込みを使用して、CHATGPTにコンテキスト対応プロンプトを生成するため、内部ドキュメントのコンテキストに基づいて質問に答えます。
あなたが試すことができる質問:
シボレーコロラドで利用可能な3つのエンジンタイプの主な違いは何ですか?モデルを最初の列としてテーブルとしてテーブルとしてフォーマットします
どのような色のオプションが利用できますか?リストとしてフォーマット
アプリクレジット-https://github.com/redisventures/llm-document-chat
Azure CLIをAzureアカウントに認証します。
az login
Terraform構成を展開します:
terraform init
terraform apply
独自のドキュメントを./docsフォルダー(PDFまたはプレーンテキスト)に追加できるため、展開中にバケットにアップロードできます。
必要なすべてのインフラストラクチャを提供するには、最大20分かかる場合があります。
最後に、Terraformスクリプトは変数のバンチを出力します。
app-url = "redis-openai-83903-webapp.azurewebsites.net"
openai-endpoint = "https://redis-openai-83903.openai.azure.com/"
openai-key = <sensitive>
redis-endpoint = "redis-openai-83903-redisenterprise.southcentralus.redisenterprise.cache.azure.net"
redis-password = <sensitive>
redis-port = 10000
storage-account = "redisopenai83903bucket"
storage-account-connection-string = <sensitive>
storage-container = "data"
App-URLを使用して、すぐにアプリケーションにアクセスできます。
terraform.tfvarsまたはterraform apply -var="name_prefix=my-deployment" 、デフォルトのリソース名のプレフィックスとコンテナ画像をオーバーライドして、WebAppで展開します。
アプリケーションを変更するには、Azure Webアプリとして展開されますapp_docker_imageおよびapp_docker_tag値をterraform.tfvarsに変更します。デフォルトアプリケーションのソースコードは、 ./appフォルダーの下のこのレポに含まれています。
Azureアカウント、Azure CLI、Terraform CLIはローカルにインストールされています。
Azure Open AI現在(2023年5月)はプライベートプレビューにあります。アカウントに有効にするには、マイクロソフトにリクエストを送信する必要があります。
Azure Openai埋め込みAPIには現在、要求頻度が厳密に制限されているため、バルク埋め込みの生成では実行不可能になる可能性があります。次のようなローカル埋め込みの使用を検討してください。
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
Azure OpenaiとAzure Redis Enterpriseをローカルに展開することはできませんが、アプリケーション自体をテストするためにローカルマシンを使用できます。
terraform apply実行した後、生成されたAzure Servicesを使用して、アプリケーションコードをローカルでテストできます。例として.env.templateを使用して、実際のキーとURLを入力します。
docker build -t llm-chat .
docker run -it -p 80:80 --env-file=.env llm-chat
マルチプラットフォーム画像の構築/プッシュ(Mac/Armのローカル開発に役立つ):
docker buildx build --platform linux/amd64,linux/arm64 -t antonum/llmchat:latest --push .
azurerm_cognitive_account.openai 、フェーズのcreatingに陥ります。執筆時(2023年5月)Azureは、Openaiサービスを展開する問題を時々経験します。別の地域にスタックを展開してみてください。たとえば、 eastusの代わりにazure_region = "southcentralus"を設定します。
SpecialFeatureOrQuotaIdRequired: The subscription does not have QuotaId/Feature required by SKU 'S0' from kind 'OpenAI'Azureアカウントには、Azure Openaiが有効になっていません。執筆時(2023年5月)Azure Openaiはプライベートプレビューにあります。サブスクリプションに有効にするには、マイクロソフトにリクエストを送信する必要があります。
展開されたすべてのリソースを破壊するには:
terraform destroy