@@ -23,6 +23,7 @@ struct OpenAIView: View {
2323 ) !
2424 @Environment ( \. openURL) var openURL
2525 @StateObject var settings = OpenAIViewSettings ( )
26+ @State var maxTokenOverLimit = false
2627
2728 var body : some View {
2829 Form {
@@ -76,33 +77,39 @@ struct OpenAIView: View {
7677 }
7778 }
7879
79- if let model = ChatGPTModel ( rawValue: settings. chatGPTModel) {
80- let binding = Binding (
81- get: { String ( settings. chatGPTMaxToken) } ,
82- set: {
83- if let selectionMaxToken = Int ( $0) {
84- settings. chatGPTMaxToken = model
85- . maxToken < selectionMaxToken ? model
86- . maxToken : selectionMaxToken
80+ let binding = Binding (
81+ get: { String ( settings. chatGPTMaxToken) } ,
82+ set: {
83+ if let selectionMaxToken = Int ( $0) {
84+ if let model = ChatGPTModel ( rawValue: settings. chatGPTModel) {
85+ maxTokenOverLimit = model. maxToken < selectionMaxToken
8786 } else {
88- settings . chatGPTMaxToken = 0
87+ maxTokenOverLimit = false
8988 }
89+ settings. chatGPTMaxToken = selectionMaxToken
90+ } else {
91+ settings. chatGPTMaxToken = 0
9092 }
91- )
92- HStack {
93- Stepper (
94- value: $settings. chatGPTMaxToken,
95- in: 0 ... model. maxToken,
96- step: 1
97- ) {
98- Text ( " Max Token (Including Reply) " )
99- . multilineTextAlignment ( . trailing)
100- }
101- TextField ( text: binding) {
102- EmptyView ( )
103- }
104- . labelsHidden ( )
105- . textFieldStyle ( . roundedBorder)
93+ }
94+ )
95+ HStack {
96+ Stepper (
97+ value: $settings. chatGPTMaxToken,
98+ in: 0 ... Int . max,
99+ step: 1
100+ ) {
101+ Text ( " Max Token (Including Reply) " )
102+ . multilineTextAlignment ( . trailing)
103+ }
104+ TextField ( text: binding) {
105+ EmptyView ( )
106+ }
107+ . labelsHidden ( )
108+ . textFieldStyle ( . roundedBorder)
109+ . foregroundColor ( maxTokenOverLimit ? . red : . primary)
110+
111+ if let model = ChatGPTModel ( rawValue: settings. chatGPTModel) {
112+ Text ( " Max: \( model. maxToken) " )
106113 }
107114 }
108115
@@ -134,6 +141,11 @@ struct OpenAIView: View {
134141 Text ( " 7 Messages " ) . tag ( 7 )
135142 }
136143 }
144+ . onAppear {
145+ if let model = ChatGPTModel ( rawValue: settings. chatGPTModel) {
146+ maxTokenOverLimit = model. maxToken < settings. chatGPTMaxToken
147+ }
148+ }
137149 }
138150
139151 var languagePicker : some View {
0 commit comments