Versi 2.x merupakan penulisan ulang modul secara lengkap dan tidak kompatibel dengan versi 1.x.
Integrasi dan fitur baru telah ditambahkan ke modul untuk menggunakan layanan dan fitur Azure OpenAI terbaru seperti GPT-4-1106
, GPT-4-Vision
dan DALL-E-3
. UI ChatBot/LibreChat baru telah ditambahkan ke modul untuk memberikan solusi lengkap.
CATATAN: Versi lama 1.x dapat ditemukan di cabang lama di sini
Dokumentasi Versi 1.x
Berdasarkan ketentuan OpenAI saat menggunakan ChatGPT versi publik, pertanyaan apa pun yang Anda ajukan—disebut sebagai "perintah" —dapat berkontribusi pada pelatihan lebih lanjut Model Bahasa Besar (LLM) OpenAI. Mengingat hal ini, penting untuk bertanya: Apakah Anda merasa nyaman dengan aliran data berharga yang meninggalkan organisasi Anda? Jika Anda adalah pengambil keputusan atau memegang tanggung jawab atas langkah-langkah keamanan organisasi Anda, langkah apa yang Anda ambil untuk memastikan informasi kepemilikan tetap rahasia?
Solusi efektif terletak pada penggunaan versi LLM populer yang dihosting di Azure OpenAI . Meskipun ada banyak keuntungan dari Azure OpenAI, saya ingin menyoroti dua hal:
Privasi Data : Dengan menghosting model OpenAI di Azure, perintah Anda tidak akan pernah berfungsi sebagai sumber untuk melatih LLM. Ini hanyalah versi mandiri yang berjalan di Azure yang dirancang untuk Anda gunakan.
Keamanan yang Ditingkatkan : Azure OpenAI menawarkan langkah-langkah keamanan yang kuat, mulai dari kemampuan untuk mengamankan titik akhir tertentu hingga kontrol akses berbasis peran yang rumit. Untuk mengetahui lebih dalam, lihat artikel Microsoft Learn ini.
Meskipun Azure OpenAI memiliki biaya, namun harganya sangat terjangkau—seringkali, biaya percakapannya di bawah 10 sen. Anda dapat meninjau detail harga Azure OpenAI di sini.
segera hadir...
Kontribusi dipersilakan. Silakan kirimkan permintaan penarikan jika Anda memiliki perbaikan atau perbaikan. Pastikan untuk mengikuti gaya kode yang ada dan tambahkan komentar ke kode Anda yang menjelaskan fungsinya.
Modul terraform ini dilisensikan di bawah Lisensi MIT. Lihat file LISENSI untuk lebih jelasnya.
Jika Anda mengalami masalah atau memiliki pertanyaan tentang modul terraform ini, silakan buka masalah di GitHub. Kami akan melakukan yang terbaik untuk merespons secepat mungkin.
Modul terraform ini dikembangkan oleh Marcel Lupo sebagai bagian dari proyek untuk mengeksplorasi kemampuan model Azure OpenAI. Kami ingin mengucapkan terima kasih kepada tim OpenAI dan Microsoft atas kerja luar biasa mereka dan dukungan berkelanjutan terhadap komunitas AI.
Nama | Versi |
---|---|
terraform | >= 1.9.5 |
azurerm | ~> 4.0 |
acak | ~> 3.0 |
Nama | Versi |
---|---|
azurerm | ~> 4.0 |
acak | ~> 3.0 |
Tidak ada modul.
Nama | Jenis |
---|---|
azurerm_app_service_certificate_binding.libre_app_cert_binding | sumber |
azurerm_app_service_custom_hostname_binding.hostname_binding | sumber |
azurerm_app_service_managed_certificate.libre_app_cert | sumber |
azurerm_cognitive_account.az_openai | sumber |
azurerm_cognitive_deployment.az_openai_models | sumber |
azurerm_cosmosdb_account.az_openai_mongodb | sumber |
azurerm_dns_cname_record.cname_record | sumber |
azurerm_dns_txt_record.domain_verification | sumber |
azurerm_key_vault.az_openai_kv | sumber |
azurerm_key_vault_secret.libre_app_creds_iv | sumber |
azurerm_key_vault_secret.libre_app_creds_key | sumber |
azurerm_key_vault_secret.libre_app_jwt_refresh_secret | sumber |
azurerm_key_vault_secret.libre_app_jwt_secret | sumber |
azurerm_key_vault_secret.openai_cosmos_uri | sumber |
azurerm_key_vault_secret.openai_endpoint | sumber |
azurerm_key_vault_secret.openai_primary_key | sumber |
azurerm_linux_web_app.librechat | sumber |
azurerm_resource_group.az_openai_rg | sumber |
azurerm_role_assignment.kv_role_assignment | sumber |
azurerm_role_assignment.librechat_app_kv_access | sumber |
azurerm_service_plan.az_openai_asp | sumber |
azurerm_subnet.az_openai_subnet | sumber |
azurerm_virtual_network.az_openai_vnet | sumber |
kata sandi_acak.libre_app_creds_iv | sumber |
kata sandi_acak.libre_app_creds_key | sumber |
kata sandi_random.libre_app_jwt_refresh_secret | sumber |
kata sandi_acak.libre_app_jwt_secret | sumber |
azurerm_client_config.saat ini | sumber data |
Nama | Keterangan | Jenis | Bawaan | Diperlukan |
---|---|---|---|---|
nama_layanan_aplikasi | Nama Paket Layanan Aplikasi Linux. | string | "openaiasp9000" | TIDAK |
app_service_sku_name | Nama SKU Paket Layanan Aplikasi. | string | "B1" | TIDAK |
kosmosdb_automatic_failover | Apakah akan mengaktifkan failover otomatis untuk akun Cosmos DB | bool | false | TIDAK |
kosmosdb_capabilities | Kemampuan untuk akun Cosmos DB | list(string) | [ | TIDAK |
kosmosdb_consistency_level | Tingkat konsistensi akun Cosmos DB | string | "BoundedStaleness" | TIDAK |
kosmosdb_geo_locations | Lokasi geografis untuk akun Cosmos DB | daftar(objek({ | [ | TIDAK |
kosmosdb_is_virtual_network_filter_enabled | Apakah akan mengaktifkan pemfilteran jaringan virtual untuk akun Cosmos DB | bool | true | TIDAK |
kosmosdb_kind | Jenis Cosmos DB yang akan dibuat | string | "MongoDB" | TIDAK |
kosmosdb_max_interval_in_detik | Interval staleness maksimum dalam hitungan detik untuk akun Cosmos DB | number | 10 | TIDAK |
kosmosdb_max_staleness_prefix | Awalan staleness maksimum untuk akun Cosmos DB | number | 200 | TIDAK |
kosmosdb_nama | Nama akun Cosmos DB | string | "openaicosmosdb" | TIDAK |
kosmosdb_offer_type | Jenis penawaran yang akan digunakan untuk akun Cosmos DB | string | "Standard" | TIDAK |
kosmosdb_public_network_access_enabled | Apakah akan mengaktifkan akses jaringan publik untuk akun Cosmos DB | bool | true | TIDAK |
kosmosdb_virtual_network_subnets | Subnet jaringan virtual untuk dikaitkan dengan akun Cosmos DB (Titik Akhir Layanan). Jika jaringan dibuat sebagai bagian dari modul, jaringan ini akan terisi secara otomatis. | list(string) | null | TIDAK |
dns_resource_group_name | Grup Sumber Daya yang berisi Zona DNS kustom yang akan digunakan untuk App Service | string | "dns-rg" | TIDAK |
kv_fw_allowed_ips | nilai firewall brankas kunci yang diizinkan aturan ip. | list(string) | [] | TIDAK |
kv_fw_bypass | Daftar aturan firewall brankas kunci yang harus dilewati. | string | "AzureServices" | TIDAK |
kv_fw_default_action | Tindakan default untuk aturan firewall brankas kunci. | string | "Deny" | TIDAK |
kv_fw_network_subnet_ids | Subnet jaringan virtual untuk dikaitkan dengan akun Cosmos DB (Titik Akhir Layanan). Jika jaringan dibuat sebagai bagian dari modul, jaringan ini akan terisi secara otomatis. | list(string) | null | TIDAK |
kv_nama | Nama Key Vault yang akan dibuat (rahasia solusi). | string | "openaikv9000" | TIDAK |
kv_sku | SKU Key Vault yang akan dibuat. | string | "standard" | TIDAK |
libre_app_allow_email_login | Izinkan Masuk Email | bool | true | TIDAK |
libre_app_allow_registration | Izinkan Pendaftaran | bool | true | TIDAK |
libre_app_allow_social_login | Izinkan Login Sosial | bool | false | TIDAK |
libre_app_allow_social_registration | Izinkan Pendaftaran Sosial | bool | false | TIDAK |
libre_app_allowed_ip_addresses | Alamat IP yang Diizinkan. Notasi CIDR dari IP atau Rentang IP yang akan dicocokkan untuk memungkinkan. Misalnya: 10.0.0.0/24 atau 192.168.10.1/32 | daftar(objek({ | [ | TIDAK |
libre_app_allowed_subnets | Subnet yang Diizinkan (Secara default, subnet tempat layanan aplikasi disebarkan sudah memiliki akses yang diizinkan sebagai prioritas 100). Tambahkan tambahan apa pun di sini | daftar(objek({ | [ | TIDAK |
libre_app_az_oai_api_key | Kunci API Azure OpenAI | string | null | TIDAK |
libre_app_az_oai_api_version | Versi API Azure OpenAI | string | "2023-07-01-preview" | TIDAK |
libre_app_az_oai_dall3_api_version | Versi API Azure OpenAI DALL-E | string | "2023-12-01-preview" | TIDAK |
libre_app_az_oai_dall3_deployment_name | Nama Penerapan Azure OpenAI DALL-E | string | "dall-e-3" | TIDAK |
libre_app_az_oai_instance_name | Nama Instans Azure OpenAI | string | null | TIDAK |
libre_app_az_oai_models | Model Azure OpenAI. Misalnya 'gpt-4-1106-pratinjau,gpt-4,gpt-3.5-turbo,gpt-3.5-turbo-1106,gpt-4-vision-pratinjau' | string | "gpt-4-1106-preview" | TIDAK |
libre_app_az_oai_use_model_as_deployment_name | Azure OpenAI Menggunakan Model sebagai Nama Penerapan | bool | true | TIDAK |
libre_app_custom_domain_create | Buat domain kustom dan sertifikat terkelola untuk App Service. | bool | false | TIDAK |
libre_app_custom_footer | Tambahkan footer khusus untuk Aplikasi. | string | "Privately hosted chat app powered by Azure OpenAI and LibreChat." | TIDAK |
libre_app_debug_console | Aktifkan keluaran server verbose di konsol, meskipun tidak disarankan karena verbositasnya tinggi. | bool | false | TIDAK |
libre_app_debug_logging | LibreChat memiliki logging pusat yang terpasang di backendnya (api). File log disimpan di /api/logs. Log kesalahan disimpan secara default. Log debug diaktifkan secara default tetapi dapat dimatikan jika tidak diinginkan. | bool | false | TIDAK |
libre_app_debug_plugins | Aktifkan mode debug untuk plugin Aplikasi Libre. | bool | false | TIDAK |
libre_app_docker_image | Gambar Docker yang akan digunakan untuk App Service. | string | "ghcr.io/danny-avila/librechat-dev-api:latest" | TIDAK |
libre_app_domain_client | Untuk menggunakan secara lokal, setel DOMAIN_CLIENT dan DOMAIN_SERVER ke http://localhost:3080 (3080 adalah port yang dikonfigurasi sebelumnya). Saat menerapkan ke domain khusus, setel DOMAIN_CLIENT dan DOMAIN_SERVER ke URL yang Anda gunakan, misalnya https://mydomain.example. com | string | "http://localhost:3080" | TIDAK |
libre_app_domain_server | Untuk menggunakan secara lokal, setel DOMAIN_CLIENT dan DOMAIN_SERVER ke http://localhost:3080 (3080 adalah port yang dikonfigurasi sebelumnya). Saat menerapkan ke domain khusus, setel DOMAIN_CLIENT dan DOMAIN_SERVER ke URL yang Anda gunakan, misalnya https://mydomain.example. com | string | "http://localhost:3080" | TIDAK |
libre_app_enable_meilisearch | Aktifkan Meilisearch | bool | false | TIDAK |
libre_app_endpoints | titik akhir dan pemilihan model. Misalnya 'openAI,azureOpenAI,bingAI,chatGPTBrowser,google,gptPlugins,anthropic' | string | "azureOpenAI" | TIDAK |
libre_app_host | servernya akan mendengarkan localhost:3080 secara default. Anda dapat mengubah IP target sesuai keinginan. Jika Anda ingin membuat server ini tersedia secara eksternal, misalnya untuk berbagi server dengan orang lain atau mengeksposnya dari kontainer Docker, atur host ke 0.0.0.0 atau antarmuka IP eksternal Anda. | string | "0.0.0.0" | TIDAK |
libre_app_jwt_refresh_secret | Rahasia Penyegaran JWT | string | null | TIDAK |
libre_app_jwt_secret | Rahasia JWT | string | null | TIDAK |
libre_app_mongo_uri | String Koneksi MongoDB untuk dihubungkan. | string | null | TIDAK |
libre_app_name | Nama Layanan Aplikasi LibreChat. | string | "librechatapp9000" | TIDAK |
libre_app_plugins_creds_iv | Kredit Plugin Aplikasi Libre IV | string | null | TIDAK |
libre_app_plugins_creds_key | Kunci Kredit Plugin Aplikasi Libre | string | null | TIDAK |
libre_app_port | Port host untuk mendengarkan. | number | 3080 | TIDAK |
libre_app_public_network_access_enabled | Apakah akses jaringan publik diaktifkan atau tidak. Defaultnya adalah false . | bool | true | TIDAK |
libre_app_title | Tambahkan judul khusus untuk Aplikasi. | string | "PrivateGPT" | TIDAK |
libre_app_violations | Konfigurasi untuk pelanggaran | obyek({ | { | TIDAK |
libre_app_virtual_network_subnet_id | ID subnet, digunakan untuk mengizinkan akses ke Layanan Aplikasi (prioritas 100), misalnya kosmosdb, meilisearch, dll. Jika jaringan dibuat sebagai bagian dari modul, ini akan otomatis terisi jika nilainya 'null'. | string | null | TIDAK |
librechat_app_custom_dns_zone_name | Zona DNS yang akan digunakan untuk App Service. | string | "domain.com" | TIDAK |
librechat_app_custom_domain_name | Domain khusus yang akan digunakan untuk App Service. | string | "privategpt" | TIDAK |
lokasi | Wilayah Azure tempat sumber daya akan dihosting. | string | "uksouth" | TIDAK |
oai_nama_akun | Nama layanan OpenAI. | string | "az-openai-account" | TIDAK |
oai_custom_subdomain_name | Nama subdomain yang digunakan untuk autentikasi berbasis token. Mengubah hal ini akan memaksa sumber daya baru dibuat. (biasanya sama dengan nama akun) | string | "demo-account" | TIDAK |
oai_customer_managed_key | ketik = objek({ key_vault_key_id = (Wajib) ID Kunci Key Vault yang harus digunakan untuk Mengenkripsi data di Akun OpenAI ini. Identity_client_id = (Opsional) ID Klien dari Identitas yang Ditugaskan Pengguna yang memiliki akses ke kunci. Properti ini hanya perlu ditentukan ketika ada beberapa identitas yang dilampirkan ke Akun OpenAI. }) | obyek({ | null | TIDAK |
oai_dynamic_throttling_enabled | Apakah pembatasan dinamis diaktifkan atau tidak. Defaultnya adalah true . | bool | true | TIDAK |
oai_fqdns | Daftar FQDN yang akan digunakan untuk autentikasi berbasis token. Mengubah hal ini akan memaksa sumber daya baru dibuat. | list(string) | [] | TIDAK |
oai_identity | ketik = objek({ type = (Wajib) Jenis Identitas. Nilai yang mungkin adalah SystemAssigned , UserAssigned , SystemAssigned, UserAssigned .Identity_ids = (Opsional) Menentukan daftar ID Identitas Terkelola yang Ditugaskan Pengguna untuk ditetapkan ke Akun OpenAI ini. }) | obyek({ | { | TIDAK |
oai_local_auth_enabled | Apakah metode autentikasi lokal diaktifkan untuk Akun Kognitif. Defaultnya adalah true . | bool | true | TIDAK |
oai_model_deployment | ketik = daftar(objek({ deployment_id = (Wajib) Nama Model Deployment Akun Cognitive Services . Mengubah hal ini akan memaksa sumber daya baru dibuat.nama_model = { model_format = (Wajib) Format model Penerapan Akun Layanan Kognitif. Mengubah hal ini akan memaksa sumber daya baru dibuat. Nilai yang mungkin adalah OpenAI. model_name = (Wajib) Nama model Penerapan Akun Cognitive Services. Mengubah hal ini akan memaksa sumber daya baru dibuat. model_version = (Wajib) Versi model Penerapan Akun Cognitive Services. } sku = { sku_name = (Wajib) Nama SKU. Nilai yang mungkin mencakup Standar, GlobalBatch, GlobalStandard, dan ProvisionedManaged. sku_tier = (Opsional) Nilai yang memungkinkan adalah Gratis, Dasar, Standar, Premium, Perusahaan. Mengubah hal ini akan memaksa sumber daya baru dibuat. sku_size = (Opsional) Ukuran SKU. Jika bidang nama merupakan kombinasi tingkatan dan beberapa nilai lainnya, ini akan menjadi kode mandiri. Mengubah hal ini akan memaksa sumber daya baru dibuat. sku_family = (Opsional) Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka hal tersebut dapat dilihat di sini. Mengubah hal ini akan memaksa sumber daya baru dibuat. sku_capacity = (Opsional) Token per Menit (TPM). Jika SKU mendukung sku out/in maka integer kapasitas harus disertakan. Jika sku out/in tidak memungkinkan untuk sumber daya, hal ini dapat dihilangkan. Nilai defaultnya adalah 1. Mengubah nilai ini akan memaksa pembuatan sumber daya baru. } rai_policy_name = (Opsional) Nama kebijakan RAI. Mengubah hal ini akan memaksa sumber daya baru dibuat. })) | daftar(objek({ | [] | TIDAK |
oai_network_acls | ketik = set(objek({ default_action = (Wajib) Tindakan Default yang digunakan ketika tidak ada aturan yang cocok dari ip_rules / virtual_network_rules. Nilai yang mungkin adalah Allow dan Deny .ip_rules = (Opsional) Satu atau lebih Alamat IP, atau Blok CIDR yang seharusnya dapat mengakses Akun Kognitif. virtual_network_rules = opsional(set(objek({ subnet_id = (Wajib) ID Subnet yang dapat mengakses Akun OpenAI. abaikan_missing_vnet_service_endpoint = (Opsional) Abaikan titik akhir layanan vnet yang hilang atau tidak. Defaultnya adalah false .}))) })) | set(objek({ | null | TIDAK |
oai_outbound_network_access_restricted | Apakah akses jaringan keluar dibatasi atau tidak. Defaultnya adalah false . | bool | false | TIDAK |
oai_public_network_access_enabled | Apakah akses jaringan publik diaktifkan atau tidak. Defaultnya adalah false . | bool | true | TIDAK |
oai_sku_nama | Nama SKU layanan OpenAI. | string | "S0" | TIDAK |
oai_storage | ketik = daftar(objek({ storage_account_id = (Diperlukan) Id sumber daya lengkap dari sumber daya Microsoft.Storage. Identity_client_id = (Opsional) ID klien dari identitas terkelola yang terkait dengan sumber daya penyimpanan. })) | daftar(objek({ | [] | TIDAK |
resource_group_name | Nama grup sumber daya untuk membuat layanan OpenAI/atau tempat layanan yang sudah ada dihosting. | string | tidak ada | Ya |
subnet_config | Daftar objek konfigurasi subnet untuk membuat subnet di jaringan virtual. | obyek({ | { | TIDAK |
tag | Peta pasangan nilai kunci yang digunakan untuk menandai sumber daya yang dibuat. | map(string) | {} | TIDAK |
gunakan_cosmosdb_free_tier | Apakah akan mengaktifkan tingkat gratis untuk akun Cosmos DB. Ini harus salah jika instance lain sudah menggunakan tingkat gratis. | bool | true | TIDAK |
nama_jaringan_virtual | Nama jaringan virtual tempat sumber daya terpasang. | string | "openai-vnet-9000" | TIDAK |
vnet_address_space | nilai ruang alamat untuk jaringan virtual. | list(string) | [ | TIDAK |
Nama | Keterangan |
---|---|
app_service_default_hostname | Nama host default Layanan Aplikasi |
app_service_id | ID Layanan Aplikasi |
nama_layanan_aplikasi | Nama Layanan Aplikasi |
app_service_outbound_ip_addresses | Alamat IP keluar dari Layanan Aplikasi |
app_service_plan_id | ID Paket Layanan Aplikasi |
nama_rencana_layanan_aplikasi | Nama Paket Layanan Aplikasi |
kognitif_deployment_ids | ID Penerapan Model Akun Kognitif OpenAI |
nama_penerapan_kognitif | Nama Penerapan Model Akun Kognitif OpenAI |
kosmosdb_account_endpoint | Titik akhir yang digunakan untuk terhubung ke akun Cosmos DB |
kosmosdb_account_id | ID akun Cosmos DB |
kosmosdb_nama_akun | Nama akun Cosmos DB |
kosmosdb_account_primary_key | Kunci master utama untuk akun Cosmos DB |
kosmosdb_account_secondary_key | Kunci master sekunder untuk akun Cosmos DB |
key_vault_id | ID Gudang Kunci |
nama_kunci_kubah | Nama Gudang Kunci |
key_vault_uri | URI Gudang Kunci |
openai_endpoint | Titik akhir yang digunakan untuk menyambung ke Akun Layanan Kognitif. |
openai_primary_key | Kunci akses utama untuk Akun Layanan Kognitif. |
openai_secondary_key | Kunci akses sekunder untuk Akun Layanan Kognitif. |
openai_subdomain | Subdomain yang digunakan untuk menyambung ke Akun Layanan Kognitif. |
subnet_id | ID subnet |
subnet_nama | Nama subnetnya |
virtual_network_id | ID jaringan virtual |
nama_jaringan_virtual | Nama jaringan virtual |