37 lines
1.0 KiB
Lua
37 lines
1.0 KiB
Lua
local http = require("socket.http")
|
|
local ltn12 = require("ltn12")
|
|
local cjson = require("cjson")
|
|
|
|
local M = {}
|
|
local url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
|
|
|
|
M.ask = function(key,content,model)
|
|
-- 构造 JSON 格式的请求数据
|
|
local payload = {
|
|
model = model,
|
|
messages = content
|
|
}
|
|
local response_body = {}
|
|
|
|
local res, code, response_headers, status = http.request{
|
|
url = url,
|
|
method = "POST",
|
|
headers = {
|
|
["Authorization"] = "Bearer " .. key,
|
|
["Content-Type"] = "application/json",
|
|
},
|
|
source = ltn12.source.string(cjson.encode(payload)),
|
|
sink = ltn12.sink.table(response_body)
|
|
}
|
|
if code == 200 then
|
|
local data = cjson.decode(table.concat(response_body))
|
|
return true,{content = data.choices[1].message.content,reasoning_content = data.choices[1].reasoning_content}
|
|
else
|
|
return false, "请求失败,错误描述:" .. table.concat(response_body)
|
|
end
|
|
end
|
|
|
|
return M
|
|
|
|
|