feat: 添加Ai聊天组件示例

This commit is contained in:
xiaoxian521
2025-03-11 09:45:03 +08:00
parent 399d3b2987
commit b004c224c2
21 changed files with 1396 additions and 31 deletions

View File

@@ -0,0 +1,147 @@
<script setup lang="ts">
import "deep-chat";
import { ref, onMounted } from "vue";
const chatRef = ref();
onMounted(() => {
chatRef.value.demo = {
response: message => {
console.log(message);
return {
text: "仅演示如需AI服务请参考 https://deepchat.dev/docs/connect"
};
}
};
});
</script>
<template>
<deep-chat
ref="chatRef"
style="
background: linear-gradient(
90deg,
rgb(239 242 247) 0%,
7.6029%,
rgb(237 240 249) 15.2057%,
20.7513%,
rgb(235 239 248) 26.297%,
27.6386%,
rgb(235 239 248) 28.9803%,
38.2826%,
rgb(231 237 249) 47.585%,
48.1216%,
rgb(230 236 250) 48.6583%,
53.1306%,
rgb(228 236 249) 57.6029%,
61.5385%,
rgb(227 234 250) 65.4741%,
68.7835%,
rgb(222 234 250) 72.093%,
75.7603%,
rgb(219 230 248) 79.4275%,
82.8265%,
rgb(216 229 248) 86.2254%,
87.8354%,
rgb(213 228 249) 89.4454%,
91.8605%,
rgb(210 226 249) 94.2755%,
95.4383%,
rgb(209 225 248) 96.6011%,
98.3005%,
rgb(208 224 247) 100%
);
border-color: #e4e4e4;
border-radius: 10px;
"
:textInput="{
styles: {
container: {
borderRadius: '20px',
border: 'unset',
width: '78%',
marginLeft: '-15px',
boxShadow:
'0px 0.3px 0.9px rgba(0, 0, 0, 0.12), 0px 1.6px 3.6px rgba(0, 0, 0, 0.16)'
},
text: { padding: '10px', paddingLeft: '15px', paddingRight: '34px' }
},
placeholder: { text: '发送消息', style: { color: '#606060' } }
}"
:messageStyles="{
default: {
shared: {
bubble: {
backgroundColor: 'unset',
marginTop: '10px',
marginBottom: '10px',
boxShadow:
'0px 0.3px 0.9px rgba(0, 0, 0, 0.12), 0px 1.6px 3.6px rgba(0, 0, 0, 0.16)'
}
},
user: {
bubble: {
background: 'linear-gradient(130deg, #2870EA 20%, #1B4AEF 77.5%)'
}
},
ai: { bubble: { background: 'rgba(255,255,255,0.7)' } }
}
}"
:submitButtonStyles="{
position: 'outside-right',
submit: {
container: {
default: {
bottom: '0.8em',
borderRadius: '25px',
padding: '6px 5px 4px',
backgroundColor: 'unset'
},
hover: { backgroundColor: '#b0deff4f' },
click: { backgroundColor: '#b0deffb5' }
},
svg: {
content:
'<?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?> <svg viewBox=&quot;0 0 24 24&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot;><path d=&quot;m21.426 11.095-17-8A.999.999 0 0 0 3.03 4.242L4.969 12 3.03 19.758a.998.998 0 0 0 1.396 1.147l17-8a1 1 0 0 0 0-1.81zM5.481 18.197l.839-3.357L12 12 6.32 9.16l-.839-3.357L18.651 12l-13.17 6.197z&quot;/></svg>',
styles: {
default: {
filter:
'brightness(0) saturate(100%) invert(10%) sepia(86%) saturate(6044%) hue-rotate(205deg) brightness(100%) contrast(100%)'
}
}
}
},
loading: {
svg: {
styles: {
default: {
filter:
'brightness(0) saturate(100%) invert(72%) sepia(0%) saturate(3044%) hue-rotate(322deg) brightness(100%) contrast(96%)'
}
}
}
},
stop: {
container: { hover: { backgroundColor: '#ededed94' } },
svg: {
styles: {
default: {
filter:
'brightness(0) saturate(100%) invert(72%) sepia(0%) saturate(3044%) hue-rotate(322deg) brightness(100%) contrast(96%)'
}
}
}
}
}"
:history="[
{ text: '赵云是谁?', role: 'user' },
{
text: '赵云约168年229年字子龙是三国时期蜀汉的重要将领以其忠诚和勇敢著称。',
role: 'ai'
}
]"
:demo="true"
:connect="{ stream: true }"
/>
</template>