버전 2.x는 모듈을 완전히 다시 작성했으며 버전 1.x 와 이전 버전과 호환되지 않습니다.
GPT-4-1106
, GPT-4-Vision
및 DALL-E-3
과 같은 최신 Azure OpenAI 서비스 및 기능을 사용하기 위해 새로운 통합 및 기능이 모듈에 추가되었습니다. 완전한 솔루션을 제공하기 위해 새로운 ChatBot UI/LibreChat이 모듈에 추가되었습니다.
참고: 레거시 버전 1.x는 여기 레거시 분기에서 찾을 수 있습니다.
버전 1.x 문서
ChatGPT 공개 버전을 사용할 때 OpenAI의 조건에 따라 귀하가 제기하는 모든 질문( "프롬프트" 라고 함)은 OpenAI의 LLM(대형 언어 모델)에 대한 추가 교육에 기여할 수 있습니다. 이를 고려할 때 다음과 같이 질문하는 것이 중요합니다. 조직에서 나가는 이 귀중한 데이터 흐름에 만족하시나요? 귀하가 의사 결정자이거나 조직의 보안 조치에 대한 책임이 있는 경우 독점 정보의 기밀을 유지하기 위해 어떤 조치를 취하고 있습니까?
효과적인 솔루션은 Azure OpenAI 에서 인기 있는 LLM의 호스팅 버전을 활용하는 것입니다. Azure OpenAI에는 수많은 이점이 있지만 다음 두 가지를 강조하고 싶습니다.
데이터 개인 정보 보호 : Azure에서 OpenAI 모델을 호스팅하면 프롬프트가 LLM 교육을 위한 소스로 사용되지 않습니다. 이는 귀하의 사용에 맞게 조정된 Azure에서 실행되는 독립형 버전일 뿐입니다.
향상된 보안 : Azure OpenAI는 특정 엔드포인트를 보호하는 기능부터 복잡한 역할 기반 액세스 제어에 이르기까지 강력한 보안 조치를 제공합니다. 더 자세히 알아보려면 이 Microsoft Learn 문서를 참조하세요.
Azure OpenAI에는 비용이 발생하지만 가격이 매우 저렴하여 대화 비용이 10센트 미만인 경우가 많습니다. 여기에서 Azure OpenAI 가격 세부 정보를 검토할 수 있습니다.
곧 온다...
기여를 환영합니다. 개선 사항이나 수정 사항이 있으면 풀 요청을 제출해 주세요. 기존 코드 스타일을 따르고 해당 코드의 기능을 설명하는 주석을 코드에 추가하세요.
이 Terraform 모듈은 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
이 Terraform 모듈에 대해 문제가 발생하거나 질문이 있는 경우 GitHub에서 문제를 열어주세요. 최대한 빠른 답변을 드릴 수 있도록 최선을 다하겠습니다.
이 Terraform 모듈은 Azure OpenAI 모델의 기능을 탐색하기 위한 프로젝트의 일부로 Marcel Lupo 가 개발했습니다. AI 커뮤니티에 대한 놀라운 작업과 지속적인 지원에 대해 OpenAI와 Microsoft 팀에 감사의 말씀을 전하고 싶습니다.
이름 | 버전 |
---|---|
테라폼 | >= 1.9.5 |
하늘빛 | ~> 4.0 |
무작위의 | ~> 3.0 |
이름 | 버전 |
---|---|
하늘빛 | ~> 4.0 |
무작위의 | ~> 3.0 |
모듈이 없습니다.
이름 | 유형 |
---|---|
azurerm_app_service_certificate_bind.libre_app_cert_bind | 의지 |
azurerm_app_service_custom_hostname_bound.hostname_bound | 의지 |
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_할당.kv_role_assigment | 의지 |
azurerm_role_locationment.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 App Service 계획의 이름입니다. | string | "openaiasp9000" | 아니요 |
앱_서비스_sku_이름 | App Service 계획의 SKU 이름입니다. | string | "B1" | 아니요 |
cosmosdb_automatic_failover | Cosmos DB 계정에 대한 자동 장애 조치(failover)를 활성화할지 여부 | bool | false | 아니요 |
코스모스db_능력 | 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 | 아니요 |
코스모스DB_종류 | 생성할 Cosmos DB의 종류 | string | "MongoDB" | 아니요 |
cosmosdb_max_interval_in_seconds | Cosmos DB 계정의 최대 비활성 간격(초) | number | 10 | 아니요 |
cosmosdb_max_staleness_prefix | Cosmos DB 계정의 최대 부실 접두사 | number | 200 | 아니요 |
코스모스db_이름 | Cosmos DB 계정의 이름 | string | "openaicosmosdb" | 아니요 |
코스모스db_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 앱 플러그인에 대한 디버그 모드를 활성화합니다. | 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)로 설정합니다. com | string | "http://localhost:3080" | 아니요 |
libre_app_domain_server | 로컬로 사용하려면 DOMAIN_CLIENT 및 DOMAIN_SERVER를 http://localhost:3080(3080은 이전에 구성된 포트임)으로 설정합니다. 사용자 정의 도메인에 배포할 때 DOMAIN_CLIENT 및 DOMAIN_SERVER를 배포된 URL(예: https://mydomain.example)로 설정합니다. com | string | "http://localhost:3080" | 아니요 |
libre_app_enable_meilisearch | 메일리서치 활성화 | bool | false | 아니요 |
libre_app_endpoints | 엔드포인트 및 모델 선택. 예: 'openAI,azureOpenAI,bingAI,chatGPTBrowser,google,gptPlugins,anthropic' | string | "azureOpenAI" | 아니요 |
libre_app_host | 서버는 기본적으로 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 | 아니요 |
libre_app_name | LibreChat 앱 서비스의 이름입니다. | string | "librechatapp9000" | 아니요 |
libre_app_plugins_creds_iv | Libre 앱 플러그인 Creds IV | string | null | 아니요 |
libre_app_plugins_creds_key | Libre 앱 플러그인 Creds Key | string | null | 아니요 |
libre_app_port | 수신할 호스트 포트입니다. | 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_account_name | OpenAI 서비스의 이름입니다. | string | "az-openai-account" | 아니요 |
oai_custom_subdomain_name | 토큰 기반 인증에 사용되는 하위 도메인 이름입니다. 이를 변경하면 새로운 리소스가 생성됩니다. (보통 계정 이름과 동일) | string | "demo-account" | 아니요 |
oai_customer_managed_key | 유형 = 객체({ 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 = (필수) ID의 유형입니다. 가능한 값은 SystemAssigned , UserAssigned , SystemAssigned, UserAssigned 입니다.Identity_ids = (선택 사항) 이 OpenAI 계정에 할당할 사용자 할당 관리 ID ID 목록을 지정합니다. }) | 물체({ | { | 아니요 |
oai_local_auth_enabled | 인지 계정에 대해 로컬 인증 방법이 활성화되어 있는지 여부입니다. 기본값은 true 입니다. | bool | true | 아니요 |
oai_model_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 = (선택 사항) 가능한 값은 무료, 기본, 표준, 프리미엄, 엔터프라이즈입니다. 이를 변경하면 새로운 리소스가 생성됩니다. sku_size = (선택 사항) SKU 크기입니다. 이름 필드가 계층과 다른 값의 조합인 경우 이는 독립 실행형 코드가 됩니다. 이를 변경하면 새로운 리소스가 생성됩니다. sku_family = (선택 사항) 서비스에 동일한 SKU에 대해 서로 다른 세대의 하드웨어가 있는 경우 여기에서 캡처할 수 있습니다. 이를 변경하면 새로운 리소스가 생성됩니다. sku_capacity = (선택 사항) 분당 토큰(TPM). SKU가 sku out/in을 지원하는 경우 용량 정수가 포함되어야 합니다. 리소스에 대해 sku out/in이 가능하지 않은 경우 이는 생략될 수 있습니다. 기본값은 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_name | OpenAI 서비스의 SKU 이름입니다. | string | "S0" | 아니요 |
oai_storage | 유형 = 목록(객체({ 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 | 앱 서비스의 ID |
앱_서비스_이름 | 앱 서비스의 이름 |
app_service_outbound_ip_addresses | App Service의 아웃바운드 IP 주소 |
app_service_plan_id | App Service 계획의 ID |
앱_서비스_계획_이름 | App Service 계획의 이름 |
인지_배포_ID | OpenAI 인지 계정 모델 배포의 ID |
인지_배포_이름 | OpenAI 인지 계정 모델 배포의 이름 |
cosmosdb_account_endpoint | Cosmos DB 계정에 연결하는 데 사용되는 엔드포인트 |
코스모스db_account_id | Cosmos DB 계정의 ID |
코스모스db_계정_이름 | 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 | 인지 서비스 계정의 기본 액세스 키입니다. |
openai_secondary_key | 인지 서비스 계정에 대한 보조 액세스 키입니다. |
openai_subdomain | 인지 서비스 계정에 연결하는 데 사용되는 하위 도메인입니다. |
서브넷_ID | 서브넷의 ID |
서브넷_이름 | 서브넷의 이름 |
virtual_network_id | 가상 네트워크의 ID |
가상_네트워크_이름 | 가상 네트워크의 이름 |