Skip to content

Commit ac99788

Browse files
committed
fix azure env bugs
1 parent c624251 commit ac99788

File tree

5 files changed

+71
-25
lines changed

5 files changed

+71
-25
lines changed

.env.local.example

+6-5
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ SUPABASE_SERVICE_ROLE_KEY=
88
# Ollama
99
NEXT_PUBLIC_OLLAMA_URL=http://localhost:11434
1010

11-
# API Keys (Optional: Entering an API key here overrides the API keys globally for all users)
11+
# API Keys (Optional: Entering an API key here overrides the API keys globally for all users.)
1212
OPENAI_API_KEY=
1313
ANTHROPIC_API_KEY=
1414
GOOGLE_GEMINI_API_KEY=
@@ -21,10 +21,11 @@ NEXT_PUBLIC_OPENAI_ORGANIZATION_ID=
2121

2222
# Azure API Information
2323
AZURE_OPENAI_API_KEY=
24-
NEXT_PUBLIC_AZURE_OPENAI_ENDPOINT=
25-
NEXT_PUBLIC_AZURE_GPT_35_TURBO_ID=
26-
NEXT_PUBLIC_AZURE_GPT_45_VISION_ID=
27-
NEXT_PUBLIC_AZURE_GPT_45_TURBO_ID=
24+
AZURE_OPENAI_ENDPOINT=
25+
AZURE_GPT_35_TURBO_NAME=
26+
AZURE_GPT_45_VISION_NAME=
27+
AZURE_GPT_45_TURBO_NAME=
28+
AZURE_EMBEDDINGS_NAME=
2829

2930
# General Configuration (Optional)
3031
EMAIL_DOMAIN_WHITELIST=

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -240,8 +240,8 @@ You can also add API keys as environment variables.
240240

241241
- `OPENAI_API_KEY`
242242
- `AZURE_OPENAI_API_KEY`
243-
- `NEXT_PUBLIC_AZURE_OPENAI_ENDPOINT`
244-
- `NEXT_PUBLIC_AZURE_GPT_45_VISION_ID`
243+
- `AZURE_OPENAI_ENDPOINT`
244+
- `AZURE_GPT_45_VISION_NAME`
245245

246246
For the full list of environment variables, refer to the '.env.local.example' file. If the environment variables are set for API keys, it will disable the input in the user settings.
247247

components/utility/profile-settings.tsx

+45-15
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,17 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
116116
const [isEnvPerplexity, setIsEnvPerplexity] = useState(false)
117117
const [isEnvAzureOpenai, setIsEnvAzureOpenai] = useState(false)
118118
const [isEnvOpenrouter, setIsEnvOpenrouter] = useState(false)
119+
const [isEnvOpenaiOrgID, setIsEnvOpenaiOrgID] = useState(false)
120+
const [isEnvAzureOpenaiAPIKey, setIsEnvAzureOpenaiAPIKey] = useState(false)
121+
const [isEnvAzureOpenaiEndpoint, setIsEnvAzureOpenaiEndpoint] =
122+
useState(false)
123+
const [isEnvAzureOpenai35TurboID, setIsEnvAzureOpenai35TurboID] =
124+
useState(false)
125+
const [isEnvAzureOpenai45TurboID, setIsEnvAzureOpenai45TurboID] =
126+
useState(false)
127+
const [isEnvAzureOpenai45VisionID, setIsEnvAzureOpenai45VisionID] =
128+
useState(false)
129+
const [isEnvAzureEmbeddingsID, setIsEnvAzureEmbeddingsID] = useState(false)
119130

