@@ -13,7 +13,6 @@ import { popupAjaxError } from "discourse/lib/ajax-error";
1313import icon from " discourse-common/helpers/d-icon" ;
1414import { i18n } from " discourse-i18n" ;
1515import AdminUser from " admin/models/admin-user" ;
16- import DTooltip from " float-kit/components/d-tooltip" ;
1716import DurationSelector from " ./ai-quota-duration-selector" ;
1817import AiLlmQuotaModal from " ./modal/ai-llm-quota-modal" ;
1918
@@ -145,27 +144,30 @@ export default class AiLlmEditorForm extends Component {
145144 });
146145 }
147146
148- get metaProviderParams () {
149- const params =
150- this .args .llms .resultSetMeta .provider_params [this .args .model .provider ] ||
151- {};
147+ @action
148+ metaProviderParams (provider ) {
149+ const params = this .args .llms .resultSetMeta .provider_params [provider] || {};
152150
153- return Object .entries (params).map (( [field , value ]) => {
151+ return Object .entries (params).reduce (( acc , [field , value ]) => {
154152 if (typeof value === " string" ) {
155- return { field, type: value };
153+ acc[field] = { type: value };
156154 } else if (typeof value === " object" ) {
157155 if (value .values ) {
158156 value = { ... value };
159- value .values = value .values .map ((v ) => {
160- return { id: v, name: v };
161- });
157+ value .values = value .values .map ((v ) => ({ id: v, name: v }));
162158 }
163159 this .args .model .provider_params [field] =
164160 this .args .model .provider_params [field] || value .default ;
165- return { field, ... value };
161+ acc[field] = {
162+ type: value .type || " text" ,
163+ values: value .values || undefined ,
164+ default: value .default || undefined ,
165+ };
166+ } else {
167+ acc[field] = { type: " text" }; // fallback
166168 }
167- return { field, type : " text " }; // fallback
168- });
169+ return acc;
170+ }, {} );
169171 }
170172
171173 @action
@@ -318,21 +320,27 @@ export default class AiLlmEditorForm extends Component {
318320 </form.Field >
319321
320322 <form.Object @ name =" provider_params" as | object name | >
323+ {{log ( this.metaProviderParams data.provider ) }}
321324 {{#let
322- ( get ( get @ llms.resultSetMeta.provider_params data.provider ) name )
323- as | type |
325+ ( get ( this.metaProviderParams data.provider ) name )
326+ as | params |
324327 }}
325328 <object.Field
326329 @ name ={{name }}
327330 @ title ={{i18n ( concat " discourse_ai.llms.provider_fields." name ) }}
328331 @ format =" large"
329- @ showTitle ={{ false }}
330332 as | field |
331333 >
332- {{#if ( eq type " checkbox" ) }}
334+ {{#if ( eq params.type " enum" ) }}
335+ <field.Select as | select | >
336+ {{#each params.values as | value | }}
337+ <select.Option @ value ={{value }} >{{value }} </select.Option >
338+ {{/each }}
339+ </field.Select >
340+ {{else if ( eq params.type " checkbox" ) }}
333341 <field.Checkbox />
334342 {{else }}
335- <field.Input @ type ={{type }} />
343+ <field.Input @ type ={{params. type }} />
336344 {{/if }}
337345 </object.Field >
338346 {{/let }}
0 commit comments