wujingjing
2025-03-04 129e4b98811106fbf7964e8fec547350f2875e5c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
import knowledgeCom from '../chatComponents/knowledgeCom/KnowledgeCom.vue';
import NormalTextCom from '../chatComponents/normalTextCom/NormalTextCom.vue';
import RecordSetCom from '../chatComponents/recordSetCom/RecordSetCom.vue';
import ScriptMode from '../chatComponents/scriptMode/ScriptMode.vue';
import SummaryCom from '../chatComponents/summaryCom/SummaryCom.vue';
import type { Attach } from '../components/playBar/hook/useAttach';
import assistantPic from '/static/images/role/assistant-200x192.png';
import userPic from '/static/images/role/user-200x206.png';
export const enum AnswerType {
    Knowledge = 'knowledge',
    RecordSet = 'recordset',
    Text = 'text',
    Summary = 'summary',
    Url = 'url',
    Map = 'map',
    Report = 'report_list',
    Script = 'script',
}
 
export const answerTypeMapCom = {
    [AnswerType.Knowledge]: knowledgeCom,
    [AnswerType.RecordSet]: RecordSetCom,
    [AnswerType.Text]: NormalTextCom,
    [AnswerType.Summary]: SummaryCom,
    [AnswerType.Script]: ScriptMode,
};
 
export const enum RoleEnum {
    user = 'user',
    assistant = 'assistant',
}
export const AnswerState = {
    Null: null,
    Like: '1',
    Unlike: '0',
};
 
export type AnswerStateType = typeof AnswerState;
export type ContextHistory = {
    /** @description 数字字符串 */
    ratio: string;
    history_id: string;
    question: string;
};
 
export type ChatContent = {
    type: AnswerType;
    values: any;
    askMoreList?: ContextHistory[];
    errCode?: string;
    errMsg?: string;
    origin?: any;
    createTime?: string;
};
 
export interface ChatMessage {
    historyId: string;
    role: RoleEnum;
    content?: ChatContent;
    state?: null | '1' | '0';
    createTime?: string;
    stepGroup?: { value: StepItem[]; isShow: boolean }[];
    isStopMsg?: boolean;
    /** @description 是否被选择分享 */
    isChecked: boolean;
    conclusion?: any[];
    attachList?: Attach[];
}
 
export const roleImageMap = {
    [RoleEnum.user]: userPic,
    [RoleEnum.assistant]: assistantPic,
};
 
export const enum StepEnum {
    Loading,
    Success,
    Error,
}
export const stepEnumMap = {
    [StepEnum.Loading]: 'process',
    [StepEnum.Success]: 'process',
    [StepEnum.Error]: 'process',
};
export const enum MultiChatType {
    Select = 'select',
    InputSelect = 'input-select',
    Summary = 'summary',
    Result = 'result',
    TimeRange = 'time_range',
}
type SubStep = {
    data: any;
    type: MultiChatType;
};
 
export type StepItem = {
    title: string;
    status: StepEnum;
    // 消耗时间
    ms?: string | number;
    subStep?: SubStep[];
    // isLoading?:boolean;
    /** @description 临时使用,控制强制不显示 loading */
    finishLoading?: boolean;
};