@@ -13,8 +13,10 @@ type SessionService struct {
13
13
}
14
14
type PicSetting struct {
15
15
resolution Resolution
16
+ style PicStyle
16
17
}
17
18
type Resolution string
19
+ type PicStyle string
18
20
19
21
type SessionMeta struct {
20
22
Mode SessionMode `json:"mode"`
@@ -24,9 +26,15 @@ type SessionMeta struct {
24
26
}
25
27
26
28
const (
27
- Resolution256 Resolution = "256x256"
28
- Resolution512 Resolution = "512x512"
29
- Resolution1024 Resolution = "1024x1024"
29
+ Resolution256 Resolution = "256x256"
30
+ Resolution512 Resolution = "512x512"
31
+ Resolution1024 Resolution = "1024x1024"
32
+ Resolution10241792 Resolution = "1024x1792"
33
+ Resolution17921024 Resolution = "1792x1024"
34
+ )
35
+ const (
36
+ PicStyleVivid PicStyle = "vivid"
37
+ PicStyleNatural PicStyle = "natural"
30
38
)
31
39
const (
32
40
ModePicCreate SessionMode = "pic_create"
@@ -44,7 +52,9 @@ type SessionServiceCacheInterface interface {
44
52
GetAIMode (sessionId string ) openai.AIMode
45
53
SetAIMode (sessionId string , aiMode openai.AIMode )
46
54
SetPicResolution (sessionId string , resolution Resolution )
55
+ SetPicStyle (sessionId string , resolution PicStyle )
47
56
GetPicResolution (sessionId string ) string
57
+ GetPicStyle (sessionId string ) string
48
58
Clear (sessionId string )
49
59
}
50
60
@@ -141,16 +151,45 @@ func (s *SessionService) SetMsg(sessionId string, msg []openai.Messages) {
141
151
s .cache .Set (sessionId , sessionMeta , maxCacheTime )
142
152
}
143
153
154
+ func (s * SessionService ) SetPicStyle (sessionId string , style PicStyle ) {
155
+ maxCacheTime := time .Hour * 12
156
+
157
+ switch style {
158
+ case PicStyleVivid , PicStyleNatural :
159
+ default :
160
+ style = PicStyleVivid
161
+ }
162
+
163
+ sessionContext , ok := s .cache .Get (sessionId )
164
+ if ! ok {
165
+ sessionMeta := & SessionMeta {PicSetting : PicSetting {style : style }}
166
+ s .cache .Set (sessionId , sessionMeta , maxCacheTime )
167
+ return
168
+ }
169
+ sessionMeta := sessionContext .(* SessionMeta )
170
+ sessionMeta .PicSetting .style = style
171
+ s .cache .Set (sessionId , sessionMeta , maxCacheTime )
172
+ }
173
+
174
+ func (s * SessionService ) GetPicStyle (sessionId string ) string {
175
+ sessionContext , ok := s .cache .Get (sessionId )
176
+ if ! ok {
177
+ return string (PicStyleVivid )
178
+ }
179
+ sessionMeta := sessionContext .(* SessionMeta )
180
+ return string (sessionMeta .PicSetting .style )
181
+ }
182
+
144
183
func (s * SessionService ) SetPicResolution (sessionId string ,
145
184
resolution Resolution ) {
146
185
maxCacheTime := time .Hour * 12
147
186
148
187
//if not in [Resolution256, Resolution512, Resolution1024] then set
149
188
//to Resolution256
150
189
switch resolution {
151
- case Resolution256 , Resolution512 , Resolution1024 :
190
+ case Resolution256 , Resolution512 , Resolution1024 , Resolution10241792 , Resolution17921024 :
152
191
default :
153
- resolution = Resolution256
192
+ resolution = Resolution1024
154
193
}
155
194
156
195
sessionContext , ok := s .cache .Get (sessionId )
0 commit comments