import { LightragStatus } from '@/api/lightrag' import { useTranslation } from 'react-i18next' const StatusCard = ({ status }: { status: LightragStatus | null }) => { const { t } = useTranslation() if (!status) { return
{t('graphPanel.statusCard.unavailable')}
} return (

{t('graphPanel.statusCard.serverInfo')}

{t('graphPanel.statusCard.workingDirectory')}: {status.working_directory} {t('graphPanel.statusCard.inputDirectory')}: {status.input_directory} {t('graphPanel.statusCard.summarySettings')}: {status.configuration.summary_language} / LLM summary on {status.configuration.force_llm_summary_on_merge.toString()} fragments {t('graphPanel.statusCard.threshold')}: cosine {status.configuration.cosine_threshold} / rerank_score {status.configuration.min_rerank_score} / max_related {status.configuration.related_chunk_number} {t('graphPanel.statusCard.maxParallelInsert')}: {status.configuration.max_parallel_insert}

{t('graphPanel.statusCard.llmConfig')}

{t('graphPanel.statusCard.llmBindingHost')}: {status.configuration.llm_binding_host} {t('graphPanel.statusCard.llmModel')}: {status.configuration.llm_binding}: {status.configuration.llm_model} (#{status.configuration.max_async} Async)

{t('graphPanel.statusCard.embeddingConfig')}

{t('graphPanel.statusCard.embeddingBindingHost')}: {status.configuration.embedding_binding_host} {t('graphPanel.statusCard.embeddingModel')}: {status.configuration.embedding_binding}: {status.configuration.embedding_model} (#{status.configuration.embedding_func_max_async} Async * {status.configuration.embedding_batch_num} batches)
{status.configuration.enable_rerank && (

{t('graphPanel.statusCard.rerankerConfig')}

{t('graphPanel.statusCard.rerankerBindingHost')}: {status.configuration.rerank_binding_host || '-'} {t('graphPanel.statusCard.rerankerModel')}: {(status.configuration.rerank_binding || '-')} : {(status.configuration.rerank_model || '-')}
)}

{t('graphPanel.statusCard.storageConfig')}

{t('graphPanel.statusCard.kvStorage')}: {status.configuration.kv_storage} {t('graphPanel.statusCard.docStatusStorage')}: {status.configuration.doc_status_storage} {t('graphPanel.statusCard.graphStorage')}: {status.configuration.graph_storage} {t('graphPanel.statusCard.vectorStorage')}: {status.configuration.vector_storage} {t('graphPanel.statusCard.workspace')}: {status.configuration.workspace || '-'} {t('graphPanel.statusCard.maxGraphNodes')}: {status.configuration.max_graph_nodes || '-'} {status.keyed_locks && ( <> {t('graphPanel.statusCard.lockStatus')}: mp {status.keyed_locks.current_status.pending_mp_cleanup}/{status.keyed_locks.current_status.total_mp_locks} | async {status.keyed_locks.current_status.pending_async_cleanup}/{status.keyed_locks.current_status.total_async_locks} (pid: {status.keyed_locks.process_id}) )}
) } export default StatusCard