Browse Source

新增对话测试功能

Pchen 1 year ago
parent
commit
f63b1378fb
3 changed files with 22 additions and 12 deletions
  1. 1 1
      README.md
  2. 11 0
      router.js
  3. 10 11
      wechat/main.js

+ 1 - 1
README.md

@@ -97,7 +97,7 @@ module.exports = {
 
 
 通过你的ip地址+端口号进入到机器人的管理界面,默认用户名为`admin`,密码`123456`
 通过你的ip地址+端口号进入到机器人的管理界面,默认用户名为`admin`,密码`123456`
 
 
-在API设置页面中填入你的接口地址、API Key、模型名称等,你可以自由选择讯飞星火和ChatGPT两个模型,其中兼容openai接口的API可填入ChatGPT的配置中。
+在API设置页面中填入你的接口地址、API Key、模型名称等,你可以自由选择讯飞星火和ChatGPT两个模型,其中兼容openai接口的API可填入ChatGPT的配置中。设置完成后可在对话测试中测试API接口是否能正常使用。
 
 
 ![](./images/1.png)
 ![](./images/1.png)
 
 

+ 11 - 0
router.js

@@ -1,6 +1,7 @@
 const express = require('express')
 const express = require('express')
 const { updateGPTConfig } = require('./API/ChatGPT')
 const { updateGPTConfig } = require('./API/ChatGPT')
 const { updateXunfeiConfig } = require('./API/xunfei')
 const { updateXunfeiConfig } = require('./API/xunfei')
+const { sendMessageToAPI } = require('./wechat/main')
 const sqlite3 = require('sqlite3')
 const sqlite3 = require('sqlite3')
 const jsonwebtoken = require('jsonwebtoken')
 const jsonwebtoken = require('jsonwebtoken')
 const path = require('path')
 const path = require('path')
@@ -156,6 +157,16 @@ router.get('/getstatus',async(req,res) => {
     res.send({status:Status.status})
     res.send({status:Status.status})
 })
 })
 
 
+router.post('/chat',async(req,res) => {
+    try{
+        console.log('收到:',req.body)
+        const response = await sendMessageToAPI(req.body.msg)
+        res.send({status:200,msg:response}) 
+    } catch(err) {
+        res.send({status:500,msg:'获取消息失败!'+ err.message})
+    }
+})
+
 // 停止机器人
 // 停止机器人
 router.get('/stop', async (req, res) => {
 router.get('/stop', async (req, res) => {
     try {
     try {

+ 10 - 11
wechat/main.js

@@ -57,10 +57,12 @@ loadConfigValues()
 //选择模型
 //选择模型
 async function sendMessageToAPI(message) {
 async function sendMessageToAPI(message) {
     if (usemodel==='xunfei'){
     if (usemodel==='xunfei'){
-        const content = await getXunfeiMessage(message)
+        const response = await getXunfeiMessage(message)
+        const content = prefix + response + suffix
         return content
         return content
     }   else  {
     }   else  {
-        const content = await getGPTMessage(message)
+        const response = await getGPTMessage(message)
+        const content = prefix + response + suffix
         return content
         return content
     }  
     }  
 }
 }
@@ -127,8 +129,6 @@ async function wxlogin() {
                 // 将头像保存到本地
                 // 将头像保存到本地
                 const avatarFilePath = `./wechat/avatar/avatar.jpg`
                 const avatarFilePath = `./wechat/avatar/avatar.jpg`
                 await avatarFileBox.toFile(avatarFilePath,true)
                 await avatarFileBox.toFile(avatarFilePath,true)
-                // 有程序运行后配置未加载的问题,这里重新加载一遍
-                loadConfigValues()
             })
             })
 
 
             .on('logout', async () => {
             .on('logout', async () => {
@@ -153,10 +153,9 @@ async function wxlogin() {
                             if (whiteRoom.length === 0 || whiteRoom.includes(roomname)) {
                             if (whiteRoom.length === 0 || whiteRoom.includes(roomname)) {
                                 //在群聊中被@
                                 //在群聊中被@
                                 if (await message.mentionSelf()) {
                                 if (await message.mentionSelf()) {
-                                    console.log('机器人被@')
                                     if (atReply) {
                                     if (atReply) {
                                         const apiMessage = await sendMessageToAPI(content)
                                         const apiMessage = await sendMessageToAPI(content)
-                                        const senmsg = '@' + talkername + '  ' + prefix + apiMessage + suffix
+                                        const senmsg = '@' + talkername + '  ' + apiMessage 
                                         room.say(senmsg)
                                         room.say(senmsg)
                                         //写入数据库
                                         //写入数据库
                                         writeToDatabase({
                                         writeToDatabase({
@@ -172,7 +171,7 @@ async function wxlogin() {
                                 } else if (foundWords.length > 0) {
                                 } else if (foundWords.length > 0) {
                                     console.log('发现关键字')
                                     console.log('发现关键字')
                                     const apiMessage = await sendMessageToAPI(content)
                                     const apiMessage = await sendMessageToAPI(content)
-                                    const senmsg = '@' + talkername + '  ' + prefix + apiMessage + suffix
+                                    const senmsg = '@' + talkername + '  ' + apiMessage 
                                     room.say(senmsg)
                                     room.say(senmsg)
                                     //写入数据库
                                     //写入数据库
                                     writeToDatabase({
                                     writeToDatabase({
@@ -195,13 +194,12 @@ async function wxlogin() {
                                     return
                                     return
                                 } else {
                                 } else {
                                     const apiMessage = await sendMessageToAPI(content)
                                     const apiMessage = await sendMessageToAPI(content)
-                                    const senmsg = prefix + apiMessage + suffix
-                                    talker.say(senmsg)
+                                    talker.say(apiMessage)
                                     writeToDatabase({
                                     writeToDatabase({
                                         time: getCurrentTime(),
                                         time: getCurrentTime(),
                                         type: '私聊',
                                         type: '私聊',
                                         recmsg: content,
                                         recmsg: content,
-                                        senmsg: senmsg,
+                                        senmsg: apiMessage,
                                         name: message.talker().payload.name,
                                         name: message.talker().payload.name,
                                         roomname: null,
                                         roomname: null,
                                     })
                                     })
@@ -256,5 +254,6 @@ module.exports = {
     setWx,
     setWx,
     stopWx,
     stopWx,
     loadConfigValues,
     loadConfigValues,
-    User
+    User,
+    sendMessageToAPI
 }
 }