22
22
st .session_state .openai_api_key = None
23
23
st .session_state .serpapi_api_key = None
24
24
st .session_state .g4f_provider = None
25
+ st .session_state .button_clicked = None
26
+
27
+
28
+ if 'response' not in st .session_state :
29
+ st .session_state ['response' ] = ['How can I help you?' ]
30
+
31
+ if 'query' not in st .session_state :
32
+ st .session_state ['query' ] = ['Hi' ]
33
+
25
34
app_logger = logger .get_logger (__name__ )
26
35
27
36
@@ -84,9 +93,22 @@ def load_api_key() -> None:
84
93
"#### Select a provider if you want to use free model. "
85
94
"([details](https://github.com/xtekky/gpt4free#models))"
86
95
),
87
- (GPT4Free ().PROVIDER_MAPPING .keys ())
96
+ (GPT4Free ().providers_table .keys ())
88
97
)
89
98
99
+ st .session_state .button_clicked = st .button (
100
+ 'Show Available Providers' ,
101
+ help = 'Click to test which providers are currently available.' ,
102
+ type = 'primary'
103
+ )
104
+ if st .session_state .button_clicked :
105
+ available_providers = GPT4Free ().find_available_providers ()
106
+ st .session_state .query .append ('What are the available providers right now?' )
107
+ st .session_state .response .append (
108
+ 'The current available providers are:\n '
109
+ f'{ available_providers } '
110
+ )
111
+
90
112
91
113
def upload_and_process_pdf () -> list :
92
114
st .write ('#### Upload a PDF file:' )
@@ -128,25 +150,26 @@ def upload_and_process_pdf() -> list:
128
150
def get_response (query : str ) -> str :
129
151
app_logger .info (f'\033 [36mUser Query: { query } \033 [0m' )
130
152
try :
131
- if model is not None :
153
+ if model is not None and query :
132
154
response = model .run (query )
133
155
app_logger .info (f'\033 [36mLLM Response: { response } \033 [0m' )
134
156
return response
135
157
return (
136
158
'Your model still not created.\n '
137
159
'1. If you are using gpt4free model, '
138
160
'try to re-select a provider. '
139
- '(Ailis, DeepAi are more stable )\n '
161
+ '(Click the "Show Available Providers" button in sidebar )\n '
140
162
'2. If you are using openai model, '
141
- 'try to re-pass openai api key.'
163
+ 'try to re-pass openai api key.\n '
164
+ '3. Or you did not pass the PDF file successfully.'
142
165
)
143
166
except Exception as e :
144
167
app_logger .info (f'{ __file__ } : { e } ' )
145
168
return (
146
169
'Something wrong in docGPT...\n '
147
170
'1. If you are using gpt4free model, '
148
171
'try to select the different provider. '
149
- '(Ailis, DeepAi are more stable )\n '
172
+ '(Click the "Show Available Providers" button in sidebar )\n '
150
173
'2. If you are using openai model, '
151
174
'check your usage for openai api key.'
152
175
)
@@ -169,12 +192,6 @@ def get_response(query: str) -> str:
169
192
del docs
170
193
st .write ('---' )
171
194
172
- if 'response' not in st .session_state :
173
- st .session_state ['response' ] = ['How can I help you?' ]
174
-
175
- if 'query' not in st .session_state :
176
- st .session_state ['query' ] = ['Hi' ]
177
-
178
195
user_container = st .container ()
179
196
response_container = st .container ()
180
197
@@ -184,7 +201,7 @@ def get_response(query: str) -> str:
184
201
placeholder = 'Enter your question'
185
202
)
186
203
187
- if query and query != '' :
204
+ if query and query != '' and not st . session_state . button_clicked :
188
205
response = get_response (query )
189
206
st .session_state .query .append (query )
190
207
st .session_state .response .append (response )
0 commit comments