feat(editor): Remove AI Error Debugging (#9337)

This commit is contained in:
Milorad FIlipović
2024-05-08 14:13:47 +02:00
committed by GitHub
parent f64a41d617
commit cda062bde6
14 changed files with 5 additions and 356 deletions

View File

@@ -1,9 +1,7 @@
<script lang="ts" setup>
import Feedback from '@/components/Feedback.vue';
import { useI18n } from '@/composables/useI18n';
import type { PropType } from 'vue';
import { computed, ref } from 'vue';
import { useTelemetry } from '@/composables/useTelemetry';
import { computed } from 'vue';
import { useClipboard } from '@/composables/useClipboard';
import { useToast } from '@/composables/useToast';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
@@ -19,9 +17,7 @@ import type {
NodeOperationError,
} from 'n8n-workflow';
import { sanitizeHtml } from '@/utils/htmlUtils';
import { useAIStore } from '@/stores/ai.store';
import { MAX_DISPLAY_DATA_SIZE } from '@/constants';
import VueMarkdown from 'vue-markdown-render';
import type { BaseTextKey } from '@/plugins/i18n';
const props = defineProps({
@@ -34,16 +30,10 @@ const props = defineProps({
const clipboard = useClipboard();
const toast = useToast();
const i18n = useI18n();
const telemetry = useTelemetry();
const nodeTypesStore = useNodeTypesStore();
const ndvStore = useNDVStore();
const rootStore = useRootStore();
const aiStore = useAIStore();
const isLoadingErrorDebugging = ref(false);
const errorDebuggingMessage = ref('');
const errorDebuggingFeedback = ref<'positive' | 'negative' | undefined>();
const displayCause = computed(() => {
return JSON.stringify(props.error.cause).length < MAX_DISPLAY_DATA_SIZE;
@@ -116,45 +106,6 @@ const prepareRawMessages = computed(() => {
return returnData;
});
async function onDebugError() {
try {
isLoadingErrorDebugging.value = true;
telemetry.track(
'User clicked AI error helper button',
{
node_type: props.error.node?.type,
error_title: props.error.message,
},
{ withPostHog: true },
);
const { message } = await aiStore.debugError({ error: props.error });
errorDebuggingMessage.value = message;
} catch (error) {
toast.showError(error, i18n.baseText('generic.error'));
} finally {
isLoadingErrorDebugging.value = false;
}
}
async function onDebugErrorRegenerate() {
errorDebuggingMessage.value = '';
errorDebuggingFeedback.value = undefined;
await onDebugError();
telemetry.track('User regenerated error debugging AI hint', {
node_type: props.error.node?.type,
error_title: props.error.message,
});
}
async function onErrorDebuggingFeedback(feedback: 'positive' | 'negative') {
telemetry.track('User responded error debugging AI hint', {
helpful: feedback === 'positive',
node_type: props.error.node?.type,
error_title: props.error.message,
});
}
function nodeVersionTag(nodeType: NodeError['node']): string {
if (!nodeType || ('hidden' in nodeType && nodeType.hidden)) {
return i18n.baseText('nodeSettings.deprecated');
@@ -429,26 +380,6 @@ function copySuccess() {
></div>
</div>
<N8nCard
v-if="isLoadingErrorDebugging || errorDebuggingMessage"
class="node-error-view__debugging mb-s"
>
<span v-if="isLoadingErrorDebugging">
<N8nSpinner class="mr-3xs" />
{{ i18n.baseText('nodeErrorView.debugError.loading') }}
</span>
<VueMarkdown v-else :source="errorDebuggingMessage" />
<div v-if="errorDebuggingMessage" class="node-error-view__feedback-toolbar">
<Feedback v-model="errorDebuggingFeedback" @update:model-value="onErrorDebuggingFeedback" />
<N8nTooltip :content="i18n.baseText('nodeErrorView.debugError.feedback.reload')">
<span class="node-error-view__feedback-button" @click="onDebugErrorRegenerate">
<FontAwesomeIcon icon="sync-alt" />
</span>
</N8nTooltip>
</div>
</N8nCard>
<div class="node-error-view__info">
<div class="node-error-view__info-header">
<p class="node-error-view__info-title">