Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
galaxy-iOS
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
mobile-group
galaxy-iOS
Commits
841f3095
Commit
841f3095
authored
Dec 06, 2024
by
Steven杜宇
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
// AI
parent
43f328da
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
48 additions
and
36 deletions
+48
-36
YHAIRequestManager.swift
...s/Modules/AI/AI-Dialogue(AI对话)/C/YHAIRequestManager.swift
+9
-9
YHAIRobotChatViewController.swift
.../AI/AI-Dialogue(AI对话)/C/YHAIRobotChatViewController.swift
+16
-12
YHAIServiceListViewController.swift
...I/AI-Dialogue(AI对话)/C/YHAIServiceListViewController.swift
+17
-9
YHAIListModel.swift
...lasses/Modules/AI/AI-Dialogue(AI对话)/M/YHAIListModel.swift
+6
-6
No files found.
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/C/YHAIRequestManager.swift
View file @
841f3095
...
@@ -272,43 +272,43 @@ extension YHAIRequestManager {
...
@@ -272,43 +272,43 @@ extension YHAIRequestManager {
UserDefaults
.
standard
.
synchronize
()
UserDefaults
.
standard
.
synchronize
()
}
}
func
getSubRobotChatConversationId
(
robot
Id
:
String
,
completion
:((
String
)
->
())?)
{
func
getSubRobotChatConversationId
(
listItem
Id
:
String
,
completion
:((
String
)
->
())?)
{
let
localConversationId
=
getLobalSubRobotConversationId
(
robotId
:
robot
Id
)
let
localConversationId
=
getLobalSubRobotConversationId
(
listItemId
:
listItem
Id
)
if
!
localConversationId
.
isEmpty
{
if
!
localConversationId
.
isEmpty
{
completion
?(
localConversationId
)
completion
?(
localConversationId
)
return
return
}
}
self
.
viewModel
.
requestConversationId
{
sessionId
in
self
.
viewModel
.
requestConversationId
{
sessionId
in
self
.
saveLobalSubRobotConversationId
(
sessionId
,
robotId
:
robot
Id
)
self
.
saveLobalSubRobotConversationId
(
sessionId
,
listItemId
:
listItem
Id
)
completion
?(
sessionId
)
completion
?(
sessionId
)
}
}
}
}
func
getLobalSubRobotConversationId
(
robot
Id
:
String
)
->
String
{
func
getLobalSubRobotConversationId
(
listItem
Id
:
String
)
->
String
{
let
userId
=
YHLoginManager
.
shared
.
userModel
?
.
id
??
""
let
userId
=
YHLoginManager
.
shared
.
userModel
?
.
id
??
""
let
key
=
Self
.
subrobotConversationConfigKey
+
userId
let
key
=
Self
.
subrobotConversationConfigKey
+
userId
if
let
dict
=
UserDefaults
.
standard
.
dictionary
(
forKey
:
key
)
{
if
let
dict
=
UserDefaults
.
standard
.
dictionary
(
forKey
:
key
)
{
if
let
conversationId
=
dict
[
"
\(
robot
Id
)
"
]
as?
String
,
!
conversationId
.
isEmpty
{
if
let
conversationId
=
dict
[
"
\(
listItem
Id
)
"
]
as?
String
,
!
conversationId
.
isEmpty
{
return
conversationId
return
conversationId
}
}
}
}
return
""
return
""
}
}
func
saveLobalSubRobotConversationId
(
_
converId
:
String
,
robot
Id
:
String
)
{
func
saveLobalSubRobotConversationId
(
_
converId
:
String
,
listItem
Id
:
String
)
{
let
userId
=
YHLoginManager
.
shared
.
userModel
?
.
id
??
""
let
userId
=
YHLoginManager
.
shared
.
userModel
?
.
id
??
""
let
key
=
Self
.
subrobotConversationConfigKey
+
userId
let
key
=
Self
.
subrobotConversationConfigKey
+
userId
var
dict
:[
String
:
Any
]
=
[:]
var
dict
:[
String
:
Any
]
=
[:]
if
let
config
=
UserDefaults
.
standard
.
dictionary
(
forKey
:
key
)
{
if
let
config
=
UserDefaults
.
standard
.
dictionary
(
forKey
:
key
)
{
dict
=
config
dict
=
config
}
}
dict
[
"
\(
robot
Id
)
"
]
=
converId
dict
[
"
\(
listItem
Id
)
"
]
=
converId
UserDefaults
.
standard
.
set
(
dict
,
forKey
:
key
)
UserDefaults
.
standard
.
set
(
dict
,
forKey
:
key
)
UserDefaults
.
standard
.
synchronize
()
UserDefaults
.
standard
.
synchronize
()
}
}
func
clearLobalSubRobotConversationIdFor
RobotId
(
_
robot
Id
:
String
)
{
func
clearLobalSubRobotConversationIdFor
ListItemId
(
_
listItem
Id
:
String
)
{
saveLobalSubRobotConversationId
(
""
,
robotId
:
robot
Id
)
saveLobalSubRobotConversationId
(
""
,
listItemId
:
listItem
Id
)
}
}
}
}
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/C/YHAIRobotChatViewController.swift
View file @
841f3095
...
@@ -14,11 +14,12 @@ class YHAIRobotChatViewController: YHBaseViewController {
...
@@ -14,11 +14,12 @@ class YHAIRobotChatViewController: YHBaseViewController {
var
myTitle
:
String
=
""
var
myTitle
:
String
=
""
var
robotId
:
String
=
""
var
robotId
:
String
=
""
var
listItemId
:
Int
=
0
var
conversationId
:
String
=
""
var
conversationId
:
String
=
""
var
messages
:[
YHAIChatMessage
]
=
[]
var
messages
:[
YHAIChatMessage
]
=
[]
var
historyLastMessageId
:
String
=
""
var
historyLastMessageId
:
String
=
""
var
isNeedShowBannerHeader
:
Bool
=
false
var
isNeedShowBannerHeader
:
Bool
=
false
var
robotType
:
Int
=
0
var
robotType
:
String
=
""
let
manager
=
YHAIRequestManager
()
let
manager
=
YHAIRequestManager
()
let
viewModel
=
YHAIViewModel
()
let
viewModel
=
YHAIViewModel
()
...
@@ -215,11 +216,11 @@ class YHAIRobotChatViewController: YHBaseViewController {
...
@@ -215,11 +216,11 @@ class YHAIRobotChatViewController: YHBaseViewController {
YHCommonAlertView
.
show
(
"删除历史记录"
,
"删除后记录无法恢复"
,
"取消"
,
"删除"
,
fullGuestureEnable
:
false
)
{
YHCommonAlertView
.
show
(
"删除历史记录"
,
"删除后记录无法恢复"
,
"取消"
,
"删除"
,
fullGuestureEnable
:
false
)
{
}
callBack
:
{
}
callBack
:
{
self
.
manager
.
clearLobalSubRobotConversationIdFor
RobotId
(
self
.
robotId
)
self
.
manager
.
clearLobalSubRobotConversationIdFor
ListItemId
(
"
\(
self
.
listItemId
)
"
)
self
.
viewModel
.
requestConversationId
{
sessionId
in
self
.
viewModel
.
requestConversationId
{
sessionId
in
if
!
sessionId
.
isEmpty
{
if
!
sessionId
.
isEmpty
{
self
.
conversationId
=
sessionId
self
.
conversationId
=
sessionId
self
.
manager
.
saveLobalSubRobotConversationId
(
sessionId
,
robotId
:
self
.
robotId
)
self
.
manager
.
saveLobalSubRobotConversationId
(
sessionId
,
listItemId
:
"
\(
self
.
listItemId
)
"
)
self
.
messages
.
removeAll
()
self
.
messages
.
removeAll
()
self
.
tableView
.
reloadData
()
self
.
tableView
.
reloadData
()
YHHUD
.
flash
(
message
:
"清除成功"
)
YHHUD
.
flash
(
message
:
"清除成功"
)
...
@@ -230,10 +231,10 @@ class YHAIRobotChatViewController: YHBaseViewController {
...
@@ -230,10 +231,10 @@ class YHAIRobotChatViewController: YHBaseViewController {
func
getFlowMessages
()
->
[
String
]
{
func
getFlowMessages
()
->
[
String
]
{
if
robotType
==
YHA
Y
RobotType
.
education
.
rawValue
{
if
robotType
==
YHA
I
RobotType
.
education
.
rawValue
{
return
[
"香港教育有哪些优势?"
,
"去香港读书有哪些条件?"
,
"申请香港学校费用是多少?"
,
"了解银河教育插班服务流程"
,
"了解银河教育插班录取率"
]
return
[
"香港教育有哪些优势?"
,
"去香港读书有哪些条件?"
,
"申请香港学校费用是多少?"
,
"了解银河教育插班服务流程"
,
"了解银河教育插班录取率"
]
}
else
if
robotType
==
YHA
Y
RobotType
.
sale
.
rawValue
{
}
else
if
robotType
==
YHA
I
RobotType
.
sale
.
rawValue
{
return
[
"优才学历加分要求是什么?"
,
"优才现在要怎么申请?"
,
"墨尔本大学是优才合资格大学吗?"
,
"推荐一些优才产品"
]
return
[
"优才学历加分要求是什么?"
,
"优才现在要怎么申请?"
,
"墨尔本大学是优才合资格大学吗?"
,
"推荐一些优才产品"
]
}
}
...
@@ -241,20 +242,22 @@ class YHAIRobotChatViewController: YHBaseViewController {
...
@@ -241,20 +242,22 @@ class YHAIRobotChatViewController: YHBaseViewController {
}
}
func
getHeaderTitle
()
->
String
{
func
getHeaderTitle
()
->
String
{
if
robotType
==
YHAYRobotType
.
education
.
rawValue
{
if
robotType
==
YHAIRobotType
.
education
.
rawValue
{
return
"Hello,我是香港教育宝"
return
"Hello,我是香港教育宝"
}
else
if
robotType
==
YHA
Y
RobotType
.
sale
.
rawValue
{
}
else
if
robotType
==
YHA
I
RobotType
.
sale
.
rawValue
{
return
"Hello,我是新港生活规划师"
return
"Hello,我是新港生活规划师"
}
}
return
""
return
""
}
}
func
getHeaderDesc
()
->
String
{
func
getHeaderDesc
()
->
String
{
if
robotType
==
YHAYRobotType
.
education
.
rawValue
{
if
robotType
==
YHAIRobotType
.
education
.
rawValue
{
return
"有香港教育的问题尽管问我"
return
"有香港教育的问题尽管问我"
}
else
if
robotType
==
YHA
Y
RobotType
.
sale
.
rawValue
{
}
else
if
robotType
==
YHA
I
RobotType
.
sale
.
rawValue
{
return
"香港身份办理问题可以找我"
return
"香港身份办理问题可以找我"
}
}
return
""
return
""
...
@@ -390,14 +393,15 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
...
@@ -390,14 +393,15 @@ extension YHAIRobotChatViewController: UITableViewDelegate, UITableViewDataSourc
return
view
return
view
}
}
func
getBannerForRobotType
(
_
robotType
:
Int
)
->
[
YHAIChatBannerItem
]
{
func
getBannerForRobotType
(
_
robotType
:
String
)
->
[
YHAIChatBannerItem
]
{
if
robotType
==
YHAYRobotType
.
sale
.
rawValue
{
if
robotType
==
YHAIRobotType
.
sale
.
rawValue
{
return
[
YHAIChatBannerItem
(
id
:
0
,
title
:
"了解银河集团"
,
desc
:
"香港身份生活一站式服务平台"
,
msg
:
"银河集团,能够为我提供什么?"
),
return
[
YHAIChatBannerItem
(
id
:
0
,
title
:
"了解银河集团"
,
desc
:
"香港身份生活一站式服务平台"
,
msg
:
"银河集团,能够为我提供什么?"
),
YHAIChatBannerItem
(
id
:
1
,
title
:
"香港身份智能评估"
,
desc
:
"60s快速评估,了解自身条件是否符合"
,
msg
:
"开始身份办理评估"
),
YHAIChatBannerItem
(
id
:
1
,
title
:
"香港身份智能评估"
,
desc
:
"60s快速评估,了解自身条件是否符合"
,
msg
:
"开始身份办理评估"
),
YHAIChatBannerItem
(
id
:
2
,
title
:
"银河产品矩阵"
,
desc
:
"香港身份、生活多样产品"
,
msg
:
"介绍一下银河的产品"
),]
YHAIChatBannerItem
(
id
:
2
,
title
:
"银河产品矩阵"
,
desc
:
"香港身份、生活多样产品"
,
msg
:
"介绍一下银河的产品"
),]
}
}
if
robotType
==
YHA
Y
RobotType
.
education
.
rawValue
{
if
robotType
==
YHA
I
RobotType
.
education
.
rawValue
{
return
[
YHAIChatBannerItem
(
id
:
0
,
title
:
"幼中小学升学"
,
desc
:
"去香港插班需要考核哪些"
),
return
[
YHAIChatBannerItem
(
id
:
0
,
title
:
"幼中小学升学"
,
desc
:
"去香港插班需要考核哪些"
),
YHAIChatBannerItem
(
id
:
1
,
title
:
"大学升学"
,
desc
:
"DSE分数和Alevel的换算关系"
),
YHAIChatBannerItem
(
id
:
1
,
title
:
"大学升学"
,
desc
:
"DSE分数和Alevel的换算关系"
),
YHAIChatBannerItem
(
id
:
2
,
title
:
"银河教育服务"
,
desc
:
"银河教育插班成功率如何?"
),]
YHAIChatBannerItem
(
id
:
2
,
title
:
"银河教育服务"
,
desc
:
"银河教育插班成功率如何?"
),]
...
...
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/C/YHAIServiceListViewController.swift
View file @
841f3095
...
@@ -171,15 +171,23 @@ extension YHAIServiceListViewController: UICollectionViewDelegate, UICollectionV
...
@@ -171,15 +171,23 @@ extension YHAIServiceListViewController: UICollectionViewDelegate, UICollectionV
}
else
if
model
.
redirectMode
==
3
{
// agent
}
else
if
model
.
redirectMode
==
3
{
// agent
self
.
manager
.
getSubRobotChatConversationId
(
robotId
:
model
.
redirectPath
)
{
if
model
.
businessType
==
YHAIRobotType
.
main
.
rawValue
{
sesseionId
in
// 切到主Robot
let
vc
=
YHAIRobotChatViewController
()
NotificationCenter
.
default
.
post
(
name
:
YhConstant
.
YhNotification
.
didSwitchToAIChatNotification
,
object
:
nil
)
vc
.
isNeedShowBannerHeader
=
model
.
isNeedShowBannerHeader
()
vc
.
myTitle
=
model
.
title
}
else
{
vc
.
robotId
=
model
.
redirectPath
vc
.
conversationId
=
sesseionId
self
.
manager
.
getSubRobotChatConversationId
(
listItemId
:
"
\(
model
.
id
)
"
)
{
vc
.
robotType
=
model
.
botType
sesseionId
in
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
let
vc
=
YHAIRobotChatViewController
()
vc
.
isNeedShowBannerHeader
=
model
.
isNeedShowBannerHeader
()
vc
.
myTitle
=
model
.
title
vc
.
robotId
=
model
.
redirectPath
vc
.
listItemId
=
model
.
id
vc
.
conversationId
=
sesseionId
vc
.
robotType
=
model
.
businessType
self
.
navigationController
?
.
pushViewController
(
vc
,
animated
:
true
)
}
}
}
}
}
}
}
...
...
galaxy/galaxy/Classes/Modules/AI/AI-Dialogue(AI对话)/M/YHAIListModel.swift
View file @
841f3095
...
@@ -19,10 +19,10 @@ class YHAIListModel: SmartCodable {
...
@@ -19,10 +19,10 @@ class YHAIListModel: SmartCodable {
}
}
}
}
enum
YHA
YRobotType
:
Int
{
enum
YHA
IRobotType
:
String
{
case
house
=
1
case
main
=
"mainBot"
case
education
=
2
case
education
=
"educationBot"
case
sale
=
3
case
sale
=
"saleBot"
}
}
class
YHEntranceconfigModel
:
SmartCodable
{
class
YHEntranceconfigModel
:
SmartCodable
{
...
@@ -34,11 +34,11 @@ class YHEntranceconfigModel: SmartCodable {
...
@@ -34,11 +34,11 @@ class YHEntranceconfigModel: SmartCodable {
var
description
:
String
=
""
var
description
:
String
=
""
var
btnText
:
String
=
""
var
btnText
:
String
=
""
var
redirectMode
:
Int
=
0
var
redirectMode
:
Int
=
0
var
b
otType
:
Int
=
0
// 1:房产 2:教育 3:销售
var
b
usinessType
:
String
=
""
var
redirectPath
:
String
=
""
var
redirectPath
:
String
=
""
func
isNeedShowBannerHeader
()
->
Bool
{
func
isNeedShowBannerHeader
()
->
Bool
{
if
b
otType
==
YHAYRobotType
.
education
.
rawValue
||
botType
==
YHAY
RobotType
.
sale
.
rawValue
{
if
b
usinessType
==
YHAIRobotType
.
education
.
rawValue
||
businessType
==
YHAI
RobotType
.
sale
.
rawValue
{
return
true
return
true
}
}
return
false
return
false
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment