Die Terraform-Vorlage automatisiert die End-to-End-Bereitstellung von Azure OpenAI-Anwendungen mit REDIS Enterprise als Vektordatenbank.

In einem einzigen Terraform -Skript wird es bereitgestellt:
text-davinci-003 und text-embedding-ada-002 -Modellen./docsMit einer in diesem Repo verwendeten Beispielanwendung können Sie ChatGPT verwenden, um die Dokumente zu analysieren, die mit ChatGPT und/oder intern in Ihrer Organisation unbekannt sind.
Es gibt zwei Datenflüsse in der App. Erstens - Batch -Erzeugung von Einbetten aus dem Dokumentkontext. Diese Einbettungen werden in Azure Redis Enterprise aufbewahrt. Zweitens - Verwenden dieser Einbettungen, um die Kontext -bewusstes Eingabeaufforderung an ChatGPT zu generieren, beantwortet sie Fragen, basierend auf dem Kontext der internen Dokumente.
Fragen, die Sie versuchen können:
Was sind die Hauptunterschiede zwischen den drei Motortypen für den Chevy Colorado? Formatieren Sie die Antwort als Tabelle mit dem Modell als erste Spalte
Welche Farboptionen stehen verfügbar? Format als Liste
App Credits-https://github.com/redisventures/llm-document-chat
Authentifizieren Sie Azure CLI mit Ihrem Azure -Konto:
az login
Bereitstellung der Terraformkonfiguration:
terraform init
terraform apply
Sie können Ihre eigenen Dokumente zum Ordner ./docs (PDF oder einfacher Text) hinzufügen, damit diese während der Bereitstellung in den Eimer hochgeladen werden können.
Es kann bis zu 20 Minuten dauern, bis die erforderliche Infrastruktur bereitgestellt wird.
Am Ende würde das Terraform -Skript eine Reihe von Variablen ausgeben.
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 kann verwendet werden, um sofort auf die Anwendung zuzugreifen.
Verwenden Sie terraform.tfvars oder terraform apply -var="name_prefix=my-deployment" um das Standard -Präfix für Ressourcenname und das Containerbild zu überschreiben, um mit dem WebApp bereitzustellen.
So ändern Sie die Anwendung, die als Azure -Web -App bereitgestellt wird - app_docker_image und app_docker_tag -Werte in der terraform.tfvars . Der Quellcode für die Standardanwendung ist in diesem Repo im Ordner ./app enthalten.
Azure Account, Azure CLI, Terraform CLI vor Ort installiert.
Azure Open AI Derzeit (Mai 2023) befindet sich in der privaten Vorschau. Sie müssen die Anfrage an Microsoft senden, um sie für Ihr Konto zu aktivieren.
Azure OpenAi, die API einbettet, hat derzeit strenge Grenzen für die Antragsfrequenz, was sie möglicherweise nicht für eine massenhafte Einbettungserzeugung möglich macht. Erwägen Sie, lokale Einbettungen wie:
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
Während Azure Openai und Azure Redis Enterprise nicht lokal bereitgestellt werden können, können Sie Ihre lokale Maschine zum Testen der Anwendung selbst verwenden.
Nach dem Ausführen des terraform apply können Sie die generierten Azure -Dienste verwenden, um Ihren Anwendungscode lokal zu testen. Verwenden Sie .Env.Template als Beispiel und füllen Sie sie mit tatsächlichen Schlüssel und URLs ein.
docker build -t llm-chat .
docker run -it -p 80:80 --env-file=.env llm-chat
Erstellen/Schieben des Multiplattformbildes (nützlich für die lokale Entwicklung auf Mac/Arm):
docker buildx build --platform linux/amd64,linux/arm64 -t antonum/llmchat:latest --push .
azurerm_cognitive_account.openai in creating der Phase. Zum Zeitpunkt des Schreibens (Mai 2023) hat Azure gelegentlich Probleme, OpenAI -Dienste bereitzustellen. Versuchen Sie, den Stapel in einer anderen Region einzusetzen. Zum Beispiel setze azure_region = "southcentralus" anstelle von eastus .
SpecialFeatureOrQuotaIdRequired: The subscription does not have QuotaId/Feature required by SKU 'S0' from kind 'OpenAI'In Ihrem Azure -Konto ist Azure Openai nicht aktiviert. Zum Zeitpunkt des Schreibens (Mai 2023) befindet sich Azure Openai in einer privaten Vorschau. Sie müssen die Anfrage an Microsoft senden, um sie für Ihr Abonnement zu aktivieren.
Zerstören Sie alle implementierten Ressourcen:
terraform destroy