|
@@ -1,5 +1,5 @@
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
-import { ref, nextTick, onMounted, computed, onUnmounted, reactive } from 'vue'
|
|
|
|
|
|
+import { ref, nextTick, onMounted, computed, onUnmounted, reactive, watch } from 'vue'
|
|
import { Local } from '/@/utils/storage'
|
|
import { Local } from '/@/utils/storage'
|
|
import { User, ChatDotRound, Delete, Edit, Check, Close } from '@element-plus/icons-vue'
|
|
import { User, ChatDotRound, Delete, Edit, Check, Close } from '@element-plus/icons-vue'
|
|
import { MarkdownPlugin } from '/@/components/markdown/type/markdown'
|
|
import { MarkdownPlugin } from '/@/components/markdown/type/markdown'
|
|
@@ -88,12 +88,12 @@ const {loading: loadingModels, doLoading: loadModel} = useLoading(async ()=> {
|
|
})
|
|
})
|
|
|
|
|
|
modelOptions.value = data.list
|
|
modelOptions.value = data.list
|
|
- selectedModel.value = data.list[0] ?? undefined
|
|
|
|
|
|
+ selectedModel.value = data.list[0]?.id ?? undefined
|
|
})
|
|
})
|
|
|
|
|
|
onMounted(loadModel)
|
|
onMounted(loadModel)
|
|
|
|
|
|
-const selectedModel = ref<LmConfigInfo | undefined>(undefined)
|
|
|
|
|
|
+const selectedModel = ref<number | undefined>(undefined)
|
|
|
|
|
|
|
|
|
|
const chatInstance = ref<(() => void) | undefined>(undefined)
|
|
const chatInstance = ref<(() => void) | undefined>(undefined)
|
|
@@ -124,6 +124,8 @@ const sendMessage = () => {
|
|
timestamp: Date.now(),
|
|
timestamp: Date.now(),
|
|
})
|
|
})
|
|
|
|
|
|
|
|
+ const fn = watch(()=>rtn.content,(newVal)=>console.log(newVal))
|
|
|
|
+
|
|
inputMessage.value = ''
|
|
inputMessage.value = ''
|
|
|
|
|
|
scrollToBottom()
|
|
scrollToBottom()
|
|
@@ -178,6 +180,7 @@ ${resp.response.data.replace('\n', '')}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
onComplete: (e) => {
|
|
onComplete: (e) => {
|
|
|
|
+ fn()
|
|
if (e !== undefined) {
|
|
if (e !== undefined) {
|
|
rtn.content += `
|
|
rtn.content += `
|
|
|
|
|
|
@@ -444,9 +447,9 @@ const redirectToModelManager = () => router.push('manage/model')
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- 模型选择 -->
|
|
<!-- 模型选择 -->
|
|
- <div class="model-selector">
|
|
|
|
- <el-select :loading="loadingModels" v-model="selectedModel" placeholder="选择模型" size="small" style="width: 200px">
|
|
|
|
- <el-option v-for="item in modelOptions" :key="item.id" :label="item.modelName" :value="item.id" />
|
|
|
|
|
|
+ <div class="model-selector" v-loading="loadingModels">
|
|
|
|
+ <el-select v-model="selectedModel" placeholder="选择模型" size="small" style="width: 200px">
|
|
|
|
+ <el-option v-for="item in modelOptions" :key="item.id" :value="item.id" :label="item.modelName"/>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
@@ -495,7 +498,7 @@ const redirectToModelManager = () => router.push('manage/model')
|
|
size="small"
|
|
size="small"
|
|
@click="sendMessage"
|
|
@click="sendMessage"
|
|
@keyup.ctrl.enter="sendMessage"
|
|
@keyup.ctrl.enter="sendMessage"
|
|
- :disabled="!inputMessage.trim()"
|
|
|
|
|
|
+ :disabled="!inputMessage.trim() && loadingModels"
|
|
>
|
|
>
|
|
发送
|
|
发送
|
|
</el-button>
|
|
</el-button>
|