@nocobase/plugin-ai 2.2.0-beta.8 → 2.3.0-alpha.1
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/client-v2.d.ts +1 -0
- package/dist/ai/docs/nocobase/ai-employees/scenarios/company-background-research.md +125 -0
- package/dist/ai/docs/nocobase/api/app/env.md +28 -1
- package/dist/ai/docs/nocobase/api/cli/config/delete.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/index.md +37 -26
- package/dist/ai/docs/nocobase/api/cli/config/set.md +14 -8
- package/dist/ai/docs/nocobase/building-tips/operations-dashboard.md +513 -0
- package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
- package/dist/ai/docs/nocobase/file-manager/file-preview/index.md +3 -12
- package/dist/ai/docs/nocobase/file-manager/stable-url.md +87 -0
- package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
- package/dist/ai/docs/nocobase/file-manager/storage/local.md +12 -1
- package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
- package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
- package/dist/ai/docs/nocobase/get-started/deployment/production.md +24 -2
- package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +178 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +179 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker.mdx +118 -1
- package/dist/ai/docs/nocobase/get-started/installation/env.md +47 -4
- package/dist/ai/docs/nocobase/index.md +1 -1
- package/dist/ai/docs/nocobase/interface-builder/blocks/data-blocks/comment.md +107 -0
- package/dist/ai/docs/nocobase/interface-builder/index.md +7 -6
- package/dist/ai/docs/nocobase/interface-builder/ui-layout/desktop.md +97 -0
- package/dist/ai/docs/nocobase/interface-builder/ui-layout/index.md +50 -0
- package/dist/ai/docs/nocobase/interface-builder/ui-layout/mobile.md +133 -0
- package/dist/ai/docs/nocobase/multi-app/multi-app-vs-multi-portal-vs-multi-space.md +159 -0
- package/dist/ai/docs/nocobase/multi-app/multi-portal/index.md +195 -0
- package/dist/ai/docs/nocobase/nocobase-cli/production/index.md +10 -0
- package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/caddy.md +15 -2
- package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/index.md +1 -1
- package/dist/ai/docs/nocobase/nocobase-cli/production/reverse-proxy/nginx.md +16 -2
- package/dist/ai/docs/nocobase/ops-management/version-control/index.md +1 -0
- package/dist/ai/docs/nocobase/plugins/@nocobase/plugin-block-comment/index.md +14 -0
- package/dist/ai/docs/nocobase/runjs/context/ai.md +206 -0
- package/dist/ai/docs/nocobase/security/guide.md +23 -0
- package/dist/ai/docs/nocobase/tutorials/index.md +20 -1
- package/dist/ai/docs/nocobase/workflow/development/api.md +259 -77
- package/dist/ai/docs/nocobase/workflow/development/index.md +2 -1
- package/dist/ai/docs/nocobase/workflow/development/migration.md +319 -0
- package/dist/ai/docs/nocobase/workflow/development/node.md +84 -51
- package/dist/ai/docs/nocobase/workflow/development/trigger.md +122 -20
- package/dist/ai/tools/formFiller.js +4 -3
- package/dist/ai/tools/subAgentWebSearch.js +20 -15
- package/dist/client/23.65ea8c37cd4b884b.js +10 -0
- package/dist/client/264.cc98933ef65608b6.js +10 -0
- package/dist/client/336.7a8a8853196ad779.js +11 -0
- package/dist/client/372.40eb52905e3f3049.js +10 -0
- package/dist/client/416.92b74ca47e4099c4.js +10 -0
- package/dist/client/446.d63c38d0309fe250.js +10 -0
- package/dist/client/525.203778500aca5d05.js +10 -0
- package/dist/client/663.680bcf6272a8504d.js +10 -0
- package/dist/client/681.399948c18d753667.js +10 -0
- package/dist/client/705.380279da896021fb.js +10 -0
- package/dist/client/ai-employees/1.x/selector/AIContextCollector.d.ts +1 -4
- package/dist/client/ai-employees/permissions/PermissionsTab.d.ts +21 -5
- package/dist/client/index.d.ts +15 -20
- package/dist/client/index.js +8 -8
- package/dist/client/workflow/nodes/employee/index.d.ts +2 -23
- package/dist/client/workflow/nodes/llm/index.d.ts +2 -52
- package/dist/client/workflow/triggers/ai-employee/index.d.ts +2 -83
- package/dist/client-v2/23.1bcb6986b40723d8.js +10 -0
- package/dist/client-v2/264.be92ff6a4d2612f1.js +10 -0
- package/dist/client-v2/336.e406470429e0670e.js +11 -0
- package/dist/client-v2/372.8cc3fde09c9bec77.js +10 -0
- package/dist/client-v2/406.341be51205c674e0.js +10 -0
- package/dist/client-v2/416.0e1c2d9cde43b83d.js +10 -0
- package/dist/client-v2/446.073d450882db29fd.js +10 -0
- package/dist/client-v2/457.d72febb89e88fc00.js +10 -0
- package/dist/client-v2/663.342341f0b2b412d8.js +10 -0
- package/dist/client-v2/681.082f4f1c7b841983.js +10 -0
- package/dist/client-v2/705.1d10027ff8cfdf79.js +10 -0
- package/dist/{client/ai-employees/admin/AvatarSelect.d.ts → client-v2/ai-employees/AIEmployeeDropdown.d.ts} +8 -9
- package/dist/client-v2/ai-employees/AIEmployeeShortcut.d.ts +9 -2
- package/dist/{client → client-v2}/ai-employees/AddContextButton.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/ai-coding/AICodingButton.d.ts +2 -1
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Actions.d.ts +2 -4
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/AddLLMModal.d.ts +2 -4
- package/dist/client-v2/ai-employees/chatbox/components/Attachments.d.ts +27 -0
- package/dist/{client/ai-employees/permissions/Permissions.d.ts → client-v2/ai-employees/chatbox/components/ChatBox.d.ts} +2 -2
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatBoxLayout.d.ts +1 -1
- package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ContextItem.d.ts +1 -1
- package/dist/{client/ai-employees/admin/Employees.d.ts → client-v2/ai-employees/chatbox/components/DebugPanel.d.ts} +1 -1
- package/dist/{client/ai-employees/chatbox/markdown/Code.d.ts → client-v2/ai-employees/chatbox/components/Markdown.d.ts} +12 -5
- package/dist/{client/ai-employees/admin/ProfileSettings.d.ts → client-v2/ai-employees/chatbox/components/MessageContent.d.ts} +3 -2
- package/dist/client-v2/ai-employees/chatbox/components/MessageRenderers.d.ts +39 -0
- package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolCard.d.ts +7 -5
- package/dist/{client/ai-employees/admin/datasource/components/basic → client-v2/ai-employees/chatbox/components}/index.d.ts +5 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChat.d.ts +21 -22
- package/dist/client-v2/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +3 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatConversationActions.d.ts +2 -2
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatMessageActions.d.ts +8 -4
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useToolCallActions.d.ts +1 -1
- package/dist/client-v2/ai-employees/chatbox/hooks/useUploadFiles.d.ts +46 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useWorkflowTasks.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/chatbox/model.d.ts +9 -2
- package/dist/client-v2/ai-employees/chatbox/roles.d.ts +162 -0
- package/dist/client-v2/ai-employees/chatbox/stores/chat-box.d.ts +1 -49
- package/dist/client-v2/ai-employees/chatbox/stores/chat-conversations.d.ts +2 -19
- package/dist/client-v2/ai-employees/chatbox/stores/chat-messages.d.ts +1 -46
- package/dist/{client → client-v2}/ai-employees/chatbox/stores/chat-tool-call.d.ts +1 -15
- package/dist/client-v2/ai-employees/chatbox/stores/chat-tools.d.ts +30 -0
- package/dist/client-v2/ai-employees/chatbox/stores/create-selectors.d.ts +31 -3
- package/dist/{client/ai-employees/chatbox/conversations/common.d.ts → client-v2/ai-employees/chatbox/stores/workflow-tasks.d.ts} +21 -4
- package/dist/client-v2/ai-employees/chatbox/utils/normalizeTriggerTaskOptions.d.ts +19 -0
- package/dist/{client → client-v2}/ai-employees/chatbox/utils.d.ts +26 -6
- package/dist/{client/ai-employees/data-visualization/context.d.ts → client-v2/ai-employees/context/chart-config.d.ts} +1 -1
- package/dist/{client → client-v2}/ai-employees/context/code-editor.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/context/datasource.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/context/flow-models.d.ts +1 -1
- package/dist/{client/ai-employees/admin/datasource/components/DatasourceSettingDetail.d.ts → client-v2/ai-employees/data-modeling/setup.d.ts} +6 -5
- package/dist/{client → client-v2}/ai-employees/datasource/DatasourceSelector.d.ts +6 -2
- package/dist/{client/ai-employees/admin/datasource/flow-models/DatasourceSettingModel.d.ts → client-v2/ai-employees/flow/index.d.ts} +4 -6
- package/dist/{client → client-v2}/ai-employees/form-filler/tools/index.d.ts +1 -1
- package/dist/{client → client-v2}/ai-employees/stores/ai-selection.d.ts +4 -4
- package/dist/{client → client-v2}/ai-employees/stores/dialog-controller.d.ts +4 -4
- package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportCard.d.ts +2 -2
- package/dist/{client/ai-employees/business-report/ui → client-v2/ai-employees/tools}/BusinessReportModal.d.ts +2 -2
- package/dist/{client/ai-employees/1.x/selector/withAISelectable.d.ts → client-v2/ai-employees/tools/ChartGeneratorCard.d.ts} +5 -4
- package/dist/{client/ai-employees/ai-coding/ui → client-v2/ai-employees/tools}/CodeToolCard.d.ts +1 -1
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingCard.d.ts +3 -5
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools}/DataModelingModal.d.ts +4 -6
- package/dist/{client/ai-employees/sub-agents/ui → client-v2/ai-employees/tools}/SubAgentDispatchCard.d.ts +4 -9
- package/dist/{client/ai-employees/AISettingsProvider.d.ts → client-v2/ai-employees/tools/SuggestionsOptionsCard.d.ts} +6 -8
- package/dist/{client/ai-employees/workflow-tasks/ui → client-v2/ai-employees/tools}/WorkflowTaskOutputCard.d.ts +7 -2
- package/dist/{client/ai-employees/ai-coding/tools/context-tools.d.ts → client-v2/ai-employees/tools/ai-coding.d.ts} +3 -1
- package/dist/client-v2/ai-employees/tools/business-report-utils.d.ts +45 -0
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/CollectionNode.d.ts +2 -3
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Diagram.d.ts +1 -1
- package/dist/{client/ai-employees/data-modeling/ui → client-v2/ai-employees/tools/data-modeling}/Table.d.ts +2 -2
- package/dist/client-v2/ai-employees/tools/data-modeling/legacy-template.d.ts +13 -0
- package/dist/client-v2/ai-employees/tools/data-modeling/runtime.d.ts +15 -0
- package/dist/{client/ai-employees → client-v2/ai-employees/tools}/data-modeling/types.d.ts +27 -4
- package/dist/client-v2/ai-employees/tools/data-modeling/useFieldInterfaceOptions.d.ts +151 -0
- package/dist/{client/ai-employees/data-visualization/tools/index.d.ts → client-v2/ai-employees/tools/data-visualization.d.ts} +1 -1
- package/dist/client-v2/ai-employees/tools/index.d.ts +32 -0
- package/dist/client-v2/ai-employees/types.d.ts +101 -7
- package/dist/client-v2/components/RemoteSelect.d.ts +43 -0
- package/dist/{client → client-v2}/debug-logger.d.ts +2 -2
- package/dist/client-v2/f0053e745af0ad03.svg +50 -0
- package/dist/client-v2/index.d.ts +9 -9
- package/dist/client-v2/index.js +37 -1
- package/dist/client-v2/llm-providers/forms.d.ts +44 -0
- package/dist/client-v2/llm-providers/index.d.ts +24 -0
- package/dist/{client/ai-employees/ai-coding/tools/index.d.ts → client-v2/llm-services/utils.d.ts} +5 -3
- package/dist/client-v2/locale.d.ts +14 -0
- package/dist/client-v2/manager/ai-manager.d.ts +55 -0
- package/dist/client-v2/models/ai-employees/AIEmployeeActionModel.d.ts +33 -0
- package/dist/client-v2/models/ai-employees/AIEmployeeShortcutModel.d.ts +44 -0
- package/dist/client-v2/pages/AdminSettingsPage.d.ts +24 -0
- package/dist/client-v2/pages/DatasourceSettingsPage.d.ts +62 -0
- package/dist/client-v2/pages/EmployeesPage.d.ts +62 -0
- package/dist/client-v2/pages/LLMServicesPage.d.ts +75 -0
- package/dist/client-v2/pages/MCPSettingsPage.d.ts +73 -0
- package/dist/client-v2/pages/drawerWidth.d.ts +10 -0
- package/dist/client-v2/pages/permissions/Permissions.d.ts +67 -0
- package/dist/client-v2/pages/permissions/PermissionsTab.d.ts +12 -0
- package/dist/client-v2/pages/useUnsavedChangesBeforeClose.d.ts +29 -0
- package/dist/client-v2/plugin.d.ts +33 -0
- package/dist/client-v2/repositories/AIConfigRepository.d.ts +3 -23
- package/dist/client-v2/runjs/registerAIEmployeeRunJSFacade.d.ts +20 -0
- package/dist/client-v2/workflow/components/FormValueRegistry.d.ts +12 -0
- package/dist/{client/components/ListCollapse.d.ts → client-v2/workflow/components/WorkflowListCollapse.d.ts} +4 -4
- package/dist/client-v2/workflow/constants.d.ts +26 -0
- package/dist/client-v2/workflow/nodes/employee/components/AIEmployeeFieldset.d.ts +11 -0
- package/dist/{client/ai-employees/common/CodeHighlight.d.ts → client-v2/workflow/nodes/employee/components/AIEmployeeSelect.d.ts} +5 -6
- package/dist/{client/ai-employees/ContextAwareTooltip.d.ts → client-v2/workflow/nodes/employee/components/Assignees.d.ts} +2 -1
- package/dist/client-v2/workflow/nodes/employee/components/FeedbackSettings.d.ts +17 -0
- package/dist/client-v2/workflow/nodes/employee/components/FileInputs.d.ts +11 -0
- package/dist/{client/ai-employees/AIEmployeesProvider.d.ts → client-v2/workflow/nodes/employee/components/MessageInputs.d.ts} +2 -3
- package/dist/client-v2/workflow/nodes/employee/components/ModelOptions.d.ts +17 -0
- package/dist/{client/ai-employees/admin/datasource/components/basic/CollectionCascader.d.ts → client-v2/workflow/nodes/employee/components/SkillSettings.d.ts} +6 -3
- package/dist/client-v2/workflow/nodes/employee/components/StructuredOutput.d.ts +11 -0
- package/dist/client-v2/workflow/nodes/employee/components/UserInput.d.ts +18 -0
- package/dist/client-v2/workflow/nodes/employee/components/WebSearchOptions.d.ts +16 -0
- package/dist/client-v2/workflow/nodes/employee/index.d.ts +23 -0
- package/dist/{client/ai-employees/AIEmployeeListItem.d.ts → client-v2/workflow/nodes/llm/components/LLMFieldset.d.ts} +3 -5
- package/dist/{client/admin-settings/AdminSettings.d.ts → client-v2/workflow/nodes/llm/components/Messages.d.ts} +2 -1
- package/dist/client-v2/workflow/nodes/llm/components/StructuredOutput.d.ts +11 -0
- package/dist/client-v2/workflow/nodes/llm/index.d.ts +30 -0
- package/dist/{client/ai-employees/1.x/selector/BlockSelector.d.ts → client-v2/workflow/register.d.ts} +2 -6
- package/dist/client-v2/workflow/triggers/ai-employee/AIEmployeeTriggerConfig.d.ts +11 -0
- package/dist/client-v2/workflow/triggers/ai-employee/Parameters.d.ts +11 -0
- package/dist/client-v2/workflow/triggers/ai-employee/index.d.ts +25 -0
- package/dist/client-v2/workflow/types.d.ts +128 -0
- package/dist/externalVersion.js +20 -25
- package/dist/locale/en-US.json +50 -1
- package/dist/locale/zh-CN.json +50 -1
- package/dist/node_modules/@langchain/mistralai/LICENSE +21 -0
- package/dist/node_modules/@langchain/mistralai/dist/_virtual/rolldown_runtime.cjs +25 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.cjs +859 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.cts +541 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.d.ts +541 -0
- package/dist/node_modules/@langchain/mistralai/dist/chat_models.js +857 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.cjs +140 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.cts +116 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.d.ts +116 -0
- package/dist/node_modules/@langchain/mistralai/dist/embeddings.js +139 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.cjs +21 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.d.cts +4 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.d.ts +4 -0
- package/dist/node_modules/@langchain/mistralai/dist/index.js +5 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.cjs +275 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.d.cts +147 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.d.ts +147 -0
- package/dist/node_modules/@langchain/mistralai/dist/llms.js +274 -0
- package/dist/node_modules/@langchain/mistralai/dist/utils.cjs +61 -0
- package/dist/node_modules/@langchain/mistralai/dist/utils.js +59 -0
- package/dist/node_modules/@langchain/mistralai/package.json +1 -0
- package/dist/node_modules/@langchain/xai/dist/index.cjs +2 -2
- package/dist/node_modules/@langchain/xai/package.json +1 -1
- package/dist/node_modules/fs-extra/package.json +1 -1
- package/dist/node_modules/jsonrepair/package.json +1 -1
- package/dist/node_modules/just-bash/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/ai-employee.d.ts +1 -0
- package/dist/server/ai-employees/ai-employee.js +44 -7
- package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
- package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
- package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
- package/dist/server/ai-employees/middleware/conversation.js +2 -1
- package/dist/server/ai-employees/prompts.d.ts +2 -1
- package/dist/server/ai-employees/prompts.js +8 -2
- package/dist/server/ai-employees/tool-call-sanitizer.d.ts +1 -0
- package/dist/server/ai-employees/tool-call-sanitizer.js +2 -1
- package/dist/server/ai-employees/utils.d.ts +3 -1
- package/dist/server/ai-employees/utils.js +13 -5
- package/dist/server/attachments.d.ts +24 -0
- package/dist/server/attachments.js +204 -0
- package/dist/server/collections/ai-usage-events.d.ts +10 -0
- package/dist/server/collections/ai-usage-events.js +183 -0
- package/dist/server/document-loader/cached.d.ts +1 -0
- package/dist/server/document-loader/cached.js +18 -9
- package/dist/server/document-loader/loader.d.ts +0 -1
- package/dist/server/document-loader/loader.js +25 -8
- package/dist/server/document-loader/types.d.ts +7 -0
- package/dist/server/llm-providers/anthropic.d.ts +2 -1
- package/dist/server/llm-providers/anthropic.js +1 -3
- package/dist/server/llm-providers/dashscope.d.ts +2 -1
- package/dist/server/llm-providers/dashscope.js +16 -1
- package/dist/server/llm-providers/deepseek.d.ts +2 -1
- package/dist/server/llm-providers/deepseek.js +33 -2
- package/dist/server/llm-providers/google-genai.d.ts +1 -1
- package/dist/server/llm-providers/google-genai.js +1 -5
- package/dist/server/llm-providers/kimi/provider.d.ts +2 -1
- package/dist/server/llm-providers/kimi/provider.js +22 -2
- package/dist/server/llm-providers/mistral.d.ts +96 -0
- package/dist/server/llm-providers/mistral.js +325 -0
- package/dist/server/llm-providers/openai/completions.d.ts +2 -1
- package/dist/server/llm-providers/openai/completions.js +17 -1
- package/dist/server/llm-providers/openai/responses.d.ts +2 -1
- package/dist/server/llm-providers/openai/responses.js +17 -1
- package/dist/server/llm-providers/orcarouter.d.ts +35 -0
- package/dist/server/llm-providers/orcarouter.js +155 -0
- package/dist/server/llm-providers/provider.d.ts +16 -4
- package/dist/server/llm-providers/provider.js +60 -18
- package/dist/server/manager/ai-chat-conversation.js +2 -0
- package/dist/server/manager/ai-context-datasource-manager.js +34 -7
- package/dist/server/manager/ai-manager.d.ts +2 -1
- package/dist/server/manager/ai-manager.js +4 -1
- package/dist/server/manager/ai-usage-events.d.ts +49 -0
- package/dist/server/manager/ai-usage-events.js +195 -0
- package/dist/server/plugin.js +18 -0
- package/dist/server/resource/aiConversations.js +44 -1
- package/dist/server/utils.d.ts +5 -2
- package/dist/server/utils.js +11 -19
- package/dist/server/workflow/nodes/employee/files.d.ts +3 -1
- package/dist/server/workflow/nodes/employee/files.js +31 -5
- package/dist/server/workflow/nodes/employee/index.js +92 -46
- package/dist/server/workflow/nodes/employee/tools.js +8 -1
- package/package.json +6 -5
- package/dist/client/119.c6bf8c6433167d81.js +0 -10
- package/dist/client/170.d98eacdc00d9d527.js +0 -10
- package/dist/client/228.b4b709f93b86b6b9.js +0 -10
- package/dist/client/280.003b9e9788599244.js +0 -10
- package/dist/client/290.0f7f441d8a94f03c.js +0 -10
- package/dist/client/331.d547c95410476a69.js +0 -10
- package/dist/client/406.15c09d98faa2ccf1.js +0 -10
- package/dist/client/428.e9f38da3b0d8b498.js +0 -10
- package/dist/client/462.d172d0fe91519e35.js +0 -10
- package/dist/client/486.dcac8f3fcec19c33.js +0 -10
- package/dist/client/502.2b4a51e0a8122e52.js +0 -10
- package/dist/client/525.33a9c8ec28be4ec4.js +0 -10
- package/dist/client/559.a0f2f1cc2be3c039.js +0 -10
- package/dist/client/561.7ec804ef39ec7dcd.js +0 -10
- package/dist/client/580.35ba54ff91b7fe6d.js +0 -10
- package/dist/client/597.b0d64948d74cf6cb.js +0 -10
- package/dist/client/604.89c674f35b52b4ef.js +0 -10
- package/dist/client/614.aa766080f6b99aab.js +0 -10
- package/dist/client/646.d4483b4ff23da0a0.js +0 -10
- package/dist/client/687.224e569a99cae4bb.js +0 -10
- package/dist/client/699.57c0a1acb723202a.js +0 -10
- package/dist/client/711.92cd94681fde7e05.js +0 -10
- package/dist/client/758.a9741e81911e53c3.js +0 -10
- package/dist/client/768.5177bff46ae71a5b.js +0 -10
- package/dist/client/792.abb57765453bcbcc.js +0 -10
- package/dist/client/820.f72ef2462b61d812.js +0 -10
- package/dist/client/832.0cf69e3f43c320b2.js +0 -10
- package/dist/client/927.d95c74ebb8fd51c9.js +0 -10
- package/dist/client/ai-employees/1.x/selector/AISelectorProvider.d.ts +0 -33
- package/dist/client/ai-employees/ProfileCard.d.ts +0 -15
- package/dist/client/ai-employees/admin/ChatSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/DataSourceSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/EnableSwitch.d.ts +0 -10
- package/dist/client/ai-employees/admin/InputsFormSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/KnowledgeBaseSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/ModelSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/SkillSettings.d.ts +0 -19
- package/dist/client/ai-employees/admin/SystemPrompt.d.ts +0 -10
- package/dist/client/ai-employees/admin/Templates.d.ts +0 -10
- package/dist/client/ai-employees/admin/ToolsSettings.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingForm.d.ts +0 -10
- package/dist/client/ai-employees/admin/datasource/components/DatasourceSettingGrid.d.ts +0 -10
- package/dist/client/ai-employees/admin/datasource/components/basic/FieldsTransfer.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/CollectionSetting.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FieldsSetting.d.ts +0 -15
- package/dist/client/ai-employees/admin/datasource/components/form-steps/FilterSetting.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/components/form-steps/Preview.d.ts +0 -13
- package/dist/client/ai-employees/admin/datasource/components/form-steps/SortSetting.d.ts +0 -15
- package/dist/client/ai-employees/admin/datasource/components/form-steps/index.d.ts +0 -13
- package/dist/client/ai-employees/admin/datasource/components/index.d.ts +0 -9
- package/dist/client/ai-employees/admin/datasource/context.d.ts +0 -17
- package/dist/client/ai-employees/admin/datasource/flow-models/index.d.ts +0 -9
- package/dist/client/ai-employees/admin/datasource/index.d.ts +0 -10
- package/dist/client/ai-employees/admin/hooks.d.ts +0 -39
- package/dist/client/ai-employees/admin/mcp/MCPSettings.d.ts +0 -10
- package/dist/client/ai-employees/admin/mcp/MCPToolsList.d.ts +0 -19
- package/dist/client/ai-employees/admin/mcp/context.d.ts +0 -15
- package/dist/client/ai-employees/admin/mcp/schemas.d.ts +0 -1314
- package/dist/client/ai-employees/ai-coding/CodeHistory.d.ts +0 -10
- package/dist/client/ai-employees/ai-coding/markdown/Code.d.ts +0 -16
- package/dist/client/ai-employees/avatars.d.ts +0 -9
- package/dist/client/ai-employees/built-in/utils.d.ts +0 -15
- package/dist/client/ai-employees/business-report/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/business-report/ui/report-utils.d.ts +0 -38
- package/dist/client/ai-employees/chart-generator/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/chart-generator/ui/ECharts.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/AIThinking.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/Attachment.d.ts +0 -14
- package/dist/client/ai-employees/chatbox/AttachmentsHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/ChatBox.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/ContextItemsHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/DebugPanel.d.ts +0 -16
- package/dist/client/ai-employees/chatbox/EditMessageHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/HintMessageHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/MessageRenderer.d.ts +0 -33
- package/dist/client/ai-employees/chatbox/SenderFooter.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/SenderHeader.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/SenderPrefix.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/Upload.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/VirtualList.d.ts +0 -28
- package/dist/client/ai-employees/chatbox/conversations/ConversationsList.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/conversations/WorkflowTasksList.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/conversations/index.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/generative-ui/DefaultToolCard.d.ts +0 -16
- package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +0 -18
- package/dist/client/ai-employees/chatbox/hooks/useUploadFiles.d.ts +0 -12
- package/dist/client/ai-employees/chatbox/markdown/ECharts.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Form.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Generating.d.ts +0 -10
- package/dist/client/ai-employees/chatbox/markdown/Markdown.d.ts +0 -13
- package/dist/client/ai-employees/chatbox/roles.d.ts +0 -32
- package/dist/client/ai-employees/chatbox/stores/chat-box.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-conversations.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +0 -9
- package/dist/client/ai-employees/chatbox/stores/chat-tools.d.ts +0 -51
- package/dist/client/ai-employees/chatbox/stores/create-selectors.d.ts +0 -18
- package/dist/client/ai-employees/chatbox/stores/workflow-tasks.d.ts +0 -45
- package/dist/client/ai-employees/context/classic-pages.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/Table.d.ts +0 -12
- package/dist/client/ai-employees/data-modeling/setup.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/data-modeling/ui/useFieldInterfaceOptions.d.ts +0 -14
- package/dist/client/ai-employees/datasource/DatasourceList.d.ts +0 -17
- package/dist/client/ai-employees/datasource/index.d.ts +0 -9
- package/dist/client/ai-employees/flow/events/index.d.ts +0 -9
- package/dist/client/ai-employees/flow/index.d.ts +0 -36
- package/dist/client/ai-employees/flow/models/AIEmployeeActionModel.d.ts +0 -18
- package/dist/client/ai-employees/flow/models/AIEmployeeShortcutModel.d.ts +0 -30
- package/dist/client/ai-employees/shortcuts/ShortcutList.d.ts +0 -10
- package/dist/client/ai-employees/shortcuts/useShortcuts.d.ts +0 -13
- package/dist/client/ai-employees/stores/context-aware.d.ts +0 -19
- package/dist/client/ai-employees/sub-agents/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/suggestions/tools/index.d.ts +0 -10
- package/dist/client/ai-employees/suggestions/ui/SuggestionsOptions.d.ts +0 -13
- package/dist/client/ai-employees/types.d.ts +0 -259
- package/dist/client/ai-employees/workflow-tasks/tools/index.d.ts +0 -10
- package/dist/client/chat-settings/Messages.d.ts +0 -11
- package/dist/client/chat-settings/StructuredOutput.d.ts +0 -11
- package/dist/client/components/skill-settings.d.ts +0 -22
- package/dist/client/features/components.d.ts +0 -9
- package/dist/client/features/feature-manager.d.ts +0 -9
- package/dist/client/features/index.d.ts +0 -9
- package/dist/client/features/vector-database-provider.d.ts +0 -9
- package/dist/client/features/vector-store-provider.d.ts +0 -9
- package/dist/client/llm-providers/anthropic/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/anthropic/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/anthropic/index.d.ts +0 -10
- package/dist/client/llm-providers/components/Chat.d.ts +0 -10
- package/dist/client/llm-providers/components/ModelSelect.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/dashscope/index.d.ts +0 -10
- package/dist/client/llm-providers/deepseek/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/deepseek/index.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/MessageRenderer.d.ts +0 -13
- package/dist/client/llm-providers/google-genai/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/google-genai/index.d.ts +0 -10
- package/dist/client/llm-providers/kimi/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/kimi/index.d.ts +0 -10
- package/dist/client/llm-providers/mimo/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/mimo/index.d.ts +0 -10
- package/dist/client/llm-providers/ollama/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/ollama/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/ollama/index.d.ts +0 -10
- package/dist/client/llm-providers/openai/completions/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/completions/index.d.ts +0 -10
- package/dist/client/llm-providers/openai/components/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/responses/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/openai/responses/index.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/ProviderSettings.d.ts +0 -10
- package/dist/client/llm-providers/tongyi/index.d.ts +0 -10
- package/dist/client/llm-providers/xai/ModelSettings.d.ts +0 -10
- package/dist/client/llm-providers/xai/index.d.ts +0 -10
- package/dist/client/llm-services/LLMServices.d.ts +0 -13
- package/dist/client/llm-services/component/DefaultModelSelect.d.ts +0 -10
- package/dist/client/llm-services/component/EnabledModelsSelect.d.ts +0 -23
- package/dist/client/llm-services/component/LLMTestFlight.d.ts +0 -10
- package/dist/client/llm-services/component/ModelOptionsSettings.d.ts +0 -10
- package/dist/client/llm-services/component/UnifiedModelSettings.d.ts +0 -10
- package/dist/client/llm-services/hooks/useLLMServiceCatalog.d.ts +0 -18
- package/dist/client/llm-services/llm-providers.d.ts +0 -27
- package/dist/client/llm-services/utils.d.ts +0 -30
- package/dist/client/manager/ai-feature-manager.d.ts +0 -9
- package/dist/client/manager/ai-manager.d.ts +0 -35
- package/dist/client/repositories/AIConfigRepository.d.ts +0 -60
- package/dist/client/repositories/hooks/useAIConfigRepository.d.ts +0 -10
- package/dist/client/schemas/llms.d.ts +0 -347
- package/dist/client/workflow/nodes/employee/components/AIEmployeeSelect.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/assigness.d.ts +0 -11
- package/dist/client/workflow/nodes/employee/components/file-inputs.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/message-inputs.d.ts +0 -12
- package/dist/client/workflow/nodes/employee/components/model-options.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/structured-output.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/components/users-select.d.ts +0 -15
- package/dist/client/workflow/nodes/employee/components/web-search-options.d.ts +0 -10
- package/dist/client/workflow/nodes/employee/configuration.d.ts +0 -12
- package/dist/client/workflow/nodes/employee/flow-models/feedback.d.ts +0 -14
- package/dist/client/workflow/nodes/employee/flow-models/task.d.ts +0 -13
- package/dist/client/workflow/nodes/llm/ModelSettings.d.ts +0 -11
- package/dist/client/workflow/triggers/ai-employee/Parameters.d.ts +0 -13
- package/dist/client-v2/ai-employees/flow/models/AIEmployeeButtonModel.d.ts +0 -32
- /package/dist/{client → client-v2}/ai-employees/AISelection.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/AISelectionControl.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/ai-coding/prompts.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/ai-coding/setup.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/AIEmployeeSwitch.d.ts → client-v2/ai-employees/chatbox/components/AIEmployeeSwitcher.d.ts} +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ChatButton.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/conversations → client-v2/ai-employees/chatbox/components}/Conversations.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Messages.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/ModelSwitcher.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/SearchSwitch.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/Sender.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox/generative-ui → client-v2/ai-employees/chatbox/components}/ToolModal.d.ts +0 -0
- /package/dist/{client/ai-employees/chatbox → client-v2/ai-employees/chatbox/components}/UserPrompt.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useChatBoxEffect.d.ts +0 -0
- /package/dist/{client → client-v2}/ai-employees/chatbox/hooks/useLoadMoreObserver.d.ts +0 -0
- /package/dist/client-v2/ai-employees/{chatbox/stores → stores}/global-store.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/AIEmployeeShortcutListModel.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/models → client-v2/models/ai-employees}/index.d.ts +0 -0
- /package/dist/{client/ai-employees/flow/events/ai-context-selection.d.ts → client-v2/workflow/components/index.d.ts} +0 -0
|
@@ -45,6 +45,7 @@ var import_provider = require("./provider");
|
|
|
45
45
|
var import_ai_manager = require("../manager/ai-manager");
|
|
46
46
|
var import_lodash = __toESM(require("lodash"));
|
|
47
47
|
var import_reasoning = require("./common/reasoning");
|
|
48
|
+
const DEEPSEEK_REASONING_EFFORTS = /* @__PURE__ */ new Set(["low", "medium", "high"]);
|
|
48
49
|
class ReasoningDeepSeek extends import_deepseek.ChatDeepSeek {
|
|
49
50
|
async _generate(messages, options, runManager) {
|
|
50
51
|
const reasoningMap = (0, import_reasoning.collectReasoningMap)(messages);
|
|
@@ -80,6 +81,7 @@ class DeepSeekProvider extends import_provider.LLMProvider {
|
|
|
80
81
|
createModel() {
|
|
81
82
|
const { apiKey } = this.serviceOptions || {};
|
|
82
83
|
const { responseFormat } = this.modelOptions || {};
|
|
84
|
+
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
83
85
|
const modelKwargs = {};
|
|
84
86
|
if (responseFormat) {
|
|
85
87
|
modelKwargs["response_format"] = {
|
|
@@ -89,7 +91,11 @@ class DeepSeekProvider extends import_provider.LLMProvider {
|
|
|
89
91
|
return new ReasoningDeepSeek({
|
|
90
92
|
apiKey,
|
|
91
93
|
...this.modelOptions,
|
|
92
|
-
|
|
94
|
+
...reasoningOptions.modelRequestParams || {},
|
|
95
|
+
modelKwargs: {
|
|
96
|
+
...modelKwargs,
|
|
97
|
+
...reasoningOptions.modelKwargs || {}
|
|
98
|
+
},
|
|
93
99
|
configuration: {
|
|
94
100
|
baseURL: this.getResolvedBaseURL()
|
|
95
101
|
},
|
|
@@ -124,6 +130,31 @@ class DeepSeekProvider extends import_provider.LLMProvider {
|
|
|
124
130
|
}
|
|
125
131
|
return null;
|
|
126
132
|
}
|
|
133
|
+
resolveReasoningOptions(reasoning) {
|
|
134
|
+
if (!reasoning || reasoning.mode === "default") {
|
|
135
|
+
return {};
|
|
136
|
+
}
|
|
137
|
+
if (reasoning.mode === "off") {
|
|
138
|
+
return {
|
|
139
|
+
modelKwargs: {
|
|
140
|
+
thinking: {
|
|
141
|
+
type: "disabled"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
if (!DEEPSEEK_REASONING_EFFORTS.has(reasoning.mode)) {
|
|
147
|
+
return {};
|
|
148
|
+
}
|
|
149
|
+
return {
|
|
150
|
+
modelKwargs: {
|
|
151
|
+
thinking: {
|
|
152
|
+
type: "enabled"
|
|
153
|
+
},
|
|
154
|
+
reasoning_effort: reasoning.mode
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
}
|
|
127
158
|
isApiSupportedAttachment(attachment) {
|
|
128
159
|
return false;
|
|
129
160
|
}
|
|
@@ -132,7 +163,7 @@ const deepseekProviderOptions = {
|
|
|
132
163
|
title: "DeepSeek",
|
|
133
164
|
supportedModel: [import_ai_manager.SupportedModel.LLM],
|
|
134
165
|
models: {
|
|
135
|
-
[import_ai_manager.SupportedModel.LLM]: ["deepseek-chat", "deepseek-reasoner"]
|
|
166
|
+
[import_ai_manager.SupportedModel.LLM]: ["deepseek-v4-pro", "deepseek-v4-flash", "deepseek-chat", "deepseek-reasoner"]
|
|
136
167
|
},
|
|
137
168
|
provider: DeepSeekProvider
|
|
138
169
|
};
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { ChatGoogleGenerativeAI } from '@langchain/google-genai';
|
|
10
10
|
import { EmbeddingProvider, LLMProvider, ParsedAttachmentResult } from './provider';
|
|
11
11
|
import { Model } from '@nocobase/database';
|
|
12
|
-
import { AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
12
|
+
import type { AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
13
13
|
import { LLMProviderMeta } from '../manager/ai-manager';
|
|
14
14
|
import { EmbeddingsInterface } from '@langchain/core/embeddings';
|
|
15
15
|
import { Context } from '@nocobase/actions';
|
|
@@ -34,7 +34,6 @@ module.exports = __toCommonJS(google_genai_exports);
|
|
|
34
34
|
var import_google_genai = require("@langchain/google-genai");
|
|
35
35
|
var import_provider = require("./provider");
|
|
36
36
|
var import_utils = require("@nocobase/utils");
|
|
37
|
-
var import_utils2 = require("../utils");
|
|
38
37
|
var import_ai_manager = require("../manager/ai-manager");
|
|
39
38
|
const GOOGLE_GEN_AI_URL = "https://generativelanguage.googleapis.com";
|
|
40
39
|
class GoogleGenAIProvider extends import_provider.LLMProvider {
|
|
@@ -120,10 +119,8 @@ class GoogleGenAIProvider extends import_provider.LLMProvider {
|
|
|
120
119
|
}
|
|
121
120
|
async convertToContent(ctx, attachment) {
|
|
122
121
|
var _a;
|
|
123
|
-
const
|
|
124
|
-
const url = await fileManager.getFileURL(attachment);
|
|
122
|
+
const data = await this.encodeAttachment(ctx, attachment);
|
|
125
123
|
if ((_a = attachment.mimetype) == null ? void 0 : _a.startsWith("image/")) {
|
|
126
|
-
const data = await (0, import_utils2.encodeFile)(ctx, decodeURIComponent(url));
|
|
127
124
|
return {
|
|
128
125
|
placement: "contentBlocks",
|
|
129
126
|
content: {
|
|
@@ -134,7 +131,6 @@ class GoogleGenAIProvider extends import_provider.LLMProvider {
|
|
|
134
131
|
}
|
|
135
132
|
};
|
|
136
133
|
} else {
|
|
137
|
-
const data = await (0, import_utils2.encodeFile)(ctx, decodeURIComponent(url));
|
|
138
134
|
return {
|
|
139
135
|
placement: "contentBlocks",
|
|
140
136
|
content: {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { AIMessageChunk } from '@langchain/core/messages';
|
|
10
10
|
import { Model } from '@nocobase/database';
|
|
11
|
-
import { LLMProvider } from '../provider';
|
|
11
|
+
import { LLMProvider, ReasoningOptions, ResolvedReasoningOptions } from '../provider';
|
|
12
12
|
import { LLMProviderMeta } from '../../manager/ai-manager';
|
|
13
13
|
import { CachedDocumentLoader } from '../../document-loader';
|
|
14
14
|
import { ReasoningChatOpenAI } from '../common/reasoning';
|
|
@@ -28,6 +28,7 @@ export declare class KimiProvider extends LLMProvider {
|
|
|
28
28
|
status: string;
|
|
29
29
|
content: string;
|
|
30
30
|
};
|
|
31
|
+
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
31
32
|
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
32
33
|
protected get documentLoader(): CachedDocumentLoader;
|
|
33
34
|
}
|
|
@@ -46,6 +46,7 @@ var import_ai_manager = require("../../manager/ai-manager");
|
|
|
46
46
|
var import_document_loader = require("../../document-loader");
|
|
47
47
|
var import_document_loader2 = require("./document-loader");
|
|
48
48
|
var import_reasoning = require("../common/reasoning");
|
|
49
|
+
const KIMI_THINKING_SWITCH_MODELS = /* @__PURE__ */ new Set(["kimi-k2.5", "kimi-k2.6"]);
|
|
49
50
|
class KimiProvider extends import_provider.LLMProvider {
|
|
50
51
|
_documentLoader;
|
|
51
52
|
get baseURL() {
|
|
@@ -55,6 +56,7 @@ class KimiProvider extends import_provider.LLMProvider {
|
|
|
55
56
|
const { apiKey } = this.serviceOptions || {};
|
|
56
57
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
57
58
|
const { name, schema } = structuredOutput || {};
|
|
59
|
+
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
58
60
|
const responseFormatOptions = {
|
|
59
61
|
type: responseFormat ?? "text"
|
|
60
62
|
};
|
|
@@ -65,8 +67,10 @@ class KimiProvider extends import_provider.LLMProvider {
|
|
|
65
67
|
apiKey,
|
|
66
68
|
...this.modelOptions,
|
|
67
69
|
modelKwargs: {
|
|
68
|
-
response_format: responseFormatOptions
|
|
70
|
+
response_format: responseFormatOptions,
|
|
71
|
+
...reasoningOptions.modelKwargs || {}
|
|
69
72
|
},
|
|
73
|
+
...reasoningOptions.modelRequestParams || {},
|
|
70
74
|
configuration: {
|
|
71
75
|
baseURL: this.getResolvedBaseURL()
|
|
72
76
|
}
|
|
@@ -100,6 +104,22 @@ class KimiProvider extends import_provider.LLMProvider {
|
|
|
100
104
|
}
|
|
101
105
|
return null;
|
|
102
106
|
}
|
|
107
|
+
resolveReasoningOptions(reasoning) {
|
|
108
|
+
var _a;
|
|
109
|
+
if (!reasoning || reasoning.mode === "default") {
|
|
110
|
+
return {};
|
|
111
|
+
}
|
|
112
|
+
if (!KIMI_THINKING_SWITCH_MODELS.has((_a = this.modelOptions) == null ? void 0 : _a.model)) {
|
|
113
|
+
return {};
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
modelKwargs: {
|
|
117
|
+
thinking: {
|
|
118
|
+
type: reasoning.mode === "off" ? "disabled" : "enabled"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
}
|
|
103
123
|
isApiSupportedAttachment(attachment) {
|
|
104
124
|
var _a;
|
|
105
125
|
return ((_a = attachment.mimetype) == null ? void 0 : _a.startsWith("image/")) ?? false;
|
|
@@ -126,7 +146,7 @@ const kimiProviderOptions = {
|
|
|
126
146
|
title: "Kimi",
|
|
127
147
|
supportedModel: [import_ai_manager.SupportedModel.LLM],
|
|
128
148
|
models: {
|
|
129
|
-
[import_ai_manager.SupportedModel.LLM]: ["kimi-k2.
|
|
149
|
+
[import_ai_manager.SupportedModel.LLM]: ["kimi-k2.7-code", "kimi-k2.7-code-highspeed", "kimi-k2.6", "kimi-k2.5"]
|
|
130
150
|
},
|
|
131
151
|
provider: KimiProvider
|
|
132
152
|
};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
import { EmbeddingsInterface } from '@langchain/core/embeddings';
|
|
10
|
+
import { AIMessage, AIMessageChunk } from '@langchain/core/messages';
|
|
11
|
+
import { ChatMistralAI } from '@langchain/mistralai';
|
|
12
|
+
import { AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
13
|
+
import { EmbeddingProvider, LLMProvider, LLMProviderInvokeOptions, ReasoningMode, ReasoningOptions, ResolvedReasoningOptions } from './provider';
|
|
14
|
+
import { LLMProviderMeta } from '../manager/ai-manager';
|
|
15
|
+
import { AIChatContext, AIMessageInput } from '../types/ai-chat-conversation.type';
|
|
16
|
+
import { Model } from '@nocobase/database';
|
|
17
|
+
declare const MISTRAL_REASONING_MODE_KEY = "__nb_reasoning_mode";
|
|
18
|
+
type MistralCallOptions = LLMProviderInvokeOptions & {
|
|
19
|
+
response_format?: {
|
|
20
|
+
type: 'text' | 'json_object';
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
type MistralBeforeRequestHook = (request: Request) => Request | void | Promise<Request | void>;
|
|
24
|
+
type ReasoningChatMistralAIFields = ConstructorParameters<typeof ChatMistralAI>[0] & {
|
|
25
|
+
[MISTRAL_REASONING_MODE_KEY]?: ReasoningMode;
|
|
26
|
+
};
|
|
27
|
+
export declare const injectMistralReasoningEffort: MistralBeforeRequestHook;
|
|
28
|
+
declare class ReasoningChatMistralAI extends ChatMistralAI {
|
|
29
|
+
private readonly reasoningMode?;
|
|
30
|
+
constructor(fields: ReasoningChatMistralAIFields);
|
|
31
|
+
invocationParams(options?: MistralCallOptions): Omit<import("@mistralai/mistralai/models/components/chatcompletionrequest").ChatCompletionRequest | import("@mistralai/mistralai/models/components/chatcompletionstreamrequest").ChatCompletionStreamRequest, "messages"> | {
|
|
32
|
+
__nb_reasoning_mode: "off" | "minimal" | "low" | "medium" | "high" | "xhigh";
|
|
33
|
+
model: string;
|
|
34
|
+
tools?: import("@mistralai/mistralai/models/components/tool").Tool[];
|
|
35
|
+
metadata?: {
|
|
36
|
+
[k: string]: any;
|
|
37
|
+
} | {
|
|
38
|
+
[k: string]: any;
|
|
39
|
+
};
|
|
40
|
+
stream?: boolean;
|
|
41
|
+
responseFormat?: import("@mistralai/mistralai/models/components/responseformat").ResponseFormat;
|
|
42
|
+
temperature?: number;
|
|
43
|
+
maxTokens?: number;
|
|
44
|
+
topP?: number;
|
|
45
|
+
frequencyPenalty?: number;
|
|
46
|
+
presencePenalty?: number;
|
|
47
|
+
n?: number;
|
|
48
|
+
stop?: string | string[];
|
|
49
|
+
toolChoice?: import("@mistralai/mistralai/models/components/toolchoice").ToolChoice | import("@mistralai/mistralai/models/components/toolchoiceenum").ToolChoiceEnum;
|
|
50
|
+
randomSeed?: number;
|
|
51
|
+
prediction?: import("@mistralai/mistralai/models/components/prediction").Prediction;
|
|
52
|
+
parallelToolCalls?: boolean;
|
|
53
|
+
promptMode?: import("@mistralai/mistralai/models/components/mistralpromptmode").MistralPromptMode;
|
|
54
|
+
safePrompt?: boolean;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export declare class MistralProvider extends LLMProvider {
|
|
58
|
+
chatModel: ChatMistralAI;
|
|
59
|
+
get baseURL(): string;
|
|
60
|
+
createModel(): ReasoningChatMistralAI;
|
|
61
|
+
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
62
|
+
stream(context: AIChatContext, options?: MistralCallOptions): Promise<any>;
|
|
63
|
+
invoke(context: AIChatContext, options?: MistralCallOptions): Promise<any>;
|
|
64
|
+
listModels(): Promise<{
|
|
65
|
+
models?: {
|
|
66
|
+
id: string;
|
|
67
|
+
}[];
|
|
68
|
+
code?: number;
|
|
69
|
+
errMsg?: string;
|
|
70
|
+
}>;
|
|
71
|
+
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
72
|
+
reshapeAIMessage({ aiMessage, values }: {
|
|
73
|
+
aiMessage: AIMessage;
|
|
74
|
+
values: AIMessageInput;
|
|
75
|
+
}): void;
|
|
76
|
+
parseResponseMessage(message: Model): {
|
|
77
|
+
key: any;
|
|
78
|
+
createdAt: any;
|
|
79
|
+
content: any;
|
|
80
|
+
role: any;
|
|
81
|
+
};
|
|
82
|
+
parseResponseChunk(chunk: unknown): string;
|
|
83
|
+
parseReasoningContent(chunk: AIMessageChunk): {
|
|
84
|
+
status: string;
|
|
85
|
+
content: string;
|
|
86
|
+
} | null;
|
|
87
|
+
private withResponseFormat;
|
|
88
|
+
private getResolvedServerURL;
|
|
89
|
+
private buildMistralRequestURL;
|
|
90
|
+
}
|
|
91
|
+
export declare class MistralEmbeddingProvider extends EmbeddingProvider {
|
|
92
|
+
protected getDefaultUrl(): string;
|
|
93
|
+
createEmbedding(): EmbeddingsInterface;
|
|
94
|
+
}
|
|
95
|
+
export declare const mistralProviderOptions: LLMProviderMeta;
|
|
96
|
+
export {};
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file is part of the NocoBase (R) project.
|
|
3
|
+
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
+
* Authors: NocoBase Team.
|
|
5
|
+
*
|
|
6
|
+
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
+
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
+
var mistral_exports = {};
|
|
28
|
+
__export(mistral_exports, {
|
|
29
|
+
MistralEmbeddingProvider: () => MistralEmbeddingProvider,
|
|
30
|
+
MistralProvider: () => MistralProvider,
|
|
31
|
+
injectMistralReasoningEffort: () => injectMistralReasoningEffort,
|
|
32
|
+
mistralProviderOptions: () => mistralProviderOptions
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(mistral_exports);
|
|
35
|
+
var import_mistralai = require("@langchain/mistralai");
|
|
36
|
+
var import_utils = require("@nocobase/utils");
|
|
37
|
+
var import_provider = require("./provider");
|
|
38
|
+
var import_ai_manager = require("../manager/ai-manager");
|
|
39
|
+
const MISTRAL_URL = "https://api.mistral.ai";
|
|
40
|
+
const MISTRAL_REASONING_EFFORT = "high";
|
|
41
|
+
const MISTRAL_REASONING_MODELS = /* @__PURE__ */ new Set(["mistral-small-latest", "mistral-medium-3-5"]);
|
|
42
|
+
const MISTRAL_REASONING_EFFORTS = /* @__PURE__ */ new Set(["off", "low", "medium", "high"]);
|
|
43
|
+
const MISTRAL_REASONING_MODE_KEY = "__nb_reasoning_mode";
|
|
44
|
+
function omitDisabledNumberOptions(options) {
|
|
45
|
+
for (const key of ["maxTokens", "maxRetries"]) {
|
|
46
|
+
if (options[key] === -1) {
|
|
47
|
+
delete options[key];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function extractTextChunks(content) {
|
|
52
|
+
if (typeof content === "string") {
|
|
53
|
+
return content;
|
|
54
|
+
}
|
|
55
|
+
if (!Array.isArray(content)) {
|
|
56
|
+
return "";
|
|
57
|
+
}
|
|
58
|
+
return content.filter((chunk) => chunk && typeof chunk === "object").filter((chunk) => chunk.type === "text" && typeof chunk.text === "string").map((chunk) => chunk.text).join("");
|
|
59
|
+
}
|
|
60
|
+
function extractThinkingChunks(content) {
|
|
61
|
+
if (!Array.isArray(content)) {
|
|
62
|
+
return "";
|
|
63
|
+
}
|
|
64
|
+
return content.filter((chunk) => chunk && typeof chunk === "object").filter((chunk) => chunk.type === "thinking" && Array.isArray(chunk.thinking)).map((chunk) => extractTextChunks(chunk.thinking)).join("");
|
|
65
|
+
}
|
|
66
|
+
const injectMistralReasoningEffort = async (request) => {
|
|
67
|
+
if (request.method !== "POST") {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const contentType = request.headers.get("content-type") || "";
|
|
71
|
+
if (!contentType.toLowerCase().includes("application/json")) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const body = await request.clone().json().catch(() => null);
|
|
75
|
+
if (!body || typeof body !== "object") {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const reasoningMode = body[MISTRAL_REASONING_MODE_KEY];
|
|
79
|
+
delete body[MISTRAL_REASONING_MODE_KEY];
|
|
80
|
+
const shouldRewriteBody = reasoningMode != null;
|
|
81
|
+
if (typeof body.model !== "string" || !MISTRAL_REASONING_MODELS.has(body.model)) {
|
|
82
|
+
if (shouldRewriteBody) {
|
|
83
|
+
const headers2 = new Headers(request.headers);
|
|
84
|
+
headers2.delete("content-length");
|
|
85
|
+
return new Request(request, {
|
|
86
|
+
headers: headers2,
|
|
87
|
+
body: JSON.stringify(body)
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (reasoningMode === "off") {
|
|
93
|
+
delete body.reasoning_effort;
|
|
94
|
+
const headers2 = new Headers(request.headers);
|
|
95
|
+
headers2.delete("content-length");
|
|
96
|
+
return new Request(request, {
|
|
97
|
+
headers: headers2,
|
|
98
|
+
body: JSON.stringify(body)
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
if (body.reasoning_effort && !shouldRewriteBody) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const reasoningEffort = reasoningMode && reasoningMode !== "default" ? reasoningMode : MISTRAL_REASONING_EFFORT;
|
|
105
|
+
const headers = new Headers(request.headers);
|
|
106
|
+
headers.delete("content-length");
|
|
107
|
+
return new Request(request, {
|
|
108
|
+
headers,
|
|
109
|
+
body: JSON.stringify({
|
|
110
|
+
...body,
|
|
111
|
+
reasoning_effort: reasoningEffort
|
|
112
|
+
})
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
class ReasoningChatMistralAI extends import_mistralai.ChatMistralAI {
|
|
116
|
+
reasoningMode;
|
|
117
|
+
constructor(fields) {
|
|
118
|
+
const { [MISTRAL_REASONING_MODE_KEY]: reasoningMode, ...modelFields } = fields;
|
|
119
|
+
super(modelFields);
|
|
120
|
+
this.reasoningMode = reasoningMode;
|
|
121
|
+
}
|
|
122
|
+
invocationParams(options) {
|
|
123
|
+
const params = super.invocationParams(options);
|
|
124
|
+
const mode = this.reasoningMode;
|
|
125
|
+
if (!mode || mode === "default") {
|
|
126
|
+
return params;
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
...params,
|
|
130
|
+
[MISTRAL_REASONING_MODE_KEY]: mode
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
class MistralProvider extends import_provider.LLMProvider {
|
|
135
|
+
get baseURL() {
|
|
136
|
+
return MISTRAL_URL;
|
|
137
|
+
}
|
|
138
|
+
createModel() {
|
|
139
|
+
const { apiKey } = this.serviceOptions || {};
|
|
140
|
+
const { responseFormat, structuredOutput, ...modelOptions } = this.modelOptions || {};
|
|
141
|
+
omitDisabledNumberOptions(modelOptions);
|
|
142
|
+
const beforeRequestHooks = Array.isArray(modelOptions.beforeRequestHooks) ? [injectMistralReasoningEffort, ...modelOptions.beforeRequestHooks] : [injectMistralReasoningEffort];
|
|
143
|
+
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
144
|
+
return new ReasoningChatMistralAI({
|
|
145
|
+
apiKey,
|
|
146
|
+
...modelOptions,
|
|
147
|
+
...reasoningOptions.modelRequestParams || {},
|
|
148
|
+
beforeRequestHooks,
|
|
149
|
+
serverURL: this.getResolvedServerURL(),
|
|
150
|
+
verbose: false
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
resolveReasoningOptions(reasoning) {
|
|
154
|
+
if (!reasoning || reasoning.mode === "default") {
|
|
155
|
+
return {};
|
|
156
|
+
}
|
|
157
|
+
if (!MISTRAL_REASONING_EFFORTS.has(reasoning.mode)) {
|
|
158
|
+
return {};
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
modelRequestParams: {
|
|
162
|
+
[MISTRAL_REASONING_MODE_KEY]: reasoning.mode
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
async stream(context, options) {
|
|
167
|
+
return super.stream(context, this.withResponseFormat(options));
|
|
168
|
+
}
|
|
169
|
+
async invoke(context, options) {
|
|
170
|
+
return super.invoke(context, this.withResponseFormat(options));
|
|
171
|
+
}
|
|
172
|
+
async listModels() {
|
|
173
|
+
var _a, _b, _c, _d;
|
|
174
|
+
const options = this.serviceOptions || {};
|
|
175
|
+
const apiKey = options.apiKey;
|
|
176
|
+
let url;
|
|
177
|
+
try {
|
|
178
|
+
url = this.buildMistralRequestURL("v1/models");
|
|
179
|
+
} catch (e) {
|
|
180
|
+
return { code: 400, errMsg: e instanceof Error ? e.message : String(e) };
|
|
181
|
+
}
|
|
182
|
+
if (!apiKey) {
|
|
183
|
+
return { code: 400, errMsg: "API Key required" };
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
const res = await (0, import_utils.serverRequest)({
|
|
187
|
+
method: "GET",
|
|
188
|
+
url,
|
|
189
|
+
headers: {
|
|
190
|
+
Authorization: `Bearer ${apiKey}`
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
return { models: (_a = res == null ? void 0 : res.data) == null ? void 0 : _a.data };
|
|
194
|
+
} catch (e) {
|
|
195
|
+
const error = e;
|
|
196
|
+
const status = ((_b = error.response) == null ? void 0 : _b.status) || 500;
|
|
197
|
+
const data = (_c = error.response) == null ? void 0 : _c.data;
|
|
198
|
+
const errorMsg = (typeof data === "object" ? data.message : void 0) || (typeof data === "object" && typeof data.detail === "object" ? data.detail.message : void 0) || (typeof data === "object" && typeof data.detail === "string" ? data.detail : void 0) || (typeof data === "string" ? data : void 0) || ((_d = error.response) == null ? void 0 : _d.statusText) || error.message;
|
|
199
|
+
return { code: status, errMsg: errorMsg };
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
isApiSupportedAttachment(attachment) {
|
|
203
|
+
var _a;
|
|
204
|
+
return ((_a = attachment.mimetype) == null ? void 0 : _a.startsWith("image/")) ?? false;
|
|
205
|
+
}
|
|
206
|
+
reshapeAIMessage({ aiMessage, values }) {
|
|
207
|
+
const reasoning = extractThinkingChunks(aiMessage.content);
|
|
208
|
+
if (Array.isArray(aiMessage.content)) {
|
|
209
|
+
aiMessage.content = extractTextChunks(aiMessage.content);
|
|
210
|
+
}
|
|
211
|
+
if (!reasoning) {
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
values.metadata.additional_kwargs = {
|
|
215
|
+
...values.metadata.additional_kwargs ?? {},
|
|
216
|
+
reasoning_content: reasoning
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
parseResponseMessage(message) {
|
|
220
|
+
var _a, _b, _c, _d;
|
|
221
|
+
const result = super.parseResponseMessage(message);
|
|
222
|
+
if (["user", "tool"].includes(result == null ? void 0 : result.role)) {
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
const metadataReasoning = (_c = (_b = (_a = result == null ? void 0 : result.content) == null ? void 0 : _a.metadata) == null ? void 0 : _b.additional_kwargs) == null ? void 0 : _c.reasoning_content;
|
|
226
|
+
if (typeof metadataReasoning === "string" && metadataReasoning) {
|
|
227
|
+
result.content = {
|
|
228
|
+
...result.content ?? {},
|
|
229
|
+
reasoning: {
|
|
230
|
+
status: "stop",
|
|
231
|
+
content: metadataReasoning
|
|
232
|
+
}
|
|
233
|
+
};
|
|
234
|
+
return result;
|
|
235
|
+
}
|
|
236
|
+
const rawContent = (_d = result == null ? void 0 : result.content) == null ? void 0 : _d.content;
|
|
237
|
+
const reasoning = extractThinkingChunks(rawContent);
|
|
238
|
+
if (reasoning) {
|
|
239
|
+
result.content = {
|
|
240
|
+
...result.content ?? {},
|
|
241
|
+
content: extractTextChunks(rawContent),
|
|
242
|
+
reasoning: {
|
|
243
|
+
status: "stop",
|
|
244
|
+
content: reasoning
|
|
245
|
+
}
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
return result;
|
|
249
|
+
}
|
|
250
|
+
parseResponseChunk(chunk) {
|
|
251
|
+
if (Array.isArray(chunk)) {
|
|
252
|
+
return extractTextChunks(chunk);
|
|
253
|
+
}
|
|
254
|
+
return super.parseResponseChunk(chunk);
|
|
255
|
+
}
|
|
256
|
+
parseReasoningContent(chunk) {
|
|
257
|
+
const content = extractThinkingChunks(chunk == null ? void 0 : chunk.content);
|
|
258
|
+
if (!content) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
return {
|
|
262
|
+
status: "streaming",
|
|
263
|
+
content
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
withResponseFormat(options) {
|
|
267
|
+
var _a;
|
|
268
|
+
const responseFormat = (_a = this.modelOptions) == null ? void 0 : _a.responseFormat;
|
|
269
|
+
if (responseFormat !== "json_object") {
|
|
270
|
+
return options;
|
|
271
|
+
}
|
|
272
|
+
return {
|
|
273
|
+
...options || {},
|
|
274
|
+
response_format: {
|
|
275
|
+
type: responseFormat
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
getResolvedServerURL() {
|
|
280
|
+
return this.getResolvedBaseURL().replace(/\/v1$/, "");
|
|
281
|
+
}
|
|
282
|
+
buildMistralRequestURL(pathname) {
|
|
283
|
+
const url = new URL(pathname.replace(/^\/+/, ""), `${this.getResolvedServerURL()}/`).toString();
|
|
284
|
+
(0, import_utils.checkUrlAgainstWhitelist)(url);
|
|
285
|
+
return url;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
class MistralEmbeddingProvider extends import_provider.EmbeddingProvider {
|
|
289
|
+
getDefaultUrl() {
|
|
290
|
+
return MISTRAL_URL;
|
|
291
|
+
}
|
|
292
|
+
createEmbedding() {
|
|
293
|
+
return new import_mistralai.MistralAIEmbeddings({
|
|
294
|
+
apiKey: this.apiKey,
|
|
295
|
+
serverURL: this.baseURL.replace(/\/v1$/, ""),
|
|
296
|
+
model: this.model
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
const mistralProviderOptions = {
|
|
301
|
+
title: "Mistral AI",
|
|
302
|
+
supportedModel: [import_ai_manager.SupportedModel.LLM, import_ai_manager.SupportedModel.EMBEDDING],
|
|
303
|
+
models: {
|
|
304
|
+
[import_ai_manager.SupportedModel.LLM]: [
|
|
305
|
+
"mistral-large-latest",
|
|
306
|
+
"mistral-medium-latest",
|
|
307
|
+
"mistral-medium-3-5",
|
|
308
|
+
"mistral-small-latest",
|
|
309
|
+
"ministral-8b-latest",
|
|
310
|
+
"ministral-3b-latest",
|
|
311
|
+
"codestral-latest",
|
|
312
|
+
"pixtral-large-latest"
|
|
313
|
+
],
|
|
314
|
+
[import_ai_manager.SupportedModel.EMBEDDING]: ["mistral-embed"]
|
|
315
|
+
},
|
|
316
|
+
provider: MistralProvider,
|
|
317
|
+
embedding: MistralEmbeddingProvider
|
|
318
|
+
};
|
|
319
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
320
|
+
0 && (module.exports = {
|
|
321
|
+
MistralEmbeddingProvider,
|
|
322
|
+
MistralProvider,
|
|
323
|
+
injectMistralReasoningEffort,
|
|
324
|
+
mistralProviderOptions
|
|
325
|
+
});
|
|
@@ -7,9 +7,10 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { ChatOpenAI } from '@langchain/openai';
|
|
10
|
-
import { LLMProvider } from '../provider';
|
|
10
|
+
import { LLMProvider, ReasoningOptions, ResolvedReasoningOptions } from '../provider';
|
|
11
11
|
export declare class OpenAICompletionsProvider extends LLMProvider {
|
|
12
12
|
chatModel: ChatOpenAI;
|
|
13
13
|
get baseURL(): string;
|
|
14
14
|
createModel(): ChatOpenAI<import("@langchain/openai/dist/chat_models/index.cjs").ChatOpenAICallOptions>;
|
|
15
|
+
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
15
16
|
}
|
|
@@ -39,6 +39,7 @@ class OpenAICompletionsProvider extends import_provider.LLMProvider {
|
|
|
39
39
|
const { apiKey } = this.serviceOptions || {};
|
|
40
40
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
41
41
|
const { name, schema } = structuredOutput || {};
|
|
42
|
+
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
42
43
|
const responseFormatOptions = {
|
|
43
44
|
type: responseFormat ?? "text"
|
|
44
45
|
};
|
|
@@ -48,14 +49,29 @@ class OpenAICompletionsProvider extends import_provider.LLMProvider {
|
|
|
48
49
|
return new import_openai.ChatOpenAI({
|
|
49
50
|
apiKey,
|
|
50
51
|
...this.modelOptions,
|
|
52
|
+
...reasoningOptions.modelRequestParams || {},
|
|
51
53
|
modelKwargs: {
|
|
52
|
-
response_format: responseFormatOptions
|
|
54
|
+
response_format: responseFormatOptions,
|
|
55
|
+
...reasoningOptions.modelKwargs || {}
|
|
53
56
|
},
|
|
54
57
|
configuration: {
|
|
55
58
|
baseURL: this.getResolvedBaseURL()
|
|
56
59
|
}
|
|
57
60
|
});
|
|
58
61
|
}
|
|
62
|
+
resolveReasoningOptions(reasoning) {
|
|
63
|
+
if (!reasoning || reasoning.mode === "default") {
|
|
64
|
+
return {};
|
|
65
|
+
}
|
|
66
|
+
const effort = reasoning.mode === "off" ? "none" : reasoning.mode;
|
|
67
|
+
return {
|
|
68
|
+
modelRequestParams: {
|
|
69
|
+
reasoning: {
|
|
70
|
+
effort
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
59
75
|
}
|
|
60
76
|
// Annotate the CommonJS export names for ESM import in node:
|
|
61
77
|
0 && (module.exports = {
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
9
|
import { ChatOpenAI } from '@langchain/openai';
|
|
10
|
-
import { LLMProvider } from '../provider';
|
|
10
|
+
import { LLMProvider, ReasoningOptions, ResolvedReasoningOptions } from '../provider';
|
|
11
11
|
import { Model } from '@nocobase/database';
|
|
12
12
|
import { AIMessageChunk } from '@langchain/core/messages';
|
|
13
13
|
export declare class OpenAIResponsesProvider extends LLMProvider {
|
|
@@ -22,6 +22,7 @@ export declare class OpenAIResponsesProvider extends LLMProvider {
|
|
|
22
22
|
role: any;
|
|
23
23
|
};
|
|
24
24
|
protected builtInTools(): any[];
|
|
25
|
+
protected resolveReasoningOptions(reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
25
26
|
isToolConflict(): boolean;
|
|
26
27
|
parseWebSearchAction(chunk: AIMessageChunk): {
|
|
27
28
|
type: string;
|