WIP: Adding Enum button back to AI tools parameters form

This commit is contained in:
Martin Brennan 2025-03-18 16:41:41 +10:00
parent 5bf61ef9e1
commit 9369d9d0d7
No known key found for this signature in database
GPG Key ID: BD981EFEEC8F5675
2 changed files with 22 additions and 8 deletions

View File

@ -32,8 +32,10 @@ export default class AiTool extends RestModel {
if (parameter.enum && parameter.enum.length) { if (parameter.enum && parameter.enum.length) {
parameter.enum = new TrackedArray(parameter.enum); parameter.enum = new TrackedArray(parameter.enum);
parameter.isEnum = true;
} else { } else {
parameter.enum = null; parameter.enum = null;
parameter.isEnum = false;
} }
return parameter; return parameter;

View File

@ -28,12 +28,13 @@ export default class AiToolEditorForm extends Component {
]; ];
get formData() { get formData() {
const parameters = this.args.editingModel.parameters || [];
return { return {
name: this.args.editingModel.name || "", name: this.args.editingModel.name || "",
tool_name: this.args.editingModel.tool_name || "", tool_name: this.args.editingModel.tool_name || "",
description: this.args.editingModel.description || "", description: this.args.editingModel.description || "",
summary: this.args.editingModel.summary || "", summary: this.args.editingModel.summary || "",
parameters: this.args.editingModel.parameters || [], parameters,
script: this.args.editingModel.script || "", script: this.args.editingModel.script || "",
rag_uploads: this.args.editingModel.rag_uploads || [], rag_uploads: this.args.editingModel.rag_uploads || [],
}; };
@ -109,6 +110,10 @@ export default class AiToolEditorForm extends Component {
return data.parameters[index].type; return data.parameters[index].type;
} }
parameterIsEnum(data, index) {
return data.parameters[index].isEnum;
}
get ragUploadsDescription() { get ragUploadsDescription() {
return this.siteSettings.rag_images_enabled return this.siteSettings.rag_images_enabled
? i18n("discourse_ai.rag.uploads.description_with_images") ? i18n("discourse_ai.rag.uploads.description_with_images")
@ -229,7 +234,7 @@ export default class AiToolEditorForm extends Component {
</row.Col> </row.Col>
<row.Col @size={{4}}> <row.Col @size={{4}}>
<collection.Field @name="enum" @title="Enum" as |field|> <collection.Field @name="isEnum" @title="Enum" as |field|>
<field.Checkbox /> <field.Checkbox />
</collection.Field> </collection.Field>
</row.Col> </row.Col>
@ -243,6 +248,9 @@ export default class AiToolEditorForm extends Component {
/> />
</row.Col> </row.Col>
</form.Row> </form.Row>
{{#if (this.parameterIsEnum data index)}}
I am an enum
{{/if}}
</div> </div>
</form.Collection> </form.Collection>
@ -252,7 +260,9 @@ export default class AiToolEditorForm extends Component {
@action={{fn @action={{fn
form.addItemToCollection form.addItemToCollection
"parameters" "parameters"
(hash name="" type="string" description="" required=false enum=false) (hash
name="" type="string" description="" required=false isEnum=false
)
}} }}
/> />
@ -299,6 +309,13 @@ export default class AiToolEditorForm extends Component {
class="ai-tool-editor__test-button" class="ai-tool-editor__test-button"
/> />
{{/unless}}
<form.Submit
@label="discourse_ai.tools.save"
class="ai-tool-editor__save"
/>
{{#unless @isNew}}
<form.Button <form.Button
@label="discourse_ai.tools.delete" @label="discourse_ai.tools.delete"
@icon="trash-can" @icon="trash-can"
@ -306,11 +323,6 @@ export default class AiToolEditorForm extends Component {
class="btn-danger ai-tool-editor__delete" class="btn-danger ai-tool-editor__delete"
/> />
{{/unless}} {{/unless}}
<form.Submit
@label="discourse_ai.tools.save"
class="ai-tool-editor__save"
/>
</form.Actions> </form.Actions>
</Form> </Form>
</template> </template>