feat: allow setting openai base path (#1369)

This commit is contained in:
Yingjie He
2025-02-25 14:27:03 -08:00
committed by GitHub
parent b332c1c36e
commit e51b7be367
4 changed files with 25 additions and 17 deletions
@@ -8,6 +8,7 @@ export function isSecretKey(keyName: string): boolean {
'DATABRICKS_HOST',
'OLLAMA_HOST',
'OPENAI_HOST',
'OPENAI_BASE_PATH',
'AZURE_OPENAI_ENDPOINT',
'AZURE_OPENAI_DEPLOYMENT_NAME',
];
@@ -24,22 +25,22 @@ export async function getActiveProviders(): Promise<string[]> {
const configSettings = await getConfigSettings();
const activeProviders = Object.values(configSettings)
.filter((provider) => {
// 1. Get provider's config_status
const configStatus = provider.config_status ?? {};
.filter((provider) => {
// 1. Get provider's config_status
const configStatus = provider.config_status ?? {};
// 2. Collect only the keys *not* in default_key_value
const requiredKeyEntries = Object.entries(configStatus).filter(([k]) => isRequiredKey(k));
// 2. Collect only the keys *not* in default_key_value
const requiredKeyEntries = Object.entries(configStatus).filter(([k]) => isRequiredKey(k));
// 3. If there are *no* non-default keys, it is NOT active
if (requiredKeyEntries.length === 0) {
return false;
}
// 3. If there are *no* non-default keys, it is NOT active
if (requiredKeyEntries.length === 0) {
return false;
}
// 4. Otherwise, all non-default keys must be `is_set`
return requiredKeyEntries.every(([_, value]) => value?.is_set);
})
.map((provider) => provider.name || 'Unknown Provider');
// 4. Otherwise, all non-default keys must be `is_set`
return requiredKeyEntries.every(([_, value]) => value?.is_set);
})
.map((provider) => provider.name || 'Unknown Provider');
console.log('[GET ACTIVE PROVIDERS]:', activeProviders);
return activeProviders;
@@ -93,4 +94,4 @@ export async function getProvidersList(): Promise<Provider[]> {
models: item.details?.models || [], // Nested models array
requiredKeys: item.details?.required_keys || [], // Nested required keys array
}));
}
}
@@ -65,7 +65,7 @@ export function getDefaultModel(key: string): string | undefined {
export const short_list = ['gpt-4o', 'claude-3-5-sonnet-latest'];
export const required_keys = {
OpenAI: ['OPENAI_API_KEY', 'OPENAI_HOST'],
OpenAI: ['OPENAI_API_KEY', 'OPENAI_HOST', 'OPENAI_BASE_PATH'],
Anthropic: ['ANTHROPIC_API_KEY'],
Databricks: ['DATABRICKS_HOST'],
Groq: ['GROQ_API_KEY'],
@@ -77,6 +77,7 @@ export const required_keys = {
export const default_key_value = {
OPENAI_HOST: 'https://api.openai.com',
OPENAI_BASE_PATH: 'v1/chat/completions',
OLLAMA_HOST: 'localhost',
};