diff --git a/packages/global/core/chat/constants.ts b/packages/global/core/chat/constants.ts index f6b63ee97..5af48f5d3 100644 --- a/packages/global/core/chat/constants.ts +++ b/packages/global/core/chat/constants.ts @@ -34,8 +34,11 @@ export enum ChatSourceEnum { share = 'share', api = 'api', team = 'team', - feishu = 'feishu' + feishu = 'feishu', + official_account = 'official_account', + wecom = 'wecom' } + export const ChatSourceMap = { [ChatSourceEnum.test]: { name: i18nT('common:core.chat.logs.test') @@ -54,6 +57,12 @@ export const ChatSourceMap = { }, [ChatSourceEnum.feishu]: { name: i18nT('common:core.chat.logs.feishu') + }, + [ChatSourceEnum.official_account]: { + name: i18nT('common:core.chat.logs.official_account') + }, + [ChatSourceEnum.wecom]: { + name: i18nT('common:core.chat.logs.wecom') } }; diff --git a/packages/global/core/chat/utils.ts b/packages/global/core/chat/utils.ts index 72774f1e4..7bf38eae8 100644 --- a/packages/global/core/chat/utils.ts +++ b/packages/global/core/chat/utils.ts @@ -1,8 +1,9 @@ import { DispatchNodeResponseType } from '../workflow/runtime/type'; import { FlowNodeTypeEnum } from '../workflow/node/constant'; -import { ChatItemValueTypeEnum, ChatRoleEnum } from './constants'; +import { ChatItemValueTypeEnum, ChatRoleEnum, ChatSourceEnum } from './constants'; import { ChatHistoryItemResType, ChatItemType, UserChatItemValueItemType } from './type.d'; import { sliceStrStartEnd } from '../../common/string/tools'; +import { PublishChannelEnum } from '../../support/outLink/constant'; // Concat 2 -> 1, and sort by role export const concatHistories = (histories1: ChatItemType[], histories2: ChatItemType[]) => { @@ -123,3 +124,22 @@ export const getPluginOutputsFromChatResponses = (responses: ChatHistoryItemResT responses.find((item) => item.moduleType === FlowNodeTypeEnum.pluginOutput)?.pluginOutput ?? {}; return outputs; }; + +export const getChatSourceByPublishChannel = (publishChannel: PublishChannelEnum) => { + switch (publishChannel) { + case PublishChannelEnum.share: + return ChatSourceEnum.share; + case PublishChannelEnum.iframe: + return ChatSourceEnum.share; + case PublishChannelEnum.apikey: + return ChatSourceEnum.api; + case PublishChannelEnum.feishu: + return ChatSourceEnum.feishu; + case PublishChannelEnum.wecom: + return ChatSourceEnum.wecom; + case PublishChannelEnum.officialAccount: + return ChatSourceEnum.official_account; + default: + return ChatSourceEnum.online; + } +}; diff --git a/packages/global/support/wallet/usage/constants.ts b/packages/global/support/wallet/usage/constants.ts index f678d4750..5edfce9ab 100644 --- a/packages/global/support/wallet/usage/constants.ts +++ b/packages/global/support/wallet/usage/constants.ts @@ -6,7 +6,10 @@ export enum UsageSourceEnum { shareLink = 'shareLink', training = 'training', cronJob = 'cronJob', - feishu = 'feishu' + share = 'share', + wecom = 'wecom', + feishu = 'feishu', + official_account = 'official_account' } export const UsageSourceMap = { @@ -27,5 +30,14 @@ export const UsageSourceMap = { }, [UsageSourceEnum.feishu]: { label: i18nT('user:usage.feishu') + }, + [UsageSourceEnum.official_account]: { + label: i18nT('user:usage.official_account') + }, + [UsageSourceEnum.share]: { + label: i18nT('user:usage.share') + }, + [UsageSourceEnum.wecom]: { + label: i18nT('user:usage.wecom') } }; diff --git a/packages/global/support/wallet/usage/tools.ts b/packages/global/support/wallet/usage/tools.ts index ad1bfa240..33dae3892 100644 --- a/packages/global/support/wallet/usage/tools.ts +++ b/packages/global/support/wallet/usage/tools.ts @@ -2,6 +2,7 @@ import { PRICE_SCALE } from '../constants'; import { UsageSourceEnum } from './constants'; import { AuthUserTypeEnum } from '../../permission/constant'; +import { PublishChannelEnum } from '../../outLink/constant'; /** * dataset price / PRICE_SCALE = real price @@ -21,3 +22,22 @@ export const getUsageSourceByAuthType = ({ if (authType === AuthUserTypeEnum.apikey) return UsageSourceEnum.api; return UsageSourceEnum.fastgpt; }; + +export const getUsageSourceByPublishChannel = (publishchannel: PublishChannelEnum) => { + switch (publishchannel) { + case PublishChannelEnum.share: + return UsageSourceEnum.share; + case PublishChannelEnum.iframe: + return UsageSourceEnum.shareLink; + case PublishChannelEnum.apikey: + return UsageSourceEnum.api; + case PublishChannelEnum.feishu: + return UsageSourceEnum.feishu; + case PublishChannelEnum.wecom: + return UsageSourceEnum.wecom; + case PublishChannelEnum.officialAccount: + return UsageSourceEnum.official_account; + default: + return UsageSourceEnum.fastgpt; + } +}; diff --git a/packages/web/i18n/zh/common.json b/packages/web/i18n/zh/common.json index 28510cde8..83bd64fcc 100644 --- a/packages/web/i18n/zh/common.json +++ b/packages/web/i18n/zh/common.json @@ -495,10 +495,12 @@ "logs": { "api": "API 调用", "feishu": "飞书", + "official_account": "公众号", "online": "在线使用", "share": "外部链接调用", "team": "团队空间对话", - "test": "测试" + "test": "测试", + "wecom": "企业微信" }, "markdown": { "Edit Question": "编辑问题", diff --git a/packages/web/i18n/zh/user.json b/packages/web/i18n/zh/user.json index 9badf918c..02fdc1b19 100644 --- a/packages/web/i18n/zh/user.json +++ b/packages/web/i18n/zh/user.json @@ -75,6 +75,9 @@ "no_collaborators": "暂无协作者" }, "usage": { - "feishu": "飞书" + "feishu": "飞书", + "official_account": "公众号", + "share": "分享链接", + "wecom": "企业微信" } }