@@ -113,35 +113,43 @@ def _update_query(self):
113
113
ast_query .limit = Constant (self ._limit )
114
114
self .sql = ast_query .to_string ()
115
115
116
- def insert_files (self , file_paths : List [str ]):
116
+ def insert_files (self , file_paths : List [str ], params : dict = None ):
117
117
"""
118
118
Insert data from file to knowledge base
119
119
"""
120
+ data = {'files' : file_paths }
121
+ if params :
122
+ data ['params' ] = params
123
+
120
124
self .api .insert_into_knowledge_base (
121
125
self .project .name ,
122
126
self .name ,
123
- data = { 'files' : file_paths }
127
+ data = data
124
128
)
125
129
126
- def insert_webpages (self , urls : List [str ], crawl_depth : int = 1 , filters : List [str ] = None ):
130
+ def insert_webpages (self , urls : List [str ], crawl_depth : int = 1 , filters : List [str ] = None , params : dict = None ):
127
131
"""
128
132
Insert data from crawled URLs to knowledge base.
129
133
130
134
:param urls: URLs to be crawled and inserted.
131
135
:param crawl_depth: How deep to crawl from each base URL. 0 = scrape given URLs only
132
136
:param filters: Include only URLs that match these regex patterns
137
+ :param params: Runtime parameters for KB
133
138
"""
139
+ data = {
140
+ 'urls' : urls ,
141
+ 'crawl_depth' : crawl_depth ,
142
+ 'filters' : [] if filters is None else filters ,
143
+ }
144
+ if params :
145
+ data ['params' ] = params
134
146
self .api .insert_into_knowledge_base (
135
147
self .project .name ,
136
148
self .name ,
137
- data = {
138
- 'urls' : urls ,
139
- 'crawl_depth' : crawl_depth ,
140
- 'filters' : [] if filters is None else filters
141
- }
149
+ data = data
142
150
)
143
151
144
- def insert (self , data : Union [pd .DataFrame , Query , dict ]):
152
+ def insert (self , data : Union [pd .DataFrame , Query , dict ], params : dict = None ):
145
153
"""
146
154
Insert data to knowledge base
147
155
@@ -155,6 +163,7 @@ def insert(self, data: Union[pd.DataFrame, Query, dict]):
155
163
- `id` column can be defined by id_column param, see create knowledge base
156
164
157
165
:param data: Dataframe or Query object or dict.
166
+ :param params: Runtime parameters for KB
158
167
"""
159
168
160
169
if isinstance (data , Query ):
@@ -168,13 +177,16 @@ def insert(self, data: Union[pd.DataFrame, Query, dict]):
168
177
else :
169
178
raise ValueError ("Unknown data type, accepted types: DataFrame, Query, dict" )
170
179
180
+ data = {'rows' : data }
181
+ if params :
182
+ data ['params' ] = params
171
183
return self .api .insert_into_knowledge_base (
172
184
self .project .name ,
173
185
self .name ,
174
- data = { 'rows' : data }
186
+ data = data ,
175
187
)
176
188
177
- def insert_query (self , data : Query ):
189
+ def insert_query (self , data : Query , params : dict = None ):
178
190
"""
179
191
Insert data to knowledge base using query
180
192
@@ -184,6 +196,7 @@ def insert_query(self, data: Query):
184
196
it will be replaced
185
197
186
198
:param data: Dataframe or Query object or dict.
199
+ :param params: Runtime parameters for KB
187
200
"""
188
201
if is_saving ():
189
202
# generate insert from select query
@@ -200,10 +213,13 @@ def insert_query(self, data: Query):
200
213
return Query (self , sql , self .database )
201
214
202
215
# query have to be in context of mindsdb project
216
+ data = {'query' : data .sql }
217
+ if params :
218
+ data ['params' ] = params
203
219
self .api .insert_into_knowledge_base (
204
220
self .project .name ,
205
221
self .name ,
206
- data = { 'query' : data . sql }
222
+ data = data
207
223
)
208
224
209
225
def completion (self , query , ** data ):
0 commit comments