Просмотр исходного кода

add:修改talk函数返回值,让错误日志能直接显示在串口里

OneLifeHowDo 1 год назад
Родитель
Сommit
d563e8ff92
2 измененных файлов с 28 добавлено и 12 удалено
  1. 9 2
      demo/openai/deepseek/main.lua
  2. 19 10
      script/libs/openai.lua

+ 9 - 2
demo/openai/deepseek/main.lua

@@ -9,7 +9,9 @@ openai = require "openai"
 local uartid = 2
 
 local opts = {
-    apikey = "123456",
+    -- apikey = "123456",
+    apikey = "sk-b08cf8b9bdc64050a0a20e3d44d7c15a",
+
     apiurl = "https://api.deepseek.com",
     model = "deepseek-chat"
 }
@@ -44,9 +46,14 @@ sys.taskInit(function()
         local re, data = sys.waitUntil("uart_rx")
         if data then
             local resp = chat:talk(data)
-            if resp then
+            if resp and type(resp) == "table" then
                 log.info("deepseek回复", resp.content)
                 uart.write(uartid, resp.content)
+            else
+                local re_data = "大语言模型返回失败,错误原因:\r\n"
+                log.info(re_data,resp)
+                uart.write(uartid,re_data)
+                uart.write(uartid,resp)
             end
         end
     end

+ 19 - 10
script/libs/openai.lua

@@ -42,6 +42,7 @@ local function talk(self, msg)
     local code, headers, body = http.request("POST", url, rheaders, (json.encode(rbody)), {
         timeout = 60 * 1000
     }).wait()
+    local tag = ""
     -- log.info("openai", code, json.encode(headers) or "", body or "")
     if code == 200 then
         -- log.info("openai", "执行完成!!!")
@@ -56,24 +57,32 @@ local function talk(self, msg)
             return ch
         end
     elseif code == 400 then
-        log.info("请求体格式错误,请根据错误信息提示修改请求体")
-        log.info("openai", code, json.encode(headers) or "", body or "")
+        tag = "请求体格式错误,请根据错误信息提示修改请求体"
+        log.warn(tag)
     elseif code == 401 then
-        log.info("API key错误,认证失败,请检查您的API key是否正确,如没有API key,请先创建API key")
+        tag = "API key错误,认证失败,请检查您的API key是否正确,如没有API key,请先创建API key"
+        log.warn(tag)
     elseif code == 402 then
-        log.info("账号余额不足,请充值")
+        tag = "账号余额不足,请充值"
+        log.warn(tag)
     elseif code == 422 then
-        log.info("请求体参数错误,请根据错误信息提示修改相关参数")
-        log.info("openai", code, json.encode(headers) or "", body or "")
+        tag = "请求体参数错误,请根据错误信息提示修改请求体"
+        log.warn(tag)
     elseif code == 429 then
-        log.info("请求速率(TPM 或 RPM)达到上限,请稍后再试")
+        tag = "请求速率(TPM 或 RPM)达到上限,请稍后再试"
+        log.warn(tag)
     elseif code == 500 then
-        log.info("服务器内部故障,请等待后重试,若问题一直存在,请联系deepseek官方解决")
+        tag = "服务器内部故障,请等待后重试,若问题一直存在,请联系deepseek官方解决"
+        log.warn(tag)
+
     elseif code == 503 then
-        log.info("服务器负载过高,请稍后重试您的请求")
+        tag = "服务器负载过高,请稍后重试您的请求"
+        log.warn(tag)
     else
-        log.info("未知原因", "openai", code, json.encode(headers) or "", body or "")
+        tag = "未知原因" .. code
     end
+    log.info("openai", code, json.encode(headers) or "", body or "")
+    return tag
 end
 
 --[[