Feat: Support re-segmentation (#114)
Co-authored-by: John Wang <takatost@gmail.com> Co-authored-by: Jyong <718720800@qq.com> Co-authored-by: 金伟强 <iamjoel007@gmail.com>
This commit is contained in:
@@ -1,18 +1,19 @@
|
||||
import { useState } from 'react'
|
||||
import cn from 'classnames'
|
||||
import s from './index.module.css'
|
||||
import { useContext } from 'use-context-selector'
|
||||
import Indicator from '../../../indicator'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import type { Provider, ProviderAzureToken } from '@/models/common'
|
||||
import { ProviderName } from '@/models/common'
|
||||
import Indicator from '../../../indicator'
|
||||
import OpenaiProvider from '../openai-provider'
|
||||
import AzureProvider from '../azure-provider'
|
||||
import { ValidatedStatus, ValidatedStatusState } from '../provider-input/useValidateToken'
|
||||
import type { ValidatedStatusState } from '../provider-input/useValidateToken'
|
||||
import { ValidatedStatus } from '../provider-input/useValidateToken'
|
||||
import s from './index.module.css'
|
||||
import type { Provider, ProviderAzureToken } from '@/models/common'
|
||||
import { ProviderName } from '@/models/common'
|
||||
import { updateProviderAIKey } from '@/service/common'
|
||||
import { ToastContext } from '@/app/components/base/toast'
|
||||
|
||||
interface IProviderItemProps {
|
||||
type IProviderItemProps = {
|
||||
icon: string
|
||||
name: string
|
||||
provider: Provider
|
||||
@@ -26,17 +27,17 @@ const ProviderItem = ({
|
||||
name,
|
||||
provider,
|
||||
onActive,
|
||||
onSave
|
||||
onSave,
|
||||
}: IProviderItemProps) => {
|
||||
const { t } = useTranslation()
|
||||
const [validatedStatus, setValidatedStatus] = useState<ValidatedStatusState>()
|
||||
const [loading, setLoading] = useState(false)
|
||||
const { notify } = useContext(ToastContext)
|
||||
const [token, setToken] = useState<ProviderAzureToken | string>(
|
||||
provider.provider_name === 'azure_openai'
|
||||
provider.provider_name === 'azure_openai'
|
||||
? { openai_api_base: '', openai_api_key: '' }
|
||||
: ''
|
||||
)
|
||||
: '',
|
||||
)
|
||||
const id = `${provider.provider_name}-${provider.provider_type}`
|
||||
const isOpen = id === activeId
|
||||
const comingSoon = false
|
||||
@@ -44,26 +45,30 @@ const ProviderItem = ({
|
||||
|
||||
const providerTokenHasSetted = () => {
|
||||
if (provider.provider_name === ProviderName.AZURE_OPENAI) {
|
||||
return provider.token && provider.token.openai_api_base && provider.token.openai_api_key ? {
|
||||
openai_api_base: provider.token.openai_api_base,
|
||||
openai_api_key: provider.token.openai_api_key
|
||||
}: undefined
|
||||
return (provider.token && provider.token.openai_api_base && provider.token.openai_api_key)
|
||||
? {
|
||||
openai_api_base: provider.token.openai_api_base,
|
||||
openai_api_key: provider.token.openai_api_key,
|
||||
}
|
||||
: undefined
|
||||
}
|
||||
if (provider.provider_name === ProviderName.OPENAI) {
|
||||
if (provider.provider_name === ProviderName.OPENAI)
|
||||
return provider.token
|
||||
}
|
||||
}
|
||||
const handleUpdateToken = async () => {
|
||||
if (loading) return
|
||||
if (loading)
|
||||
return
|
||||
if (validatedStatus?.status === ValidatedStatus.Success) {
|
||||
try {
|
||||
setLoading(true)
|
||||
await updateProviderAIKey({ url: `/workspaces/current/providers/${provider.provider_name}/token`, body: { token } })
|
||||
notify({ type: 'success', message: t('common.actionMsg.modifiedSuccessfully') })
|
||||
onActive('')
|
||||
} catch (e) {
|
||||
}
|
||||
catch (e) {
|
||||
notify({ type: 'error', message: t('common.provider.saveFailed') })
|
||||
} finally {
|
||||
}
|
||||
finally {
|
||||
setLoading(false)
|
||||
onSave()
|
||||
}
|
||||
@@ -126,18 +131,18 @@ const ProviderItem = ({
|
||||
</div>
|
||||
{
|
||||
provider.provider_name === ProviderName.OPENAI && isOpen && (
|
||||
<OpenaiProvider
|
||||
provider={provider}
|
||||
onValidatedStatus={v => setValidatedStatus(v)}
|
||||
<OpenaiProvider
|
||||
provider={provider}
|
||||
onValidatedStatus={v => setValidatedStatus(v)}
|
||||
onTokenChange={v => setToken(v)}
|
||||
/>
|
||||
)
|
||||
}
|
||||
{
|
||||
provider.provider_name === ProviderName.AZURE_OPENAI && isOpen && (
|
||||
<AzureProvider
|
||||
provider={provider}
|
||||
onValidatedStatus={v => setValidatedStatus(v)}
|
||||
<AzureProvider
|
||||
provider={provider}
|
||||
onValidatedStatus={v => setValidatedStatus(v)}
|
||||
onTokenChange={v => setToken(v)}
|
||||
/>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user