66 lines
2.9 KiB
TypeScript
66 lines
2.9 KiB
TypeScript
import { LightragStatus } from '@/api/lightrag'
|
|
import { useTranslation } from 'react-i18next'
|
|
|
|
const StatusCard = ({ status }: { status: LightragStatus | null }) => {
|
|
const { t } = useTranslation()
|
|
if (!status) {
|
|
return <div className="text-muted-foreground text-sm">{t('graphPanel.statusCard.unavailable')}</div>
|
|
}
|
|
|
|
return (
|
|
<div className="min-w-[300px] space-y-3 text-sm">
|
|
<div className="space-y-1">
|
|
<h4 className="font-medium">{t('graphPanel.statusCard.storageInfo')}</h4>
|
|
<div className="text-muted-foreground grid grid-cols-2 gap-1">
|
|
<span>{t('graphPanel.statusCard.workingDirectory')}:</span>
|
|
<span className="truncate">{status.working_directory}</span>
|
|
<span>{t('graphPanel.statusCard.inputDirectory')}:</span>
|
|
<span className="truncate">{status.input_directory}</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="space-y-1">
|
|
<h4 className="font-medium">{t('graphPanel.statusCard.llmConfig')}</h4>
|
|
<div className="text-muted-foreground grid grid-cols-2 gap-1">
|
|
<span>{t('graphPanel.statusCard.llmBinding')}:</span>
|
|
<span>{status.configuration.llm_binding}</span>
|
|
<span>{t('graphPanel.statusCard.llmBindingHost')}:</span>
|
|
<span>{status.configuration.llm_binding_host}</span>
|
|
<span>{t('graphPanel.statusCard.llmModel')}:</span>
|
|
<span>{status.configuration.llm_model}</span>
|
|
<span>{t('graphPanel.statusCard.maxTokens')}:</span>
|
|
<span>{status.configuration.max_tokens}</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="space-y-1">
|
|
<h4 className="font-medium">{t('graphPanel.statusCard.embeddingConfig')}</h4>
|
|
<div className="text-muted-foreground grid grid-cols-2 gap-1">
|
|
<span>{t('graphPanel.statusCard.embeddingBinding')}:</span>
|
|
<span>{status.configuration.embedding_binding}</span>
|
|
<span>{t('graphPanel.statusCard.embeddingBindingHost')}:</span>
|
|
<span>{status.configuration.embedding_binding_host}</span>
|
|
<span>{t('graphPanel.statusCard.embeddingModel')}:</span>
|
|
<span>{status.configuration.embedding_model}</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div className="space-y-1">
|
|
<h4 className="font-medium">{t('graphPanel.statusCard.storageConfig')}</h4>
|
|
<div className="text-muted-foreground grid grid-cols-2 gap-1">
|
|
<span>{t('graphPanel.statusCard.kvStorage')}:</span>
|
|
<span>{status.configuration.kv_storage}</span>
|
|
<span>{t('graphPanel.statusCard.docStatusStorage')}:</span>
|
|
<span>{status.configuration.doc_status_storage}</span>
|
|
<span>{t('graphPanel.statusCard.graphStorage')}:</span>
|
|
<span>{status.configuration.graph_storage}</span>
|
|
<span>{t('graphPanel.statusCard.vectorStorage')}:</span>
|
|
<span>{status.configuration.vector_storage}</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default StatusCard
|