Commit dedb5827 authored by Steven杜宇's avatar Steven杜宇

// AI

parent 4ffced05
...@@ -159,6 +159,14 @@ class YHAIMainChatViewController: YHBaseViewController { ...@@ -159,6 +159,14 @@ class YHAIMainChatViewController: YHBaseViewController {
self.tableView.reloadData() self.tableView.reloadData()
} }
} }
func uploadEvaluationMessage(_ msg: YHAIChatMessage, callback:((Bool)->())? = nil) {
viewModel.createMessage(conversationId: conversationId, role: "assistant", msg: msg) {
[weak self] success, error in
guard let self = self else { return }
callback?(success)
}
}
} }
extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource { extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -213,21 +221,26 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource ...@@ -213,21 +221,26 @@ extension YHAIMainChatViewController: UITableViewDelegate, UITableViewDataSource
[weak self] dict in [weak self] dict in
guard let self = self else { return } guard let self = self else { return }
// 生成测评结果文字 和测评结果图片 两种消息
var arr = [YHAIChatMessage]() var arr = [YHAIChatMessage]()
if let satisfy_count = dict["meet_number"] as? Int { if let satisfy_count = dict["meet_number"] as? Int {
let text = "测评成功!优才新政策要求满足12项评核准则中的任意6项即可申请(即12分制满足6分),您当前满足\(satisfy_count)项,联系专属顾问咨询详细方案!" let text = "测评成功!优才新政策要求满足12项评核准则中的任意6项即可申请(即12分制满足6分),您当前满足\(satisfy_count)项,联系专属顾问咨询详细方案!"
let textMsg = YHAIChatMessage.createTextMesssage(text: text) let textMsg = YHAIChatMessage.createTextMesssage(text: text)
arr.append(textMsg) arr.append(textMsg)
self.uploadEvaluationMessage(textMsg)
} }
if let img1 = dict["consultant_qr_code_with_text"] as? String { if let img1 = dict["consultant_qr_code_with_text"] as? String {
let picMsg = YHAIChatMessage.createPictureMessage(url: img1, imgType: 1) let picMsg = YHAIChatMessage.createPictureMessage(url: img1, imgType: 1)
arr.append(picMsg) arr.append(picMsg)
self.uploadEvaluationMessage(picMsg)
} }
if arr.count > 0 { if arr.count > 0 {
messages.append(contentsOf: arr) messages.append(contentsOf: arr)
tableView.reloadData() tableView.reloadData()
} }
} }
} }
return cell return cell
......
...@@ -157,6 +157,14 @@ class YHAIRobotChatViewController: YHBaseViewController { ...@@ -157,6 +157,14 @@ class YHAIRobotChatViewController: YHBaseViewController {
self.tableView.reloadData() self.tableView.reloadData()
} }
} }
func uploadEvaluationMessage(_ msg: YHAIChatMessage, callback:((Bool)->())? = nil) {
viewModel.createMessage(conversationId: conversationId, role: "assistant", msg: msg) {
[weak self] success, error in
guard let self = self else { return }
callback?(success)
}
}
} }
extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSource { extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSource {
...@@ -211,21 +219,26 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc ...@@ -211,21 +219,26 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
[weak self] dict in [weak self] dict in
guard let self = self else { return } guard let self = self else { return }
// 生成测评结果文字 和测评结果图片 两种消息
var arr = [YHAIChatMessage]() var arr = [YHAIChatMessage]()
if let satisfy_count = dict["meet_number"] as? Int { if let satisfy_count = dict["meet_number"] as? Int {
let text = "测评成功!优才新政策要求满足12项评核准则中的任意6项即可申请(即12分制满足6分),您当前满足\(satisfy_count)项,联系专属顾问咨询详细方案!" let text = "测评成功!优才新政策要求满足12项评核准则中的任意6项即可申请(即12分制满足6分),您当前满足\(satisfy_count)项,联系专属顾问咨询详细方案!"
let textMsg = YHAIChatMessage.createTextMesssage(text: text) let textMsg = YHAIChatMessage.createTextMesssage(text: text)
arr.append(textMsg) arr.append(textMsg)
self.uploadEvaluationMessage(textMsg)
} }
if let img1 = dict["consultant_qr_code_with_text"] as? String { if let img1 = dict["consultant_qr_code_with_text"] as? String {
let picMsg = YHAIChatMessage.createPictureMessage(url: img1, imgType: 1) let picMsg = YHAIChatMessage.createPictureMessage(url: img1, imgType: 1)
arr.append(picMsg) arr.append(picMsg)
self.uploadEvaluationMessage(picMsg)
} }
if arr.count > 0 { if arr.count > 0 {
messages.append(contentsOf: arr) messages.append(contentsOf: arr)
tableView.reloadData() tableView.reloadData()
} }
} }
} }
return cell return cell
......
...@@ -109,4 +109,43 @@ class YHAIViewModel: NSObject { ...@@ -109,4 +109,43 @@ class YHAIViewModel: NSObject {
} }
} }
func createMessage(conversationId: String, role: String, msg: YHAIChatMessage, callBackBlock:@escaping (_ success: Bool,_ error:YHErrorModel?)->()) {
guard let msgDict = msg.body.toDictionary() else {
return
}
let content = self.dicToJSONString(dict: msgDict)
let params:[String : Any] = ["conversationId" : conversationId,
"contentType" : "\(msg.body.contentType)",
"role" : role,
"content" : content]
printLog("CREATE_MSG:\n \(params)")
let strUrl = YHBaseUrlManager.shared.curURL() + YHAllApiName.AIChat.createMessage
let _ = YHNetRequest.postRequest(url: strUrl, params: params) {
[weak self] json, code in
//1. json字符串 转 对象
guard let self = self else { return }
printLog("model 是 ==> \(json)")
if json.code == 200 {
callBackBlock(true,nil)
} else {
let err = YHErrorModel(errorCode: Int32(json.code), errorMsg: json.msg.isEmpty ? "" : json.msg)
callBackBlock(false,err)
}
} failBlock: { err in
callBackBlock(false,err)
}
}
func dicToJSONString(dict: [String: Any]) -> String {
if let jsonData = try? JSONSerialization.data(withJSONObject: dict, options: .prettyPrinted) {
return String(data: jsonData, encoding: .utf8) ?? ""
}
return ""
}
} }
...@@ -31,25 +31,21 @@ class YHAIPictureMessageCell: UITableViewCell { ...@@ -31,25 +31,21 @@ class YHAIPictureMessageCell: UITableViewCell {
var imgW = 220.0 var imgW = 220.0
var imgH = 220.0 var imgH = 220.0
var imgScale = 1.0 var ratio = 1.0
if image.size.width > 0, image.size.height > 0 { if image.size.width > 0, image.size.height > 0 {
if UIScreen.main.scale > 0 { ratio = image.size.width/image.size.height
imgScale = UIScreen.main.scale
} }
imgW = image.size.width/imgScale imgH = imgW/ratio
imgH = image.size.height/imgScale
printLog("AI_MSG_PICTURE_REAL_SIZE: (\(imgW), \(imgH), \(imgScale)")
let ratio = imgW/imgH // if imgH > 476 {
if imgH > 476 { // imgH = 476
imgH = 476 // imgW = imgH*ratio
imgW = imgH*ratio //
// } else {
// imgW = 220
// imgH = imgW/ratio
// }
} else {
imgW = 220
imgH = imgW/ratio
}
}
return CGSizeMake(imgW, imgH) return CGSizeMake(imgW, imgH)
} }
...@@ -122,6 +118,7 @@ class YHAIPictureMessageCell: UITableViewCell { ...@@ -122,6 +118,7 @@ class YHAIPictureMessageCell: UITableViewCell {
@objc func didMessageClicked() { @objc func didMessageClicked() {
self.endEditing(true) self.endEditing(true)
YHPictureReviewManager.shared.showNetWorkPicturs(curIndex: 0, arrPicturs: [imgInfo.imageUrl])
} }
} }
...@@ -666,6 +666,7 @@ class YHAllApiName { ...@@ -666,6 +666,7 @@ class YHAllApiName {
static let getAIChatSessionId = "super-app/ai/agent/conversation" static let getAIChatSessionId = "super-app/ai/agent/conversation"
static let cancelAIChat = "super-app/ai/agent/chat-cancel" static let cancelAIChat = "super-app/ai/agent/chat-cancel"
static let chatHistory = "super-app/ai/agent/chat-details" static let chatHistory = "super-app/ai/agent/chat-details"
static let createMessage = "super-app/ai/agent/chat-create-message"
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment