fix(publish): generate correct chat history and usage (#2412)

This commit is contained in:
Finley Ge
2024-08-16 15:59:17 +08:00
committed by GitHub
parent bebbba399a
commit 9b74437417
6 changed files with 71 additions and 5 deletions

View File

@@ -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')
}
};

View File

@@ -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;
}
};