| onSave={async (embeddingModel, score) => { | onSave={async (embeddingModel, score) => { | ||||
| if ( | if ( | ||||
| embeddingModel.embedding_model_name !== annotationConfig?.embedding_model?.embedding_model_name | embeddingModel.embedding_model_name !== annotationConfig?.embedding_model?.embedding_model_name | ||||
| && embeddingModel.embedding_provider_name !== annotationConfig?.embedding_model?.embedding_provider_name | |||||
| || embeddingModel.embedding_provider_name !== annotationConfig?.embedding_model?.embedding_provider_name | |||||
| ) { | ) { | ||||
| const { job_id: jobId }: any = await updateAnnotationStatus(appDetail.id, AnnotationEnableStatus.enable, embeddingModel, score) | const { job_id: jobId }: any = await updateAnnotationStatus(appDetail.id, AnnotationEnableStatus.enable, embeddingModel, score) | ||||
| await ensureJobCompleted(jobId, AnnotationEnableStatus.enable) | await ensureJobCompleted(jobId, AnnotationEnableStatus.enable) |
| let isEmbeddingModelChanged = false | let isEmbeddingModelChanged = false | ||||
| if ( | if ( | ||||
| embeddingModel.embedding_model_name !== annotationConfig.embedding_model.embedding_model_name | embeddingModel.embedding_model_name !== annotationConfig.embedding_model.embedding_model_name | ||||
| && embeddingModel.embedding_provider_name !== annotationConfig.embedding_model.embedding_provider_name | |||||
| || embeddingModel.embedding_provider_name !== annotationConfig.embedding_model.embedding_provider_name | |||||
| ) { | ) { | ||||
| await onEmbeddingChange(embeddingModel) | await onEmbeddingChange(embeddingModel) | ||||
| isEmbeddingModelChanged = true | isEmbeddingModelChanged = true |
| ) | ) | ||||
| } | } | ||||
| { | { | ||||
| (showAnnotation || true) && ( | |||||
| showAnnotation && ( | |||||
| <Annotation | <Annotation | ||||
| onEmbeddingChange={onEmbeddingChange} | onEmbeddingChange={onEmbeddingChange} | ||||
| onScoreChange={onScoreChange} | onScoreChange={onScoreChange} |
| 'use client' | 'use client' | ||||
| import type { FC } from 'react' | import type { FC } from 'react' | ||||
| import React from 'react' | |||||
| import React, { useMemo } from 'react' | |||||
| import { useTranslation } from 'react-i18next' | import { useTranslation } from 'react-i18next' | ||||
| import { useRouter } from 'next/navigation' | import { useRouter } from 'next/navigation' | ||||
| import cn from '@/utils/classnames' | import cn from '@/utils/classnames' | ||||
| const router = useRouter() | const router = useRouter() | ||||
| const appDetail = useAppStore(state => state.appDetail) | const appDetail = useAppStore(state => state.appDetail) | ||||
| const options = [ | |||||
| { value: PageType.log, text: t('appLog.title') }, | |||||
| { value: PageType.annotation, text: t('appAnnotation.title') }, | |||||
| ] | |||||
| const options = useMemo(() => { | |||||
| if (appDetail?.mode === 'completion') | |||||
| return [{ value: PageType.log, text: t('appLog.title') }] | |||||
| return [ | |||||
| { value: PageType.log, text: t('appLog.title') }, | |||||
| { value: PageType.annotation, text: t('appAnnotation.title') }, | |||||
| ] | |||||
| }, [appDetail]) | |||||
| if (!appDetail) { | if (!appDetail) { | ||||
| return ( | return ( |