Skip to content

Commit f6c4e47

Browse files
Dev (#60)
* 未登陆时不调用fetchUnreadCount (#55) * fix:bizybot对话传入prompt_id和request_id (#56) * fix (#57) * fix * auto prettier format code --------- Co-authored-by: linjm8780860 <11494038+linjm8780860@users.noreply.github.com> * Dev limit interval (#59) * fix * auto prettier format code * fix * fix --------- Co-authored-by: linjm8780860 <11494038+linjm8780860@users.noreply.github.com> * fix --------- Co-authored-by: liu changzhi <116055578+dfhfg123@users.noreply.github.com> Co-authored-by: linjm8780860 <11494038+linjm8780860@users.noreply.github.com>
1 parent 95be7ea commit f6c4e47

17 files changed

Lines changed: 180 additions & 30 deletions

File tree

package-lock.json

Lines changed: 17 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
"spark-md5": "^3.0.2",
4646
"tailwind-merge": "^2.5.4",
4747
"tailwindcss-animate": "^1.0.7",
48+
"uuid": "^11.1.0",
4849
"vaul-vue": "^0.2.0",
4950
"vditor": "^3.10.7",
5051
"vee-validate": "^4.14.6",

src/App.vue

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -266,18 +266,43 @@
266266
}, 400)
267267
}
268268
269+
const handleShareCode = (str: string) => {
270+
str = str.trim()
271+
if (str.length === 8) {
272+
return str
273+
}
274+
275+
const shareCodePattern = /share_code=([A-Za-z0-9]{8})/
276+
const match = str.match(shareCodePattern)
277+
if (match && match[1]) {
278+
return match[1]
279+
}
280+
281+
return ''
282+
}
283+
269284
const runShareCode = async () => {
270285
if (shareCode.value) {
271-
shareCode.value = shareCode.value.trim()
272-
if (shareCode.value.length != 8) {
286+
const processedCode = handleShareCode(shareCode.value)
287+
if (processedCode) {
288+
shareCode.value = processedCode
289+
if (shareCode.value.length != 8) {
290+
useToaster({
291+
type: 'error',
292+
message: t('app.shareCode.error.shareCodeLength')
293+
})
294+
shareCode.value = ''
295+
return false
296+
}
297+
convert()
298+
} else {
273299
useToaster({
274300
type: 'error',
275-
message: t('app.shareCode.error.shareCodeLength')
301+
message: t('app.shareCode.error.invalid')
276302
})
277303
shareCode.value = ''
278304
return false
279305
}
280-
convert()
281306
} else {
282307
try {
283308
const clipboardText = await navigator.clipboard.readText()
@@ -288,15 +313,17 @@
288313
})
289314
return false
290315
}
291-
const trimmedClipboardText = clipboardText.trim()
292-
if (trimmedClipboardText.length != 8) {
316+
317+
const processedCode = handleShareCode(clipboardText)
318+
if (!processedCode) {
293319
useToaster({
294320
type: 'error',
295-
message: t('app.shareCode.error.length')
321+
message: t('app.shareCode.error.invalid')
296322
})
297323
return false
298324
}
299-
shareCode.value = trimmedClipboardText
325+
326+
shareCode.value = processedCode
300327
convert()
301328
} catch (error) {
302329
useToaster({

src/api/message-box.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ export const get_messages_list = (params: any) => {
1313
if (params.types && (typeof params.types === 'string' || typeof params.types === 'number')) {
1414
searchParams.append('types', params.types)
1515
}
16-
1716
return customFetch(`/bizyair/community/notifications?${searchParams.toString()}`, {
1817
method: 'GET'
1918
})
2019
}
2120

2221
export const get_message_unread_count = () =>
2322
customFetch(`/bizyair/community/notifications/unread_count`, {
24-
method: 'GET'
23+
method: 'GET',
24+
shieldError: true
2525
})
2626

2727
export const read_message = (id: number) =>

src/components/assistant/Sidebar.vue

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@
185185
} from './util'
186186
import { useI18n } from 'vue-i18n'
187187
import { useToaster } from '@/components/modules/toats/index'
188+
import { v4 as uuidv4 } from 'uuid'
188189
189190
const { t } = useI18n()
190191
const sidebarStore = useSidebarStore()
@@ -303,6 +304,20 @@
303304
}
304305
}
305306
307+
const promptId = ref('')
308+
const requestId = ref('')
309+
310+
// 生成新的会话ID
311+
const generateNewPromptId = () => {
312+
promptId.value = uuidv4()
313+
localStorage.setItem('bizyair-prompt-id', promptId.value)
314+
}
315+
316+
// 生成新的请求ID
317+
const generateNewRequestId = () => {
318+
requestId.value = uuidv4()
319+
}
320+
306321
// 清空对话历史
307322
const clearHistory = () => {
308323
// 创建一个新的欢迎消息
@@ -315,6 +330,7 @@
315330
// 更新UI显示
316331
chatMessages.value = [welcomeMessage]
317332
console.log('历史记录已清空,并添加了欢迎消息')
333+
generateNewPromptId()
318334
}
319335
320336
// 中止生成
@@ -348,6 +364,7 @@
348364
349365
const sendMessage = async () => {
350366
if (!canSendMessage.value || isLoading.value) return
367+
generateNewRequestId()
351368
352369
const messageText = userInput.value
353370
const currentTime = getCurrentTime()
@@ -547,7 +564,9 @@
547564
}
548565
},
549566
{
550-
model: 'Qwen/Qwen2.5-VL-72B-Instruct'
567+
model: 'Qwen/Qwen2.5-VL-72B-Instruct',
568+
prompt_id: promptId.value,
569+
request_id: requestId.value
551570
}
552571
)
553572
} catch (error) {
@@ -763,6 +782,14 @@
763782
}
764783
}
765784
785+
const savedPromptId = localStorage.getItem('bizyair-prompt-id')
786+
if (savedPromptId) {
787+
promptId.value = savedPromptId
788+
} else {
789+
generateNewPromptId()
790+
}
791+
generateNewRequestId()
792+
766793
// 确保全局bizyAirLib对象存在
767794
if (typeof window.bizyAirLib === 'undefined') {
768795
;(window as any).bizyAirLib = {}

src/components/assistant/util.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ export interface ChatApiOptions {
66
top_k: number
77
frequency_penalty: number
88
max_tokens: number
9+
prompt_id?: string
10+
request_id?: string
911
}
1012

1113
// 图像生成选项接口
@@ -75,7 +77,9 @@ export function buildChatRequestBody(
7577
frequency_penalty: mergedOptions.frequency_penalty,
7678
n: 1,
7779
stop: [],
78-
messages: messages
80+
messages: messages,
81+
prompt_id: mergedOptions.prompt_id,
82+
request_id: mergedOptions.request_id
7983
}
8084
}
8185

