Commit 575fa56a authored by Steven杜宇's avatar Steven杜宇

// AI

parent 1ac977bb
...@@ -878,6 +878,8 @@ ...@@ -878,6 +878,8 @@
04FD85702C21646200BEF9C5 /* YHMyInterestTopicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FD856F2C21646200BEF9C5 /* YHMyInterestTopicCell.swift */; }; 04FD85702C21646200BEF9C5 /* YHMyInterestTopicCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FD856F2C21646200BEF9C5 /* YHMyInterestTopicCell.swift */; };
04FD85722C21786900BEF9C5 /* YHNameCardInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FD85712C21786900BEF9C5 /* YHNameCardInfoView.swift */; }; 04FD85722C21786900BEF9C5 /* YHNameCardInfoView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FD85712C21786900BEF9C5 /* YHNameCardInfoView.swift */; };
04FD85742C219CFD00BEF9C5 /* YHMatchResultListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FD85732C219CFD00BEF9C5 /* YHMatchResultListViewController.swift */; }; 04FD85742C219CFD00BEF9C5 /* YHMatchResultListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04FD85732C219CFD00BEF9C5 /* YHMatchResultListViewController.swift */; };
04FEDCFA2D08237F00D24FE2 /* tab_ai.json in Resources */ = {isa = PBXBuildFile; fileRef = 04FEDCF92D08237F00D24FE2 /* tab_ai.json */; };
04FEDCFD2D08274D00D24FE2 /* gangxiaobao_logo.json in Resources */ = {isa = PBXBuildFile; fileRef = 04FEDCFC2D08274D00D24FE2 /* gangxiaobao_logo.json */; };
6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; }; 6203A87EDC96313BBE789D9C /* Pods_galaxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */; };
A5000F512C3BC28B00843452 /* YHHomeHoldViewPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5000F502C3BC28B00843452 /* YHHomeHoldViewPageViewController.swift */; }; A5000F512C3BC28B00843452 /* YHHomeHoldViewPageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5000F502C3BC28B00843452 /* YHHomeHoldViewPageViewController.swift */; };
A51044182B493675006B60BB /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = A51044172B493675006B60BB /* README.md */; }; A51044182B493675006B60BB /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = A51044172B493675006B60BB /* README.md */; };
...@@ -1993,6 +1995,8 @@ ...@@ -1993,6 +1995,8 @@
04FD856F2C21646200BEF9C5 /* YHMyInterestTopicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyInterestTopicCell.swift; sourceTree = "<group>"; }; 04FD856F2C21646200BEF9C5 /* YHMyInterestTopicCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMyInterestTopicCell.swift; sourceTree = "<group>"; };
04FD85712C21786900BEF9C5 /* YHNameCardInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHNameCardInfoView.swift; sourceTree = "<group>"; }; 04FD85712C21786900BEF9C5 /* YHNameCardInfoView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHNameCardInfoView.swift; sourceTree = "<group>"; };
04FD85732C219CFD00BEF9C5 /* YHMatchResultListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMatchResultListViewController.swift; sourceTree = "<group>"; }; 04FD85732C219CFD00BEF9C5 /* YHMatchResultListViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = YHMatchResultListViewController.swift; sourceTree = "<group>"; };
04FEDCF92D08237F00D24FE2 /* tab_ai.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = tab_ai.json; sourceTree = "<group>"; };
04FEDCFC2D08274D00D24FE2 /* gangxiaobao_logo.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = gangxiaobao_logo.json; sourceTree = "<group>"; };
19B28612265782F9DC1BE0B0 /* Pods-galaxy.testenv.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.testenv.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.testenv.xcconfig"; sourceTree = "<group>"; }; 19B28612265782F9DC1BE0B0 /* Pods-galaxy.testenv.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.testenv.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.testenv.xcconfig"; sourceTree = "<group>"; };
58C2405158A4A6632D0E7460 /* Pods-galaxy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.debug.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.debug.xcconfig"; sourceTree = "<group>"; }; 58C2405158A4A6632D0E7460 /* Pods-galaxy.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-galaxy.debug.xcconfig"; path = "Target Support Files/Pods-galaxy/Pods-galaxy.debug.xcconfig"; sourceTree = "<group>"; };
987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_galaxy.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 987C69D43AE8D85DC1930DCF /* Pods_galaxy.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_galaxy.framework; sourceTree = BUILT_PRODUCTS_DIR; };
...@@ -4895,6 +4899,22 @@ ...@@ -4895,6 +4899,22 @@
path = V; path = V;
sourceTree = "<group>"; sourceTree = "<group>";
}; };
04FEDCF82D08235A00D24FE2 /* tab_ai */ = {
isa = PBXGroup;
children = (
04FEDCF92D08237F00D24FE2 /* tab_ai.json */,
);
path = tab_ai;
sourceTree = "<group>";
};
04FEDCFB2D08273B00D24FE2 /* gangxiaobao_logo */ = {
isa = PBXGroup;
children = (
04FEDCFC2D08274D00D24FE2 /* gangxiaobao_logo.json */,
);
path = gangxiaobao_logo;
sourceTree = "<group>";
};
4758815B24BAF3CAA24EC6A8 /* Pods */ = { 4758815B24BAF3CAA24EC6A8 /* Pods */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
...@@ -5701,6 +5721,8 @@ ...@@ -5701,6 +5721,8 @@
A5DF3D4A2BF9A304003D5F03 /* jsons */ = { A5DF3D4A2BF9A304003D5F03 /* jsons */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
04FEDCFB2D08273B00D24FE2 /* gangxiaobao_logo */,
04FEDCF82D08235A00D24FE2 /* tab_ai */,
04013E3D2CF87F3A001A8E40 /* zhibo.json */, 04013E3D2CF87F3A001A8E40 /* zhibo.json */,
04BE393A2CF9B61100BD31DB /* ai_chat_input_pause */, 04BE393A2CF9B61100BD31DB /* ai_chat_input_pause */,
04BE39372CF9B5B100BD31DB /* ai_chat_loading */, 04BE39372CF9B5B100BD31DB /* ai_chat_loading */,
...@@ -5939,6 +5961,7 @@ ...@@ -5939,6 +5961,7 @@
A5EE42012C216C78005BBA5D /* img_0.png in Resources */, A5EE42012C216C78005BBA5D /* img_0.png in Resources */,
04F0ABF32C364F9400518C30 /* home.json in Resources */, 04F0ABF32C364F9400518C30 /* home.json in Resources */,
04013E3E2CF87F3A001A8E40 /* zhibo.json in Resources */, 04013E3E2CF87F3A001A8E40 /* zhibo.json in Resources */,
04FEDCFA2D08237F00D24FE2 /* tab_ai.json in Resources */,
04943BE82CF0A0B500BF2255 /* submit_page_scroll.gif in Resources */, 04943BE82CF0A0B500BF2255 /* submit_page_scroll.gif in Resources */,
A5573EDB2B317C0000D98EC0 /* Assets.xcassets in Resources */, A5573EDB2B317C0000D98EC0 /* Assets.xcassets in Resources */,
04F0ABF52C364F9400518C30 /* community.json in Resources */, 04F0ABF52C364F9400518C30 /* community.json in Resources */,
...@@ -5947,6 +5970,7 @@ ...@@ -5947,6 +5970,7 @@
048FA0332BFDDFF400AD3BA9 /* submit_head_animation.gif in Resources */, 048FA0332BFDDFF400AD3BA9 /* submit_head_animation.gif in Resources */,
A5E69D512BA304D400411932 /* DIN Alternate Bold.ttf in Resources */, A5E69D512BA304D400411932 /* DIN Alternate Bold.ttf in Resources */,
04BE393E2CF9B67700BD31DB /* ai_chat_input_pause.json in Resources */, 04BE393E2CF9B67700BD31DB /* ai_chat_input_pause.json in Resources */,
04FEDCFD2D08274D00D24FE2 /* gangxiaobao_logo.json in Resources */,
A5EE42022C216C78005BBA5D /* img_2.jpg in Resources */, A5EE42022C216C78005BBA5D /* img_2.jpg in Resources */,
04EA2E702BF74FA200AE80B0 /* shipin.json in Resources */, 04EA2E702BF74FA200AE80B0 /* shipin.json in Resources */,
044378A42BFC848C001F95AE /* loginBkg.mov in Resources */, 044378A42BFC848C001F95AE /* loginBkg.mov in Resources */,
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
// //
import ESTabBarController_swift import ESTabBarController_swift
import Lottie
class YHAITabBarItemContentView: ESTabBarItemContentView { class YHAITabBarItemContentView: ESTabBarItemContentView {
...@@ -65,9 +66,12 @@ class YHAITabBarItemContentView: ESTabBarItemContentView { ...@@ -65,9 +66,12 @@ class YHAITabBarItemContentView: ESTabBarItemContentView {
return label return label
}() }()
lazy var iconImgView: UIImageView = { lazy var iconImgView: LottieAnimationView! = {
let v = UIImageView(image: UIImage(named: "tab_AI")) let lottieView = LottieAnimationView(name: "tab_ai")
return v lottieView.loopMode = .loop
lottieView.contentMode = .scaleAspectFit
lottieView.play()
return lottieView
}() }()
override init(frame: CGRect) { override init(frame: CGRect) {
......
...@@ -101,7 +101,6 @@ class YHAIMainChatViewController: YHBaseViewController { ...@@ -101,7 +101,6 @@ class YHAIMainChatViewController: YHBaseViewController {
override func viewWillAppear(_ animated: Bool) { override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated) super.viewWillAppear(animated)
autoResponseLocalPictureMessage()
} }
override func viewWillDisappear(_ animated: Bool) { override func viewWillDisappear(_ animated: Bool) {
...@@ -178,15 +177,15 @@ class YHAIMainChatViewController: YHBaseViewController { ...@@ -178,15 +177,15 @@ class YHAIMainChatViewController: YHBaseViewController {
return !uuids.contains($0.messageId) return !uuids.contains($0.messageId)
} }
messages.insert(contentsOf: results, at: 0) messages.insert(contentsOf: results, at: 0)
autoResponseTextMessage()
self.reloadAndScrollToBottom(true, true) self.reloadAndScrollToBottom(true, true)
} }
} }
func autoResponseLocalPictureMessage() { func autoResponseTextMessage() {
if isNeedAutoResponseImage { if messages.count <= 0 {
isNeedAutoResponseImage = false let text = "您好,我是港小宝,为新中产提供一站式服务。您有香港身份和生活的问题,可以咨询我~"
let previewUrl = "https://prod-cdn-pub.galaxy-immi.com/5000000/chats/mask_group.jpg" let msg = self.chatConfig.createRobotResponseTextMessage(text)
let msg = self.chatConfig.createRobotResponseLocalPictureMessage("ai_auto_chat_img", previewUrl:previewUrl)
messages.append(msg) messages.append(msg)
self.reloadAndScrollToBottom() self.reloadAndScrollToBottom()
} }
......
...@@ -219,7 +219,7 @@ class YHAIRequestManager: NSObject { ...@@ -219,7 +219,7 @@ class YHAIRequestManager: NSObject {
print("MESSAGE_RECEIVE:\n \(receiveMessage)") print("MESSAGE_RECEIVE:\n \(receiveMessage)")
let sessionDone = receiveMessage.body.isDone() var sessionDone = receiveMessage.body.isDone()
if sessionDone { if sessionDone {
print("SESSION DONE") print("SESSION DONE")
} }
...@@ -227,9 +227,37 @@ class YHAIRequestManager: NSObject { ...@@ -227,9 +227,37 @@ class YHAIRequestManager: NSObject {
// 一段话结束需要重新生成uuid 来 // 一段话结束需要重新生成uuid 来
self.uuid = UUID().uuidString + NSDate().timeIntervalSince1970.description self.uuid = UUID().uuidString + NSDate().timeIntervalSince1970.description
} }
if receiveMessage.isUserfulMessage() { if receiveMessage.isUserfulMessage() {
completion?(receiveMessage, sessionDone) completion?(receiveMessage, sessionDone)
} }
// if receiveMessage.isUserfulMessage() {
// if receiveMessage.isNeedSpiceMessage() {
// let text = receiveMessage.body.contentText
// if text.count > 1 {
// let textArray = Array(text)
// for (index, character) in textArray.enumerated() {
// let msg = receiveMessage.copy() as! YHAIChatMessage
// msg.body.contentText = String(character)
// msg.body.status = ""
// if index == textArray.count-1 {
// msg.body.status = receiveMessage.body.status
// }
// msg.updateBodyToData()
// printLog("AAAAA- \(msg)")
// sessionDone = receiveMessage.body.isDone()
// completion?(msg, sessionDone)
// }
//
// } else {
// completion?(receiveMessage, sessionDone)
// }
//
// } else {
// completion?(receiveMessage, sessionDone)
// }
// }
} }
} // arr 结束 } // arr 结束
} }
......
...@@ -264,6 +264,15 @@ class YHAIRobotChatViewController: YHBaseViewController { ...@@ -264,6 +264,15 @@ class YHAIRobotChatViewController: YHBaseViewController {
let msg = self.chatConfig.createRobotResponseTextMessage(text) let msg = self.chatConfig.createRobotResponseTextMessage(text)
messages.append(msg) messages.append(msg)
} else if robotType == YHAIRobotType.image.rawValue {
let previewUrl = "https://prod-cdn-pub.galaxy-immi.com/5000000/chats/mask_group.jpg"
let msg = self.chatConfig.createRobotResponseLocalPictureMessage("ai_auto_chat_img", previewUrl:previewUrl)
messages.append(msg)
} else if robotType == YHAIRobotType.main.rawValue {
let text = "您好,我是港小宝,为新中产提供一站式服务。您有香港身份和生活的问题,可以咨询我~"
let msg = self.chatConfig.createRobotResponseTextMessage(text)
messages.append(msg)
} }
} }
self.reloadAndScrollToBottom(true) self.reloadAndScrollToBottom(true)
......
...@@ -23,6 +23,7 @@ enum YHAIRobotType: String { ...@@ -23,6 +23,7 @@ enum YHAIRobotType: String {
case main = "mainBot" case main = "mainBot"
case education = "educationBot" case education = "educationBot"
case sale = "saleBot" case sale = "saleBot"
case image = "EntryPrecautionsImage"
} }
class YHEntranceconfigModel: SmartCodable { class YHEntranceconfigModel: SmartCodable {
......
...@@ -27,7 +27,7 @@ enum YHAIMessageType: Int { ...@@ -27,7 +27,7 @@ enum YHAIMessageType: Int {
} }
class YHAIChatMessage: CustomStringConvertible { class YHAIChatMessage: CustomStringConvertible, NSCopying {
let completeText = "conversation.chat.completed" let completeText = "conversation.chat.completed"
...@@ -40,6 +40,19 @@ class YHAIChatMessage: CustomStringConvertible { ...@@ -40,6 +40,19 @@ class YHAIChatMessage: CustomStringConvertible {
var isDone: Bool = false var isDone: Bool = false
var body = YHAIMessageBody() var body = YHAIMessageBody()
func copy(with zone: NSZone? = nil) -> Any {
let msg = YHAIChatMessage()
msg.id = self.id
msg.event = self.event
msg.data = self.data
msg.dataDict = self.dataDict
msg.messageId = self.messageId
msg.isSelf = self.isSelf
msg.isDone = self.isDone
msg.body = self.body.copy() as! YHAIMessageBody
return msg
}
func isMessageCompleted() -> Bool { func isMessageCompleted() -> Bool {
if self.body.status == "completed" { if self.body.status == "completed" {
return true return true
...@@ -191,7 +204,7 @@ class YHAIChatMessage: CustomStringConvertible { ...@@ -191,7 +204,7 @@ class YHAIChatMessage: CustomStringConvertible {
} }
} }
class YHAIMessageBody: SmartCodable { class YHAIMessageBody: SmartCodable, NSCopying {
var contentType: Int = 0 var contentType: Int = 0
var contentText: String = "" var contentText: String = ""
...@@ -216,7 +229,18 @@ class YHAIMessageBody: SmartCodable { ...@@ -216,7 +229,18 @@ class YHAIMessageBody: SmartCodable {
} }
return false return false
} }
func copy(with zone: NSZone? = nil) -> Any {
let body = YHAIMessageBody()
body.contentType = self.contentType
body.contentText = self.contentText
body.chatId = self.chatId
body.botId = self.botId
body.status = self.status
body.type = self.type
return body
}
required init() { required init() {
} }
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
// //
import UIKit import UIKit
import Lottie
class YHAIGreetCollectionReusableView: UICollectionReusableView { class YHAIGreetCollectionReusableView: UICollectionReusableView {
...@@ -14,9 +15,12 @@ class YHAIGreetCollectionReusableView: UICollectionReusableView { ...@@ -14,9 +15,12 @@ class YHAIGreetCollectionReusableView: UICollectionReusableView {
let horizonalGap = 16.0 let horizonalGap = 16.0
lazy var iconImgView: UIImageView = { lazy var iconImgView: LottieAnimationView! = {
let v = UIImageView(image: UIImage(named: "ai_gangXiaoBao_logo")) let lottieView = LottieAnimationView(name: "gangxiaobao_logo")
return v lottieView.loopMode = .loop
lottieView.contentMode = .scaleAspectFit
lottieView.play()
return lottieView
}() }()
lazy var titleLabel:UILabel = { lazy var titleLabel:UILabel = {
...@@ -34,7 +38,7 @@ class YHAIGreetCollectionReusableView: UICollectionReusableView { ...@@ -34,7 +38,7 @@ class YHAIGreetCollectionReusableView: UICollectionReusableView {
lable.textAlignment = .left lable.textAlignment = .left
lable.font = UIFont.PFSC_R(ofSize:14) lable.font = UIFont.PFSC_R(ofSize:14)
lable.numberOfLines = 0 lable.numberOfLines = 0
lable.text = "港小宝AI智能体来啦!超懂香港身份办理,畅聊香港生活,快来和我一起欢乐探索香港!" lable.text = "港小宝来啦!超懂香港身份规划,畅聊香港生活,快来和我一起欢乐探索香港!"
return lable return lable
}() }()
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
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