|
@@ -12,20 +12,9 @@ import AFNetworking
|
|
|
class ResultWrapper: NSObject {
|
|
|
var success: Bool = false
|
|
|
var result: NSDictionary = [:]
|
|
|
-// var message: String = ""
|
|
|
-// var code : Int = 200
|
|
|
-// var error: NSError?
|
|
|
-// var state: KMAIRewritingState = .rewrite
|
|
|
+
|
|
|
var content: String = ""
|
|
|
-
|
|
|
-// init(success: Bool, result: NSDictionary, message: String, code: Int, error: NSError? = nil, state: KMAIRewritingState) {
|
|
|
-// self.success = success
|
|
|
-// self.result = result
|
|
|
-// self.message = message
|
|
|
-// self.code = code
|
|
|
-// self.error = error
|
|
|
-// self.state = state
|
|
|
-// }
|
|
|
+
|
|
|
init(success: Bool, content: String) {
|
|
|
self.success = success
|
|
|
self.content = content
|
|
@@ -70,21 +59,46 @@ class ResultWrapper: NSObject {
|
|
|
if state == .rewrite || state == .correctTypos { //重写 && 纠错
|
|
|
aiRewriting(content: content, state: state, complete: complete)
|
|
|
} else if state == .uploadTranslate || state == .fileTranslate { // 上传文件 || 文件翻译
|
|
|
- aiTranslationFileUpload(file: content, complete: { [weak self] wrapper in
|
|
|
- let success: Bool = wrapper.success
|
|
|
- let fileKey = wrapper.content
|
|
|
- if success {
|
|
|
- let fileData = wrapper.result
|
|
|
- complete(wrapper)
|
|
|
-// aiTranslationFileTranslateHandle(fileKey: fileKey, from: languageAbbreviation(from), to: languageAbbreviation(to), complete: complete)
|
|
|
- } else {
|
|
|
- complete(wrapper)
|
|
|
- }
|
|
|
- })
|
|
|
+ let aiInfo: AIInfo = AIInfoManager.default().aiInfo
|
|
|
+ if aiInfo.totalToken - aiInfo.usedTimes > 1 {
|
|
|
+ aiTranslationFileUpload(file: content, complete: { [weak self] wrapper in
|
|
|
+ let success: Bool = wrapper.success
|
|
|
+ let fileKey = wrapper.content
|
|
|
+ if success {
|
|
|
+ let fileData = wrapper.result
|
|
|
+ complete(wrapper)
|
|
|
+
|
|
|
+ } else {
|
|
|
+ complete(wrapper)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ memberAITranslationFileUpload(file: content, complete: { [weak self] wrapper in
|
|
|
+ let success: Bool = wrapper.success
|
|
|
+ let fileKey = wrapper.content
|
|
|
+ if success {
|
|
|
+ let fileData = wrapper.result
|
|
|
+ complete(wrapper)
|
|
|
+
|
|
|
+ } else {
|
|
|
+ complete(wrapper)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
} else if state == .textTranslate { // 文本翻译
|
|
|
- aiTranslationTextTrans(q: content, from: languageAbbreviation(from), to: languageAbbreviation(to), complete: complete)
|
|
|
+ let aiInfo: AIInfo = AIInfoManager.default().aiInfo
|
|
|
+ if aiInfo.totalToken - aiInfo.usedTimes > 1 {
|
|
|
+ aiTranslationTextTrans(q: content, from: languageAbbreviation(from), to: languageAbbreviation(to), complete: complete)
|
|
|
+ } else {
|
|
|
+ aiMemberTranslationTextTrans(q: content, from: languageAbbreviation(from), to: languageAbbreviation(to), complete: complete)
|
|
|
+ }
|
|
|
} else if state == .extractSummaryFile { // 提取摘要
|
|
|
- extractSummaryFile(file: content, complete: complete)
|
|
|
+ let aiInfo: AIInfo = AIInfoManager.default().aiInfo
|
|
|
+ if aiInfo.totalToken - aiInfo.usedTimes > 0 {
|
|
|
+ extractSummaryFile(file: content, complete: complete)
|
|
|
+ } else {
|
|
|
+ memberExtractSummaryFile(file: content, complete: complete)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -262,14 +276,7 @@ class ResultWrapper: NSObject {
|
|
|
|
|
|
let message: String = responseObject!["message"] as? String ?? "unknown error"
|
|
|
let error = NSError(domain: message, code: Int(code)!)
|
|
|
-// let result = ResultWrapper(success: true, result: data, message: message, code: Int(code)!, error: error, state: .uploadTranslate)
|
|
|
-// if result.code == 200 {
|
|
|
-// result.success = true
|
|
|
-// complete(result)
|
|
|
-// } else {
|
|
|
-// result.success = false
|
|
|
-// complete(result)
|
|
|
-// }
|
|
|
+
|
|
|
if Int(code)! == 200 {
|
|
|
let wrapper = ResultWrapper(success: true, resultData: data)
|
|
|
wrapper.content = data["fileKey"] as! String
|
|
@@ -284,9 +291,69 @@ class ResultWrapper: NSObject {
|
|
|
complete(wrapper)
|
|
|
}
|
|
|
} else {
|
|
|
-// let error = NSError(domain: "unknown error", code: 404)
|
|
|
-// let result = ResultWrapper(success: false, result: [:], message: "unknown error", code: 404, error: error, state: .uploadTranslate)
|
|
|
-// complete(result)
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private func memberAITranslationFileUpload(file: String, complete: @escaping KMRequestServerComplete) {
|
|
|
+ let token: String = KMMemberInfo.shared.access_token
|
|
|
+ if token == "" {
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+
|
|
|
+ if(KMMemberInfo.shared.isLogin == true) {
|
|
|
+ KMUserInfoViewController.refreshTokenUserInfo {[weak self] success, resDic in
|
|
|
+ if(success == true) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ let code = resDic?.code ?? 200
|
|
|
+ if(code == 304) {
|
|
|
+ KMLoginWindowsController.shared.showWindow(nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ KMLoginWindowsController.shared.showWindow(nil)
|
|
|
+ }
|
|
|
+
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let urlString = AIInfoConfig().memberAIActionURL + "/member-system-website/v1/translate/fileUpload"
|
|
|
+ let fileData = FileManager.default.contents(atPath: file)
|
|
|
+ let params: [String: Any] = ["file" : fileData,
|
|
|
+ "calculate" : "1"]
|
|
|
+
|
|
|
+ KMAIRequestServer.requestServer.uploadFile(urlString: urlString, params: params) { formData in
|
|
|
+ let fileURL = URL(fileURLWithPath: file)
|
|
|
+ try? formData.appendPart(withFileURL: fileURL, name: "file", fileName: fileURL.lastPathComponent, mimeType: "application/octet-stream")
|
|
|
+ } requestSerializer: { requestSerializer in
|
|
|
+ requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
+ } completion: { task, responseObject, error in
|
|
|
+ if responseObject != nil {
|
|
|
+ let data: NSDictionary = responseObject as? NSDictionary ?? [:]
|
|
|
+ if data.count > 0 {
|
|
|
+ let code: String = data["code"] as? String ?? "06005"
|
|
|
+ if Int(code)! == 200, let dataDic = data["data"] {
|
|
|
+ let wrapper = ResultWrapper(success: true, resultData: dataDic as! NSDictionary)
|
|
|
+ if let value = (dataDic as! NSDictionary)["fileKey"] {
|
|
|
+ wrapper.content = value as! String
|
|
|
+ }
|
|
|
+ complete(wrapper)
|
|
|
+ } else {
|
|
|
+ let wrapper = ResultWrapper(success: false, resultData: data)
|
|
|
+ if let value = data["msg"] {
|
|
|
+ wrapper.content = value as! String
|
|
|
+ }
|
|
|
+ complete(wrapper)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ let error = NSError(domain: "unknown error", code: 404)
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ let error = NSError(domain: "unknown error", code: 404)
|
|
|
complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
}
|
|
|
}
|
|
@@ -299,26 +366,81 @@ class ResultWrapper: NSObject {
|
|
|
@param to 结束语言
|
|
|
*/
|
|
|
func aiTranslationFileTranslateHandle(fileKey: String, from: String, to: String, complete: @escaping KMRequestServerComplete) {
|
|
|
-
|
|
|
- let infoDictionary = Bundle .main.infoDictionary!
|
|
|
- let urlString = AIInfoConfig().aiActionURL + "/api/AI/fileTranslate"
|
|
|
+ let aiInfo: AIInfo = AIInfoManager.default().aiInfo
|
|
|
+ if aiInfo.totalToken - aiInfo.usedTimes > 1 {
|
|
|
+ let infoDictionary = Bundle .main.infoDictionary!
|
|
|
+ let urlString = AIInfoConfig().aiActionURL + "/api/AI/fileTranslate"
|
|
|
+
|
|
|
+ let paraDict = ["fileKey": fileKey,
|
|
|
+ "from": languageAbbreviation(from),
|
|
|
+ "to": languageAbbreviation(to),
|
|
|
+ "uuid": uuid(),
|
|
|
+ "platform": platform(),
|
|
|
+ "app_name": app_name()]
|
|
|
+ var postData = try! JSONSerialization.data(withJSONObject: paraDict)
|
|
|
+
|
|
|
+
|
|
|
+ var request = URLRequest(url: URL(string: urlString)!,timeoutInterval: Double.infinity)
|
|
|
+ request.addValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ request.addValue("application/json", forHTTPHeaderField: "Content-Type")
|
|
|
+
|
|
|
+ request.httpMethod = "POST"
|
|
|
+ request.httpBody = postData
|
|
|
+
|
|
|
+ let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
|
|
+ guard let data = data else {
|
|
|
+ print(String(describing: error))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let jsonObject = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary ?? [:]
|
|
|
+ if jsonObject != nil {
|
|
|
+ let data1: NSDictionary = jsonObject!["data"] as? NSDictionary ?? [:]
|
|
|
+ let code: String = jsonObject!["code"] as? String ?? "06005"
|
|
|
+ let message: String = jsonObject!["message"] as? String ?? "unknown error"
|
|
|
+ let error = NSError(domain: message, code: Int(code)!)
|
|
|
+
|
|
|
+ if Int(code)! == 200 {
|
|
|
+ let fileUrl = data1["fileUrl"]
|
|
|
+ let downFileUrl = data1["downFileUrl"]
|
|
|
+ let ossDownUrl = data1["ossDownUrl"]
|
|
|
+ let fileName = data1["fileName"]
|
|
|
+ let downFileName = data1["downFileName"]
|
|
|
+ let fromStr = data1["from"]
|
|
|
+ let toStr = data1["to"]
|
|
|
+
|
|
|
+ self.downFileName = downFileName as! String
|
|
|
+ complete(ResultWrapper(success: true, content: ossDownUrl as! String))
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: message))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ task.resume()
|
|
|
+ } else {
|
|
|
+ memberAITranslationFileTranslateHandle(fileKey: fileKey, from: from, to: to, complete: complete)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func memberAITranslationFileTranslateHandle(fileKey: String, from: String, to: String, complete: @escaping KMRequestServerComplete) {
|
|
|
+ let token: String = KMMemberInfo.shared.access_token
|
|
|
+
|
|
|
+ let urlString = AIInfoConfig().memberAIActionURL + "/member-system-website/v1/translate/fileTranslateHandle"
|
|
|
|
|
|
let paraDict = ["fileKey": fileKey,
|
|
|
"from": languageAbbreviation(from),
|
|
|
- "to": languageAbbreviation(to),
|
|
|
- "uuid": uuid(),
|
|
|
- "platform": platform(),
|
|
|
- "app_name": app_name()]
|
|
|
- var postData = try! JSONSerialization.data(withJSONObject: paraDict)
|
|
|
-
|
|
|
-
|
|
|
+ "to": languageAbbreviation(to)]
|
|
|
+ let postData = try! JSONSerialization.data(withJSONObject: paraDict)
|
|
|
+
|
|
|
var request = URLRequest(url: URL(string: urlString)!,timeoutInterval: Double.infinity)
|
|
|
- request.addValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
|
|
|
-
|
|
|
+
|
|
|
+ request.addValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ request.addValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
request.httpMethod = "POST"
|
|
|
request.httpBody = postData
|
|
|
-
|
|
|
+
|
|
|
let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
|
|
guard let data = data else {
|
|
|
print(String(describing: error))
|
|
@@ -326,38 +448,38 @@ class ResultWrapper: NSObject {
|
|
|
}
|
|
|
let jsonObject = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary ?? [:]
|
|
|
if jsonObject != nil {
|
|
|
- let data1: NSDictionary = jsonObject!["data"] as? NSDictionary ?? [:]
|
|
|
- let code: String = jsonObject!["code"] as? String ?? "06005"
|
|
|
- let message: String = jsonObject!["message"] as? String ?? "unknown error"
|
|
|
- let error = NSError(domain: message, code: Int(code)!)
|
|
|
-// let result = ResultWrapper(success: true, result: data1, message: message, code: Int(code)!, error: error, state: .fileTranslate)
|
|
|
-// if result.code == 200 {
|
|
|
-// result.success = true
|
|
|
-// complete(result)
|
|
|
-// } else {
|
|
|
-// result.success = false
|
|
|
-// complete(result)
|
|
|
-// }
|
|
|
- if Int(code)! == 200 {
|
|
|
- let fileUrl = data1["fileUrl"]
|
|
|
- let downFileUrl = data1["downFileUrl"]
|
|
|
- let ossDownUrl = data1["ossDownUrl"]
|
|
|
- let fileName = data1["fileName"]
|
|
|
- let downFileName = data1["downFileName"]
|
|
|
- let fromStr = data1["from"]
|
|
|
- let toStr = data1["to"]
|
|
|
-
|
|
|
- self.downFileName = downFileName as! String
|
|
|
-// self.downloadFile(filePath: ossDownUrl as! String, downFileName: downFileName as! String)
|
|
|
- complete(ResultWrapper(success: true, content: ossDownUrl as! String))
|
|
|
+ let codeStr: String = jsonObject!["code"] as! String
|
|
|
+ var code: Int = 0
|
|
|
+ if let numCode = Int(codeStr) {
|
|
|
+ code = numCode
|
|
|
+ }
|
|
|
+ var result_bool: Bool = true
|
|
|
+ var message: String = ""
|
|
|
+ if let value = jsonObject!["message"]{
|
|
|
+ message = value as! String
|
|
|
+ }
|
|
|
+
|
|
|
+ let result = KMMemberCenterResult(code: code, msg: message, result: result_bool)
|
|
|
+ if code == 200 {
|
|
|
+ if jsonObject!["data"] != nil {
|
|
|
+ let dataDic = jsonObject!["data"] as? NSDictionary ?? [:]
|
|
|
+
|
|
|
+ let fileUrl = dataDic["fileUrl"]
|
|
|
+ let downFileUrl = dataDic["downFileUrl"]
|
|
|
+ let ossDownUrl = dataDic["ossDownUrl"]
|
|
|
+ let fileName = dataDic["fileName"]
|
|
|
+ let downFileName = dataDic["downFileName"]
|
|
|
+ let fromStr = dataDic["from"]
|
|
|
+ let toStr = dataDic["to"]
|
|
|
+
|
|
|
+ self.downFileName = downFileName as! String
|
|
|
+ complete(ResultWrapper(success: true, content: ossDownUrl as! String))
|
|
|
+ }
|
|
|
} else {
|
|
|
complete(ResultWrapper(success: false, content: message))
|
|
|
}
|
|
|
} else {
|
|
|
-// let error = NSError(domain: "unknown error", code: 404)
|
|
|
-// let result = ResultWrapper(success: false, result: [:], message: "unknown error", code: 404, error: error, state: .fileTranslate)
|
|
|
-// complete(result)
|
|
|
- complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ complete(ResultWrapper(success: false, content: ""))
|
|
|
}
|
|
|
}
|
|
|
task.resume()
|
|
@@ -415,53 +537,143 @@ class ResultWrapper: NSObject {
|
|
|
task.resume()
|
|
|
}
|
|
|
|
|
|
+ private func aiMemberTranslationTextTrans(q: String, from: String, to: String, complete: @escaping KMRequestServerComplete) {
|
|
|
+ if(KMMemberInfo.shared.isLogin == true) {
|
|
|
+ KMUserInfoViewController.refreshTokenUserInfo {[weak self] success, resDic in
|
|
|
+ if(success == true) {
|
|
|
+ self?.aiMemberTranslationTextTransReq(q: q, from: from, to: to, complete: complete)
|
|
|
+ } else {
|
|
|
+ let code = resDic?.code ?? 200
|
|
|
+ if(code == 304) {
|
|
|
+ KMLoginWindowsController.shared.showWindow(nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func aiMemberTranslationTextTransReq(q: String, from: String, to: String, complete: @escaping KMRequestServerComplete) {
|
|
|
+ let urlString = AIInfoConfig().memberAIActionURL + "/member-system-website/v1/translate/textTrans"
|
|
|
+ let token: String = KMMemberInfo.shared.access_token
|
|
|
+
|
|
|
+ var escapedString = q
|
|
|
+ escapedString = String(data: escapedString.data(using: .utf8)!, encoding: .utf8)!
|
|
|
+ let paraDict = ["text":escapedString,
|
|
|
+ "from":from,
|
|
|
+ "to":to,
|
|
|
+ "uuid":uuid(),
|
|
|
+ "platform": platform(),
|
|
|
+ "app_name": app_name()]
|
|
|
+ var postData = try! JSONSerialization.data(withJSONObject: paraDict)
|
|
|
+
|
|
|
+ KMAIRequestServer.requestServer.aiMemberRewriting(urlString: urlString, params: paraDict) { formData in
|
|
|
+
|
|
|
+ } requestSerializer: { requestSerializer in
|
|
|
+ requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
+ } completion: { task, responseObject, error in
|
|
|
+ if responseObject is KMMemberCenterResult {
|
|
|
+ let resultObjct = responseObject as! KMMemberCenterResult
|
|
|
+ let code = resultObjct.code
|
|
|
+ let message: String = resultObjct.msg ?? ""
|
|
|
+ if code == 200 {
|
|
|
+ complete(ResultWrapper(success: true, content: message))
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: message))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
@abstract重写 & 纠错
|
|
|
@param content 内容
|
|
|
@param state 类型
|
|
|
*/
|
|
|
private func aiRewriting(content: String, state: KMAIRewritingState, complete: @escaping KMRequestServerComplete) {
|
|
|
+ let aiInfo: AIInfo = AIInfoManager.default().aiInfo
|
|
|
|
|
|
- var urlString = AIInfoConfig().aiActionURL + "/api/AI/rewrite"
|
|
|
+ if aiInfo.totalToken - aiInfo.usedTimes > 0 {
|
|
|
+ var urlString = AIInfoConfig().aiActionURL + "/api/AI/rewrite"
|
|
|
+ if state == .correctTypos {
|
|
|
+ urlString = AIInfoConfig().aiActionURL + "/api/AI/correctTypos"
|
|
|
+ }
|
|
|
+ let params: [String: Any] = ["content": content,
|
|
|
+ "uuid": uuid(),
|
|
|
+ "platform": platform(),
|
|
|
+ "app_name": app_name()]
|
|
|
+
|
|
|
+ KMAIRequestServer.requestServer.aiRewriting(urlString: urlString, params: params) { formData in
|
|
|
+
|
|
|
+ } requestSerializer: { requestSerializer in
|
|
|
+ requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ } completion: { task, responseObject, error in
|
|
|
+ if responseObject != nil {
|
|
|
+ let data: NSDictionary = responseObject!["data"] as? NSDictionary ?? [:]
|
|
|
+ let code: String = responseObject!["code"] as? String ?? "06005"
|
|
|
+ let message: String = responseObject!["message"] as? String ?? "unknown error"
|
|
|
+
|
|
|
+ if Int(code)! == 200 {
|
|
|
+ complete(ResultWrapper(success: true, content: data["content"] as! String))
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: message))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if(KMMemberInfo.shared.isLogin == true) {
|
|
|
+ KMUserInfoViewController.refreshTokenUserInfo {[weak self] success, resDic in
|
|
|
+ if(success == true) {
|
|
|
+ self?.aiMemberRewriting(content: content, state: state, complete: complete)
|
|
|
+ } else {
|
|
|
+ let code = resDic?.code ?? 200
|
|
|
+ if(code == 304) {
|
|
|
+ KMLoginWindowsController.shared.showWindow(nil)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ func aiMemberRewriting(content: String, state: KMAIRewritingState, complete: @escaping KMRequestServerComplete) {
|
|
|
+ let token: String = KMMemberInfo.shared.access_token
|
|
|
+ if token == "" {
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ var urlString = AIInfoConfig().memberAIActionURL + "/member-system-website/api/rewrite"
|
|
|
if state == .correctTypos {
|
|
|
- urlString = AIInfoConfig().aiActionURL + "/api/AI/correctTypos"
|
|
|
+ urlString = AIInfoConfig().memberAIActionURL + "/member-system-website/api/correct-typos"
|
|
|
}
|
|
|
- let params: [String: Any] = ["content": content,
|
|
|
- "uuid": uuid(),
|
|
|
- "platform": platform(),
|
|
|
- "app_name": app_name()]
|
|
|
+ let params: [String: Any] = ["content": content]
|
|
|
|
|
|
- KMAIRequestServer.requestServer.aiRewriting(urlString: urlString, params: params) { formData in
|
|
|
+ KMAIRequestServer.requestServer.aiMemberRewriting(urlString: urlString, params: params) { formData in
|
|
|
|
|
|
} requestSerializer: { requestSerializer in
|
|
|
requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
} completion: { task, responseObject, error in
|
|
|
- if responseObject != nil {
|
|
|
- let data: NSDictionary = responseObject!["data"] as? NSDictionary ?? [:]
|
|
|
- let code: String = responseObject!["code"] as? String ?? "06005"
|
|
|
- let message: String = responseObject!["message"] as? String ?? "unknown error"
|
|
|
- let error = NSError(domain: message, code: Int(code)!)
|
|
|
-// let result = ResultWrapper(success: true, result: data, message: message, code: Int(code)!, error: error, state: state)
|
|
|
-// if result.code == 200 {
|
|
|
-// result.success = true
|
|
|
-// complete(result)
|
|
|
-// } else {
|
|
|
-// result.success = false
|
|
|
-// complete(result)
|
|
|
-// }
|
|
|
- if Int(code)! == 200 {
|
|
|
- complete(ResultWrapper(success: true, content: data["content"] as! String))
|
|
|
+ if responseObject is KMMemberCenterResult {
|
|
|
+ let resultObjct = responseObject as! KMMemberCenterResult
|
|
|
+ let code = resultObjct.code
|
|
|
+ let message: String = resultObjct.msg ?? ""
|
|
|
+ if code == 200 {
|
|
|
+ complete(ResultWrapper(success: true, content: message))
|
|
|
} else {
|
|
|
complete(ResultWrapper(success: false, content: message))
|
|
|
}
|
|
|
} else {
|
|
|
-// let error = NSError(domain: "unknown error", code: 404)
|
|
|
-// let result = ResultWrapper(success: false, result: [:], message: "unknown error", code: 404, error: error, state: state)
|
|
|
-// complete(result)
|
|
|
complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
@abstract 提取摘要
|
|
@@ -487,14 +699,7 @@ class ResultWrapper: NSObject {
|
|
|
let code: Int = responseObject!["code"] as? Int ?? 06005
|
|
|
let message: String = responseObject!["message"] as? String ?? "unknown error"
|
|
|
let error = NSError(domain: message, code: code)
|
|
|
-// let result = ResultWrapper(success: true, result: data, message: message, code: Int(code)!, error: error, state: .extractSummaryFile)
|
|
|
-// if result.code == 200 {
|
|
|
-// result.success = true
|
|
|
-// complete(result)
|
|
|
-// } else {
|
|
|
-// result.success = false
|
|
|
-// complete(result)
|
|
|
-// }
|
|
|
+
|
|
|
if code == 200 {
|
|
|
complete(ResultWrapper(success: true, content: data["summary"] as! String))
|
|
|
} else {
|
|
@@ -502,13 +707,47 @@ class ResultWrapper: NSObject {
|
|
|
}
|
|
|
} else {
|
|
|
let error = NSError(domain: "unknown error", code: 404)
|
|
|
-// let result = ResultWrapper(success: false, result: [:], message: "unknown error", code: 404, error: error, state: .extractSummaryFile)
|
|
|
-// complete(result)
|
|
|
- complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private func memberExtractSummaryFile(file: String, complete: @escaping KMRequestServerComplete) {
|
|
|
+ let token: String = KMMemberInfo.shared.access_token
|
|
|
+ if token == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ let urlString = AIInfoConfig().memberAIActionURL + "/member-system-website/api/extract-file-summary"
|
|
|
+ let fileData = FileManager.default.contents(atPath: file)
|
|
|
+ let params: [String: Any] = ["file": fileData]
|
|
|
+
|
|
|
+ KMAIRequestServer.requestServer.uploadFile(urlString: urlString, params: params) { formData in
|
|
|
+ let fileURL = URL(fileURLWithPath: file)
|
|
|
+ try? formData.appendPart(withFileURL: fileURL, name: "file", fileName: fileURL.lastPathComponent, mimeType: "application/octet-stream")
|
|
|
+ } requestSerializer: { requestSerializer in
|
|
|
+ requestSerializer.setValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ requestSerializer.setValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
+ } completion: { task, responseObject, error in
|
|
|
+ if responseObject != nil {
|
|
|
+ let data: NSDictionary = responseObject!["data"] as? NSDictionary ?? [:]
|
|
|
+ let code: Int = responseObject!["code"] as? Int ?? 06005
|
|
|
+ let message: String = responseObject!["message"] as? String ?? "unknown error"
|
|
|
+ let error = NSError(domain: message, code: code)
|
|
|
+
|
|
|
+ if code == 200 {
|
|
|
+ complete(ResultWrapper(success: true, content: data["summary"] as! String))
|
|
|
+ } else {
|
|
|
+ complete(ResultWrapper(success: false, content: message))
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ let error = NSError(domain: "unknown error", code: 404)
|
|
|
+ complete(ResultWrapper(success: false, content: "unknown error"))
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
//typealias KMHttpRequestServerComplete = (_ task: URLSessionDataTask?, _ responseObject: AnyObject?, _ error: NSError?) -> Void
|
|
@@ -570,7 +809,7 @@ class KMAIRequestServer {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
文件翻译
|
|
|
*/
|
|
@@ -661,4 +900,69 @@ class KMAIRequestServer {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ func aiMemberRewriting(urlString: String,
|
|
|
+ params: Dictionary<String, Any>?,
|
|
|
+ body: ((_ formData:AFMultipartFormData) -> Void)?,
|
|
|
+ requestSerializer: ((_ requestSerializer:AFHTTPRequestSerializer) -> Void)?,
|
|
|
+ completion: KMHttpRequestServerComplete?) -> Void {
|
|
|
+
|
|
|
+ let token: String = KMMemberInfo.shared.access_token
|
|
|
+
|
|
|
+ let urlString = urlString
|
|
|
+ let paraDict: [String: Any] = params!
|
|
|
+ let postData = try! JSONSerialization.data(withJSONObject: paraDict)
|
|
|
+
|
|
|
+ var request = URLRequest(url: URL(string: urlString)!,timeoutInterval: Double.infinity)
|
|
|
+ request.addValue("application/json", forHTTPHeaderField: "Content-Type")
|
|
|
+
|
|
|
+ request.addValue("Apifox/1.0.0 (https://www.apifox.cn)", forHTTPHeaderField: "User-Agent")
|
|
|
+ request.addValue("Bearer " + token, forHTTPHeaderField: "Authorization")
|
|
|
+ request.httpMethod = "POST"
|
|
|
+ request.httpBody = postData
|
|
|
+
|
|
|
+ let task = URLSession.shared.dataTask(with: request) { data, response, error in
|
|
|
+ guard let data = data else {
|
|
|
+ print(String(describing: error))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let jsonObject = try? JSONSerialization.jsonObject(with: data, options: []) as? NSDictionary ?? [:]
|
|
|
+ if jsonObject != nil {
|
|
|
+ let codeStr: String = jsonObject!["code"] as? String ?? ""
|
|
|
+ var code: Int = 0
|
|
|
+ if let numCode = Int(codeStr) {
|
|
|
+ code = numCode
|
|
|
+ }
|
|
|
+ var result_bool: Bool = true
|
|
|
+
|
|
|
+ var message: String = ""
|
|
|
+ if let value = jsonObject!["message"]{
|
|
|
+ message = value as! String
|
|
|
+ }
|
|
|
+ if let string = jsonObject!["data"] {
|
|
|
+ let dataDic = jsonObject!["data"] as? NSDictionary ?? [:]
|
|
|
+ if let dataStr = dataDic["content"] {
|
|
|
+ message = dataStr as! String
|
|
|
+ result_bool = true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let result = KMMemberCenterResult(code: code, msg: message, result: result_bool)
|
|
|
+ if code == 200 {
|
|
|
+ if (completion != nil) {
|
|
|
+ completion!(nil, result, nil);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (completion != nil) {
|
|
|
+ completion!(nil, nil, error as? NSError);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (completion != nil) {
|
|
|
+ completion!(nil, nil, error as? NSError);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ task.resume()
|
|
|
+
|
|
|
+ }
|
|
|
}
|