src/components/community/detail/Index.vue

Lines changed: 39 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,11 @@
142142
}
143143
}, 300)
144144
145+
const openInWeb = () => {
146+
const url = `https://bizyair.cn/community/models/${communityStore.TabSource}/${model.value?.id}?version=${currentVersion.value?.id}`
147+
window.open(url, '_blank')
148+
}
149+
145150
const getShareCode = async () => {
146151
if (!currentVersion.value) return
147152
isLoading.value = true
@@ -369,6 +374,7 @@
369374
370375
const handleAddNode = async () => {
371376
try {
377+
isLoading.value = true
372378
const nodeTypes: Record<string, string> = {
373379
LoRA: 'BizyAir_LoraLoader',
374380
Controlnet: 'BizyAir_ControlNetLoader',
@@ -415,10 +421,13 @@
415421
416422
canvas.graph.add(loraLoaderNode)
417423
communityStore.showDialog = false
424+
communityStore.showCommunityDetail = false
418425
useToaster.success(t('community.detail.nodeAddedSuccessfully'))
419426
} catch (error) {
420427
console.error('Failed to add node:', error)
421-
useToaster.error(t('community.detail.failedAddNode' + error))
428+
useToaster.error(t('community.detail.failedAddNode') + error)
429+
} finally {
430+
isLoading.value = false
422431
}
423432
}
424433
@@ -700,6 +709,30 @@
700709
</svg>
701710
</div>
702711
</vTooltips>
712+
713+
<vTooltips :tips="t('community.detail.open')">
714+
<div
715+
@click="openInWeb"
716+
class="w-[48px] h-[48px] bg-[#4e4e4e] hover:bg-[#4e4e4e]/60 rounded-lg flex items-center justify-center cursor-pointer"
717+
>
718+
<svg
719+
xmlns="http://www.w3.org/2000/svg"
720+
width="18"
721+
height="18"
722+
viewBox="0 0 512 512"
723+
>
724+
<path
725+
fill="none"
726+
stroke="#FFF"
727+
stroke-linecap="round"
728+
stroke-linejoin="round"
729+
stroke-width="32"
730+
d="M384 224v184a40 40 0 0 1-40 40H104a40 40 0 0 1-40-40V168a40 40 0 0 1 40-40h167.48M336 64h112v112M224 288L440 72"
731+
/>
732+
</svg>
733+
</div>
734+
</vTooltips>
735+
703736
<Popover
704737
v-if="['my', 'my_fork'].includes(communityStore.TabSource)"
705738
class="bg-[#353535]"
@@ -872,6 +905,7 @@
872905
<Button
873906
v-if="model?.type !== 'Workflow'"
874907
class="flex w-[170px] px-8 py-2 justify-center items-center gap-2 bg-[#F43F5E] hover:bg-[#F43F5E]/90 rounded-[6px]"
908+
:disabled="isLoading"
875909
@click="handleAddNode"
876910
>
877911
<svg
@@ -886,9 +920,10 @@
886920
stroke="#F9FAFB"
887921
stroke-linecap="round"
888922
stroke-linejoin="round"
889-
/></svg
890-
>{{ t('community.detail.addNode') }}</Button
891-
>
923+
/>
924+
</svg>
925+
{{ t('community.detail.addNode') }}
926+
</Button>
892927

893928
<Button
894929
v-if="model?.type === 'Workflow'"

src/components/community/modules/NewPostButton.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
</script>
4444

4545
<template>
46-
<div class="flex items-center justify-between">
46+
<div class="flex items-center justify-between bizy-select-title-container">
4747
<div class="text-white text-base font-medium">{{ t('community.mine.tabs.posts') }}</div>
4848
<Popover class="bg-[#353535]" :open="downloadOpen" @update:open="handleDownload">
4949
<PopoverTrigger class="bg-transparent" :disabled="disabled">

src/components/model-select/detail/Index.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -786,9 +786,10 @@
786786
stroke="#F9FAFB"
787787
stroke-linecap="round"
788788
stroke-linejoin="round"
789-
/></svg
790-
>{{ t('modelSelect.apply') }}</Button
791-
>
789+
/>
790+
</svg>
791+
{{ t('modelSelect.apply') }}
792+
</Button>
792793
</div>
793794
</div>
794795
<div

src/components/model-select/modules/ModelFilterBar.vue

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,16 @@
8080
}
8181
}
8282
83+
// 确保所有BaseModel在初始化时都被选中
84+
if (
85+
store.baseModelTypes &&
86+
store.baseModelTypes.length > 0 &&
87+
(!store[props.page].filterState.base_models ||
88+
store[props.page].filterState.base_models.length === 0)
89+
) {
90+
store[props.page].filterState.base_models = store.baseModelTypes.map(model => model.value)
91+
}
92+
8393
await nextTick()
8494
emit('filter-data-ready')
8595
}

0 commit comments

Comments
 (0)