120131
useEffect(() => {
121132
async function fetchKeys() {
@@ -157,6 +168,30 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
157168
case "OPENROUTER_API_KEY":
158169
setIsEnvOpenrouter(isUsing)
159170
break
171+
172+
case "OPENAI_ORGANIZATION_ID":
173+
setIsEnvOpenaiOrgID(isUsing)
174+
break
175+
176+
case "AZURE_OPENAI_API_KEY":
177+
setIsEnvAzureOpenaiAPIKey(isUsing)
178+
break
179+
case "AZURE_OPENAI_ENDPOINT":
180+
setIsEnvAzureOpenaiEndpoint(isUsing)
181+
break
182+
case "AZURE_GPT_35_TURBO_NAME":
183+
setIsEnvAzureOpenai35TurboID(isUsing)
184+
break
185+
case "AZURE_GPT_45_TURBO_NAME":
186+
setIsEnvAzureOpenai45TurboID(isUsing)
187+
break
188+
case "AZURE_GPT_45_VISION_NAME":
189+
setIsEnvAzureOpenai45VisionID(isUsing)
190+
break
191+
case "AZURE_EMBEDDINGS_NAME":
192+
setIsEnvAzureEmbeddingsID(isUsing)
193+
break
194+
160195
default:
161196
console.warn("Unhandled key type:", key)
162197
break
@@ -479,7 +514,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
479514
<>
480515
{
481516
<div className="space-y-1">
482-
{!!process.env.NEXT_PUBLIC_AZURE_OPENAI_ENDPOINT ? (
517+
{isEnvAzureOpenaiEndpoint ? (
483518
<Label className="text-xs">
484519
Azure endpoint set by admin.
485520
</Label>
@@ -489,7 +524,6 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
489524

490525
<Input
491526
placeholder="https://your-endpoint.openai.azure.com"
492-
type="password"
493527
value={azureOpenaiEndpoint}
494528
onChange={e =>
495529
setAzureOpenaiEndpoint(e.target.value)
@@ -502,7 +536,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
502536

503537
{
504538
<div className="space-y-1">
505-
{!!process.env.NEXT_PUBLIC_AZURE_GPT_35_TURBO_ID ? (
539+
{isEnvAzureOpenai35TurboID ? (
506540
<Label className="text-xs">
507541
Azure GPT-3.5 Turbo deployment name set by admin.
508542
</Label>
@@ -511,8 +545,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
511545
<Label>Azure GPT-3.5 Turbo Deployment Name</Label>
512546

513547
<Input
514-
placeholder="Azure OpenAI GPT-3.5 Turbo Deployment Name"
515-
type="password"
548+
placeholder="Azure GPT-3.5 Turbo Deployment Name"
516549
value={azureOpenai35TurboID}
517550
onChange={e =>
518551
setAzureOpenai35TurboID(e.target.value)
@@ -525,7 +558,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
525558

526559
{
527560
<div className="space-y-1">
528-
{!!process.env.NEXT_PUBLIC_AZURE_GPT_45_TURBO_ID ? (
561+
{isEnvAzureOpenai45TurboID ? (
529562
<Label className="text-xs">
530563
Azure GPT-4.5 Turbo deployment name set by admin.
531564
</Label>
@@ -534,8 +567,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
534567
<Label>Azure GPT-4.5 Turbo Deployment Name</Label>
535568

536569
<Input
537-
placeholder="Azure OpenAI GPT-4.5 Turbo Deployment Name"
538-
type="password"
570+
placeholder="Azure GPT-4.5 Turbo Deployment Name"
539571
value={azureOpenai45TurboID}
540572
onChange={e =>
541573
setAzureOpenai45TurboID(e.target.value)
@@ -548,7 +580,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
548580

549581
{
550582
<div className="space-y-1">
551-
{!!process.env.NEXT_PUBLIC_AZURE_GPT_45_VISION_ID ? (
583+
{isEnvAzureOpenai45VisionID ? (
552584
<Label className="text-xs">
553585
Azure GPT-4.5 Vision deployment name set by admin.
554586
</Label>
@@ -557,8 +589,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
557589
<Label>Azure GPT-4.5 Vision Deployment Name</Label>
558590

559591
<Input
560-
placeholder="Azure OpenAI GPT-4.5 Vision Deployment Name"
561-
type="password"
592+
placeholder="Azure GPT-4.5 Vision Deployment Name"
562593
value={azureOpenai45VisionID}
563594
onChange={e =>
564595
setAzureOpenai45VisionID(e.target.value)
@@ -571,7 +602,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
571602

572603
{
573604
<div className="space-y-1">
574-
{!!process.env.NEXT_PUBLIC_AZURE_EMBEDDINGS_ID ? (
605+
{isEnvAzureEmbeddingsID ? (
575606
<Label className="text-xs">
576607
Azure Embeddings deployment name set by admin.
577608
</Label>
@@ -580,8 +611,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
580611
<Label>Azure Embeddings Deployment Name</Label>
581612

582613
<Input
583-
placeholder="Azure OpenAI Embeddings Deployment Name"
584-
type="password"
614+
placeholder="Azure Embeddings Deployment Name"
585615
value={azureEmbeddingsID}
586616
onChange={e =>
587617
setAzureEmbeddingsID(e.target.value)
@@ -595,7 +625,7 @@ export const ProfileSettings: FC<ProfileSettingsProps> = ({}) => {
595625
) : (
596626
<>
597627
<div className="space-y-1">
598-
{!!process.env.NEXT_PUBLIC_OPENAI_ORGANIZATION_ID ? (
628+
{isEnvOpenaiOrgID ? (
599629
<Label className="text-xs">
600630
OpenAI Organization ID set by admin.
601631
</Label>

lib/server/server-chat-helpers.ts

+9-2
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,22 @@ export async function getServerProfile() {
3838
}
3939

4040
function addApiKeysToProfile(profile: Tables<"profiles">) {
41-
// map VALID_KEYS to profile attributes
4241
const apiKeys = {
4342
[VALID_KEYS.OPENAI_API_KEY]: "openai_api_key",
4443
[VALID_KEYS.ANTHROPIC_API_KEY]: "anthropic_api_key",
4544
[VALID_KEYS.GOOGLE_GEMINI_API_KEY]: "google_gemini_api_key",
4645
[VALID_KEYS.MISTRAL_API_KEY]: "mistral_api_key",
4746
[VALID_KEYS.PERPLEXITY_API_KEY]: "perplexity_api_key",
4847
[VALID_KEYS.AZURE_OPENAI_API_KEY]: "azure_openai_api_key",
49-
[VALID_KEYS.OPENROUTER_API_KEY]: "openrouter_api_key"
48+
[VALID_KEYS.OPENROUTER_API_KEY]: "openrouter_api_key",
49+
50+
[VALID_KEYS.OPENAI_ORGANIZATION_ID]: "openai_organization_id",
51+
52+
[VALID_KEYS.AZURE_OPENAI_ENDPOINT]: "azure_openai_endpoint",
53+
[VALID_KEYS.AZURE_GPT_35_TURBO_NAME]: "azure_openai_gpt_35_turbo_id",
54+
[VALID_KEYS.AZURE_GPT_45_VISION_NAME]: "azure_openai_gpt_45_vision_id",
55+
[VALID_KEYS.AZURE_GPT_45_TURBO_NAME]: "azure_openai_gpt_45_turbo_id",
56+
[VALID_KEYS.AZURE_EMBEDDINGS_NAME]: "azure_openai_embeddings_id"
5057
}
5158

5259
for (const [envKey, profileKey] of Object.entries(apiKeys)) {

types/valid-keys.ts

+9-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,13 @@ export enum VALID_KEYS {
55
MISTRAL_API_KEY = "MISTRAL_API_KEY",
66
PERPLEXITY_API_KEY = "PERPLEXITY_API_KEY",
77
AZURE_OPENAI_API_KEY = "AZURE_OPENAI_API_KEY",
8-
OPENROUTER_API_KEY = "OPENROUTER_API_KEY"
8+
OPENROUTER_API_KEY = "OPENROUTER_API_KEY",
9+
10+
OPENAI_ORGANIZATION_ID = "OPENAI_ORGANIZATION_ID",
11+
12+
AZURE_OPENAI_ENDPOINT = "AZURE_OPENAI_ENDPOINT",
13+
AZURE_GPT_35_TURBO_NAME = "AZURE_GPT_35_TURBO_NAME",
14+
AZURE_GPT_45_VISION_NAME = "AZURE_GPT_45_VISION_NAME",
15+
AZURE_GPT_45_TURBO_NAME = "AZURE_GPT_45_TURBO_NAME",
16+
AZURE_EMBEDDINGS_NAME = "AZURE_EMBEDDINGS_NAME"
917
}

0 commit comments

Comments
 (0)