版本2.x完全重寫了模組,並且不向後相容版本1.x。
此模組中新增了新的整合和功能,以使用最新的Azure OpenAI服務和功能,例如GPT-4-1106
、 GPT-4-Vision
和DALL-E-3
。模組中新增了新的 ChatBot UI / LibreChat,以提供完整的解決方案。
注意:舊版1.x可以在舊版分支中找到
1.x 版本文檔
根據OpenAI 的條款,在使用ChatGPT公共版本時,您提出的任何問題(稱為「提示」)都可能有助於 OpenAI 大型語言模型 (LLM) 的進一步訓練。有鑑於此,至關重要的是要問:您對離開組織的寶貴資料流感到滿意嗎?如果您是決策者或對組織的安全措施負責,您將採取哪些步驟來確保專有資訊的機密性?
有效的解決方案在於利用Azure OpenAI上流行的 LLM 的託管版本。雖然 Azure OpenAI 有許多優點,但我想專注於兩個優點:
資料隱私:透過在 Azure 上託管 OpenAI 的模型,您的提示永遠不會成為法學碩士培訓的來源。它只是一個在 Azure 上運行的獨立版本,專為您的使用而客製化。
增強的安全性:Azure OpenAI 提供強大的安全措施,從保護特定端點的能力到複雜的基於角色的存取控制。如需更深入的了解,請參閱這篇 Microsoft Learn 文章。
雖然 Azure OpenAI 確實需要付費,但它的價格非常實惠——通常一次對話的成本不到 10 美分。您可以在此處查看 Azure OpenAI 的定價詳細資訊。
即將推出...
歡迎貢獻。如果您有任何改進或修復,請提交拉取請求。確保遵循現有的程式碼風格並向程式碼添加註解來解釋其作用。
此 terraform 模組已根據 MIT 授權獲得許可。有關更多詳細信息,請參閱許可證文件。
如果您遇到任何問題或對此 terraform 模組有任何疑問,請在 GitHub 上提出問題。我們將盡力盡快回應。
此 terraform 模組由Marcel Lupo開發,作為探索 Azure OpenAI 模型功能的專案的一部分。我們要感謝 OpenAI 和 Microsoft 團隊所做的出色工作以及對 AI 社群的持續支持。
姓名 | 版本 |
---|---|
地形 | >= 1.9.5 |
蔚藍 | 〜> 4.0 |
隨機的 | 〜> 3.0 |
姓名 | 版本 |
---|---|
蔚藍 | 〜> 4.0 |
隨機的 | 〜> 3.0 |
沒有模組。
姓名 | 類型 |
---|---|
azurerm_app_service_certificate_binding.libre_app_cert_binding | 資源 |
azurerm_app_service_custom_hostname_binding.hostname_binding | 資源 |
azurerm_app_service_driven_certificate.libre_app_cert | 資源 |
azurerm_cognitive_account.az_openai | 資源 |
azurerm_cognitive_deployment.az_openai_models | 資源 |
azurerm_cosmosdb_account.az_openai_mongodb | 資源 |
azurerm_dns_cname_record.cname_record | 資源 |
azurerm_dns_txt_record.domain_verification | 資源 |
azurerm_key_vault.az_openai_kv | 資源 |
azurerm_key_vault_secret.libre_app_creds_iv | 資源 |
azurerm_key_vault_secret.libre_app_creds_key | 資源 |
azurerm_key_vault_secret.libre_app_jwt_refresh_secret | 資源 |
azurerm_key_vault_secret.libre_app_jwt_secret | 資源 |
azurerm_key_vault_secret.openai_cosmos_uri | 資源 |
azurerm_key_vault_secret.openai_endpoint | 資源 |
azurerm_key_vault_secret.openai_primary_key | 資源 |
azurerm_linux_web_app.librechat | 資源 |
azurerm_resource_group.az_openai_rg | 資源 |
azurerm_role_assignment.kv_role_assigment | 資源 |
azurerm_role_assignment.librechat_app_kv_access | 資源 |
azurerm_service_plan.az_openai_asp | 資源 |
azurerm_subnet.az_openai_subnet | 資源 |
azurerm_virtual_network.az_openai_vnet | 資源 |
random_password.libre_app_creds_iv | 資源 |
random_password.libre_app_creds_key | 資源 |
random_password.libre_app_jwt_refresh_secret | 資源 |
random_password.libre_app_jwt_secret | 資源 |
azurerm_client_config.current | 數據來源 |
姓名 | 描述 | 類型 | 預設 | 必需的 |
---|---|---|---|---|
應用程式服務名稱 | Linux 應用程式服務計劃的名稱。 | string | "openaiasp9000" | 不 |
應用程式_服務_sku_名稱 | 應用服務計劃的 SKU 名稱。 | string | "B1" | 不 |
cosmosdb_automatic_failover | 是否為 Cosmos DB 帳戶啟用自動故障轉移 | bool | false | 不 |
宇宙資料庫功能 | Cosmos DB 帳戶的功能 | list(string) | [ | 不 |
cosmosdb_consistency_level | Cosmos DB 帳戶的一致性級別 | string | "BoundedStaleness" | 不 |
cosmosdb_geo_locations | Cosmos DB 帳號的地理位置 | 列表(對象({ | [ | 不 |
cosmosdb_is_virtual_network_filter_enabled | 是否為 Cosmos DB 帳戶啟用虛擬網路過濾 | bool | true | 不 |
cosmosdb_kind | 要建立的 Cosmos DB 類型 | string | "MongoDB" | 不 |
cosmosdb_max_interval_in_秒 | Cosmos DB 帳戶的最大過時間隔(以秒為單位) | number | 10 | 不 |
cosmosdb_max_staleness_prefix | Cosmos DB 帳戶的最大過時前綴 | number | 200 | 不 |
宇宙資料庫名稱 | Cosmos DB 帳戶的名稱 | string | "openaicosmosdb" | 不 |
cosmosdb_offer_type | 用於 Cosmos DB 帳戶的優惠類型 | string | "Standard" | 不 |
cosmosdb_public_network_access_enabled | 是否為Cosmos DB帳戶啟用公網訪問 | bool | true | 不 |
cosmosdb_虛擬_網路_子網 | 與 Cosmos DB 帳戶(服務端點)關聯的虛擬網路子網路。如果網路是作為模組的一部分建立的,則會自動填入。 | list(string) | null | 不 |
dns_資源組_名稱 | 包含用於應用程式服務的自訂 DNS 區域的資源群組 | string | "dns-rg" | 不 |
kv_fw_allowed_ips | Key Vault 防火牆允許的 ip 規則的值。 | list(string) | [] | 不 |
kv_fw_旁路 | 要繞過的 Key Vault 防火牆規則清單。 | string | "AzureServices" | 不 |
kv_fw_default_action | Key Vault 防火牆規則的預設操作。 | string | "Deny" | 不 |
kv_fw_network_subnet_ids | 與 Cosmos DB 帳戶(服務端點)關聯的虛擬網路子網路。如果網路是作為模組的一部分建立的,則會自動填入。 | list(string) | null | 不 |
kv_名稱 | 要建立的 Key Vault 的名稱(解決方案機密)。 | string | "openaikv9000" | 不 |
kv_sku | 要建立的 Key Vault 的 SKU。 | string | "standard" | 不 |
libre_app_allow_email_login | 允許電子郵件登入 | bool | true | 不 |
libre_app_allow_registration | 允許註冊 | bool | true | 不 |
libre_app_allow_social_login | 允許社群登入 | bool | false | 不 |
libre_app_allow_social_registration | 允許社交註冊 | bool | false | 不 |
libre_app_allowed_ip_addresses | 允許的 IP 位址。若要符合以允許的 IP 或 IP 範圍的 CIDR 表示法。例如:10.0.0.0/24 或 192.168.10.1/32 | 列表(對象({ | [ | 不 |
libre_app_allowed_subnets | 允許的子網路(預設情況下,部署應用程式服務的子網路已允許訪問,優先順序為 100)。在此添加任何附加內容 | 列表(對象({ | [ | 不 |
libre_app_az_oai_api_key | Azure OpenAI API 金鑰 | string | null | 不 |
libre_app_az_oai_api_version | Azure OpenAI API 版本 | string | "2023-07-01-preview" | 不 |
libre_app_az_oai_dall3_api_version | Azure OpenAI DALL-E API 版本 | string | "2023-12-01-preview" | 不 |
libre_app_az_oai_dall3_deployment_name | Azure OpenAI DALL-E 部署名稱 | string | "dall-e-3" | 不 |
libre_app_az_oai_instance_name | Azure OpenAI 執行個體名稱 | string | null | 不 |
libre_app_az_oai_models | Azure OpenAI 模式。例如'gpt-4-1106-preview,gpt-4,gpt-3.5-turbo,gpt-3.5-turbo-1106,gpt-4-vision-preview' | string | "gpt-4-1106-preview" | 不 |
libre_app_az_oai_use_model_as_deployment_name | Azure OpenAI 使用模式作為部署名稱 | bool | true | 不 |
libre_app_custom_domain_create | 為應用程式服務建立自訂網域和託管憑證。 | bool | false | 不 |
libre_app_custom_footer | 為應用程式新增自訂頁腳。 | string | "Privately hosted chat app powered by Azure OpenAI and LibreChat." | 不 |
libre_app_debug_console | 在控制台中啟用詳細伺服器輸出,但由於詳細程度較高,不建議這樣做。 | bool | false | 不 |
libre_app_debug_logging | LibreChat 在其後端 (api) 中內建了中央日誌記錄。日誌檔案保存在/api/logs 中。預設保存錯誤日誌。預設情況下啟用調試日誌,但如果不需要,可以將其關閉。 | bool | false | 不 |
libre_app_debug_plugins | 為 Libre App 外掛程式啟用偵錯模式。 | bool | false | 不 |
libre_app_docker_image | 用於應用服務的 Docker 映像。 | string | "ghcr.io/danny-avila/librechat-dev-api:latest" | 不 |
libre_app_domain_client | 若要在本機上使用,請將DOMAIN_CLIENT 和DOMAIN_SERVER 設定為http://localhost:3080(3080 是先前設定的連接埠)。 /mydomain.example。 | string | "http://localhost:3080" | 不 |
libre_app_domain_server | 若要在本機上使用,請將DOMAIN_CLIENT 和DOMAIN_SERVER 設定為http://localhost:3080(3080 是先前設定的連接埠)。 /mydomain.example。 | string | "http://localhost:3080" | 不 |
libre_app_enable_meilisearch | 啟用美麗搜尋 | bool | false | 不 |
libre_app_endpoints | 端點和模型選擇。例如“openAI、azureOpenAI、bingAI、chatGPTBrowser、google、gptPlugins、anthropic” | string | "azureOpenAI" | 不 |
自由應用程式主機 | 伺服器預設監聽 localhost:3080。您可以根據需要變更目標 IP。如果您想要讓此伺服器在外部可用,例如與其他人共用伺服器或從 Docker 容器公開該伺服器,請將主機設定為 0.0.0.0 或您的外部 IP 介面。 | string | "0.0.0.0" | 不 |
libre_app_jwt_refresh_secret | JWT 刷新秘密 | string | null | 不 |
libre_app_jwt_secret | 智威湯遜秘密 | string | null | 不 |
libre_app_mongo_uri | 要連接的 MongoDB 連接字串。 | string | null | 不 |
自由應用程式名稱 | LibreChat 應用服務的名稱。 | string | "librechatapp9000" | 不 |
libre_app_plugins_creds_iv | Libre 應用程式外掛程式 Creds IV | string | null | 不 |
libre_app_plugins_creds_key | Libre 應用程式外掛程式 信用金鑰 | string | null | 不 |
自由應用程式端口 | 要偵聽的主機連接埠。 | number | 3080 | 不 |
libre_app_public_network_access_enabled | 是否開啟公網存取。預設為false 。 | bool | true | 不 |
自由應用程式標題 | 為應用程式新增自訂標題。 | string | "PrivateGPT" | 不 |
libre_app_violations | 違規配置 | 目的({ | { | 不 |
libre_app_virtual_network_subnet_id | 子網路的 ID,用於允許存取應用程式服務(優先權 100),例如 cosmosdb、meilisearch 等。 | string | null | 不 |
librechat_app_custom_dns_zone_name | 用於應用服務的 DNS 區域。 | string | "domain.com" | 不 |
librechat_app_custom_domain_name | 用於應用服務的自訂網域。 | string | "privategpt" | 不 |
地點 | 將託管資源的 Azure 區域。 | string | "uksouth" | 不 |
oai_帳號名稱 | OpenAI 服務的名稱。 | string | "az-openai-account" | 不 |
oai_custom_subdomain_name | 用於基於令牌的身份驗證的子網域。改變這一點會強制創建新資源。 (一般與帳戶名稱相同) | string | "demo-account" | 不 |
oai_客戶_託管_金鑰 | 類型=物件({ key_vault_key_id =(必要)用於加密此 OpenAI 帳戶中的資料的 Key Vault 金鑰的 ID。 Identity_client_id =(可選)有權存取金鑰的使用者指派身分的用戶端 ID。僅當 OpenAI 帳戶附加多個身分時才需要指定此屬性。 }) | 目的({ | null | 不 |
oai_dynamic_throttle_enabled | 是否啟用動態節流。預設為true 。 | bool | true | 不 |
oai_fqdns | 用於基於令牌的身份驗證的 FQDN 清單。改變這一點會強制創建新資源。 | list(string) | [] | 不 |
oai_身份 | 類型=物件({ type =(必需)身份的類型。可能的值為 SystemAssigned 、 UserAssigned 、 SystemAssigned, UserAssigned 。Identity_ids =(選用)指定要指派給此 OpenAI 帳戶的使用者指派的託管身分 ID 清單。 }) | 目的({ | { | 不 |
oai_local_auth_enabled | 是否為認知帳戶啟用本機身份驗證方法。預設為true 。 | bool | true | 不 |
oai_model_deployment | 類型=列表(對象({ Deployment_id =(必要)認知服務帳戶 Model Deployment 的名稱。改變這一點會強制創建新資源。型號名稱 = { model_format =(必要)認知服務帳戶部署模型的格式。改變這一點會強制創建新資源。可能的值是 OpenAI。 model_name =(必要)認知服務帳戶部署模型的名稱。改變這一點會強制創建新資源。 model_version =(必要)認知服務帳戶部署模型的版本。 } sku = { sku_name =(必需)SKU 的名稱。可能的值包括 Standard、GlobalBatch、GlobalStandard 和 ProvisionedManaged。 sku_tier =(可選)可能的值為免費、基本、標準、高級、企業。改變這一點會強制創建新資源。 sku_size =(可選)SKU 大小。當名稱欄位是層和其他值的組合時,這將是獨立代碼。改變這一點會強制創建新資源。 sku_family =(可選)如果服務具有不同代的硬件,對於同一 SKU,則可以在此處捕獲。改變這一點會強制創建新資源。 sku_capacity =(可選)每分鐘令牌數 (TPM)。如果 SKU 支援 sku out/in,則應包含容量整數。如果該資源無法進行 sku 輸出/輸入,則可以省略此操作。預設值為 1。 } rai_policy_name = (可選)RAI 政策的名稱。改變這一點會強制創建新資源。 })) | 列表(對象({ | [] | 不 |
oai_network_acls | 類型 = 設定(物件({ default_action =(必要)當 ip_rules / virtual_network_rules 沒有規則符合時所使用的預設動作。可能的值為 Allow 和Deny 。ip_rules =(可選)應能夠存取認知帳戶的一個或多個 IP 位址或 CIDR 區塊。 virtual_network_rules = 可選(設定(物件({ subnet_id =(必要)能夠存取 OpenAI 帳戶的子網路的 ID。 ignore_missing_vnet_service_endpoint = (可選)是否忽略缺少的 vnet 服務端點。預設為 false 。}))) })) | 設定(對象({ | null | 不 |
oai_outbound_network_access_restricted | 出站網路存取是否受到限制。預設為false 。 | bool | false | 不 |
oai_public_network_access_enabled | 是否開啟公網存取。預設為false 。 | bool | true | 不 |
oai_sku_名稱 | OpenAI 服務的 SKU 名稱。 | string | "S0" | 不 |
oai_存儲 | 類型=列表(對象({ storage_account_id =(必要)Microsoft.Storage 資源的完整資源 ID。 Identity_client_id =(可選)與儲存資源關聯的託管身分的用戶端 ID。 })) | 列表(對象({ | [] | 不 |
資源組名稱 | 用於建立 OpenAI 服務/或託管現有服務的資源組的名稱。 | string | 不適用 | 是的 |
子網路配置 | 用於在虛擬網路中建立子網路的子網路配置物件清單。 | 目的({ | { | 不 |
標籤 | 用於標記已建立的資源的鍵值對映射。 | map(string) | {} | 不 |
use_cosmosdb_free_tier | 是否為 Cosmos DB 帳戶啟用免費套餐。如果另一個實例已使用免費套餐,則此值必須為 false。 | bool | true | 不 |
虛擬網路名稱 | 附加資源的虛擬網路的名稱。 | string | "openai-vnet-9000" | 不 |
vnet_位址_空間 | 虛擬網路的位址空間值。 | list(string) | [ | 不 |
姓名 | 描述 |
---|---|
應用程式服務預設主機名 | 應用程式服務的預設主機名 |
應用程式服務ID | 應用服務的ID |
應用程式服務名稱 | 應用程式服務的名稱 |
app_service_outbound_ip_addresses | 應用程式服務的出站IP位址 |
應用程式服務計劃 ID | 應用程式服務計劃的 ID |
應用程式服務計劃名稱 | 應用服務計劃的名稱 |
認知部署 ID | OpenAI 認知帳戶模型部署的 ID |
認知部署名稱 | OpenAI 認知帳戶模型部署的名稱 |
cosmosdb_account_endpoint | 用於連線到 Cosmos DB 帳戶的端點 |
cosmosdb_account_id | Cosmos DB 帳戶的 ID |
cosmosdb_帳號名 | Cosmos DB 帳戶的名稱 |
cosmosdb_account_primary_key | Cosmos DB 帳號的主禮金鑰 |
cosmosdb_account_secondary_key | Cosmos DB 帳號的輔助主金鑰 |
金鑰庫 ID | 金鑰庫的 ID |
金鑰庫名稱 | 金鑰保管庫的名稱 |
key_vault_uri | 金鑰保管庫的 URI |
openai_端點 | 用於連接到認知服務帳戶的端點。 |
openai_primary_key | 認知服務帳戶的主要存取金鑰。 |
openai_secondary_key | 認知服務帳戶的輔助存取金鑰。 |
openai_子域 | 用於連接到認知服務帳戶的子網域。 |
子網路號碼 | 子網路 ID |
子網路名稱 | 子網路名稱 |
虛擬網路 ID | 虛擬網路的ID |
虛擬網路名稱 | 虛擬網路的名稱 |