Skip to content

Commit b680f9c

Browse files
committed
Updated code samples to use AI Assistant
1 parent 498ad69 commit b680f9c

File tree

4 files changed

+43
-36
lines changed

4 files changed

+43
-36
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { addModule } from '../../vendor/ibexa/connector-ai/src/bundle/Resources/public/js/core/create.ai.module';
1+
import { addModule } from '@ibexa-connector-ai/src/bundle/Resources/public/js/core/create.ai.module';
22
import TranscribeAudio from './transcribe.audio';
33

44
addModule(TranscribeAudio);
Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
1-
import BaseAIComponent from '../../vendor/ibexa/connector-ai/src/bundle/Resources/public/js/core/base.ai.component';
1+
import BaseAIAssistantComponent from '@ibexa-connector-ai/src/bundle/Resources/public/js/core/base.ai.assistant.component';
2+
import Textarea from '@ibexa-connector-ai-modules/ai-assistant/fields/textarea/textarea.js';
23

3-
export default class TranscribeAudio extends BaseAIComponent {
4-
constructor(mainElement, config) {
5-
super(mainElement, config);
4+
export default class TranscribeAudio extends BaseAIAssistantComponent {
5+
6+
constructor(mainElement, extraConfig) {
7+
super(mainElement, extraConfig);
68

79
this.requestHeaders = {
810
Accept: 'application/vnd.ibexa.api.ai.AudioText+json',
911
'Content-Type': 'application/vnd.ibexa.api.ai.TranscribeAudio+json',
1012
};
13+
14+
this.getRequestBody = this.getRequestBody.bind(this);
15+
this.getResponseValue = this.getResponseValue.bind(this);
16+
17+
this.replacedField = Textarea;
1118
}
1219

1320
getAudioInBase64() {
@@ -18,16 +25,15 @@ export default class TranscribeAudio extends BaseAIComponent {
1825

1926
if (request.status === 200) {
2027
return this.convertToBase64(request.responseText);
21-
} else {
22-
this.processError('Error occured when decoding the file.');
2328
}
2429
}
2530

2631
getRequestBody() {
32+
const inputValue = this.getInputValue();
2733
const body = {
2834
TranscribeAudio: {
2935
Audio: {
30-
base64: this.getAudioInBase64(),
36+
base64: inputValue,
3137
},
3238
RuntimeContext: {},
3339
},
@@ -40,20 +46,6 @@ export default class TranscribeAudio extends BaseAIComponent {
4046
return JSON.stringify(body);
4147
}
4248

43-
afterFetchData(response) {
44-
super.afterFetchData();
45-
46-
if (response) {
47-
this.outputElement.value = response.AudioText.Text.text[0];
48-
}
49-
}
50-
51-
toggle(forceEnabled) {
52-
super.toggle(forceEnabled);
53-
54-
this.outputElement.disabled = !forceEnabled || !this.outputElement.disabled;
55-
}
56-
5749
convertToBase64(data) {
5850
let binary = '';
5951

@@ -63,4 +55,15 @@ export default class TranscribeAudio extends BaseAIComponent {
6355

6456
return btoa(binary);
6557
}
58+
59+
getResponseValue(response) {
60+
return response.AudioText.Text.text[0];
61+
}
62+
63+
handleAIDialogConfirm(responseText) {
64+
this.outputElement.value = responseText;
65+
this.outputElement.dispatchEvent(new Event('input'));
66+
67+
super.handleAIDialogClose(responseText);
68+
}
6669
}

code_samples/ai_actions/config/packages/ibexa_admin_ui.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ ibexa:
44
admin_ui_forms:
55
content_edit:
66
form_templates:
7-
- { template: '@ibexadesign/admin/ui/fieldtype/edit/form_fields_binary_ai.html.twig', priority: -10 } }
7+
- { template: '@ibexadesign/admin/ui/fieldtype/edit/form_fields_binary_ai.html.twig', priority: -10 }

code_samples/ai_actions/templates/themes/admin/admin/ui/fieldtype/edit/form_fields_binary_ai.html.twig

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,27 @@
33
{% block ezbinaryfile_preview %}
44
{{ parent() }}
55

6+
{% import '@ibexadesign/connector_ai/ui/ai_module/macros.html.twig' as ai_macros %}
7+
68
{% set transcriptFieldIdentifier = 'transcript' %}
79
{% set fieldTypeIdentifiers = form.parent.parent.vars.value|keys %}
810

911
{% if transcriptFieldIdentifier in fieldTypeIdentifiers %}
10-
{% set module_id = 'TranscribeAudio' %}
11-
{% set ai_config_id = 'transcribe_audio' %}
12-
{% set container_selector = '.ibexa-edit-content' %}
13-
{% set input_selector = '.ibexa-field-edit-preview__action--preview' %}
14-
{% set output_selector = '#ezplatform_content_forms_content_edit_fieldsData_transcript_value' %}
15-
{% set cancel_wrapper_selector = '.ibexa-field-edit-preview__media-wrapper' %}
16-
17-
{% embed '@ibexadesign/connector_ai/ui/ai_module/ai_component.html.twig' with {
18-
ai_config_id,
19-
container_selector,
20-
input_selector,
21-
output_selector,
12+
{% set use_ai_btn_attr = {
13+
class: 'btn ibexa-btn ibexa-btn--secondary ibexa-ai-component--custom-btn',
14+
module_id: 'TranscribeAudio',
15+
scroll_selector: '.ibexa-edit-content',
16+
container_selector: '.ibexa-edit-content',
17+
input_selector: '.ibexa-field-edit-preview__action--preview',
18+
output_selector: '#ezplatform_content_forms_content_edit_fieldsData_transcript_value',
19+
ai_config_id: 'transcribe_audio',
2220
} %}
23-
{% endembed %}
21+
22+
<button {{ ai_macros.attributes(use_ai_btn_attr) }}>
23+
<svg class="ibexa-icon ibexa-icon--small ibexa-icon--primary">
24+
<use xlink:href="{{ ibexa_icon_path('explore') }}"></use>
25+
</svg>
26+
{{ 'ibexa_connector_ai.use_ai.label'|trans({}, 'ibexa_connector_ai')|desc('Use AI') }}
27+
</button>
2428
{% endif %}
2529
{% endblock %}

0 commit comments

Comments
 (0)