バージョン2.x はモジュールを完全に書き直したものであり、バージョン1.xとの下位互換性はありません。
GPT-4-1106
、 GPT-4-Vision
、 DALL-E-3
などの最新のAzure OpenAIサービスと機能を使用するための新しい統合と機能がモジュールに追加されました。完全なソリューションを提供するために、新しい ChatBot UI / LibreChat がモジュールに追加されました。
注:レガシー バージョン1.xは、ここのレガシー ブランチにあります。
バージョン 1.x のドキュメント
OpenAI の規約に基づき、 ChatGPTのパブリック バージョンを使用する際にユーザーが提起した質問 ( 「プロンプト」と呼ばれる) は、OpenAI の大規模言語モデル (LLM) のさらなるトレーニングに寄与することがあります。このことを考えると、「この貴重なデータ フローが組織から流出することに満足していますか?」と自問することが重要です。あなたが意思決定者である場合、または組織のセキュリティ対策の責任を負っている場合、機密情報の機密性を確保するためにどのような措置を講じていますか?
効果的な解決策は、 Azure OpenAI上の人気のある LLM のホストされたバージョンを利用することです。 Azure OpenAI には数多くの利点がありますが、ここでは 2 つの点に焦点を当てたいと思います。
データ プライバシー: Azure で OpenAI のモデルをホストすると、プロンプトが LLM トレーニングのソースとして機能することはありません。これは、用途に合わせて調整された、Azure 上で実行される自己完結型のバージョンです。
セキュリティの強化: Azure OpenAI は、特定のエンドポイントを保護する機能から複雑なロールベースのアクセス制御まで、堅牢なセキュリティ対策を提供します。さらに詳しく知りたい場合は、この Microsoft Learn の記事を参照してください。
Azure OpenAI には費用がかかりますが、非常に手頃な価格であり、多くの場合、会話の費用は 10 セント未満です。 Azure OpenAI の価格の詳細はここで確認できます。
近日公開...
貢献は大歓迎です。改善や修正がある場合は、プル リクエストを送信してください。必ず既存のコード スタイルに従い、その動作を説明するコメントをコードに追加してください。
この terraform モジュールは、MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE ファイルを参照してください。
この terraform モジュールに関して問題が発生したり、質問がある場合は、GitHub で問題を開いてください。できるだけ早く対応できるよう最善を尽くします。
この terraform モジュールは、Azure OpenAI モデルの機能を探索するプロジェクトの一環として、 Marcel Lupoによって開発されました。 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_managed_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_assignment | リソース |
azurerm_role_assignment.librechat_app_kv_access | リソース |
azurerm_service_plan.az_openai_asp | リソース |
azurerm_subnet.az_openai_subnet | リソース |
azurerm_virtual_network.az_openai_vnet | リソース |
ランダムパスワード.libre_app_creds_iv | リソース |
ランダムパスワード.libre_app_creds_key | リソース |
ランダムパスワード.libre_app_jwt_refresh_secret | リソース |
ランダムパスワード.libre_app_jwt_secret | リソース |
azurerm_client_config.current | データソース |
名前 | 説明 | タイプ | デフォルト | 必須 |
---|---|---|---|---|
アプリサービス名 | Linux App Service プランの名前。 | string | "openaiasp9000" | いいえ |
app_service_sku_name | App Service プランの SKU 名。 | string | "B1" | いいえ |
cosmosdb_automatic_failover | Cosmos DB アカウントの自動フェールオーバーを有効にするかどうか | bool | false | いいえ |
cosmosdb_capabilities | 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_virtual_network_subnets | Cosmos DB アカウント (サービス エンドポイント) に関連付ける仮想ネットワーク サブネット。ネットワークがモジュールの一部として作成された場合、これは自動的に設定されます。 | list(string) | null | いいえ |
dns_resource_group_name | App Service に使用するカスタム DNS ゾーンを含むリソース グループ | string | "dns-rg" | いいえ |
kv_fw_allowed_ips | Key Vault ファイアウォールで許可される IP ルールの値。 | list(string) | [] | いいえ |
kv_fw_bypass | バイパスする Key Vault ファイアウォール ルールのリスト。 | string | "AzureServices" | いいえ |
kv_fw_default_action | Key Vault ファイアウォール ルールの既定のアクション。 | string | "Deny" | いいえ |
kv_fw_network_subnet_ids | Cosmos DB アカウント (サービス エンドポイント) に関連付ける仮想ネットワーク サブネット。ネットワークがモジュールの一部として作成された場合、これは自動的に設定されます。 | list(string) | null | いいえ |
kv_name | 作成する 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 | App Service のカスタム ドメインとマネージド証明書を作成します。 | 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 | App Service に使用する Docker イメージ。 | string | "ghcr.io/danny-avila/librechat-dev-api:latest" | いいえ |
libre_app_domain_client | ローカルで使用するには、DOMAIN_CLIENT と DOMAIN_SERVER を http://localhost:3080 に設定します (3080 は、以前に構成したポートです)。カスタム ドメインに展開する場合は、DOMAIN_CLIENT と DOMAIN_SERVER を展開した URL (例: https://mydomain.example) に設定します。コム | string | "http://localhost:3080" | いいえ |
libre_app_domain_server | ローカルで使用するには、DOMAIN_CLIENT と DOMAIN_SERVER を http://localhost:3080 に設定します (3080 は、以前に構成したポートです)。カスタム ドメインに展開する場合は、DOMAIN_CLIENT と DOMAIN_SERVER を展開した URL (例: https://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 | JWT シークレット | string | null | いいえ |
libre_app_mongo_uri | 接続先の MongoDB 接続文字列。 | string | null | いいえ |
リブレ_アプリ名 | LibreChat アプリサービスの名前。 | string | "librechatapp9000" | いいえ |
libre_app_plugins_creds_iv | リブレアプリプラグイン Creds IV | string | null | いいえ |
libre_app_plugins_creds_key | Libre App Plugins Creds Key | string | null | いいえ |
リブレ_アプリ_ポート | リッスンするホスト ポート。 | number | 3080 | いいえ |
libre_app_public_network_access_enabled | パブリック ネットワーク アクセスが有効かどうか。デフォルトはfalse です。 | bool | true | いいえ |
libre_app_title | アプリのカスタム タイトルを追加します。 | string | "PrivateGPT" | いいえ |
libre_app_violations | 違反に対する設定 | 物体({ | { | いいえ |
libre_app_virtual_network_subnet_id | App Service (優先度 100) へのアクセスを許可するために使用されるサブネットの ID (例: cosmosdb、meilisearch など)。ネットワークがモジュールの一部として作成される場合、値が 'null' の場合、これは自動的に設定されます。 | string | null | いいえ |
librechat_app_custom_dns_zone_name | App Service に使用する DNS ゾーン。 | string | "domain.com" | いいえ |
librechat_app_custom_domain_name | App Service に使用するカスタム ドメイン。 | string | "privategpt" | いいえ |
位置 | リソースがホストされる Azure リージョン。 | string | "uksouth" | いいえ |
oai_アカウント名 | OpenAI サービスの名前。 | string | "az-openai-account" | いいえ |
oai_custom_subdomain_name | トークンベースの認証に使用されるサブドメイン名。これを変更すると、新しいリソースが強制的に作成されます。 (通常はアカウント名と同じです) | string | "demo-account" | いいえ |
oai_customer_managed_key | type = オブジェクト({ key_vault_key_id = (必須) この OpenAI アカウントのデータを暗号化するために使用する Key Vault キーの ID。 identity_client_id = (オプション) キーにアクセスできるユーザー割り当て ID のクライアント ID。このプロパティは、OpenAI アカウントに複数の ID が関連付けられている場合にのみ指定する必要があります。 }) | 物体({ | null | いいえ |
oai_dynamic_throttling_enabled | 動的スロットルが有効かどうか。デフォルトはtrue です。 | bool | true | いいえ |
oai_fqdns | トークンベースの認証に使用される FQDN のリスト。これを変更すると、新しいリソースが強制的に作成されます。 | list(string) | [] | いいえ |
oai_identity | type = オブジェクト({ type = (必須) ID のタイプ。可能な値は、 SystemAssigned 、 UserAssigned 、 SystemAssigned, UserAssigned です。identity_ids = (オプション) この OpenAI アカウントに割り当てるユーザー割り当てマネージド ID ID のリストを指定します。 }) | 物体({ | { | いいえ |
oai_local_auth_enabled | Cognitive アカウントに対してローカル認証方法が有効かどうか。デフォルトはtrue です。 | bool | true | いいえ |
oai_model_deployment | type = list(object({ deployment_id = (必須) Cognitive Services アカウント Model Deployment の名前。これを変更すると、新しいリソースが強制的に作成されます。モデル名 = { model_format = (必須) Cognitive Services アカウント展開モデルの形式。これを変更すると、新しいリソースが強制的に作成されます。可能な値は OpenAI です。 model_name = (必須) Cognitive Services アカウント展開モデルの名前。これを変更すると、新しいリソースが強制的に作成されます。 model_version = (必須) Cognitive Services アカウント展開モデルのバージョン。 } sku = { sku_name = (必須) SKU の名前。可能な値には、Standard、GlobalBatch、GlobalStandard、ProvisionedManaged が含まれます。 sku_tier = (オプション) 可能な値は、Free、Basic、Standard、Premium、Enterprise です。これを変更すると、新しいリソースが強制的に作成されます。 sku_size = (オプション) SKU サイズ。名前フィールドが層とその他の値の組み合わせである場合、これはスタンドアロン コードになります。これを変更すると、新しいリソースが強制的に作成されます。 sku_family = (オプション) サービスに同じ SKU の異なる世代のハードウェアがある場合、それをここでキャプチャできます。これを変更すると、新しいリソースが強制的に作成されます。 sku_capacity = (オプション) 1 分あたりのトークン数 (TPM)。 SKU が SKU アウト/インをサポートしている場合は、容量の整数を含める必要があります。リソースに対して sku out/in が不可能な場合、これは省略できます。デフォルト値は 1 です。これを変更すると、新しいリソースが強制的に作成されます。 } rai_policy_name = (オプション) RAI ポリシーの名前。これを変更すると、新しいリソースが強制的に作成されます。 })) | リスト(オブジェクト({ | [] | いいえ |
oai_network_acls | type = set(オブジェクト({ default_action = (必須) ip_rules / virtual_network_rules に一致するルールがない場合に使用するデフォルトのアクション。可能な値は、 Allow およびDeny です。ip_rules = (オプション) コグニティブ アカウントにアクセスできる 1 つ以上の IP アドレス、または CIDR ブロック。 virtual_network_rules = オプション(set(object({ subnet_id = (必須) OpenAI アカウントにアクセスできるサブネットの ID。 ignore_missing_vnet_service_endpoint = (オプション) 欠落している vnet サービス エンドポイントを無視するかどうか。デフォルトは false です。}))) })) | set(オブジェクト({ | null | いいえ |
oai_outbound_network_access_restricted | アウトバウンドネットワークアクセスが制限されているかどうか。デフォルトはfalse です。 | bool | false | いいえ |
oai_public_network_access_enabled | パブリック ネットワーク アクセスが有効かどうか。デフォルトはfalse です。 | bool | true | いいえ |
oai_sku_name | OpenAI サービスの SKU 名。 | string | "S0" | いいえ |
oai_storage | type = list(object({ storage_account_id = (必須) Microsoft.Storage リソースの完全なリソース ID。 identity_client_id = (オプション) ストレージ リソースに関連付けられたマネージド ID のクライアント ID。 })) | リスト(オブジェクト({ | [] | いいえ |
リソースグループ名 | OpenAI サービスを作成するリソース グループの名前、または既存のサービスがホストされるリソース グループの名前。 | string | 該当なし | はい |
サブネット構成 | 仮想ネットワーク内にサブネットを作成するためのサブネット構成オブジェクトのリスト。 | 物体({ | { | いいえ |
タグ | 作成されたリソースにタグを付けるために使用されるキーと値のペアのマップ。 | map(string) | {} | いいえ |
use_cosmosdb_free_tier | Cosmos DB アカウントの無料枠を有効にするかどうか。別のインスタンスがすでに無料枠を使用している場合、これは false である必要があります。 | bool | true | いいえ |
仮想ネットワーク名 | リソースが接続されている仮想ネットワークの名前。 | string | "openai-vnet-9000" | いいえ |
vnet_address_space | 仮想ネットワークのアドレス空間の値。 | list(string) | [ | いいえ |
名前 | 説明 |
---|---|
app_service_default_hostname | App Service のデフォルトのホスト名 |
アプリサービスID | App ServiceのID |
アプリサービス名 | App Serviceの名前 |
app_service_outbound_ip_addresses | App Service の送信 IP アドレス |
app_service_plan_id | App Service プランの ID |
アプリサービスプラン名 | App Service プランの名前 |
コグニティブ_デプロイメント_ids | OpenAI Cognitive Account Model デプロイメントの ID |
コグニティブデプロイメント名 | OpenAI Cognitive Account Model デプロイメントの名前 |
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 アカウントのセカンダリ マスター キー |
key_vault_id | Key Vault の ID |
key_vault_name | Key Vault の名前 |
key_vault_uri | Key Vault の URI |
openai_endpoint | Cognitive Service アカウントへの接続に使用されるエンドポイント。 |
openai_primary_key | Cognitive Service アカウントのプライマリ アクセス キー。 |
openai_セカンダリ_キー | Cognitive Service アカウントのセカンダリ アクセス キー。 |
openai_サブドメイン | Cognitive Service アカウントへの接続に使用されるサブドメイン。 |
サブネットID | サブネットのID |
サブネット名 | サブネットの名前 |
仮想ネットワークID | 仮想ネットワークのID |
仮想ネットワーク名 | 仮想ネットワークの名前 |