Templat Terraform mengotomatiskan penyebaran aplikasi Azure OpenAI dari ujung ke ujung menggunakan Redis Enterprise sebagai database vektor.

Dalam satu skrip terraform itu digunakan:
text-davinci-003 dan text-embedding-ada-002./docsContoh aplikasi yang digunakan dalam repo ini memungkinkan Anda menggunakan chatgpt untuk menganalisis dokumen, yang sebelumnya tidak diketahui chatgpt dan/atau internal ke organisasi Anda.
Ada dua aliran data di aplikasi. Pertama - Batch Generasi Embedding dari Konteks Dokumen. Embeddings ini disimpan di Azure Redis Enterprise. Kedua - Menggunakan embeddings ini untuk menghasilkan prompt -sadar konteks untuk chatgpt, jadi itu menjawab pertanyaan, berdasarkan konteks dokumen internal.
Pertanyaan yang dapat Anda coba:
Apa perbedaan utama antara tiga jenis mesin yang tersedia untuk Chevy Colorado? Format respons sebagai tabel dengan model sebagai kolom pertama
Pilihan warna apa yang tersedia? Format sebagai daftar
Kredit Aplikasi-https://github.com/redisventures/llm-document-cat
Otentikasi Azure Cli ke akun Azure Anda:
az login
Menyebarkan konfigurasi terraform:
terraform init
terraform apply
Anda dapat menambahkan dokumen Anda sendiri ke folder ./docs (PDF atau teks biasa), sehingga dapat diunggah ke ember selama penyebaran.
Butuh waktu hingga 20 menit untuk menyediakan semua infrastruktur yang diperlukan.
Pada akhirnya skrip Terraform akan menghasilkan banyak variabel.
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 dapat digunakan untuk segera mengakses aplikasi.
Gunakan terraform.tfvars atau terraform apply -var="name_prefix=my-deployment" untuk mengganti awalan nama sumber daya default dan gambar kontainer untuk digunakan dengan webapp.
Untuk mengubah aplikasi, digunakan sebagai aplikasi web Azure - ubah nilai app_docker_image dan app_docker_tag di terraform.tfvars . Kode sumber untuk aplikasi default termasuk dalam repo ini di bawah folder ./app .
Akun Azure, Azure CLI, Terraform CLI dipasang secara lokal.
Azure Open AI saat ini (Mei 2023) berada dalam pratinjau pribadi. Anda perlu mengirimkan permintaan ke Microsoft untuk mengaktifkannya untuk akun Anda.
Azure OpenAi Embedding API saat ini memiliki batasan ketat pada frekuensi permintaan, yang mungkin membuatnya tidak layak untuk generasi embedding massal. Pertimbangkan untuk menggunakan embedding lokal seperti:
from langchain.embeddings import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model_name="all-MiniLM-L6-v2")
Sementara Azure OpenAi dan Azure Redis Enterprise tidak dapat digunakan secara lokal, Anda dapat menggunakan mesin lokal Anda untuk menguji aplikasi itu sendiri.
Setelah menjalankan terraform apply Anda dapat menggunakan layanan Azure yang dihasilkan untuk menguji kode aplikasi Anda secara lokal. Gunakan .env.template sebagai contoh dan mengisinya dengan kunci dan URL yang sebenarnya.
docker build -t llm-chat .
docker run -it -p 80:80 --env-file=.env llm-chat
Membangun/Mendorong Gambar Multiplatform (Berguna untuk Pengembangan Lokal di Mac/ARM):
docker buildx build --platform linux/amd64,linux/arm64 -t antonum/llmchat:latest --push .
azurerm_cognitive_account.openai terjebak dalam creating fase. Pada saat penulisan (Mei 2023) Azure sesekali mengalami masalah menggunakan layanan openai. Coba sebutkan tumpukan di wilayah lain. Misalnya set azure_region = "southcentralus" bukannya eastus .
SpecialFeatureOrQuotaIdRequired: The subscription does not have QuotaId/Feature required by SKU 'S0' from kind 'OpenAI'Akun Azure Anda tidak mengaktifkan Azure Openai. Pada saat penulisan (Mei 2023) Azure OpenAi secara pribadi pratinjau. Anda perlu mengirimkan permintaan ke Microsoft untuk mengaktifkannya untuk langganan Anda.
Untuk menghancurkan semua sumber daya yang dikerahkan menjalankan:
terraform destroy