├── .github ├── dependabot.yml └── workflows │ └── create-release-draft.yaml ├── .gitignore ├── .vscode ├── launch.json └── settings.json ├── Deploy-ToAzure.ps1 ├── Dockerfile ├── Export-ConfigFromAzure.ps1 ├── Import-ConfigToAzure.ps1 ├── LICENSE ├── README.md ├── app ├── config.schema.json ├── helpers │ ├── config.py │ ├── dicts.py │ ├── header.py │ └── tokens.py ├── plugins │ ├── AllowDeployments │ │ └── AllowDeployments.py │ ├── LimitUsage │ │ └── LimitUsage.py │ ├── LogUsage │ │ ├── LogUsageBase.py │ │ ├── LogUsageToConsole.py │ │ ├── LogUsageToCsvFile.py │ │ └── LogUsageToLogAnalytics.py │ └── base.py ├── powerproxy.py └── version.py ├── config ├── .gitignore ├── @note.txt ├── config.example.yaml └── to_json_string.py ├── docs ├── Diagrams.pptx ├── Logo.pptx ├── PowerProxy for Azure OpenAI.pptx ├── aoai-resource-selection-pipeline.png ├── auth-via-api-key.png ├── auth-via-azure-ad.png ├── high-level-flow.png ├── logo-transparent-dark-mode.png ├── logo-transparent-light-mode-no-title-small.png ├── logo-transparent-light-mode-no-title-squared.png ├── logo-transparent-light-mode-no-title.png ├── logo-transparent-light-mode.png ├── query-results-in-log-analytics-chart.png ├── query-results-in-log-analytics-pivot.png ├── query-results-in-log-analytics-table.png ├── scalability.png ├── smart-load-balancing-and-prioritization.png └── smart-load-balancing-commented.png ├── requirements.txt ├── rule-file.template.json ├── test ├── http │ ├── test_liveness_probe.http │ ├── test_non_streaming.http │ └── test_streaming.http └── python │ ├── TalkForAFewSeconds16.wav │ ├── requirements.test.txt │ ├── run_tests.py │ ├── test_@powerproxy_running.py │ ├── test_authentication.py │ ├── test_embeddings.py │ ├── test_non_streaming.py │ ├── test_non_streaming_functions.py │ ├── test_non_streaming_image.py │ ├── test_streaming.py │ ├── test_streaming_functions.py │ ├── test_streaming_image.py │ └── test_whisper.py └── validate_config_file.py /.github/dependabot.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/.github/dependabot.yml -------------------------------------------------------------------------------- /.github/workflows/create-release-draft.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/.github/workflows/create-release-draft.yaml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | logs/* 3 | -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/.vscode/launch.json -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/.vscode/settings.json -------------------------------------------------------------------------------- /Deploy-ToAzure.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/Deploy-ToAzure.ps1 -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/Dockerfile -------------------------------------------------------------------------------- /Export-ConfigFromAzure.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/Export-ConfigFromAzure.ps1 -------------------------------------------------------------------------------- /Import-ConfigToAzure.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/Import-ConfigToAzure.ps1 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/README.md -------------------------------------------------------------------------------- /app/config.schema.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/config.schema.json -------------------------------------------------------------------------------- /app/helpers/config.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/helpers/config.py -------------------------------------------------------------------------------- /app/helpers/dicts.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/helpers/dicts.py -------------------------------------------------------------------------------- /app/helpers/header.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/helpers/header.py -------------------------------------------------------------------------------- /app/helpers/tokens.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/helpers/tokens.py -------------------------------------------------------------------------------- /app/plugins/AllowDeployments/AllowDeployments.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/AllowDeployments/AllowDeployments.py -------------------------------------------------------------------------------- /app/plugins/LimitUsage/LimitUsage.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/LimitUsage/LimitUsage.py -------------------------------------------------------------------------------- /app/plugins/LogUsage/LogUsageBase.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/LogUsage/LogUsageBase.py -------------------------------------------------------------------------------- /app/plugins/LogUsage/LogUsageToConsole.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/LogUsage/LogUsageToConsole.py -------------------------------------------------------------------------------- /app/plugins/LogUsage/LogUsageToCsvFile.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/LogUsage/LogUsageToCsvFile.py -------------------------------------------------------------------------------- /app/plugins/LogUsage/LogUsageToLogAnalytics.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/LogUsage/LogUsageToLogAnalytics.py -------------------------------------------------------------------------------- /app/plugins/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/plugins/base.py -------------------------------------------------------------------------------- /app/powerproxy.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/powerproxy.py -------------------------------------------------------------------------------- /app/version.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/app/version.py -------------------------------------------------------------------------------- /config/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/config/.gitignore -------------------------------------------------------------------------------- /config/@note.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/config/@note.txt -------------------------------------------------------------------------------- /config/config.example.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/config/config.example.yaml -------------------------------------------------------------------------------- /config/to_json_string.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/config/to_json_string.py -------------------------------------------------------------------------------- /docs/Diagrams.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/Diagrams.pptx -------------------------------------------------------------------------------- /docs/Logo.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/Logo.pptx -------------------------------------------------------------------------------- /docs/PowerProxy for Azure OpenAI.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/PowerProxy for Azure OpenAI.pptx -------------------------------------------------------------------------------- /docs/aoai-resource-selection-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/aoai-resource-selection-pipeline.png -------------------------------------------------------------------------------- /docs/auth-via-api-key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/auth-via-api-key.png -------------------------------------------------------------------------------- /docs/auth-via-azure-ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/auth-via-azure-ad.png -------------------------------------------------------------------------------- /docs/high-level-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/high-level-flow.png -------------------------------------------------------------------------------- /docs/logo-transparent-dark-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/logo-transparent-dark-mode.png -------------------------------------------------------------------------------- /docs/logo-transparent-light-mode-no-title-small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/logo-transparent-light-mode-no-title-small.png -------------------------------------------------------------------------------- /docs/logo-transparent-light-mode-no-title-squared.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/logo-transparent-light-mode-no-title-squared.png -------------------------------------------------------------------------------- /docs/logo-transparent-light-mode-no-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/logo-transparent-light-mode-no-title.png -------------------------------------------------------------------------------- /docs/logo-transparent-light-mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/logo-transparent-light-mode.png -------------------------------------------------------------------------------- /docs/query-results-in-log-analytics-chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/query-results-in-log-analytics-chart.png -------------------------------------------------------------------------------- /docs/query-results-in-log-analytics-pivot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/query-results-in-log-analytics-pivot.png -------------------------------------------------------------------------------- /docs/query-results-in-log-analytics-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/query-results-in-log-analytics-table.png -------------------------------------------------------------------------------- /docs/scalability.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/scalability.png -------------------------------------------------------------------------------- /docs/smart-load-balancing-and-prioritization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/smart-load-balancing-and-prioritization.png -------------------------------------------------------------------------------- /docs/smart-load-balancing-commented.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/docs/smart-load-balancing-commented.png -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/requirements.txt -------------------------------------------------------------------------------- /rule-file.template.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/rule-file.template.json -------------------------------------------------------------------------------- /test/http/test_liveness_probe.http: -------------------------------------------------------------------------------- 1 | GET http://localhost/powerproxy/health/liveness 2 | -------------------------------------------------------------------------------- /test/http/test_non_streaming.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/http/test_non_streaming.http -------------------------------------------------------------------------------- /test/http/test_streaming.http: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/http/test_streaming.http -------------------------------------------------------------------------------- /test/python/TalkForAFewSeconds16.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/TalkForAFewSeconds16.wav -------------------------------------------------------------------------------- /test/python/requirements.test.txt: -------------------------------------------------------------------------------- 1 | openai-1.59.9 2 | -------------------------------------------------------------------------------- /test/python/run_tests.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/run_tests.py -------------------------------------------------------------------------------- /test/python/test_@powerproxy_running.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_@powerproxy_running.py -------------------------------------------------------------------------------- /test/python/test_authentication.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_authentication.py -------------------------------------------------------------------------------- /test/python/test_embeddings.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_embeddings.py -------------------------------------------------------------------------------- /test/python/test_non_streaming.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_non_streaming.py -------------------------------------------------------------------------------- /test/python/test_non_streaming_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_non_streaming_functions.py -------------------------------------------------------------------------------- /test/python/test_non_streaming_image.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_non_streaming_image.py -------------------------------------------------------------------------------- /test/python/test_streaming.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_streaming.py -------------------------------------------------------------------------------- /test/python/test_streaming_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_streaming_functions.py -------------------------------------------------------------------------------- /test/python/test_streaming_image.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_streaming_image.py -------------------------------------------------------------------------------- /test/python/test_whisper.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/test/python/test_whisper.py -------------------------------------------------------------------------------- /validate_config_file.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/timoklimmer/powerproxy-aoai/HEAD/validate_config_file.py --------------------------------------------------------------------------------