@lobehub/chat 1.114.2 → 1.114.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/scripts/docker-pr-comment.js +89 -0
- package/.github/workflows/desktop-pr-build.yml +8 -0
- package/.github/workflows/docker-database.yml +21 -0
- package/.github/workflows/release-desktop-beta.yml +8 -0
- package/.github/workflows/release.yml +7 -5
- package/.github/workflows/test.yml +9 -7
- package/CHANGELOG.md +42 -0
- package/Dockerfile.database +1 -1
- package/apps/desktop/electron-builder.js +1 -1
- package/changelog/v1.json +14 -0
- package/codecov.yml +30 -2
- package/docs/development/basic/image-generation-setup.mdx +190 -0
- package/docs/development/basic/image-generation-setup.zh-CN.mdx +190 -0
- package/docs/development/database-schema.dbml +14 -0
- package/drizzle.config.ts +2 -2
- package/package.json +5 -5
- package/packages/const/src/index.ts +2 -0
- package/{src/utils → packages/const/src/settings}/genUserLLMConfig.test.ts +1 -1
- package/{src/utils → packages/const/src/settings}/genUserLLMConfig.ts +1 -1
- package/packages/const/src/settings/index.ts +0 -2
- package/packages/const/src/settings/llm.ts +1 -1
- package/{src → packages}/database/migrations/0028_oauth_handoffs.sql +1 -1
- package/{src → packages}/database/migrations/0029_add_apikey_manage.sql +1 -1
- package/packages/database/package.json +24 -0
- package/{src/database → packages/database/src}/client/db.ts +2 -2
- package/{src/database → packages/database/src}/core/db-adaptor.ts +3 -3
- package/{src/database → packages/database/src}/core/dbForTest.ts +1 -1
- package/{src/database → packages/database/src}/core/electron.ts +3 -3
- package/{src/database/client → packages/database/src/core}/migrations.json +12 -2
- package/{src/database → packages/database/src}/core/web-server.ts +2 -3
- package/{src/database → packages/database/src}/models/__tests__/_test_template.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/_util.ts +3 -3
- package/{src/database → packages/database/src}/models/__tests__/agent.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/aiModel.test.ts +1 -1
- package/{src/database → packages/database/src}/models/__tests__/aiProvider.test.ts +1 -1
- package/{src/database → packages/database/src}/models/__tests__/asyncTask.test.ts +1 -1
- package/{src/database → packages/database/src}/models/__tests__/chunk.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/file.test.ts +1 -1
- package/{src/database → packages/database/src}/models/__tests__/generation.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/generationBatch.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/generationTopic.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/knowledgeBase.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/message.test.ts +2 -2
- package/{src/database → packages/database/src}/models/__tests__/plugin.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/session.test.ts +2 -2
- package/{src/database → packages/database/src}/models/__tests__/sessionGroup.test.ts +1 -2
- package/{src/database → packages/database/src}/models/__tests__/topic.test.ts +1 -2
- package/{src/database → packages/database/src}/models/_template.ts +1 -2
- package/{src/database → packages/database/src}/models/agent.ts +2 -2
- package/{src/database → packages/database/src}/models/aiModel.ts +1 -1
- package/{src/database → packages/database/src}/models/aiProvider.ts +1 -1
- package/{src/database → packages/database/src}/models/apiKey.ts +1 -1
- package/{src/database → packages/database/src}/models/asyncTask.ts +1 -1
- package/{src/database → packages/database/src}/models/chunk.ts +1 -1
- package/{src/database → packages/database/src}/models/document.ts +1 -1
- package/{src/database → packages/database/src}/models/drizzleMigration.ts +1 -1
- package/{src/database → packages/database/src}/models/embedding.ts +1 -1
- package/{src/database → packages/database/src}/models/file.ts +1 -1
- package/{src/database → packages/database/src}/models/generation.ts +1 -1
- package/{src/database → packages/database/src}/models/generationBatch.ts +1 -1
- package/{src/database → packages/database/src}/models/generationTopic.ts +1 -1
- package/{src/database → packages/database/src}/models/knowledgeBase.ts +1 -1
- package/{src/database → packages/database/src}/models/message.ts +3 -3
- package/{src/database → packages/database/src}/models/oauthHandoff.ts +1 -1
- package/{src/database → packages/database/src}/models/plugin.ts +1 -1
- package/{src/database → packages/database/src}/models/session.ts +3 -3
- package/{src/database → packages/database/src}/models/sessionGroup.ts +2 -2
- package/{src/database → packages/database/src}/models/thread.ts +1 -1
- package/{src/database → packages/database/src}/models/topic.ts +3 -3
- package/{src/database → packages/database/src}/models/user.ts +1 -1
- package/{src/database → packages/database/src}/repositories/aiInfra/index.ts +4 -3
- package/{src/database → packages/database/src}/repositories/dataExporter/index.ts +2 -2
- package/{src/database → packages/database/src}/repositories/dataImporter/__tests__/index.test.ts +2 -2
- package/{src/database → packages/database/src}/repositories/dataImporter/deprecated/index.ts +6 -5
- package/{src/database → packages/database/src}/repositories/dataImporter/index.ts +2 -2
- package/{src/database → packages/database/src}/repositories/tableViewer/index.test.ts +1 -1
- package/{src/database → packages/database/src}/repositories/tableViewer/index.ts +2 -1
- package/{src/database → packages/database/src}/schemas/agent.ts +1 -1
- package/{src/database → packages/database/src}/schemas/aiInfra.ts +3 -2
- package/{src/database → packages/database/src}/schemas/document.ts +2 -2
- package/{src/database → packages/database/src}/schemas/file.ts +1 -1
- package/{src/database → packages/database/src}/schemas/generation.ts +1 -1
- package/{src/database → packages/database/src}/schemas/message.ts +1 -1
- package/{src/database → packages/database/src}/schemas/ragEvals.ts +1 -1
- package/{src/database → packages/database/src}/schemas/relations.ts +1 -2
- package/{src/database → packages/database/src}/schemas/session.ts +1 -2
- package/{src/database → packages/database/src}/schemas/topic.ts +2 -2
- package/{src/database → packages/database/src}/server/models/__tests__/adapter.test.ts +5 -4
- package/{src/database → packages/database/src}/server/models/__tests__/nextauth.test.ts +4 -4
- package/{src/database → packages/database/src}/server/models/__tests__/user.test.ts +1 -2
- package/{src/database → packages/database/src}/server/models/ragEval/dataset.ts +3 -3
- package/{src/database → packages/database/src}/server/models/ragEval/datasetRecord.ts +3 -3
- package/{src/database → packages/database/src}/server/models/ragEval/evaluation.ts +3 -3
- package/{src/database → packages/database/src}/server/models/ragEval/evaluationRecord.ts +2 -2
- package/{src/database → packages/database/src}/utils/idGenerator.ts +4 -1
- package/{vitest.config.server.ts → packages/database/vitest.config.ts} +8 -7
- package/packages/model-runtime/package.json +1 -0
- package/packages/model-runtime/src/bfl/createImage.test.ts +4 -4
- package/packages/model-runtime/src/bfl/createImage.ts +1 -1
- package/packages/model-runtime/src/google/index.test.ts +1 -1
- package/packages/model-runtime/src/google/index.ts +1 -3
- package/packages/model-runtime/src/ollama/index.ts +3 -2
- package/packages/model-runtime/src/utils/anthropicHelpers.test.ts +2 -3
- package/packages/model-runtime/src/utils/anthropicHelpers.ts +1 -2
- package/packages/model-runtime/src/utils/openaiCompatibleFactory/index.ts +1 -1
- package/packages/model-runtime/src/utils/openaiHelpers.test.ts +2 -3
- package/packages/model-runtime/src/utils/openaiHelpers.ts +2 -2
- package/packages/model-runtime/src/utils/streams/bedrock/claude.ts +1 -2
- package/packages/model-runtime/src/utils/streams/bedrock/llama.test.ts +1 -2
- package/packages/model-runtime/src/utils/streams/bedrock/llama.ts +1 -2
- package/packages/model-runtime/src/utils/streams/google-ai.test.ts +1 -2
- package/packages/model-runtime/src/utils/streams/google-ai.ts +1 -1
- package/packages/model-runtime/src/utils/streams/ollama.test.ts +1 -2
- package/packages/model-runtime/src/utils/streams/ollama.ts +1 -1
- package/packages/model-runtime/src/utils/streams/protocol.ts +2 -2
- package/packages/model-runtime/src/utils/streams/vertex-ai.test.ts +1 -2
- package/packages/model-runtime/src/utils/streams/vertex-ai.ts +1 -1
- package/packages/model-runtime/vitest.config.ts +2 -0
- package/packages/types/src/index.ts +5 -0
- package/packages/utils/package.json +17 -0
- package/{src/utils → packages/utils/src}/client/cookie.test.ts +1 -3
- package/{src/utils → packages/utils/src}/client/cookie.ts +1 -1
- package/{src/utils → packages/utils/src}/client/parserPlaceholder.test.ts +2 -2
- package/{src/utils → packages/utils/src}/client/parserPlaceholder.ts +77 -73
- package/{src/utils → packages/utils/src}/client/topic.test.ts +1 -1
- package/{src/utils → packages/utils/src}/compressImage.test.ts +2 -0
- package/{src/utils → packages/utils/src}/fetch/__tests__/fetchSSE.test.ts +3 -4
- package/{src/utils → packages/utils/src}/fetch/fetchSSE.ts +1 -1
- package/{src/utils → packages/utils/src}/getFallbackModelProperty.test.ts +1 -1
- package/packages/utils/src/index.ts +5 -0
- package/{src/utils → packages/utils/src}/locale.ts +2 -1
- package/{src/utils → packages/utils/src}/merge.test.ts +1 -3
- package/{src/utils → packages/utils/src}/parseModels.ts +3 -2
- package/{src/utils → packages/utils/src}/platform.test.ts +1 -1
- package/{src/utils → packages/utils/src}/platform.ts +1 -1
- package/{src/utils → packages/utils/src}/sanitizeUTF8.test.ts +2 -0
- package/{src/utils → packages/utils/src}/server/__tests__/geo.test.ts +1 -1
- package/{src/utils → packages/utils/src}/server/xor.test.ts +1 -2
- package/{src/utils → packages/utils/src}/url.test.ts +1 -1
- package/packages/utils/tests/setup.ts +10 -0
- package/packages/utils/vitest.config.ts +16 -0
- package/scripts/dbmlWorkflow/index.ts +1 -1
- package/scripts/migrateClientDB/compile-migrations.ts +2 -2
- package/scripts/migrateServerDB/index.ts +2 -2
- package/scripts/setup-image-generation-dev.sh +81 -0
- package/src/app/[variants]/(main)/repos/[id]/evals/dataset/CreateDataset/CreateForm.tsx +1 -1
- package/src/app/[variants]/(main)/repos/[id]/evals/dataset/DatasetDetail/index.tsx +1 -1
- package/src/app/[variants]/(main)/repos/[id]/evals/dataset/DatasetList/Item.tsx +1 -2
- package/src/app/[variants]/(main)/repos/[id]/evals/dataset/DatasetList/index.tsx +1 -2
- package/src/app/[variants]/(main)/repos/[id]/evals/evaluation/CreateEvaluation/CreateForm.tsx +1 -1
- package/src/app/[variants]/(main)/repos/[id]/evals/evaluation/EvaluationList/index.tsx +1 -1
- package/src/features/AgentSetting/store/index.ts +1 -2
- package/src/server/routers/async/ragEval.ts +1 -1
- package/src/server/routers/lambda/ragEval.ts +9 -9
- package/src/services/config.ts +1 -1
- package/src/services/ragEval.ts +4 -3
- package/src/store/knowledgeBase/slices/ragEval/actions/dataset.ts +6 -6
- package/src/store/knowledgeBase/slices/ragEval/actions/evaluation.ts +1 -1
- package/src/store/serverConfig/store.ts +1 -1
- package/src/utils/client/switchLang.test.ts +2 -2
- package/src/utils/client/switchLang.ts +2 -3
- package/tests/setup.ts +0 -11
- package/tsconfig.json +2 -0
- package/vitest.config.ts +6 -2
- /package/{src → packages}/database/migrations/0000_init.sql +0 -0
- /package/{src → packages}/database/migrations/0001_add_client_id.sql +0 -0
- /package/{src → packages}/database/migrations/0002_amusing_puma.sql +0 -0
- /package/{src → packages}/database/migrations/0003_naive_echo.sql +0 -0
- /package/{src → packages}/database/migrations/0004_add_next_auth.sql +0 -0
- /package/{src → packages}/database/migrations/0005_pgvector.sql +0 -0
- /package/{src → packages}/database/migrations/0006_add_knowledge_base.sql +0 -0
- /package/{src → packages}/database/migrations/0007_fix_embedding_table.sql +0 -0
- /package/{src → packages}/database/migrations/0008_add_rag_evals.sql +0 -0
- /package/{src → packages}/database/migrations/0009_remove_unused_user_tables.sql +0 -0
- /package/{src → packages}/database/migrations/0010_add_accessed_at_and_clean_tables.sql +0 -0
- /package/{src → packages}/database/migrations/0011_add_topic_history_summary.sql +0 -0
- /package/{src → packages}/database/migrations/0012_add_thread.sql +0 -0
- /package/{src → packages}/database/migrations/0013_add_ai_infra.sql +0 -0
- /package/{src → packages}/database/migrations/0014_add_message_reasoning.sql +0 -0
- /package/{src → packages}/database/migrations/0015_add_message_search_metadata.sql +0 -0
- /package/{src → packages}/database/migrations/0016_add_message_index.sql +0 -0
- /package/{src → packages}/database/migrations/0017_add_user_id_to_tables.sql +0 -0
- /package/{src → packages}/database/migrations/0018_add_client_id_for_entities.sql +0 -0
- /package/{src → packages}/database/migrations/0019_add_hotkey_user_settings.sql +0 -0
- /package/{src → packages}/database/migrations/0020_add_oidc.sql +0 -0
- /package/{src → packages}/database/migrations/0021_add_agent_opening_settings.sql +0 -0
- /package/{src → packages}/database/migrations/0022_add_documents.sql +0 -0
- /package/{src → packages}/database/migrations/0023_remove_param_and_doubao.sql +0 -0
- /package/{src → packages}/database/migrations/0024_add_rbac_tables.sql +0 -0
- /package/{src → packages}/database/migrations/0025_add_provider_config.sql +0 -0
- /package/{src → packages}/database/migrations/0026_add_autovacuum_tuning.sql +0 -0
- /package/{src → packages}/database/migrations/0027_ai_image.sql +0 -0
- /package/{src → packages}/database/migrations/meta/0000_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0001_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0002_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0003_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0004_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0005_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0006_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0007_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0008_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0009_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0010_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0011_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0012_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0013_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0014_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0015_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0016_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0017_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0018_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0019_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0020_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0021_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0022_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0023_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0024_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0025_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0026_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0027_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0028_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/0029_snapshot.json +0 -0
- /package/{src → packages}/database/migrations/meta/_journal.json +0 -0
- /package/{src/database → packages/database/src}/client/db.test.ts +0 -0
- /package/{src/database → packages/database/src}/client/pglite.ts +0 -0
- /package/{src/database → packages/database/src}/client/pglite.worker.ts +0 -0
- /package/{src/database → packages/database/src}/client/type.ts +0 -0
- /package/{src/database → packages/database/src}/models/__tests__/fixtures/embedding.ts +0 -0
- /package/{src/database → packages/database/src}/repositories/aiInfra/index.test.ts +0 -0
- /package/{src/database → packages/database/src}/repositories/dataExporter/index.test.ts +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/__tests__/fixtures/agents.json +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/__tests__/fixtures/agentsToSessions.json +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/__tests__/fixtures/topic.json +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/__tests__/fixtures/userSettings.json +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/__tests__/fixtures/with-client-id.json +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/deprecated/__tests__/fixtures/messages.json +0 -0
- /package/{src/database → packages/database/src}/repositories/dataImporter/deprecated/__tests__/index.test.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/_helpers.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/apiKey.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/asyncTask.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/index.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/nextauth.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/oidc.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/rag.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/rbac.ts +0 -0
- /package/{src/database → packages/database/src}/schemas/user.ts +0 -0
- /package/{src/database → packages/database/src}/server/index.ts +0 -0
- /package/{src/database → packages/database/src}/server/models/ragEval/index.ts +0 -0
- /package/{src/database → packages/database/src}/type.ts +0 -0
- /package/{src/database → packages/database/src}/utils/genWhere.ts +0 -0
- /package/{src/database → packages/database/src}/utils/idGenerator.test.ts +0 -0
- /package/{tests → packages/database/tests}/setup-db.ts +0 -0
- /package/{src/utils → packages/types/src}/zustand.ts +0 -0
- /package/{src/utils → packages/utils/src}/__snapshots__/parseModels.test.ts.snap +0 -0
- /package/{src/utils → packages/utils/src}/_deprecated/__snapshots__/parseModels.test.ts.snap +0 -0
- /package/{src/utils → packages/utils/src}/_deprecated/parseModels.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/_deprecated/parseModels.ts +0 -0
- /package/{src/utils → packages/utils/src}/apiKey.ts +0 -0
- /package/{src/utils → packages/utils/src}/basePath.ts +0 -0
- /package/{src/utils → packages/utils/src}/client/GlobalAgentContextManager.ts +0 -0
- /package/{src/utils → packages/utils/src}/client/downloadFile.ts +0 -0
- /package/{src/utils → packages/utils/src}/client/exportFile.ts +0 -0
- /package/{src/utils → packages/utils/src}/client/topic.ts +0 -0
- /package/{src/utils → packages/utils/src}/client/xor-obfuscation.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/client/xor-obfuscation.ts +0 -0
- /package/{src/utils → packages/utils/src}/clientIP.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/clientIP.ts +0 -0
- /package/{src/utils → packages/utils/src}/clipboard.ts +0 -0
- /package/{src/utils → packages/utils/src}/colorUtils.ts +0 -0
- /package/{src/utils → packages/utils/src}/compass.ts +0 -0
- /package/{src/utils → packages/utils/src}/compressImage.ts +0 -0
- /package/{src/utils → packages/utils/src}/difference.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/difference.ts +0 -0
- /package/{src/utils → packages/utils/src}/electron/desktopRemoteRPCFetch.ts +0 -0
- /package/{src/utils → packages/utils/src}/env.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/__tests__/parseError.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/fetchEventSource/index.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/fetchEventSource/parse.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/headers.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/index.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/parseError.ts +0 -0
- /package/{src/utils → packages/utils/src}/fetch/request.ts +0 -0
- /package/{src/utils → packages/utils/src}/format.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/format.ts +0 -0
- /package/{src/utils → packages/utils/src}/genOG.ts +0 -0
- /package/{src/utils → packages/utils/src}/getFallbackModelProperty.ts +0 -0
- /package/{src/utils → packages/utils/src}/imageToBase64.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/imageToBase64.ts +0 -0
- /package/{src/utils → packages/utils/src}/isChunkingUnsupported.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/isChunkingUnsupported.ts +0 -0
- /package/{src/utils → packages/utils/src}/keyboard.ts +0 -0
- /package/{src/utils → packages/utils/src}/localStorage.ts +0 -0
- /package/{src/utils → packages/utils/src}/locale.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/merge.ts +0 -0
- /package/{src/utils → packages/utils/src}/number.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/number.ts +0 -0
- /package/{src/utils → packages/utils/src}/object.ts +0 -0
- /package/{src/utils → packages/utils/src}/parseMarkdown.ts +0 -0
- /package/{src/utils → packages/utils/src}/parseModels.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/pricing.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/pricing.ts +0 -0
- /package/{src/utils → packages/utils/src}/promptTemplate.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/promptTemplate.ts +0 -0
- /package/{src/utils → packages/utils/src}/safeParseJSON.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/safeParseJSON.ts +0 -0
- /package/{src/utils → packages/utils/src}/sanitizeUTF8.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/__tests__/auth.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/auth.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/correctOIDCUrl.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/geo.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/pageProps.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/responsive.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/routeVariants.ts +0 -0
- /package/{src/utils → packages/utils/src}/server/xor.ts +0 -0
- /package/{src/utils → packages/utils/src}/sleep.ts +0 -0
- /package/{src/utils → packages/utils/src}/storeDebug.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/storeDebug.ts +0 -0
- /package/{src/utils → packages/utils/src}/time.test.ts +0 -0
- /package/{src/utils → packages/utils/src}/time.ts +0 -0
- /package/{src/utils → packages/utils/src}/tokenizer/client.ts +0 -0
- /package/{src/utils → packages/utils/src}/tokenizer/estimated.ts +0 -0
- /package/{src/utils → packages/utils/src}/tokenizer/index.ts +0 -0
- /package/{src/utils → packages/utils/src}/tokenizer/server.ts +0 -0
- /package/{src/utils → packages/utils/src}/tokenizer/tokenizer.worker.ts +0 -0
- /package/{src/utils → packages/utils/src}/toolCall.ts +0 -0
- /package/{src/utils → packages/utils/src}/toolManifest.ts +0 -0
- /package/{src/utils → packages/utils/src}/trace.ts +0 -0
- /package/{src/utils → packages/utils/src}/units.ts +0 -0
- /package/{src/utils → packages/utils/src}/uploadFIle.ts +0 -0
- /package/{src/utils → packages/utils/src}/url.ts +0 -0
- /package/{src/utils → packages/utils/src}/uuid.ts +0 -0
@@ -1,35 +1,35 @@
|
|
1
1
|
import { template } from 'lodash-es';
|
2
2
|
|
3
|
-
import { uuid } from '@/utils/uuid';
|
4
|
-
|
5
3
|
import { useUserStore } from '@/store/user';
|
6
4
|
import { userProfileSelectors } from '@/store/user/selectors';
|
7
5
|
|
6
|
+
import { uuid } from '../uuid';
|
7
|
+
|
8
8
|
const placeholderVariablesRegex = /{{(.*?)}}/g;
|
9
9
|
|
10
10
|
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
11
11
|
export const VARIABLE_GENERATORS = {
|
12
12
|
/**
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
13
|
+
* 时间类模板变量
|
14
|
+
*
|
15
|
+
* | Value | Example |
|
16
|
+
* |-------|---------|
|
17
|
+
* | `{{date}}` | 12/25/2023 |
|
18
|
+
* | `{{datetime}}` | 12/25/2023, 2:30:45 PM |
|
19
|
+
* | `{{day}}` | 25 |
|
20
|
+
* | `{{hour}}` | 14 |
|
21
|
+
* | `{{iso}}` | 2023-12-25T14:30:45.123Z |
|
22
|
+
* | `{{locale}}` | zh-CN |
|
23
|
+
* | `{{minute}}` | 30 |
|
24
|
+
* | `{{month}}` | 12 |
|
25
|
+
* | `{{second}}` | 45 |
|
26
|
+
* | `{{time}}` | 2:30:45 PM |
|
27
|
+
* | `{{timestamp}}` | 1703538645123 |
|
28
|
+
* | `{{timezone}}` | America/New_York |
|
29
|
+
* | `{{weekday}}` | Monday |
|
30
|
+
* | `{{year}}` | 2023 |
|
31
|
+
*
|
32
|
+
*/
|
33
33
|
date: () => new Date().toLocaleDateString(),
|
34
34
|
datetime: () => new Date().toLocaleString(),
|
35
35
|
day: () => new Date().getDate().toString().padStart(2, '0'),
|
@@ -46,65 +46,71 @@ export const VARIABLE_GENERATORS = {
|
|
46
46
|
year: () => new Date().getFullYear().toString(),
|
47
47
|
|
48
48
|
/**
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
49
|
+
* 用户信息类模板变量
|
50
|
+
*
|
51
|
+
* | Value | Example |
|
52
|
+
* |-------|---------|
|
53
|
+
* | `{{email}}` | demo@lobehub.com |
|
54
|
+
* | `{{nickname}}` | 社区版用户 |
|
55
|
+
* | `{{username}}` | LobeChat |
|
56
|
+
*
|
57
|
+
*/
|
58
58
|
email: () => userProfileSelectors.email(useUserStore.getState()) ?? '',
|
59
59
|
nickname: () => userProfileSelectors.nickName(useUserStore.getState()) ?? '',
|
60
|
-
username: () =>
|
60
|
+
username: () =>
|
61
|
+
userProfileSelectors.displayUserName(useUserStore.getState()) ??
|
62
|
+
userProfileSelectors.fullName(useUserStore.getState()) ??
|
63
|
+
'',
|
61
64
|
|
62
65
|
/**
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
66
|
+
* 随机值类模板变量
|
67
|
+
*
|
68
|
+
* | Value | Example |
|
69
|
+
* |-------|---------|
|
70
|
+
* | `{{random}}` | 100041 |
|
71
|
+
* | `{{random_bool}}` | true |
|
72
|
+
* | `{{random_float}}` | 76.02 |
|
73
|
+
* | `{{random_hex}}` | de0dbd |
|
74
|
+
* | `{{random_int}}` | 68 |
|
75
|
+
* | `{{random_string}}` | wqn9zfrqe7h |
|
76
|
+
*
|
77
|
+
*/
|
75
78
|
random: () => Math.floor(Math.random() * 1_000_000 + 1).toString(),
|
76
79
|
random_bool: () => (Math.random() > 0.5 ? 'true' : 'false'),
|
77
80
|
random_float: () => (Math.random() * 100).toFixed(2),
|
78
|
-
random_hex: () =>
|
81
|
+
random_hex: () =>
|
82
|
+
Math.floor(Math.random() * 16_777_215)
|
83
|
+
.toString(16)
|
84
|
+
.padStart(6, '0'),
|
79
85
|
random_int: () => Math.floor(Math.random() * 100 + 1).toString(),
|
80
86
|
random_string: () => Math.random().toString(36).slice(2, 15),
|
81
87
|
random_digit: () => Math.floor(Math.random() * 10).toString(),
|
82
88
|
|
83
89
|
/**
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
90
|
+
* UUID 类模板变量
|
91
|
+
*
|
92
|
+
* | Value | Example |
|
93
|
+
* |-------|---------|
|
94
|
+
* | `{{uuid}}` | dd90b35-669f-4e87-beb8-ac6877f6995d |
|
95
|
+
* | `{{uuid_short}}` | dd90b35 |
|
96
|
+
*
|
97
|
+
*/
|
92
98
|
uuid: () => uuid(),
|
93
99
|
uuid_short: () => uuid().split('-')[0],
|
94
100
|
|
95
101
|
/**
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
language: () => typeof navigator !== 'undefined' ? navigator.language : '',
|
106
|
-
platform: () => typeof navigator !== 'undefined' ? navigator.platform : '',
|
107
|
-
user_agent: () => typeof navigator !== 'undefined' ? navigator.userAgent : '',
|
102
|
+
* 平台类模板变量
|
103
|
+
*
|
104
|
+
* | Value | Example |
|
105
|
+
* |-------|---------|
|
106
|
+
* | `{{language}}` | zh-CN |
|
107
|
+
* | `{{platform}}` | MacIntel |
|
108
|
+
* | `{{user_agent}}` | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0 |
|
109
|
+
*
|
110
|
+
*/
|
111
|
+
language: () => (typeof navigator !== 'undefined' ? navigator.language : ''),
|
112
|
+
platform: () => (typeof navigator !== 'undefined' ? navigator.platform : ''),
|
113
|
+
user_agent: () => (typeof navigator !== 'undefined' ? navigator.userAgent : ''),
|
108
114
|
} as Record<string, () => string>;
|
109
115
|
|
110
116
|
/**
|
@@ -114,7 +120,7 @@ export const VARIABLE_GENERATORS = {
|
|
114
120
|
*/
|
115
121
|
const extractPlaceholderVariables = (text: string): string[] => {
|
116
122
|
const matches = [...text.matchAll(placeholderVariablesRegex)];
|
117
|
-
return matches.map(m => m[1].trim());
|
123
|
+
return matches.map((m) => m[1].trim());
|
118
124
|
};
|
119
125
|
|
120
126
|
/**
|
@@ -132,7 +138,7 @@ export const parsePlaceholderVariables = (text: string, depth = 2): string => {
|
|
132
138
|
const variables = Object.fromEntries(
|
133
139
|
extractPlaceholderVariables(result)
|
134
140
|
.map((key) => [key, VARIABLE_GENERATORS[key]?.()])
|
135
|
-
.filter(([, value]) => value !== undefined)
|
141
|
+
.filter(([, value]) => value !== undefined),
|
136
142
|
);
|
137
143
|
|
138
144
|
const replaced = template(result, { interpolate: placeholderVariablesRegex })(variables);
|
@@ -153,7 +159,7 @@ export const parsePlaceholderVariables = (text: string, depth = 2): string => {
|
|
153
159
|
* @returns 处理后的消息数组
|
154
160
|
*/
|
155
161
|
export const parsePlaceholderVariablesMessages = (messages: any[]): any[] =>
|
156
|
-
messages.map(message => {
|
162
|
+
messages.map((message) => {
|
157
163
|
if (!message?.content) return message;
|
158
164
|
|
159
165
|
const { content } = message;
|
@@ -167,11 +173,9 @@ export const parsePlaceholderVariablesMessages = (messages: any[]): any[] =>
|
|
167
173
|
if (Array.isArray(content)) {
|
168
174
|
return {
|
169
175
|
...message,
|
170
|
-
content: content.map(item =>
|
171
|
-
item?.type === 'text'
|
172
|
-
|
173
|
-
: item
|
174
|
-
)
|
176
|
+
content: content.map((item) =>
|
177
|
+
item?.type === 'text' ? { ...item, text: parsePlaceholderVariables(item.text) } : item,
|
178
|
+
),
|
175
179
|
};
|
176
180
|
}
|
177
181
|
|
@@ -1,9 +1,8 @@
|
|
1
|
+
import { MESSAGE_CANCEL_FLAT } from '@lobechat/const';
|
2
|
+
import { ChatMessageError } from '@lobechat/types';
|
1
3
|
import { afterEach, describe, expect, it, vi } from 'vitest';
|
2
4
|
|
3
|
-
import {
|
4
|
-
import { ChatMessageError } from '@/types/message';
|
5
|
-
import { sleep } from '@/utils/sleep';
|
6
|
-
|
5
|
+
import { sleep } from '../../sleep';
|
7
6
|
import { FetchEventSourceInit } from '../fetchEventSource';
|
8
7
|
import { fetchEventSource } from '../fetchEventSource';
|
9
8
|
import { fetchSSE } from '../fetchSSE';
|
@@ -15,8 +15,8 @@ import {
|
|
15
15
|
} from '@/types/message';
|
16
16
|
import { ChatImageChunk } from '@/types/message/image';
|
17
17
|
import { GroundingSearch } from '@/types/search';
|
18
|
-
import { nanoid } from '@/utils/uuid';
|
19
18
|
|
19
|
+
import { nanoid } from '../uuid';
|
20
20
|
import { fetchEventSource } from './fetchEventSource';
|
21
21
|
import { getMessageError } from './parseError';
|
22
22
|
|
@@ -2,7 +2,8 @@ import { resolveAcceptLanguage } from 'resolve-accept-language';
|
|
2
2
|
|
3
3
|
import { DEFAULT_LANG } from '@/const/locale';
|
4
4
|
import { Locales, locales, normalizeLocale } from '@/locales/resources';
|
5
|
-
|
5
|
+
|
6
|
+
import { RouteVariants } from './server/routeVariants';
|
6
7
|
|
7
8
|
export const getAntdLocale = async (lang?: string) => {
|
8
9
|
let normalLang: any = normalizeLocale(lang);
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import { produce } from 'immer';
|
2
2
|
|
3
3
|
import { AiFullModelCard, AiModelType } from '@/types/aiModel';
|
4
|
-
|
5
|
-
import {
|
4
|
+
|
5
|
+
import { getModelPropertyWithFallback } from './getFallbackModelProperty';
|
6
|
+
import { merge } from './merge';
|
6
7
|
|
7
8
|
/**
|
8
9
|
* Parse model string to add or remove models.
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { geolocation } from '@vercel/functions';
|
2
2
|
import { getCountry } from 'countries-and-timezones';
|
3
3
|
import { NextRequest } from 'next/server';
|
4
|
-
import { describe, expect, it, vi } from 'vitest';
|
4
|
+
import { afterEach, describe, expect, it, vi } from 'vitest';
|
5
5
|
|
6
6
|
import { parseDefaultThemeFromCountry } from '../geo';
|
7
7
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
2
2
|
|
3
|
-
import { obfuscatePayloadWithXOR } from '
|
4
|
-
|
3
|
+
import { obfuscatePayloadWithXOR } from '../client/xor-obfuscation';
|
5
4
|
import { getXorPayload } from './xor';
|
6
5
|
|
7
6
|
describe('getXorPayload', () => {
|
@@ -0,0 +1,16 @@
|
|
1
|
+
import { join, resolve } from 'node:path';
|
2
|
+
import { defineConfig } from 'vitest/config';
|
3
|
+
|
4
|
+
export default defineConfig({
|
5
|
+
test: {
|
6
|
+
alias: {
|
7
|
+
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
8
|
+
'@/types': resolve(__dirname, '../types/src'),
|
9
|
+
'@/const': resolve(__dirname, '../const/src'),
|
10
|
+
'@': resolve(__dirname, '../../src'),
|
11
|
+
/* eslint-enable */
|
12
|
+
},
|
13
|
+
environment: 'happy-dom',
|
14
|
+
setupFiles: join(__dirname, './tests/setup.ts'),
|
15
|
+
},
|
16
|
+
});
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { pgGenerate } from 'drizzle-dbml-generator';
|
2
2
|
import { join } from 'node:path';
|
3
3
|
|
4
|
-
import * as schema from '../../
|
4
|
+
import * as schema from '../../packages/database/src/schemas';
|
5
5
|
|
6
6
|
const out = join(__dirname, '../../docs/development/database-schema.dbml');
|
7
7
|
const relational = true;
|
@@ -2,12 +2,12 @@ import { readMigrationFiles } from 'drizzle-orm/migrator';
|
|
2
2
|
import { writeFileSync } from 'node:fs';
|
3
3
|
import { join } from 'node:path';
|
4
4
|
|
5
|
-
const dbBase = join(__dirname, '../../
|
5
|
+
const dbBase = join(__dirname, '../../packages/database');
|
6
6
|
const migrationsFolder = join(dbBase, './migrations');
|
7
7
|
const migrations = readMigrationFiles({ migrationsFolder: migrationsFolder });
|
8
8
|
|
9
9
|
writeFileSync(
|
10
|
-
join(dbBase, './
|
10
|
+
join(dbBase, './src/core/migrations.json'),
|
11
11
|
JSON.stringify(migrations, null, 2), // null, 2 adds indentation for better readability
|
12
12
|
);
|
13
13
|
|
@@ -10,12 +10,12 @@ import { DB_FAIL_INIT_HINT, PGVECTOR_HINT } from './errorHint';
|
|
10
10
|
// dotenv_config_path parameter that's passed to Node.js
|
11
11
|
dotenv.config();
|
12
12
|
|
13
|
-
const migrationsFolder = join(__dirname, '../../
|
13
|
+
const migrationsFolder = join(__dirname, '../../packages/database/migrations');
|
14
14
|
|
15
15
|
const isDesktop = process.env.NEXT_PUBLIC_IS_DESKTOP_APP === '1';
|
16
16
|
|
17
17
|
const runMigrations = async () => {
|
18
|
-
const { serverDB } = await import('../../
|
18
|
+
const { serverDB } = await import('../../packages/database/src/server');
|
19
19
|
|
20
20
|
if (process.env.DATABASE_DRIVER === 'node') {
|
21
21
|
await nodeMigrate(serverDB, { migrationsFolder });
|
@@ -0,0 +1,81 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
echo "🚀 Setting up image upload development environment..."
|
4
|
+
|
5
|
+
# 1. 设置 PostgreSQL (无密码本地开发)
|
6
|
+
echo "Step 1: Setting up PostgreSQL..."
|
7
|
+
docker stop lobe-postgres 2>/dev/null && docker rm lobe-postgres 2>/dev/null
|
8
|
+
docker run -d --name lobe-postgres \
|
9
|
+
-p 5432:5432 \
|
10
|
+
-e POSTGRES_HOST_AUTH_METHOD=trust \
|
11
|
+
-e POSTGRES_DB=postgres \
|
12
|
+
postgres:15
|
13
|
+
|
14
|
+
echo "Waiting for PostgreSQL to start..."
|
15
|
+
sleep 10
|
16
|
+
|
17
|
+
# 运行数据库迁移
|
18
|
+
echo "Running database migrations..."
|
19
|
+
pnpm db:migrate
|
20
|
+
|
21
|
+
# 2. 启动 MinIO
|
22
|
+
echo ""
|
23
|
+
echo "Step 2: Starting MinIO..."
|
24
|
+
docker stop lobe-minio 2>/dev/null && docker rm lobe-minio 2>/dev/null
|
25
|
+
docker run -d --name lobe-minio \
|
26
|
+
-p 9000:9000 -p 9001:9001 \
|
27
|
+
-e MINIO_ROOT_USER=minioadmin \
|
28
|
+
-e MINIO_ROOT_PASSWORD=minioadmin \
|
29
|
+
quay.io/minio/minio:RELEASE.2025-04-22T22-12-26Z server /data --console-address ":9001"
|
30
|
+
|
31
|
+
# 3. 等待 MinIO 启动
|
32
|
+
echo "Waiting for MinIO to start..."
|
33
|
+
sleep 10
|
34
|
+
|
35
|
+
# 4. 创建 bucket 并设置权限
|
36
|
+
echo "Creating bucket and setting permissions..."
|
37
|
+
docker run --rm \
|
38
|
+
--link lobe-minio:minio \
|
39
|
+
--entrypoint bash \
|
40
|
+
quay.io/minio/mc:RELEASE.2025-04-18T16-45-00Z \
|
41
|
+
-c "
|
42
|
+
mc config host add minio http://minio:9000 minioadmin minioadmin
|
43
|
+
mb_output=\$(mc mb minio/lobe-chat 2>&1)
|
44
|
+
mb_exit=\$?
|
45
|
+
if [ \$mb_exit -ne 0 ]; then
|
46
|
+
echo \"\$mb_output\" | grep -q 'Bucket already exists' || { echo \"Failed to create bucket: \$mb_output\"; exit \$mb_exit; }
|
47
|
+
fi
|
48
|
+
mc anonymous set public minio/lobe-chat
|
49
|
+
"
|
50
|
+
|
51
|
+
# 5. 检查并添加 S3 配置
|
52
|
+
if [ ! -f .env.desktop ]; then
|
53
|
+
echo "Creating .env.desktop from .env.example..."
|
54
|
+
cp .env.example .env.desktop
|
55
|
+
fi
|
56
|
+
|
57
|
+
if ! grep -q "S3_ACCESS_KEY_ID" .env.desktop 2>/dev/null; then
|
58
|
+
echo ""
|
59
|
+
echo "Adding S3 configuration to .env.desktop..."
|
60
|
+
echo "" >> .env.desktop
|
61
|
+
echo "# Image Upload Configuration (added by setup-image-dev.sh)" >> .env.desktop
|
62
|
+
echo "S3_ACCESS_KEY_ID=minioadmin" >> .env.desktop
|
63
|
+
echo "S3_SECRET_ACCESS_KEY=minioadmin" >> .env.desktop
|
64
|
+
echo "S3_ENDPOINT=http://localhost:9000" >> .env.desktop
|
65
|
+
echo "S3_BUCKET=lobe-chat" >> .env.desktop
|
66
|
+
echo "S3_REGION=us-east-1" >> .env.desktop
|
67
|
+
echo "S3_PUBLIC_DOMAIN=http://localhost:9000/lobe-chat" >> .env.desktop
|
68
|
+
echo "S3_ENABLE_PATH_STYLE=1" >> .env.desktop
|
69
|
+
else
|
70
|
+
echo "S3 configuration already exists in .env.desktop"
|
71
|
+
fi
|
72
|
+
|
73
|
+
echo ""
|
74
|
+
echo "✅ Image development environment ready!"
|
75
|
+
echo ""
|
76
|
+
echo "Services running:"
|
77
|
+
echo " - PostgreSQL: postgres://postgres@localhost:5432/postgres (no password)"
|
78
|
+
echo " - MinIO S3: http://localhost:9000"
|
79
|
+
echo " - MinIO Console: http://localhost:9001 (minioadmin/minioadmin)"
|
80
|
+
echo ""
|
81
|
+
echo "Next step: pnpm dev:desktop"
|
@@ -1,9 +1,9 @@
|
|
1
|
+
import { CreateNewEvalDatasets } from '@lobechat/types';
|
1
2
|
import { Button, Form, Input } from '@lobehub/ui';
|
2
3
|
import { memo, useState } from 'react';
|
3
4
|
import { useTranslation } from 'react-i18next';
|
4
5
|
|
5
6
|
import { useKnowledgeBaseStore } from '@/store/knowledgeBase';
|
6
|
-
import { CreateNewEvalDatasets } from '@/types/eval';
|
7
7
|
|
8
8
|
interface CreateFormProps {
|
9
9
|
knowledgeBaseId: string;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
3
|
import { ProColumns, ProTable } from '@ant-design/pro-components';
|
4
|
+
import { EvalDatasetRecordRefFile } from '@lobechat/types';
|
4
5
|
import { ActionIcon, Button, Text } from '@lobehub/ui';
|
5
6
|
import { Upload } from 'antd';
|
6
7
|
import { createStyles } from 'antd-style';
|
@@ -12,7 +13,6 @@ import { Center, Flexbox } from 'react-layout-kit';
|
|
12
13
|
import FileIcon from '@/components/FileIcon';
|
13
14
|
import { ragEvalService } from '@/services/ragEval';
|
14
15
|
import { useKnowledgeBaseStore } from '@/store/knowledgeBase';
|
15
|
-
import { EvalDatasetRecordRefFile } from '@/types/eval';
|
16
16
|
|
17
17
|
const createRequest = (activeDatasetId: number) => async () => {
|
18
18
|
const records = await ragEvalService.getDatasetRecords(activeDatasetId);
|
@@ -1,10 +1,9 @@
|
|
1
|
+
import { RAGEvalDataSetItem } from '@lobechat/types';
|
1
2
|
import { createStyles } from 'antd-style';
|
2
3
|
import { parseAsInteger, useQueryState } from 'nuqs';
|
3
4
|
import { memo } from 'react';
|
4
5
|
import { Flexbox } from 'react-layout-kit';
|
5
6
|
|
6
|
-
import { RAGEvalDataSetItem } from '@/types/eval';
|
7
|
-
|
8
7
|
const useStyles = createStyles(({ css, token }) => ({
|
9
8
|
active: css`
|
10
9
|
background: ${token.colorFillTertiary};
|
@@ -1,5 +1,6 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
|
+
import { RAGEvalDataSetItem } from '@lobechat/types';
|
3
4
|
import { ActionIcon } from '@lobehub/ui';
|
4
5
|
import { PlusIcon } from 'lucide-react';
|
5
6
|
import { memo } from 'react';
|
@@ -7,8 +8,6 @@ import { useTranslation } from 'react-i18next';
|
|
7
8
|
import { Flexbox } from 'react-layout-kit';
|
8
9
|
import { Virtuoso } from 'react-virtuoso';
|
9
10
|
|
10
|
-
import { RAGEvalDataSetItem } from '@/types/eval';
|
11
|
-
|
12
11
|
import Item from './Item';
|
13
12
|
|
14
13
|
interface DatasetListProps {
|
package/src/app/[variants]/(main)/repos/[id]/evals/evaluation/CreateEvaluation/CreateForm.tsx
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
+
import { CreateNewEvalEvaluation } from '@lobechat/types';
|
1
2
|
import { Button, Form, Input, Select, TextArea } from '@lobehub/ui';
|
2
3
|
import { memo, useState } from 'react';
|
3
4
|
import { useTranslation } from 'react-i18next';
|
4
5
|
|
5
6
|
import { useKnowledgeBaseStore } from '@/store/knowledgeBase';
|
6
|
-
import { CreateNewEvalEvaluation } from '@/types/eval';
|
7
7
|
|
8
8
|
interface CreateFormProps {
|
9
9
|
knowledgeBaseId: string;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
3
|
import { ActionType, ProColumns, ProTable } from '@ant-design/pro-components';
|
4
|
+
import { EvalEvaluationStatus, RAGEvalEvaluationItem } from '@lobechat/types';
|
4
5
|
import { ActionIcon, Button, ButtonProps, Icon } from '@lobehub/ui';
|
5
6
|
import { App } from 'antd';
|
6
7
|
import { createStyles } from 'antd-style';
|
@@ -12,7 +13,6 @@ import { Flexbox } from 'react-layout-kit';
|
|
12
13
|
|
13
14
|
import { ragEvalService } from '@/services/ragEval';
|
14
15
|
import { useKnowledgeBaseStore } from '@/store/knowledgeBase';
|
15
|
-
import { EvalEvaluationStatus, RAGEvalEvaluationItem } from '@/types/eval';
|
16
16
|
|
17
17
|
import CreateEvaluationButton from '../CreateEvaluation';
|
18
18
|
|
@@ -1,12 +1,11 @@
|
|
1
1
|
'use client';
|
2
2
|
|
3
|
+
import { StoreApiWithSelector } from '@lobechat/types';
|
3
4
|
import { createContext } from 'zustand-utils';
|
4
5
|
import { subscribeWithSelector } from 'zustand/middleware';
|
5
6
|
import { shallow } from 'zustand/shallow';
|
6
7
|
import { createWithEqualityFn } from 'zustand/traditional';
|
7
8
|
|
8
|
-
import { StoreApiWithSelector } from '@/utils/zustand';
|
9
|
-
|
10
9
|
import { Store, store } from './action';
|
11
10
|
|
12
11
|
export type { State } from './initialState';
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { ModelProvider } from '@lobechat/model-runtime';
|
2
2
|
import { chainAnswerWithContext } from '@lobechat/prompts';
|
3
|
+
import { EvalEvaluationStatus } from '@lobechat/types';
|
3
4
|
import { TRPCError } from '@trpc/server';
|
4
5
|
import OpenAI from 'openai';
|
5
6
|
import { z } from 'zod';
|
@@ -17,7 +18,6 @@ import { asyncAuthedProcedure, asyncRouter as router } from '@/libs/trpc/async';
|
|
17
18
|
import { initModelRuntimeWithUserPayload } from '@/server/modules/ModelRuntime';
|
18
19
|
import { ChunkService } from '@/server/services/chunk';
|
19
20
|
import { AsyncTaskError } from '@/types/asyncTask';
|
20
|
-
import { EvalEvaluationStatus } from '@/types/eval';
|
21
21
|
|
22
22
|
const ragEvalProcedure = asyncAuthedProcedure.use(async (opts) => {
|
23
23
|
const { ctx } = opts;
|
@@ -1,4 +1,13 @@
|
|
1
1
|
/* eslint-disable sort-keys-fix/sort-keys-fix */
|
2
|
+
import {
|
3
|
+
EvalDatasetRecord,
|
4
|
+
EvalEvaluationStatus,
|
5
|
+
InsertEvalDatasetRecord,
|
6
|
+
RAGEvalDataSetItem,
|
7
|
+
insertEvalDatasetRecordSchema,
|
8
|
+
insertEvalDatasetsSchema,
|
9
|
+
insertEvalEvaluationSchema,
|
10
|
+
} from '@lobechat/types';
|
2
11
|
import { TRPCError } from '@trpc/server';
|
3
12
|
import dayjs from 'dayjs';
|
4
13
|
import JSONL from 'jsonl-parse-stringify';
|
@@ -17,15 +26,6 @@ import { authedProcedure, router } from '@/libs/trpc/lambda';
|
|
17
26
|
import { keyVaults, serverDatabase } from '@/libs/trpc/lambda/middleware';
|
18
27
|
import { createAsyncCaller } from '@/server/routers/async';
|
19
28
|
import { FileService } from '@/server/services/file';
|
20
|
-
import {
|
21
|
-
EvalDatasetRecord,
|
22
|
-
EvalEvaluationStatus,
|
23
|
-
InsertEvalDatasetRecord,
|
24
|
-
RAGEvalDataSetItem,
|
25
|
-
insertEvalDatasetRecordSchema,
|
26
|
-
insertEvalDatasetsSchema,
|
27
|
-
insertEvalEvaluationSchema,
|
28
|
-
} from '@/types/eval';
|
29
29
|
|
30
30
|
const ragEvalProcedure = authedProcedure
|
31
31
|
.use(serverDatabase)
|