Skip to content

Commit ad20b5b

Browse files
committed
simplify AI about page detection
1 parent 8efcbc7 commit ad20b5b

File tree

1 file changed

+28
-29
lines changed

1 file changed

+28
-29
lines changed

views/pages/about.ejs

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -52,38 +52,37 @@
5252
<% if (aiEnabled) { %>
5353
<%
5454
// Extract provider from API URL
55-
let provider = 'Unknown';
56-
if (aiConfig.apiUrl.includes('api.groq.com')) {
57-
provider = 'Groq';
58-
} else if (aiConfig.apiUrl.includes('api.openai.com')) {
59-
provider = 'OpenAI';
60-
} else if (aiConfig.apiUrl.includes('api.anthropic.com')) {
61-
provider = 'Anthropic';
62-
} else if (aiConfig.apiUrl.includes('generativelanguage.googleapis.com')) {
63-
provider = 'Google Gemini';
64-
} else if (aiConfig.apiUrl.includes('api.perplexity.ai')) {
65-
provider = 'Perplexity';
66-
} else if (aiConfig.apiUrl.includes('api.cohere.ai')) {
67-
provider = 'Cohere';
68-
} else if (aiConfig.apiUrl.includes('api.mistral.ai')) {
69-
provider = 'Mistral';
70-
} else if (aiConfig.apiUrl.includes('localhost') || aiConfig.apiUrl.includes('127.0.0.1') || aiConfig.apiUrl.includes('0.0.0.0')) {
71-
provider = 'Local LLM';
72-
} else {
73-
// Try to extract domain from URL
55+
const providers = [
56+
{ pattern: 'api.groq.com', name: 'Groq' },
57+
{ pattern: 'api.openai.com', name: 'OpenAI' },
58+
{ pattern: 'api.anthropic.com', name: 'Anthropic' },
59+
{ pattern: 'generativelanguage.googleapis.com', name: 'Google Gemini' },
60+
{ pattern: 'api.perplexity.ai', name: 'Perplexity' },
61+
{ pattern: 'api.cohere.ai', name: 'Cohere' },
62+
{ pattern: 'api.mistral.ai', name: 'Mistral' },
63+
];
64+
const localPatterns = ['localhost', '127.0.0.1', '0.0.0.0'];
65+
66+
const apiUrl = aiConfig.apiUrl;
67+
68+
// Helper to extract provider name from domain
69+
const extractProviderFromDomain = (url) => {
7470
try {
75-
const url = new URL(aiConfig.apiUrl);
76-
const hostname = url.hostname;
77-
if (hostname.startsWith('api.')) {
78-
provider = hostname.substring(4).split('.')[0];
79-
} else {
80-
provider = hostname.split('.')[0];
81-
}
82-
provider = provider.charAt(0).toUpperCase() + provider.slice(1);
71+
const { hostname } = new URL(url);
72+
const domain = hostname.startsWith('api.')
73+
? hostname.substring(4).split('.')[0]
74+
: hostname.split('.')[0];
75+
return domain.charAt(0).toUpperCase() + domain.slice(1);
8376
} catch (e) {
84-
provider = 'Custom Provider';
77+
return 'Custom Provider';
8578
}
86-
}
79+
};
80+
81+
// Determine provider: local → known providers → domain extraction
82+
const provider = localPatterns.some(pattern => apiUrl.includes(pattern))
83+
? 'Local LLM'
84+
: providers.find(p => apiUrl.includes(p.pattern))?.name
85+
|| extractProviderFromDomain(apiUrl);
8786
%>
8887
<p><%= __('about.ai.description') %></p>
8988
<p><%- __('about.ai.provider_info', {provider: provider, model: aiConfig.model}) %></p>

0 commit comments

Comments
 (0)