Версия 2.x представляет собой полную переработку модуля и не имеет обратной совместимости с версией 1.x.
В модуль были добавлены новые интеграции и функции для использования новейших сервисов и функций Azure OpenAI , таких как GPT-4-1106
, GPT-4-Vision
и DALL-E-3
. В модуль добавлен новый пользовательский интерфейс ChatBot/LibreChat, обеспечивающий комплексное решение.
ПРИМЕЧАНИЕ. Устаревшую версию 1.x можно найти в устаревшей ветке здесь.
Документация версии 1.x
По условиям OpenAI при использовании общедоступной версии ChatGPT любые задаваемые вами вопросы, называемые «подсказками» , могут способствовать дальнейшему обучению модели большого языка OpenAI (LLM). Учитывая это, очень важно задаться вопросом: комфортно ли вам, когда этот ценный поток данных покидает вашу организацию? Если вы принимаете решения или несете ответственность за меры безопасности в вашей организации, какие шаги вы предпринимаете, чтобы обеспечить конфиденциальность конфиденциальной информации?
Эффективное решение заключается в использовании размещенной версии популярного LLM на Azure OpenAI . Хотя у Azure OpenAI есть множество преимуществ, я хотел бы выделить два:
Конфиденциальность данных . Благодаря размещению моделей OpenAI в Azure ваши запросы никогда не будут служить источником для обучения LLM. Это просто автономная версия, работающая в Azure и адаптированная для вашего использования.
Повышенная безопасность : Azure OpenAI предлагает надежные меры безопасности: от возможности защищать определенные конечные точки до сложного контроля доступа на основе ролей. Более подробную информацию можно найти в этой статье Microsoft Learn.
Хотя Azure OpenAI имеет свою стоимость, она очень доступна — часто разговор обходится менее чем в 10 центов. Подробную информацию о ценах на Azure OpenAI можно найти здесь.
вскоре...
Взносы приветствуются. Если у вас есть какие-либо улучшения или исправления, отправьте запрос на включение. Обязательно следуйте существующему стилю кода и добавляйте к коду комментарии, объясняющие, что он делает.
Этот модуль terraform лицензируется по лицензии MIT. Более подробную информацию смотрите в файле ЛИЦЕНЗИИ.
Если у вас возникнут какие-либо проблемы или возникнут вопросы об этом модуле terraform, откройте вопрос на GitHub. Мы сделаем все возможное, чтобы ответить как можно быстрее.
Этот модуль terraform был разработан Марселем Лупо в рамках проекта по изучению возможностей моделей Azure OpenAI. Мы хотели бы поблагодарить команду OpenAI и Microsoft за их невероятную работу и постоянную поддержку сообщества искусственного интеллекта.
Имя | Версия |
---|---|
терраформировать | >= 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_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 | ресурс |
случайный_пароль.libre_app_creds_iv | ресурс |
случайный_пароль.libre_app_creds_key | ресурс |
случайный_пароль.libre_app_jwt_refresh_secret | ресурс |
случайный_пароль.libre_app_jwt_secret | ресурс |
azurerm_client_config.current | источник данных |
Имя | Описание | Тип | По умолчанию | Необходимый |
---|---|---|---|---|
имя_сервиса_приложения | Название плана службы приложений Linux. | string | "openaiasp9000" | нет |
app_service_sku_name | Название 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 | нет |
космосдб_вид | Какой тип 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 | Группа ресурсов, содержащая настраиваемую зону DNS для использования службой приложений. | string | "dns-rg" | нет |
kv_fw_allowed_ips | значение IP-правил брандмауэра хранилища ключей разрешено. | list(string) | [] | нет |
kv_fw_bypass | Список правил брандмауэра хранилища ключей, которые необходимо обойти. | string | "AzureServices" | нет |
kv_fw_default_action | Действие по умолчанию для правил брандмауэра хранилища ключей. | string | "Deny" | нет |
kv_fw_network_subnet_ids | Подсети виртуальной сети, которые нужно связать с учетной записью Cosmos DB (конечная точка службы). Если сеть создается как часть модуля, она будет заполнена автоматически. | list(string) | null | нет |
kv_name | Имя создаваемого хранилища ключей (секреты решения). | string | "openaikv9000" | нет |
kv_sku | SKU Key Vault, который нужно создать. | 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-адреса. Нотация CIDR IP-адреса или диапазона IP-адресов, которые необходимо разрешить. Например: 10.0.0.0/24 или 192.168.10.1/32. | список(объект({ | [ | нет |
libre_app_allowed_subnets | Разрешенные подсети (по умолчанию подсети, в которой развернута служба приложений, уже разрешен доступ с приоритетом 100). Добавляйте сюда любые дополнения | список(объект({ | [ | нет |
libre_app_az_oai_api_key | Ключ API Azure OpenAI | string | null | нет |
libre_app_az_oai_api_version | Версия API Azure OpenAI | string | "2023-07-01-preview" | нет |
libre_app_az_oai_dall3_api_version | Версия API Azure OpenAI DALL-E | 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. | 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 — это ранее настроенный порт). При развертывании в личном домене установите для 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 | Включить 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 | Ключ Creds плагинов приложений Libre | 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 | Идентификатор подсети, используемый для разрешения доступа к Службе приложений (приоритет 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_account_name | Имя сервиса OpenAI. | string | "az-openai-account" | нет |
oai_custom_subdomain_name | Имя субдомена, используемое для аутентификации на основе токенов. Изменение этого параметра приводит к созданию нового ресурса. (обычно совпадает с именем учетной записи) | string | "demo-account" | нет |
oai_customer_managed_key | тип = объект({ key_vault_key_id = (Обязательно) Идентификатор ключа хранилища ключей, который следует использовать для шифрования данных в этой учетной записи OpenAI. identity_client_id = (Необязательно) Идентификатор клиента назначенного пользователем удостоверения, имеющего доступ к ключу. Это свойство необходимо указывать только в том случае, если к учетной записи OpenAI прикреплено несколько идентификаторов. }) | объект({ | null | нет |
oai_dynamic_throttling_enabled | Включено ли динамическое регулирование. По умолчанию true . | bool | true | нет |
oai_fqdns | Список полных доменных имен, которые будут использоваться для аутентификации на основе токенов. Изменение этого параметра приводит к созданию нового ресурса. | list(string) | [] | нет |
oai_identity | тип = объект({ type = (Обязательно) Тип удостоверения. Возможные значения: SystemAssigned , UserAssigned , SystemAssigned, UserAssigned .identity_ids = (Необязательно) Указывает список назначаемых пользователем идентификаторов управляемых удостоверений, которые будут назначены этой учетной записи OpenAI. }) | объект({ | { | нет |
oai_local_auth_enabled | Включены ли локальные методы аутентификации для учетной записи Cognitive Account. По умолчанию true . | bool | true | нет |
oai_model_deployment | тип = список(объект({ Deployment_id = (Обязательно) Имя Model Deployment учетной записи Cognitive Services. Изменение этого параметра приводит к созданию нового ресурса.имя_модели = { model_format = (Обязательно) Формат модели развертывания учетной записи Cognitive Services. Изменение этого параметра приводит к созданию нового ресурса. Возможное значение — OpenAI. model_name = (обязательно) Имя модели развертывания учетной записи Cognitive Services. Изменение этого параметра приводит к созданию нового ресурса. model_version = (обязательно) Версия модели развертывания учетной записи Cognitive Services. } артикул = { sku_name = (Обязательно) Название SKU. Возможные значения: Standard, GlobalBatch, GlobalStandard и ProvisionedManaged. sku_tier = (Необязательно) Возможные значения: Free, Basic, Standard, Premium, Enterprise. Изменение этого параметра приводит к созданию нового ресурса. sku_size = (Необязательно) Размер SKU. Если поле имени представляет собой комбинацию уровня и какого-либо другого значения, это будет отдельный код. Изменение этого параметра приводит к созданию нового ресурса. sku_family = (Необязательно) Если в службе используется оборудование разных поколений для одного и того же SKU, это можно отразить здесь. Изменение этого параметра приводит к созданию нового ресурса. sku_capacity = (Необязательно) Токенов в минуту (TPM). Если номер SKU поддерживает исходящий/входящий SKU, необходимо указать целое число емкости. Если исходящий/входящий SKU для ресурса невозможен, это можно пропустить. Значение по умолчанию — 1. Изменение этого значения приводит к созданию нового ресурса. } rai_policy_name = (Необязательно) Имя политики RAI. Изменение этого параметра приводит к созданию нового ресурса. })) | список(объект({ | [] | нет |
oai_network_acls | тип = набор(объект({ default_action = (Обязательно) Действие по умолчанию, которое будет использоваться, если ни одно правило не соответствует правилам из ip_rules/virtual_network_rules. Возможные значения: Allow и Deny .ip_rules = (Необязательно) Один или несколько IP-адресов или блоков CIDR, которые должны иметь доступ к учетной записи Cognitive. virtual_network_rules = необязательно (набор (объект ({ subnet_id = (Обязательно) Идентификатор подсети, которая должна иметь доступ к учетной записи OpenAI. ignore_missing_vnet_service_endpoint = (Необязательно) Игнорировать отсутствующую конечную точку службы виртуальной сети или нет. По умолчанию значение false .}))) })) | набор(объект({ | null | нет |
oai_outbound_network_access_restricted | Ограничен ли исходящий доступ к сети. По умолчанию установлено значение false . | bool | false | нет |
oai_public_network_access_enabled | Включен ли доступ к общедоступной сети. По умолчанию установлено значение false . | bool | true | нет |
oai_sku_name | Название SKU сервиса OpenAI. | string | "S0" | нет |
oai_storage | тип = список(объект({ Storage_account_id = (Обязательно) Полный идентификатор ресурса Microsoft.Storage. identity_client_id = (Необязательно) Идентификатор клиента управляемого удостоверения, связанного с ресурсом хранения. })) | список(объект({ | [] | нет |
имя_группы_ресурса | Имя группы ресурсов для создания службы OpenAI или места размещения существующей службы. | string | н/д | да |
конфигурация_подсети | Список объектов конфигурации подсети для создания подсетей в виртуальной сети. | объект({ | { | нет |
теги | Карта пар ключ-значение, которая используется для маркировки созданных ресурсов. | map(string) | {} | нет |
use_cosmosdb_free_tier | Включить ли уровень бесплатного пользования для учетной записи Cosmos DB. Это значение должно быть ложным, если другой экземпляр уже использует уровень бесплатного пользования. | bool | true | нет |
имя_виртуальной_сети | Имя виртуальной сети, к которой подключены ресурсы. | string | "openai-vnet-9000" | нет |
vnet_address_space | значение адресного пространства для виртуальной сети. | list(string) | [ | нет |
Имя | Описание |
---|---|
app_service_default_hostname | Имя хоста по умолчанию для службы приложений. |
app_service_id | Идентификатор службы приложений |
имя_сервиса_приложения | Название службы приложений |
app_service_outbound_ip_addresses | Исходящие IP-адреса Службы приложений. |
app_service_plan_id | Идентификатор плана службы приложений |
app_service_plan_name | Название плана службы приложений |
Cognitive_deployment_ids | Идентификаторы развертываний модели когнитивной учетной записи OpenAI |
Cognitive_deployment_names | Названия развертываний модели когнитивной учетной записи OpenAI |
Cosmosdb_account_endpoint | Конечная точка, используемая для подключения к учетной записи Cosmos DB. |
Cosmosdb_account_id | Идентификатор учетной записи Cosmos DB. |
cosmosdb_account_name | Имя учетной записи Cosmos DB. |
Cosmosdb_account_primary_key | Основной главный ключ для учетной записи Cosmos DB. |
Cosmosdb_account_вторичный_ключ | Вторичный главный ключ для учетной записи Cosmos DB. |
key_vault_id | Идентификатор хранилища ключей |
key_vault_name | Название хранилища ключей |
key_vault_uri | URI хранилища ключей. |
openai_endpoint | Конечная точка, используемая для подключения к учетной записи Cognitive Service. |
openai_primary_key | Основной ключ доступа к учетной записи Cognitive Service. |
openai_вторичный_ключ | Вторичный ключ доступа к учетной записи Cognitive Service. |
openai_subdomain | Субдомен, используемый для подключения к учетной записи Cognitive Service. |
идентификатор_подсети | Идентификатор подсети |
имя_подсети | Имя подсети |
virtual_network_id | Идентификатор виртуальной сети |
имя_виртуальной_сети | Имя виртуальной сети |