Browse Source

Feat/model providers (#951)

tags/0.3.15
zxhlyh 2 years ago
parent
commit
b3c2bf125f
No account linked to committer's email address

+ 31
- 12
web/app/components/header/account-setting/model-page/index.tsx View File

import { useState } from 'react' import { useState } from 'react'
import useSWR from 'swr' import useSWR from 'swr'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { useContext } from 'use-context-selector'
import type { import type {
BackendModel, BackendModel,
FormValue, FormValue,
import { useEventEmitterContextContext } from '@/context/event-emitter' import { useEventEmitterContextContext } from '@/context/event-emitter'
import { useProviderContext } from '@/context/provider-context' import { useProviderContext } from '@/context/provider-context'
import Tooltip from '@/app/components/base/tooltip' import Tooltip from '@/app/components/base/tooltip'
import I18n from '@/context/i18n'


const MODEL_CARD_LIST = [ const MODEL_CARD_LIST = [
config.openai, config.openai,
config.anthropic, config.anthropic,
] ]


const MODEL_LIST = [
config.azure_openai,
config.replicate,
config.huggingface_hub,
config.minimax,
config.spark,
config.tongyi,
config.wenxin,
config.chatglm,
]

const titleClassName = ` const titleClassName = `
flex items-center h-9 text-sm font-medium text-gray-900 flex items-center h-9 text-sm font-medium text-gray-900
` `


const ModelPage = () => { const ModelPage = () => {
const { t } = useTranslation() const { t } = useTranslation()
const { locale } = useContext(I18n)
const { const {
updateModelList, updateModelList,
embeddingsDefaultModel, embeddingsDefaultModel,
const [deleteModel, setDeleteModel] = useState<DeleteModel & { providerKey: ProviderEnum }>() const [deleteModel, setDeleteModel] = useState<DeleteModel & { providerKey: ProviderEnum }>()
const [modalMode, setModalMode] = useState('add') const [modalMode, setModalMode] = useState('add')


let modelList = []

if (locale === 'en') {
modelList = [
config.azure_openai,
config.replicate,
config.huggingface_hub,
config.minimax,
config.spark,
config.tongyi,
config.wenxin,
config.chatglm,
]
}
else {
modelList = [
config.huggingface_hub,
config.minimax,
config.spark,
config.azure_openai,
config.replicate,
config.tongyi,
config.wenxin,
config.chatglm,
]
}

const handleOpenModal = (newModelModalConfig: ProviderConfigModal | undefined, editValue?: FormValue) => { const handleOpenModal = (newModelModalConfig: ProviderConfigModal | undefined, editValue?: FormValue) => {
if (newModelModalConfig) { if (newModelModalConfig) {
setShowModal(true) setShowModal(true)
} }
</div> </div>
{ {
MODEL_LIST.slice(0, showMoreModel ? MODEL_LIST.length : 3).map((model, index) => (
modelList.slice(0, showMoreModel ? modelList.length : 3).map((model, index) => (
<ModelItem <ModelItem
key={index} key={index}
modelItem={model.item} modelItem={model.item}

+ 2
- 1
web/app/components/header/account-setting/model-page/model-item/QuotaCard.tsx View File

import type { FC } from 'react' import type { FC } from 'react'
import { useTranslation } from 'react-i18next' import { useTranslation } from 'react-i18next'
import { formatNumber } from '@/utils/format'


type QuotaCardProps = { type QuotaCardProps = {
remainTokens: number remainTokens: number
{t('common.modelProvider.item.freeQuota')} {t('common.modelProvider.item.freeQuota')}
</div> </div>
<div className='flex items-center h-5 text-sm font-medium text-gray-700'> <div className='flex items-center h-5 text-sm font-medium text-gray-700'>
{remainTokens}
{formatNumber(remainTokens)}
<div className='ml-1 font-normal'>Tokens</div> <div className='ml-1 font-normal'>Tokens</div>
</div> </div>
</div> </div>

Loading…
Cancel
Save