mirror of
https://github.com/clucraft/PriceGhost.git
synced 2026-07-14 16:32:14 +02:00
feat: add openai_base_url config for LiteLLM/OpenAI-compatible proxy support
This commit is contained in:
parent
945375eca8
commit
89c71a3dde
9 changed files with 383 additions and 296 deletions
|
|
@ -259,6 +259,7 @@ export const settingsApi = {
|
|||
anthropic_model?: string | null;
|
||||
openai_api_key?: string | null;
|
||||
openai_model?: string | null;
|
||||
openai_base_url?: string | null;
|
||||
ollama_base_url?: string | null;
|
||||
ollama_model?: string | null;
|
||||
gemini_api_key?: string | null;
|
||||
|
|
@ -284,6 +285,7 @@ export interface AISettings {
|
|||
anthropic_model: string | null;
|
||||
openai_api_key: string | null;
|
||||
openai_model: string | null;
|
||||
openai_base_url: string | null;
|
||||
ollama_base_url: string | null;
|
||||
ollama_model: string | null;
|
||||
gemini_api_key: string | null;
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ export default function Settings() {
|
|||
const [anthropicModel, setAnthropicModel] = useState('');
|
||||
const [openaiApiKey, setOpenaiApiKey] = useState('');
|
||||
const [openaiModel, setOpenaiModel] = useState('');
|
||||
const [openaiBaseUrl, setOpenaiBaseUrl] = useState('');
|
||||
const [ollamaBaseUrl, setOllamaBaseUrl] = useState('');
|
||||
const [ollamaModel, setOllamaModel] = useState('');
|
||||
const [availableOllamaModels, setAvailableOllamaModels] = useState<string[]>([]);
|
||||
|
|
@ -135,6 +136,7 @@ export default function Settings() {
|
|||
setAnthropicModel(aiRes.data.anthropic_model || '');
|
||||
setOpenaiApiKey(aiRes.data.openai_api_key || '');
|
||||
setOpenaiModel(aiRes.data.openai_model || '');
|
||||
setOpenaiBaseUrl(aiRes.data.openai_base_url || '');
|
||||
setOllamaBaseUrl(aiRes.data.ollama_base_url || '');
|
||||
setOllamaModel(aiRes.data.ollama_model || '');
|
||||
setGeminiApiKey(aiRes.data.gemini_api_key || '');
|
||||
|
|
@ -462,6 +464,7 @@ export default function Settings() {
|
|||
anthropic_model: aiProvider === 'anthropic' ? anthropicModel || null : undefined,
|
||||
openai_api_key: openaiApiKey || undefined,
|
||||
openai_model: aiProvider === 'openai' ? openaiModel || null : undefined,
|
||||
openai_base_url: aiProvider === 'openai' ? openaiBaseUrl || null : undefined,
|
||||
ollama_base_url: aiProvider === 'ollama' ? ollamaBaseUrl || null : undefined,
|
||||
ollama_model: aiProvider === 'ollama' ? ollamaModel || null : undefined,
|
||||
gemini_api_key: geminiApiKey || undefined,
|
||||
|
|
@ -471,6 +474,7 @@ export default function Settings() {
|
|||
setAIVerificationEnabled(response.data.ai_verification_enabled ?? false);
|
||||
setAnthropicModel(response.data.anthropic_model || '');
|
||||
setOpenaiModel(response.data.openai_model || '');
|
||||
setOpenaiBaseUrl(response.data.openai_base_url || '');
|
||||
setGeminiModel(response.data.gemini_model || '');
|
||||
setAnthropicApiKey('');
|
||||
setOpenaiApiKey('');
|
||||
|
|
@ -1763,6 +1767,21 @@ export default function Settings() {
|
|||
{aiSettings?.openai_model && ` (currently: ${aiSettings.openai_model})`}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="settings-form-group">
|
||||
<label>Base URL (optional — for LiteLLM / OpenAI-compatible proxies)</label>
|
||||
<input
|
||||
type="text"
|
||||
value={openaiBaseUrl}
|
||||
onChange={(e) => setOpenaiBaseUrl(e.target.value)}
|
||||
placeholder="https://api.openai.com/v1"
|
||||
/>
|
||||
<p className="hint">
|
||||
Leave blank for default OpenAI API. Set to your LiteLLM proxy URL (e.g., http://litellm:4000/v1)
|
||||
to use a custom model provider.
|
||||
{aiSettings?.openai_base_url && ` (currently: ${aiSettings.openai_base_url})`}
|
||||
</p>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue