@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
|
@@ -40,6 +40,7 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
|
|
|
40
40
|
const { apiKey } = this.serviceOptions || {};
|
|
41
41
|
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
42
42
|
const { name, schema, strict } = structuredOutput || {};
|
|
43
|
+
const reasoningOptions = this.resolveReasoningOptions(this.modelReasoningOptions);
|
|
43
44
|
let responseFormatOptions = {
|
|
44
45
|
type: responseFormat ?? "text"
|
|
45
46
|
};
|
|
@@ -54,10 +55,12 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
|
|
|
54
55
|
return new import_openai.ChatOpenAI({
|
|
55
56
|
apiKey,
|
|
56
57
|
...this.modelOptions,
|
|
58
|
+
...reasoningOptions.modelRequestParams || {},
|
|
57
59
|
modelKwargs: {
|
|
58
60
|
text: {
|
|
59
61
|
format: responseFormatOptions
|
|
60
|
-
}
|
|
62
|
+
},
|
|
63
|
+
...reasoningOptions.modelKwargs || {}
|
|
61
64
|
},
|
|
62
65
|
configuration: {
|
|
63
66
|
baseURL: this.getResolvedBaseURL()
|
|
@@ -130,6 +133,19 @@ class OpenAIResponsesProvider extends import_provider.LLMProvider {
|
|
|
130
133
|
}
|
|
131
134
|
return [];
|
|
132
135
|
}
|
|
136
|
+
resolveReasoningOptions(reasoning) {
|
|
137
|
+
if (!reasoning || reasoning.mode === "default") {
|
|
138
|
+
return {};
|
|
139
|
+
}
|
|
140
|
+
const effort = reasoning.mode === "off" ? "none" : reasoning.mode;
|
|
141
|
+
return {
|
|
142
|
+
modelRequestParams: {
|
|
143
|
+
reasoning: {
|
|
144
|
+
effort
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
133
149
|
isToolConflict() {
|
|
134
150
|
return false;
|
|
135
151
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
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 { LLMProvider } from './provider';
|
|
10
|
+
import { LLMProviderMeta } from '../manager/ai-manager';
|
|
11
|
+
import { AIMessageChunk, BaseMessageChunk } from '@langchain/core/messages';
|
|
12
|
+
import { ReasoningChatOpenAI } from './common/reasoning';
|
|
13
|
+
import { AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
14
|
+
import { Model } from '@nocobase/database';
|
|
15
|
+
export declare class OrcaRouterProvider extends LLMProvider {
|
|
16
|
+
chatModel: ReasoningChatOpenAI;
|
|
17
|
+
get baseURL(): string;
|
|
18
|
+
createModel(): ChatOrcaRouterCompletions;
|
|
19
|
+
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
20
|
+
parseResponseMessage(message: Model): {
|
|
21
|
+
key: any;
|
|
22
|
+
createdAt: any;
|
|
23
|
+
content: any;
|
|
24
|
+
role: any;
|
|
25
|
+
};
|
|
26
|
+
parseReasoningContent(chunk: AIMessageChunk): {
|
|
27
|
+
status: string;
|
|
28
|
+
content: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
declare class ChatOrcaRouterCompletions extends ReasoningChatOpenAI {
|
|
32
|
+
_convertCompletionsDeltaToBaseMessageChunk(delta: any, rawResponse: any, defaultRole: any): BaseMessageChunk;
|
|
33
|
+
}
|
|
34
|
+
export declare const orcarouterProviderOptions: LLMProviderMeta;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,155 @@
|
|
|
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 __create = Object.create;
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
+
var __export = (target, all) => {
|
|
17
|
+
for (var name in all)
|
|
18
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
+
};
|
|
20
|
+
var __copyProps = (to, from, except, desc) => {
|
|
21
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
+
for (let key of __getOwnPropNames(from))
|
|
23
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
+
}
|
|
26
|
+
return to;
|
|
27
|
+
};
|
|
28
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
+
mod
|
|
35
|
+
));
|
|
36
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
+
var orcarouter_exports = {};
|
|
38
|
+
__export(orcarouter_exports, {
|
|
39
|
+
OrcaRouterProvider: () => OrcaRouterProvider,
|
|
40
|
+
orcarouterProviderOptions: () => orcarouterProviderOptions
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(orcarouter_exports);
|
|
43
|
+
var import_provider = require("./provider");
|
|
44
|
+
var import_ai_manager = require("../manager/ai-manager");
|
|
45
|
+
var import_lodash = __toESM(require("lodash"));
|
|
46
|
+
var import_openai = require("@langchain/openai");
|
|
47
|
+
var import_messages = require("@langchain/core/messages");
|
|
48
|
+
var import_reasoning = require("./common/reasoning");
|
|
49
|
+
class OrcaRouterProvider extends import_provider.LLMProvider {
|
|
50
|
+
get baseURL() {
|
|
51
|
+
return "https://api.orcarouter.ai/v1";
|
|
52
|
+
}
|
|
53
|
+
createModel() {
|
|
54
|
+
const { apiKey, httpReferer, xTitle } = this.serviceOptions || {};
|
|
55
|
+
const { responseFormat, structuredOutput } = this.modelOptions || {};
|
|
56
|
+
const { name, schema } = structuredOutput || {};
|
|
57
|
+
const responseFormatOptions = {
|
|
58
|
+
type: responseFormat ?? "text"
|
|
59
|
+
};
|
|
60
|
+
if (responseFormat === "json_schema" && schema) {
|
|
61
|
+
responseFormatOptions["json_schema"] = { schema, name: name ?? "schema" };
|
|
62
|
+
}
|
|
63
|
+
const defaultHeaders = {};
|
|
64
|
+
if (httpReferer) {
|
|
65
|
+
defaultHeaders["HTTP-Referer"] = httpReferer;
|
|
66
|
+
}
|
|
67
|
+
if (xTitle) {
|
|
68
|
+
defaultHeaders["X-Title"] = xTitle;
|
|
69
|
+
}
|
|
70
|
+
return new ChatOrcaRouterCompletions({
|
|
71
|
+
apiKey,
|
|
72
|
+
...this.modelOptions,
|
|
73
|
+
modelKwargs: {
|
|
74
|
+
response_format: responseFormatOptions
|
|
75
|
+
},
|
|
76
|
+
configuration: {
|
|
77
|
+
baseURL: this.getResolvedBaseURL(),
|
|
78
|
+
...Object.keys(defaultHeaders).length ? { defaultHeaders } : {}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
isApiSupportedAttachment(attachment) {
|
|
83
|
+
const media = ["image/"];
|
|
84
|
+
return media.some((it) => {
|
|
85
|
+
var _a;
|
|
86
|
+
return (_a = attachment == null ? void 0 : attachment.mimetype) == null ? void 0 : _a.startsWith(it);
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
parseResponseMessage(message) {
|
|
90
|
+
var _a;
|
|
91
|
+
const result = super.parseResponseMessage(message);
|
|
92
|
+
if (["user", "tool"].includes(result == null ? void 0 : result.role)) {
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
const { metadata } = (message == null ? void 0 : message.toJSON()) ?? {};
|
|
96
|
+
if (!import_lodash.default.isEmpty((_a = metadata == null ? void 0 : metadata.additional_kwargs) == null ? void 0 : _a.reasoning_content)) {
|
|
97
|
+
result.content = {
|
|
98
|
+
...result.content ?? {},
|
|
99
|
+
reasoning: {
|
|
100
|
+
status: "stop",
|
|
101
|
+
content: metadata == null ? void 0 : metadata.additional_kwargs.reasoning_content
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
parseReasoningContent(chunk) {
|
|
108
|
+
var _a;
|
|
109
|
+
if (!import_lodash.default.isEmpty((_a = chunk == null ? void 0 : chunk.additional_kwargs) == null ? void 0 : _a.reasoning_content)) {
|
|
110
|
+
return {
|
|
111
|
+
status: "streaming",
|
|
112
|
+
content: chunk.additional_kwargs.reasoning_content
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
class ChatOrcaRouterCompletions extends import_reasoning.ReasoningChatOpenAI {
|
|
119
|
+
_convertCompletionsDeltaToBaseMessageChunk(delta, rawResponse, defaultRole) {
|
|
120
|
+
const chunk = (0, import_openai.convertCompletionsDeltaToBaseMessageChunk)({
|
|
121
|
+
delta,
|
|
122
|
+
rawResponse,
|
|
123
|
+
includeRawResponse: this.__includeRawResponse,
|
|
124
|
+
defaultRole
|
|
125
|
+
});
|
|
126
|
+
if (chunk instanceof import_messages.AIMessageChunk) {
|
|
127
|
+
if (delta.reasoning_content) {
|
|
128
|
+
chunk.additional_kwargs.reasoning_content = delta.reasoning_content;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
return chunk;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const orcarouterProviderOptions = {
|
|
135
|
+
title: "OrcaRouter",
|
|
136
|
+
supportedModel: [import_ai_manager.SupportedModel.LLM],
|
|
137
|
+
models: {
|
|
138
|
+
[import_ai_manager.SupportedModel.LLM]: [
|
|
139
|
+
"orcarouter/auto",
|
|
140
|
+
"openai/gpt-5.5",
|
|
141
|
+
"google/gemini-3.5-flash",
|
|
142
|
+
"anthropic/claude-opus-4.8",
|
|
143
|
+
"grok/grok-4.3",
|
|
144
|
+
"deepseek/deepseek-v4-pro",
|
|
145
|
+
"minimax/minimax-m2.7",
|
|
146
|
+
"qwen/qwen3.7-max"
|
|
147
|
+
]
|
|
148
|
+
},
|
|
149
|
+
provider: OrcaRouterProvider
|
|
150
|
+
};
|
|
151
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
152
|
+
0 && (module.exports = {
|
|
153
|
+
OrcaRouterProvider,
|
|
154
|
+
orcarouterProviderOptions
|
|
155
|
+
});
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
10
10
|
import { Model } from '@nocobase/database';
|
|
11
|
-
import { AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
11
|
+
import { type AttachmentModel } from '@nocobase/plugin-file-manager';
|
|
12
12
|
import { Application } from '@nocobase/server';
|
|
13
|
-
import { AIChatContext } from '../types/ai-chat-conversation.type';
|
|
13
|
+
import { AIChatContext, AIMessageInput } from '../types/ai-chat-conversation.type';
|
|
14
14
|
import { EmbeddingsInterface } from '@langchain/core/embeddings';
|
|
15
|
-
import { AIMessageChunk } from '@langchain/core/messages';
|
|
15
|
+
import { AIMessage, AIMessageChunk } from '@langchain/core/messages';
|
|
16
16
|
import { Context } from '@nocobase/actions';
|
|
17
17
|
import '@langchain/core/utils/stream';
|
|
18
18
|
import { LLMResult } from '@langchain/core/outputs';
|
|
@@ -27,6 +27,11 @@ export type LLMProviderInvokeOptions = {
|
|
|
27
27
|
modelRequestParams?: Record<string, any>;
|
|
28
28
|
[key: string]: any;
|
|
29
29
|
};
|
|
30
|
+
export type ReasoningMode = 'default' | 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
|
|
31
|
+
export type ReasoningOptions = {
|
|
32
|
+
mode: ReasoningMode;
|
|
33
|
+
};
|
|
34
|
+
export type ResolvedReasoningOptions = Pick<LLMProviderInvokeOptions, 'modelKwargs' | 'modelRequestParams'>;
|
|
30
35
|
export type LLMModelRequestBuilderResult = {
|
|
31
36
|
context: AIChatContext;
|
|
32
37
|
options?: LLMProviderInvokeOptions;
|
|
@@ -45,10 +50,12 @@ export declare abstract class LLMProvider {
|
|
|
45
50
|
serviceOptions: Record<string, any>;
|
|
46
51
|
modelOptions: Record<string, any> | undefined;
|
|
47
52
|
chatModel: any;
|
|
53
|
+
protected modelReasoningOptions: ReasoningOptions | undefined;
|
|
48
54
|
abstract createModel(): BaseChatModel | any;
|
|
49
55
|
get baseURL(): string | null;
|
|
50
56
|
constructor(opts: LLMProviderOptions);
|
|
51
57
|
protected getModelRequestBuilder(_model?: string): LLMModelRequestBuilder | null;
|
|
58
|
+
protected resolveReasoningOptions(_reasoning?: ReasoningOptions): ResolvedReasoningOptions;
|
|
52
59
|
prepareChain(context: AIChatContext): any;
|
|
53
60
|
invoke(context: AIChatContext, options?: LLMProviderInvokeOptions): Promise<any>;
|
|
54
61
|
stream(context: AIChatContext, options?: any): Promise<any>;
|
|
@@ -69,7 +76,8 @@ export declare abstract class LLMProvider {
|
|
|
69
76
|
parseAttachment(ctx: Context, attachment: AttachmentModel): Promise<ParsedAttachmentResult>;
|
|
70
77
|
protected isApiSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
71
78
|
protected isDocumentLoaderSupportedAttachment(attachment: AttachmentModel): boolean;
|
|
72
|
-
protected
|
|
79
|
+
protected encodeAttachment(ctx: Context, attachment: AttachmentModel): Promise<string>;
|
|
80
|
+
protected convertToContent(ctx: Context, attachment: AttachmentModel): Promise<ParsedAttachmentResult>;
|
|
73
81
|
protected loadDocument(ctx: Context, attachment: any): Promise<any>;
|
|
74
82
|
getStructuredOutputOptions(structuredOutput: AIChatContext['structuredOutput']): any;
|
|
75
83
|
testFlight(): Promise<{
|
|
@@ -90,6 +98,10 @@ export declare abstract class LLMProvider {
|
|
|
90
98
|
} | null;
|
|
91
99
|
parseResponseMetadata(output: LLMResult): any;
|
|
92
100
|
parseResponseError(err: any): any;
|
|
101
|
+
reshapeAIMessage(_options: {
|
|
102
|
+
aiMessage: AIMessage;
|
|
103
|
+
values: AIMessageInput;
|
|
104
|
+
}): void;
|
|
93
105
|
protected get documentLoader(): CachedDocumentLoader;
|
|
94
106
|
protected getResolvedBaseURL(): string;
|
|
95
107
|
protected buildRequestURL(pathname: string): string;
|
|
@@ -46,15 +46,34 @@ var import_stream = require("@langchain/core/utils/stream");
|
|
|
46
46
|
var import_document_loader = require("../document-loader");
|
|
47
47
|
var import_node_path = __toESM(require("node:path"));
|
|
48
48
|
var import_reasoning = require("./common/reasoning");
|
|
49
|
+
function assertBaseURLString(baseURL) {
|
|
50
|
+
if (typeof baseURL !== "string") {
|
|
51
|
+
throw new Error("baseURL must be a string");
|
|
52
|
+
}
|
|
53
|
+
}
|
|
49
54
|
function normalizeBaseURL(baseURL) {
|
|
50
|
-
(
|
|
51
|
-
|
|
55
|
+
assertBaseURLString(baseURL);
|
|
56
|
+
const trimmedBaseURL = baseURL.trim();
|
|
57
|
+
(0, import_utils.checkUrlAgainstWhitelist)(trimmedBaseURL);
|
|
58
|
+
return new URL(trimmedBaseURL).toString().replace(/\/$/, "");
|
|
59
|
+
}
|
|
60
|
+
function isBlankBaseURL(baseURL) {
|
|
61
|
+
return baseURL.trim() === "";
|
|
62
|
+
}
|
|
63
|
+
function getServiceBaseURL(serviceOptions) {
|
|
64
|
+
const baseURL = serviceOptions == null ? void 0 : serviceOptions.baseURL;
|
|
65
|
+
if (typeof baseURL === "string" && isBlankBaseURL(baseURL)) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return baseURL;
|
|
52
69
|
}
|
|
53
70
|
function resolveServiceOptions(serviceOptions, app) {
|
|
54
71
|
const rendered = app.environment.renderJsonTemplate(serviceOptions ?? {});
|
|
55
72
|
if ((rendered == null ? void 0 : rendered.baseURL) != null) {
|
|
56
|
-
|
|
57
|
-
|
|
73
|
+
assertBaseURLString(rendered.baseURL);
|
|
74
|
+
if (isBlankBaseURL(rendered.baseURL)) {
|
|
75
|
+
delete rendered.baseURL;
|
|
76
|
+
return rendered;
|
|
58
77
|
}
|
|
59
78
|
rendered.baseURL = normalizeBaseURL(rendered.baseURL);
|
|
60
79
|
}
|
|
@@ -65,6 +84,7 @@ class LLMProvider {
|
|
|
65
84
|
serviceOptions;
|
|
66
85
|
modelOptions;
|
|
67
86
|
chatModel;
|
|
87
|
+
modelReasoningOptions;
|
|
68
88
|
get baseURL() {
|
|
69
89
|
return null;
|
|
70
90
|
}
|
|
@@ -73,13 +93,18 @@ class LLMProvider {
|
|
|
73
93
|
this.app = app;
|
|
74
94
|
this.serviceOptions = resolveServiceOptions(serviceOptions, app);
|
|
75
95
|
if (modelOptions) {
|
|
76
|
-
|
|
96
|
+
const { _reasoning, ...restModelOptions } = modelOptions;
|
|
97
|
+
this.modelReasoningOptions = _reasoning;
|
|
98
|
+
this.modelOptions = restModelOptions;
|
|
77
99
|
this.chatModel = this.createModel();
|
|
78
100
|
}
|
|
79
101
|
}
|
|
80
102
|
getModelRequestBuilder(_model) {
|
|
81
103
|
return null;
|
|
82
104
|
}
|
|
105
|
+
resolveReasoningOptions(_reasoning) {
|
|
106
|
+
return {};
|
|
107
|
+
}
|
|
83
108
|
prepareChain(context) {
|
|
84
109
|
var _a, _b, _c, _d;
|
|
85
110
|
let chain = this.chatModel;
|
|
@@ -164,6 +189,15 @@ class LLMProvider {
|
|
|
164
189
|
return (0, import_utils2.stripToolCallTags)(chunk);
|
|
165
190
|
}
|
|
166
191
|
async parseAttachment(ctx, attachment) {
|
|
192
|
+
var _a;
|
|
193
|
+
const dataSourceKey = (_a = attachment == null ? void 0 : attachment.source) == null ? void 0 : _a.dataSourceKey;
|
|
194
|
+
const isExternalAttachment = Boolean(dataSourceKey && dataSourceKey !== "main");
|
|
195
|
+
if (!(attachment == null ? void 0 : attachment.storageId) && !isExternalAttachment || !(attachment == null ? void 0 : attachment.filename)) {
|
|
196
|
+
return {
|
|
197
|
+
placement: "system",
|
|
198
|
+
content: "The user provided an attachment, but it is unavailable or invalid and cannot be parsed. Do not use this attachment as evidence; tell the user the attachment is unavailable."
|
|
199
|
+
};
|
|
200
|
+
}
|
|
167
201
|
if (this.isApiSupportedAttachment(attachment)) {
|
|
168
202
|
return await this.convertToContent(ctx, attachment);
|
|
169
203
|
} else if (this.isDocumentLoaderSupportedAttachment(attachment)) {
|
|
@@ -193,10 +227,24 @@ class LLMProvider {
|
|
|
193
227
|
const ext = import_node_path.default.extname((attachment == null ? void 0 : attachment.filename) ?? "").toLocaleLowerCase();
|
|
194
228
|
return import_document_loader.SUPPORTED_DOCUMENT_EXTNAMES.includes(ext);
|
|
195
229
|
}
|
|
196
|
-
async
|
|
230
|
+
async encodeAttachment(ctx, attachment) {
|
|
197
231
|
const fileManager = this.app.pm.get("file-manager");
|
|
198
|
-
|
|
199
|
-
|
|
232
|
+
if (typeof ctx.get !== "function") {
|
|
233
|
+
const { stream: stream2 } = await fileManager.getFileStream(attachment);
|
|
234
|
+
return await (0, import_utils2.encodeReadableStream)(stream2);
|
|
235
|
+
}
|
|
236
|
+
const { stream } = await fileManager.getFileStream(attachment, {
|
|
237
|
+
requestOptions: {
|
|
238
|
+
headers: {
|
|
239
|
+
Referer: ctx.get("referer") || "",
|
|
240
|
+
"User-Agent": ctx.get("user-agent") || ""
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
return await (0, import_utils2.encodeReadableStream)(stream);
|
|
245
|
+
}
|
|
246
|
+
async convertToContent(ctx, attachment) {
|
|
247
|
+
const data = await this.encodeAttachment(ctx, attachment);
|
|
200
248
|
if (attachment.mimetype.startsWith("image/")) {
|
|
201
249
|
return {
|
|
202
250
|
placement: "contentBlocks",
|
|
@@ -319,18 +367,16 @@ ${parsed.text}
|
|
|
319
367
|
parseResponseError(err) {
|
|
320
368
|
return (err == null ? void 0 : err.message) ?? "Unexpected LLM service error";
|
|
321
369
|
}
|
|
370
|
+
reshapeAIMessage(_options) {
|
|
371
|
+
}
|
|
322
372
|
get documentLoader() {
|
|
323
373
|
return this.aiPlugin.documentLoaders.cached;
|
|
324
374
|
}
|
|
325
375
|
getResolvedBaseURL() {
|
|
326
|
-
|
|
327
|
-
const baseURL = ((_a = this.serviceOptions) == null ? void 0 : _a.baseURL) ?? this.baseURL;
|
|
376
|
+
const baseURL = getServiceBaseURL(this.serviceOptions) ?? this.baseURL;
|
|
328
377
|
if (!baseURL) {
|
|
329
378
|
throw new Error("baseURL is required");
|
|
330
379
|
}
|
|
331
|
-
if (typeof baseURL !== "string") {
|
|
332
|
-
throw new Error("baseURL must be a string");
|
|
333
|
-
}
|
|
334
380
|
return normalizeBaseURL(baseURL);
|
|
335
381
|
}
|
|
336
382
|
buildRequestURL(pathname) {
|
|
@@ -361,14 +407,10 @@ class EmbeddingProvider {
|
|
|
361
407
|
return apiKey;
|
|
362
408
|
}
|
|
363
409
|
get baseURL() {
|
|
364
|
-
|
|
365
|
-
const baseURL = ((_a = this.serviceOptions) == null ? void 0 : _a.baseURL) ?? this.getDefaultUrl();
|
|
410
|
+
const baseURL = getServiceBaseURL(this.serviceOptions) ?? this.getDefaultUrl();
|
|
366
411
|
if (!baseURL) {
|
|
367
412
|
throw new Error("baseURL is required");
|
|
368
413
|
}
|
|
369
|
-
if (typeof baseURL !== "string") {
|
|
370
|
-
throw new Error("baseURL must be a string");
|
|
371
|
-
}
|
|
372
414
|
return normalizeBaseURL(baseURL);
|
|
373
415
|
}
|
|
374
416
|
get model() {
|
|
@@ -40,6 +40,7 @@ __export(ai_chat_conversation_exports, {
|
|
|
40
40
|
});
|
|
41
41
|
module.exports = __toCommonJS(ai_chat_conversation_exports);
|
|
42
42
|
var import_lodash = __toESM(require("lodash"));
|
|
43
|
+
var import_ai_usage_events = require("./ai-usage-events");
|
|
43
44
|
const createAIChatConversation = (ctx, sessionId) => {
|
|
44
45
|
return new AIChatConversationImpl(ctx, sessionId);
|
|
45
46
|
};
|
|
@@ -81,6 +82,7 @@ class AIChatConversationImpl {
|
|
|
81
82
|
),
|
|
82
83
|
transaction: this.transaction
|
|
83
84
|
});
|
|
85
|
+
await (0, import_ai_usage_events.recordAIUsageEventsForMessages)(this.ctx, this.sessionId, instances, this.transaction);
|
|
84
86
|
return isArray ? instances : instances[0];
|
|
85
87
|
}
|
|
86
88
|
async removeMessages({ messageId }) {
|
|
@@ -60,6 +60,34 @@ function serializeQueryFieldValue(value) {
|
|
|
60
60
|
}
|
|
61
61
|
return value;
|
|
62
62
|
}
|
|
63
|
+
function getRecordFieldValue(record, field) {
|
|
64
|
+
return field.split(".").reduce((current, key) => {
|
|
65
|
+
if (current === null || current === void 0) {
|
|
66
|
+
return current;
|
|
67
|
+
}
|
|
68
|
+
if (typeof current.get === "function") {
|
|
69
|
+
return current.get(key);
|
|
70
|
+
}
|
|
71
|
+
return current[key];
|
|
72
|
+
}, record);
|
|
73
|
+
}
|
|
74
|
+
function getQueryFieldOptions(collection, field) {
|
|
75
|
+
const parts = field.split(".");
|
|
76
|
+
let currentCollection = collection;
|
|
77
|
+
for (const [index, part] of parts.entries()) {
|
|
78
|
+
const currentField = currentCollection == null ? void 0 : currentCollection.getField(part);
|
|
79
|
+
if (!currentField) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (index === parts.length - 1) {
|
|
83
|
+
return currentField.options;
|
|
84
|
+
}
|
|
85
|
+
if (!currentField.isRelationField()) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
currentCollection = currentField.targetCollection();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
63
91
|
class AIContextDatasourceManager {
|
|
64
92
|
constructor(plugin) {
|
|
65
93
|
this.plugin = plugin;
|
|
@@ -149,17 +177,16 @@ class AIContextDatasourceManager {
|
|
|
149
177
|
}
|
|
150
178
|
});
|
|
151
179
|
}
|
|
152
|
-
const { fields, filter, sort, offset, limit } = options;
|
|
153
|
-
const result = await collection.repository.find({ fields, filter, sort, offset: offset ?? 0, limit });
|
|
180
|
+
const { fields, appends, filter, sort, offset, limit } = options;
|
|
181
|
+
const result = await collection.repository.find({ fields, appends, filter, sort, offset: offset ?? 0, limit });
|
|
154
182
|
const total = await collection.repository.count({ fields, filter });
|
|
155
183
|
const records = result.map(
|
|
156
184
|
(x) => fields.map((field) => {
|
|
157
|
-
|
|
158
|
-
const
|
|
159
|
-
const value = serializeQueryFieldValue(x[field]);
|
|
185
|
+
const { name, type } = getQueryFieldOptions(collection, field) || {};
|
|
186
|
+
const value = serializeQueryFieldValue(getRecordFieldValue(x, field));
|
|
160
187
|
return {
|
|
161
|
-
name,
|
|
162
|
-
type,
|
|
188
|
+
name: field.includes(".") ? field : name || field,
|
|
189
|
+
type: type || "unknown",
|
|
163
190
|
value
|
|
164
191
|
};
|
|
165
192
|
})
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
7
|
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
8
|
*/
|
|
9
|
-
import { LLMProvider, LLMProviderOptions, EmbeddingProvider, EmbeddingProviderOptions } from '../llm-providers/provider';
|
|
9
|
+
import { LLMProvider, LLMProviderOptions, EmbeddingProvider, EmbeddingProviderOptions, ReasoningOptions } from '../llm-providers/provider';
|
|
10
10
|
import PluginAIServer from '../plugin';
|
|
11
11
|
import { ToolManager } from './tool-manager';
|
|
12
12
|
export type LLMProviderMeta = {
|
|
@@ -25,6 +25,7 @@ export type LLMModelOptions = {
|
|
|
25
25
|
llmService: string;
|
|
26
26
|
model: string;
|
|
27
27
|
webSearch?: boolean;
|
|
28
|
+
reasoning?: ReasoningOptions;
|
|
28
29
|
};
|
|
29
30
|
export type EnabledLLMModel = {
|
|
30
31
|
label: string;
|
|
@@ -123,7 +123,7 @@ class AIManager {
|
|
|
123
123
|
return (0, import_recommended_models.getRecommendedModels)(provider);
|
|
124
124
|
}
|
|
125
125
|
async getLLMService(options) {
|
|
126
|
-
const { llmService, model, webSearch } = options ?? {};
|
|
126
|
+
const { llmService, model, webSearch, reasoning } = options ?? {};
|
|
127
127
|
if (!llmService || !model) {
|
|
128
128
|
throw new Error("LLM service not configured");
|
|
129
129
|
}
|
|
@@ -134,6 +134,9 @@ class AIManager {
|
|
|
134
134
|
if (webSearch === true) {
|
|
135
135
|
modelOptions.builtIn = { webSearch: true };
|
|
136
136
|
}
|
|
137
|
+
if (reasoning) {
|
|
138
|
+
modelOptions._reasoning = reasoning;
|
|
139
|
+
}
|
|
137
140
|
const service = await this.plugin.db.getRepository("llmServices").findOne({
|
|
138
141
|
filter: {
|
|
139
142
|
name: llmService
|
|
@@ -0,0 +1,49 @@
|
|
|
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 { Context } from '@nocobase/actions';
|
|
10
|
+
import { Transaction } from '@nocobase/database';
|
|
11
|
+
import { AIMessage } from '../types';
|
|
12
|
+
type RecordLike = Record<string, unknown> & {
|
|
13
|
+
get?: (key: string) => unknown;
|
|
14
|
+
};
|
|
15
|
+
export type NormalizedUsageMetadata = {
|
|
16
|
+
inputTokens: number;
|
|
17
|
+
outputTokens: number;
|
|
18
|
+
totalTokens: number;
|
|
19
|
+
cachedTokens: number;
|
|
20
|
+
reasoningTokens: number;
|
|
21
|
+
};
|
|
22
|
+
export type AIUsageEventValues = {
|
|
23
|
+
occurredAt: Date;
|
|
24
|
+
sessionId: string;
|
|
25
|
+
messageId: string;
|
|
26
|
+
userId?: unknown;
|
|
27
|
+
aiEmployeeUsername?: unknown;
|
|
28
|
+
from: string;
|
|
29
|
+
category: string;
|
|
30
|
+
eventType: 'llm_message';
|
|
31
|
+
role: string;
|
|
32
|
+
provider: string;
|
|
33
|
+
llmService?: string;
|
|
34
|
+
model: string;
|
|
35
|
+
inputTokens: number;
|
|
36
|
+
outputTokens: number;
|
|
37
|
+
totalTokens: number;
|
|
38
|
+
cachedTokens: number;
|
|
39
|
+
reasoningTokens: number;
|
|
40
|
+
toolCallCount: number;
|
|
41
|
+
autoToolCallCount: number;
|
|
42
|
+
status: 'success';
|
|
43
|
+
rawUsageMetadata: Record<string, unknown>;
|
|
44
|
+
rawResponseMetadata?: Record<string, unknown>;
|
|
45
|
+
};
|
|
46
|
+
export declare function normalizeUsageMetadata(usageMetadata: Record<string, unknown>): NormalizedUsageMetadata;
|
|
47
|
+
export declare function buildAIUsageEventValues(sessionId: string, message: AIMessage, conversation: RecordLike): AIUsageEventValues | null;
|
|
48
|
+
export declare function recordAIUsageEventsForMessages(ctx: Context, sessionId: string, messages: AIMessage[], transaction?: Transaction): Promise<void>;
|
|
49
|
+
export {};
|