MCPcopy Index your code
hub / github.com/pgadmin-org/pgadmin4 / register_preferences

Method register_preferences

web/pgadmin/llm/__init__.py:46–325  ·  view source on GitHub ↗

Register preferences for LLM providers.

(self)

Source from the content-addressed store, hash-verified

44 """LLM configuration module for pgAdmin."""
45
46 def register_preferences(self):
47 """
48 Register preferences for LLM providers.
49 """
50 # Don't register AI preferences if LLM is disabled at system level
51 if not getattr(config, 'LLM_ENABLED', False):
52 return
53
54 # Warn once if the SSRF allowlist has been disabled. Empty list
55 # means validate_api_url() returns True for any URL, so admins
56 # who set this by accident lose SSRF protection silently.
57 if not getattr(config, 'ALLOWED_LLM_API_URLS', None):
58 logging.getLogger(__name__).warning(
59 'ALLOWED_LLM_API_URLS is empty; SSRF protection on LLM '
60 'API URL fields is disabled. Populate the allowlist in '
61 'config.py to re-enable.'
62 )
63
64 self.preference = Preferences('ai', gettext('AI'))
65
66 # Default Provider Setting
67 provider_options = [
68 {'label': gettext('None (Disabled)'), 'value': ''},
69 {'label': gettext('Anthropic'), 'value': 'anthropic'},
70 {'label': gettext('OpenAI'), 'value': 'openai'},
71 {'label': gettext('Ollama'), 'value': 'ollama'},
72 {'label': gettext('Docker Model Runner'), 'value': 'docker'},
73 ]
74
75 # Get default provider from config
76 default_provider_value = getattr(config, 'DEFAULT_LLM_PROVIDER', '')
77
78 self.default_provider = self.preference.register(
79 'general', 'default_provider',
80 gettext("Default Provider"), 'options',
81 default_provider_value,
82 category_label=gettext('AI Configuration'),
83 options=provider_options,
84 help_str=gettext(
85 'The LLM provider to use for AI features. '
86 'Select "None (Disabled)" to disable AI features. '
87 'Note: AI features must also be enabled in the server '
88 'configuration (LLM_ENABLED) for this setting to take effect.'
89 ),
90 control_props={'allowClear': False}
91 )
92
93 # Maximum Tool Iterations
94 max_tool_iterations_default = getattr(
95 config, 'MAX_LLM_TOOL_ITERATIONS', 20
96 )
97 self.max_tool_iterations = self.preference.register(
98 'general', 'max_tool_iterations',
99 gettext("Max Tool Iterations"), 'integer',
100 max_tool_iterations_default,
101 category_label=gettext('AI Configuration'),
102 min_val=1,
103 max_val=100,

Callers

nothing calls this directly

Calls 4

PreferencesClass · 0.90
gettextFunction · 0.85
warningMethod · 0.80
registerMethod · 0.45

Tested by

no test coverage detected