|
@@ -81,11 +81,11 @@ export default {
|
|
|
"content" : "您好,我是 C Code Develop & C Notebook AI助手,可以帮您解决代码问题。从编程技巧到历史人文,我无所不知。快来跟我聊天吧~"
|
|
|
}
|
|
|
],
|
|
|
- history: [],
|
|
|
- socketObject: null,
|
|
|
- wannaKill: false,
|
|
|
+ intents: [
|
|
|
+ "如果用户询问他有多少积分,请回答'*INTENT_CREDITS'",
|
|
|
+ "如果用户询问与他账号信息有关的内容,请回答'*INTENT_ACCOUNT'"
|
|
|
+ ],
|
|
|
sseInstance: null,
|
|
|
- abortController: null,
|
|
|
bodyClass: "bodyBackground_xcwk",
|
|
|
safeAreaInsets: {
|
|
|
left: 0,
|
|
@@ -95,7 +95,8 @@ export default {
|
|
|
},
|
|
|
isHostInApp: false,
|
|
|
inAppPendingCard: null,
|
|
|
- inAppSSEHandle: null
|
|
|
+ inAppSSEHandle: null,
|
|
|
+ abortController: null
|
|
|
}
|
|
|
},
|
|
|
mounted() {
|
|
@@ -207,6 +208,13 @@ export default {
|
|
|
self.inAppPendingCard = messageCard
|
|
|
|
|
|
let messageModel = []
|
|
|
+ for (let index in self.intents) {
|
|
|
+ let intent = self.intents[index];
|
|
|
+ messageModel.push({
|
|
|
+ "role" : "system",
|
|
|
+ "content" : intent
|
|
|
+ })
|
|
|
+ }
|
|
|
for (let index in self.model) {
|
|
|
let model = self.model[index]
|
|
|
if (model.type == "ask") {
|
|
@@ -354,68 +362,6 @@ export default {
|
|
|
})
|
|
|
self.sseInstance = eventSource
|
|
|
},
|
|
|
- doAsyncChat(message) {
|
|
|
- this.allowInput = false
|
|
|
- let self = this
|
|
|
- let socket = new WebSocket(websocketAPIURL)
|
|
|
- self.socketObject = socket
|
|
|
- self.wannaKill = false
|
|
|
- let messageCard = {
|
|
|
- "type" : "answer",
|
|
|
- "content" : ""
|
|
|
- }
|
|
|
- let isFinished = false
|
|
|
- function finishBlock(success) {
|
|
|
- if (isFinished) {
|
|
|
- return
|
|
|
- }
|
|
|
- isFinished = true
|
|
|
- self.socketObject = null
|
|
|
- self.allowInput = true
|
|
|
- self.wannaKill = false
|
|
|
- while (self.history.length >= 3) {
|
|
|
- self.history.pop()
|
|
|
- }
|
|
|
- self.history.push([
|
|
|
- message,
|
|
|
- messageCard.content
|
|
|
- ])
|
|
|
- for (let id = 0; id < self.model.length; id++) {
|
|
|
- if (self.model[id].type == "answerTyping") {
|
|
|
- self.model.splice(id, 1)
|
|
|
- id--;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- socket.onopen = function (event) {
|
|
|
- self.insertMessageBlock(messageCard)
|
|
|
- self.insertMessageBlock({
|
|
|
- "type" : "answerTyping",
|
|
|
- "content" : ""
|
|
|
- })
|
|
|
- let request = {
|
|
|
- "history" : self.history,
|
|
|
- "question" : message
|
|
|
- }
|
|
|
- socket.send(JSON.stringify(request))
|
|
|
- }
|
|
|
- socket.onmessage = function (event) {
|
|
|
- messageCard.content += event.data
|
|
|
- if (self.wannaKill) {
|
|
|
- socket.send("k")
|
|
|
- } else {
|
|
|
- socket.send("n")
|
|
|
- }
|
|
|
- self.scrollViewScrollToBottom()
|
|
|
- }
|
|
|
- socket.onclose = function (event) {
|
|
|
- finishBlock(true)
|
|
|
- }
|
|
|
- socket.onerror = function (error) {
|
|
|
- alert("不好意思,出错了,请稍后再试")
|
|
|
- finishBlock(false)
|
|
|
- }
|
|
|
- },
|
|
|
doShutdown() {
|
|
|
let self = this
|
|
|
if (self.socketObject != null) {
|