@blueking/ai-blueking 0.2.0-beta.2 → 0.2.0-beta.3

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/README.md CHANGED
@@ -23,8 +23,7 @@ npm i @blueking/ai-blueking
23
23
 
24
24
  <script lang="ts" setup>
25
25
  import { ref } from 'vue';
26
- import AIBlueking from '@blueking/ai-blueking';
27
- import { ChatHelper } from '@blueking/ai-blueking/dist/chat-helper';
26
+ import AIBlueking, { ChatHelper, RoleType, MessageStatus } from '@blueking/ai-blueking';
28
27
  import '@blueking/ai-blueking/dist/vue3/style.css';
29
28
 
30
29
  const loading = ref(false);
@@ -34,20 +33,20 @@ npm i @blueking/ai-blueking
34
33
  const handleStart = (id: number | string) => {
35
34
  loading.value = true;
36
35
  messages.value.push({
37
- role: 'assistant',
36
+ role: RoleType.Assistant,
38
37
  content: '内容正在生成中...',
39
- status: 'loading',
38
+ status: MessageStatus.Loading,
40
39
  });
41
40
  };
42
41
 
43
42
  // 接收消息
44
43
  const handleReceiveMessage = (message: string, id: number | string) => {
45
44
  const currentMessage = messages.value.at(-1);
46
- if (currentMessage.status === 'loading') {
45
+ if (currentMessage.status === MessageStatus.Loading) {
47
46
  // 如果是loading状态,直接覆盖
48
47
  currentMessage.content = message;
49
- currentMessage.status = 'success';
50
- } else if (currentMessage.status === 'success') {
48
+ currentMessage.status = MessageStatus.Success;
49
+ } else if (currentMessage.status === MessageStatus.Success) {
51
50
  // 如果是后续消息,就追加消息
52
51
  currentMessage.content += message;
53
52
  }
@@ -58,13 +57,13 @@ npm i @blueking/ai-blueking
58
57
  loading.value = false;
59
58
  const currentMessage = messages.value.at(-1);
60
59
  // loading 情况下终止
61
- if (currentMessage.status === 'loading') {
60
+ if (currentMessage.status === MessageStatus.Loading) {
62
61
  currentMessage.content = '聊天内容已中断';
63
62
  }
64
63
  };
65
64
 
66
65
  // 错误处理
67
- const handleError = (message: string, code: string, id: number | string) => {
66
+ const handleError = (message: string, code: string | number, id: number | string) => {
68
67
  if (message.includes('user authentication failed')) {
69
68
  // 未登录,跳转登录
70
69
  const loginUrl = new URL(process.env.BK_LOGIN_URL);
@@ -73,13 +72,12 @@ npm i @blueking/ai-blueking
73
72
  } else {
74
73
  // 处理错误消息
75
74
  const currentMessage = messages.value.at(-1);
76
- currentMessage.status = 'error';
75
+ currentMessage.status = MessageStatus.Error;
77
76
  currentMessage.content = message;
78
77
  loading.value = false;
79
78
  }
80
79
  };
81
80
 
82
- // 需要将 <网关名> 替换成插件部署后生成的网关名
83
81
  const prefix = process.env.BK_API_URL_TMPL.replace('{api_name}', '<网关名>').replace('http', 'https');
84
82
  const chatHelper = new ChatHelper(
85
83
  `${prefix}/prod/bk_plugin/plugin_api/assistant/`,
@@ -148,7 +146,7 @@ npm i @blueking/ai-blueking
148
146
  <script setup lang="ts">
149
147
  import { ref } from 'vue';
150
148
 
151
- import AIBlueking, { type IPrompt, type IMessage, RoleType } from '@blueking/ai-blueking';
149
+ import AIBlueking, { type IPrompt, type IMessage, RoleType, MessageStatus } from '@blueking/ai-blueking';
152
150
 
153
151
  import '@blueking/ai-blueking/dist/vue3/style.css';
154
152
 
@@ -163,7 +161,7 @@ npm i @blueking/ai-blueking
163
161
  content: '1+1=3',
164
162
  time: '2024-08-07 14:29',
165
163
  role: RoleType.Assistant,
166
- status: 'error',
164
+ status: MessageStatus.Error,
167
165
  },
168
166
  {
169
167
  content: '不对',
@@ -174,7 +172,7 @@ npm i @blueking/ai-blueking
174
172
  content: '1+1=2',
175
173
  time: '2024-08-12 09:31',
176
174
  role: RoleType.Assistant,
177
- status: 'loading',
175
+ status: MessageStatus.Loading,
178
176
  },
179
177
  {
180
178
  content: '对了',
@@ -298,6 +296,7 @@ npm i @blueking/bkui-library
298
296
  @close="handleClose"
299
297
  @send="handleSend"
300
298
  @scroll="handleScroll"
299
+ @stop="handleStop"
301
300
  />
302
301
  </template>
303
302
  <script lang="ts">
@@ -391,6 +390,9 @@ npm i @blueking/bkui-library
391
390
  handleScroll(event: Event) {
392
391
  console.log('trigger scroll', event);
393
392
  },
393
+ handleStop() {
394
+ console.log('trigger stop');
395
+ },
394
396
  },
395
397
  };
396
398
  </script>
@@ -7,3 +7,8 @@ export declare enum RoleType {
7
7
  System = "system",
8
8
  User = "user"
9
9
  }
10
+ export declare enum MessageStatus {
11
+ Error = "error",
12
+ Loading = "loading",
13
+ Success = "success"
14
+ }
@@ -1,6 +1,6 @@
1
- import { RoleType } from './enum';
1
+ import { RoleType, MessageStatus } from './enum';
2
2
  export interface IMessage extends IChatHistory {
3
- status?: 'error' | 'loading' | 'success';
3
+ status?: MessageStatus;
4
4
  time?: number | string;
5
5
  }
6
6
  export interface IPrompt {