feat: 对接 Spark 大模型

This commit is contained in:
2024-04-01 17:03:03 +08:00
parent d20b518f5b
commit 3ded5f8e7a
12 changed files with 328 additions and 67 deletions

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import type {ChatSession} from "~/components/aigc/chat/index";
import type {PropType} from "vue";
import type {ChatSession} from "~/typings/llm";
const props = defineProps({
active: {

View File

@@ -1,6 +1,6 @@
<script setup lang="ts">
import type {PropType} from "vue";
import type {ChatMessage} from "~/components/aigc/chat/index";
import type {ChatMessage} from "~/typings/llm";
import MessageResponding from "~/components/Icon/MessageResponding.vue";
const props = defineProps({
@@ -24,6 +24,9 @@ const message_avatar = computed(() => {
}
})
const message_background = computed(() => {
if (props.message?.interrupted) {
return 'bg-red-200/50 dark:bg-red-800/20 border-red-300 dark:!border-red-500/50'
}
switch (props.message?.role) {
case 'user':
return 'bg-primary-100 dark:bg-primary-800'
@@ -47,15 +50,23 @@ const message_background = computed(() => {
:class="message_background"
:key="message.content"
>
<span v-if="message.content">
{{ message.content }}
</span>
<div v-if="message.content">
<!-- <span v-if="message.interrupted">-->
<!-- <svg class="inline -mt-0.5 opacity-80" xmlns="http://www.w3.org/2000/svg" width="1.2em"-->
<!-- height="1.2em" viewBox="0 0 24 24">-->
<!-- <path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"-->
<!-- d="M12 9v4m-1.637-9.409L2.257 17.125a1.914 1.914 0 0 0 1.636 2.871h16.214a1.914 1.914 0 0 0 1.636-2.87L13.637 3.59a1.914 1.914 0 0 0-3.274 0zM12 16h.01"/>-->
<!-- </svg>-->
<!-- {{ message.content }}-->
<!-- </span>-->
<Markdown :source="message.content"/>
</div>
<span v-else>
<MessageResponding class="text-xl text-neutral-500 dark:text-neutral-300 mx-2"/>
</span>
</div>
</Transition>
<div class="chat-inside-extra">
<div v-if="message.create_at" class="chat-inside-extra">
{{ dayjs(message.create_at * 1000).format('YYYY-MM-DD HH:mm:ss') }}
</div>
</div>

View File

@@ -1,20 +0,0 @@
export type ChatSessionId = string
export type ChatMessageId = string
export interface ChatSession {
id: ChatSessionId
subject: string
create_at: number
messages: ChatMessage[]
last_input?: string
}
export type MessageRole = 'user' | 'assistant' | 'system'
export interface ChatMessage {
id: ChatMessageId
role: MessageRole
content: string
create_at: number
interrupted?: boolean
}