diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue b/jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue
deleted file mode 100644
index c89dda22..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chat.vue
+++ /dev/null
@@ -1,473 +0,0 @@
-
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue b/jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue
deleted file mode 100644
index dc4593d9..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/components/chatMessage.vue
+++ /dev/null
@@ -1,74 +0,0 @@
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/data.js b/jeecgboot-vue3/src/components/jeecg/AiChat/data.js
deleted file mode 100644
index c6aedc2a..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/data.js
+++ /dev/null
@@ -1,186 +0,0 @@
-export const localData = {
- active: 1002,
- usingContext: true,
- history: [
- {
- title: '标题02',
- uuid: 1706083575869,
- isEdit: false,
- },
- {
- uuid: 1002,
- title: '标题01',
- isEdit: false,
- },
- ],
- chat: [
- {
- uuid: 1706083575869,
- data: [
- {
- dateTime: '2024/1/24 16:06:27',
- text: '?',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '?',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 16:06:29',
- text: 'Hello! How can I assist you today?',
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kSZA0wju7X8sOdJIyxtpDj0RQVu1',
- },
- requestOptions: {
- prompt: '?',
- options: {},
- },
- },
- ],
- },
- {
- uuid: 1002,
- data: [
- {
- dateTime: '2024/1/24 14:01:52',
- text: '1',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '1',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:01:54',
- text: 'Yes, how can I assist you?',
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQcb6mbF04o5hpule4SdHk2jFvNQ',
- },
- requestOptions: {
- prompt: '1',
- options: {},
- },
- },
- {
- dateTime: '2024/1/24 14:03:45',
- text: '?',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '?',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:03:47',
- text: "I'm sorry if my previous response was not clear. Please let me know how I can help you or what you would like to discuss.",
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQeQ2t8YCXmLeF0ECGkkuOJlk4Pi',
- },
- requestOptions: {
- prompt: '?',
- options: {
- parentMessageId: 'chatcmpl-8kQcb6mbF04o5hpule4SdHk2jFvNQ',
- },
- },
- },
- {
- dateTime: '2024/1/24 14:10:19',
- text: 'js 递归',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: 'js 递归',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:10:33',
- text: 'JavaScript supports recursion, which is the process of a function calling itself. Recursion can be useful for solving problems that can be broken down into smaller, similar sub-problems.\n\nHere\'s an example of a simple recursive function in JavaScript:\n\n```javascript\nfunction countdown(n) {\n if (n <= 0) {\n console.log("Done!");\n } else {\n console.log(n);\n countdown(n - 1); // recursive call\n }\n}\n\ncountdown(5);\n```\n\nIn this example, the `countdown` function takes an argument `n` and logs the value of `n` to the console. If `n` is greater than zero, it then calls itself with `n - 1`. This process continues until `n` becomes less than or equal to zero, at which point it logs "Done!".\n\nRecursion can be helpful in solving problems that involve tree structures, factorial calculations, searching algorithms, and more. However, it\'s important to use recursion properly to avoid infinite loops or excessive stack usage.',
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQkmCbnRe4fG1FhWTlY0EyHTpqau',
- },
- requestOptions: {
- prompt: 'js 递归',
- options: {
- parentMessageId: 'chatcmpl-8kQeQ2t8YCXmLeF0ECGkkuOJlk4Pi',
- },
- },
- },
- {
- dateTime: '2024/1/24 14:17:15',
- text: 'js 递归',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: 'js 递归',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 14:23:50',
- text: "Certainly! Here's an example of how you can use recursion in JavaScript:\n\n```javascript\nfunction factorial(n) {\n if (n === 0) {\n return 1;\n } else {\n return n * factorial(n - 1);\n }\n}\n\nconsole.log(factorial(5)); // Output: 120\n```\n\nIn this example, the `factorial` function calculates the factorial of a given number `n` using recursion. If `n` is equal to 0, it returns 1, which is the base case. Otherwise, it recursively calls itself with `n - 1`, multiplying the current value of `n` with the result of the recursive call.\n\nWhen calling `factorial(5)`, the function will execute as follows:\n\n- `factorial(5)` calls `factorial(4)`\n- `factorial(4)` calls `factorial(3)`\n- `factorial(3)` calls `factorial(2)`\n- `factorial(2)` calls `factorial(1)`\n- `factorial(1)` calls `factorial(0)`\n- `factorial(0)` returns 1\n- `factorial(1)` returns 1 * 1 = 1\n- `factorial(2)` returns 2 * 1 = 2\n- `factorial(3)` returns 3 * 2 = 6\n- `factorial(4)` returns 4 * 6 = 24\n- `factorial(5)` returns 5 * 24 = 120\n\nThe final result is then printed to the console using `console.log`.",
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kQwWVoZoWyqjbWuwMJmu6w3hBvXj',
- },
- requestOptions: {
- prompt: 'js 递归',
- options: {
- parentMessageId: 'chatcmpl-8kQkmCbnRe4fG1FhWTlY0EyHTpqau',
- },
- },
- },
- {
- dateTime: '2024/1/24 15:05:30',
- text: '///',
- inversion: true,
- error: false,
- conversationOptions: null,
- requestOptions: {
- prompt: '///',
- options: null,
- },
- },
- {
- dateTime: '2024/1/24 15:05:33',
- text: "I apologize if my previous response was not what you were expecting. If you have any specific questions or need further assistance, please let me know and I'll be happy to help.",
- inversion: false,
- error: false,
- loading: false,
- conversationOptions: {
- parentMessageId: 'chatcmpl-8kRcAggkC4u47d34UcQW3cI0htw0w',
- },
- requestOptions: {
- prompt: '///',
- options: {
- parentMessageId: 'chatcmpl-8kQwWVoZoWyqjbWuwMJmu6w3hBvXj',
- },
- },
- },
- ],
- },
- ],
- };
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts b/jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts
deleted file mode 100644
index c4740219..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/hooks/useScroll.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-import type { Ref } from 'vue'
-import { nextTick, ref } from 'vue'
-
-type ScrollElement = HTMLDivElement | null
-
-interface ScrollReturn {
- scrollRef: Ref
- scrollToBottom: () => Promise
- scrollToTop: () => Promise
- scrollToBottomIfAtBottom: () => Promise
-}
-
-export function useScroll(): ScrollReturn {
- const scrollRef = ref(null)
-
- const scrollToBottom = async () => {
- await nextTick()
- if (scrollRef.value)
- scrollRef.value.scrollTop = scrollRef.value.scrollHeight
- }
-
- const scrollToTop = async () => {
- await nextTick()
- if (scrollRef.value)
- scrollRef.value.scrollTop = 0
- }
-
- const scrollToBottomIfAtBottom = async () => {
- await nextTick()
- if (scrollRef.value) {
- const threshold = 100 // Threshold, indicating the distance threshold to the bottom of the scroll bar.
- const distanceToBottom = scrollRef.value.scrollHeight - scrollRef.value.scrollTop - scrollRef.value.clientHeight
- if (distanceToBottom <= threshold)
- scrollRef.value.scrollTop = scrollRef.value.scrollHeight
- }
- }
-
- return {
- scrollRef,
- scrollToBottom,
- scrollToTop,
- scrollToBottomIfAtBottom,
- }
-}
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/index.vue b/jeecgboot-vue3/src/components/jeecg/AiChat/index.vue
deleted file mode 100644
index 7509a47a..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/index.vue
+++ /dev/null
@@ -1,222 +0,0 @@
-
-
-
-
-
-
-
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less b/jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less
deleted file mode 100644
index 446a1e2e..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/style/highlight.less
+++ /dev/null
@@ -1,206 +0,0 @@
-html.dark {
- pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: 1em
- }
-
- code.hljs {
- padding: 3px 5px
- }
-
- .hljs {
- color: #abb2bf;
- background: #282c34
- }
-
- .hljs-keyword,
- .hljs-operator,
- .hljs-pattern-match {
- color: #f92672
- }
-
- .hljs-function,
- .hljs-pattern-match .hljs-constructor {
- color: #61aeee
- }
-
- .hljs-function .hljs-params {
- color: #a6e22e
- }
-
- .hljs-function .hljs-params .hljs-typing {
- color: #fd971f
- }
-
- .hljs-module-access .hljs-module {
- color: #7e57c2
- }
-
- .hljs-constructor {
- color: #e2b93d
- }
-
- .hljs-constructor .hljs-string {
- color: #9ccc65
- }
-
- .hljs-comment,
- .hljs-quote {
- color: #b18eb1;
- font-style: italic
- }
-
- .hljs-doctag,
- .hljs-formula {
- color: #c678dd
- }
-
- .hljs-deletion,
- .hljs-name,
- .hljs-section,
- .hljs-selector-tag,
- .hljs-subst {
- color: #e06c75
- }
-
- .hljs-literal {
- color: #56b6c2
- }
-
- .hljs-addition,
- .hljs-attribute,
- .hljs-meta .hljs-string,
- .hljs-regexp,
- .hljs-string {
- color: #98c379
- }
-
- .hljs-built_in,
- .hljs-class .hljs-title,
- .hljs-title.class_ {
- color: #e6c07b
- }
-
- .hljs-attr,
- .hljs-number,
- .hljs-selector-attr,
- .hljs-selector-class,
- .hljs-selector-pseudo,
- .hljs-template-variable,
- .hljs-type,
- .hljs-variable {
- color: #d19a66
- }
-
- .hljs-bullet,
- .hljs-link,
- .hljs-meta,
- .hljs-selector-id,
- .hljs-symbol,
- .hljs-title {
- color: #61aeee
- }
-
- .hljs-emphasis {
- font-style: italic
- }
-
- .hljs-strong {
- font-weight: 700
- }
-
- .hljs-link {
- text-decoration: underline
- }
-}
-
-html {
- pre code.hljs {
- display: block;
- overflow-x: auto;
- padding: 1em
- }
-
- code.hljs {
- padding: 3px 5px;
- &::-webkit-scrollbar {
- height: 4px;
- }
- }
-
- .hljs {
- color: #383a42;
- background: #fafafa
- }
-
- .hljs-comment,
- .hljs-quote {
- color: #a0a1a7;
- font-style: italic
- }
-
- .hljs-doctag,
- .hljs-formula,
- .hljs-keyword {
- color: #a626a4
- }
-
- .hljs-deletion,
- .hljs-name,
- .hljs-section,
- .hljs-selector-tag,
- .hljs-subst {
- color: #e45649
- }
-
- .hljs-literal {
- color: #0184bb
- }
-
- .hljs-addition,
- .hljs-attribute,
- .hljs-meta .hljs-string,
- .hljs-regexp,
- .hljs-string {
- color: #50a14f
- }
-
- .hljs-attr,
- .hljs-number,
- .hljs-selector-attr,
- .hljs-selector-class,
- .hljs-selector-pseudo,
- .hljs-template-variable,
- .hljs-type,
- .hljs-variable {
- color: #986801
- }
-
- .hljs-bullet,
- .hljs-link,
- .hljs-meta,
- .hljs-selector-id,
- .hljs-symbol,
- .hljs-title {
- color: #4078f2
- }
-
- .hljs-built_in,
- .hljs-class .hljs-title,
- .hljs-title.class_ {
- color: #c18401
- }
-
- .hljs-emphasis {
- font-style: italic
- }
-
- .hljs-strong {
- font-weight: 700
- }
-
- .hljs-link {
- text-decoration: underline
- }
-}
diff --git a/jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less b/jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less
deleted file mode 100644
index 3b523677..00000000
--- a/jeecgboot-vue3/src/components/jeecg/AiChat/style/style.less
+++ /dev/null
@@ -1,135 +0,0 @@
-.markdown-body {
- background-color: transparent;
- font-size: 14px;
-
- p {
- white-space: pre-wrap;
- }
-
- ol {
- list-style-type: decimal;
- }
-
- ul {
- list-style-type: disc;
- }
-
- pre code,
- pre tt {
- line-height: 1.65;
- }
-
- .highlight pre,
- pre {
- background-color: #fff;
- }
-
- code.hljs {
- padding: 0;
- }
-
- .code-block {
- &-wrapper {
- position: relative;
- padding-top: 24px;
- }
-
- &-header {
- position: absolute;
- top: 5px;
- right: 0;
- width: 100%;
- padding: 0 1rem;
- display: flex;
- justify-content: flex-end;
- align-items: center;
- color: #b3b3b3;
-
- &__copy {
- cursor: pointer;
- margin-left: 0.5rem;
- user-select: none;
-
- &:hover {
- color: #65a665;
- }
- }
- }
- }
-
-
- &.markdown-body-generate>dd:last-child:after,
- &.markdown-body-generate>dl:last-child:after,
- &.markdown-body-generate>dt:last-child:after,
- &.markdown-body-generate>h1:last-child:after,
- &.markdown-body-generate>h2:last-child:after,
- &.markdown-body-generate>h3:last-child:after,
- &.markdown-body-generate>h4:last-child:after,
- &.markdown-body-generate>h5:last-child:after,
- &.markdown-body-generate>h6:last-child:after,
- &.markdown-body-generate>li:last-child:after,
- &.markdown-body-generate>ol:last-child li:last-child:after,
- &.markdown-body-generate>p:last-child:after,
- &.markdown-body-generate>pre:last-child code:after,
- &.markdown-body-generate>td:last-child:after,
- &.markdown-body-generate>ul:last-child li:last-child:after {
- animation: blink 1s steps(5, start) infinite;
- color: #000;
- content: '_';
- font-weight: 700;
- margin-left: 3px;
- vertical-align: baseline;
- }
-
- @keyframes blink {
- to {
- visibility: hidden;
- }
- }
-}
-
-html.dark {
-
- .markdown-body {
-
- &.markdown-body-generate>dd:last-child:after,
- &.markdown-body-generate>dl:last-child:after,
- &.markdown-body-generate>dt:last-child:after,
- &.markdown-body-generate>h1:last-child:after,
- &.markdown-body-generate>h2:last-child:after,
- &.markdown-body-generate>h3:last-child:after,
- &.markdown-body-generate>h4:last-child:after,
- &.markdown-body-generate>h5:last-child:after,
- &.markdown-body-generate>h6:last-child:after,
- &.markdown-body-generate>li:last-child:after,
- &.markdown-body-generate>ol:last-child li:last-child:after,
- &.markdown-body-generate>p:last-child:after,
- &.markdown-body-generate>pre:last-child code:after,
- &.markdown-body-generate>td:last-child:after,
- &.markdown-body-generate>ul:last-child li:last-child:after {
- color: #65a665;
- }
- }
-
- .message-reply {
- .whitespace-pre-wrap {
- white-space: pre-wrap;
- color: var(--n-text-color);
- }
- }
-
- .highlight pre,
- pre {
- background-color: #282c34;
- }
-}
-
-@media screen and (max-width: 533px) {
- .markdown-body .code-block-wrapper {
- padding: unset;
-
- code {
- padding: 24px 16px 16px 16px;
- }
- }
-}