Skip to content

Commit f6bf8ce

Browse files
authored
Merge pull request #179 from mindsdb/kb-model-params
Pass model parameters to KB
2 parents f47bf16 + 105b71b commit f6bf8ce

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

mindsdb_sdk/knowledge_bases.py

+28-12
Original file line numberDiff line numberDiff line change
@@ -113,35 +113,43 @@ def _update_query(self):
113113
ast_query.limit = Constant(self._limit)
114114
self.sql = ast_query.to_string()
115115

116-
def insert_files(self, file_paths: List[str]):
116+
def insert_files(self, file_paths: List[str], params: dict = None):
117117
"""
118118
Insert data from file to knowledge base
119119
"""
120+
data = {'files': file_paths}
121+
if params:
122+
data['params'] = params
123+
120124
self.api.insert_into_knowledge_base(
121125
self.project.name,
122126
self.name,
123-
data={'files': file_paths}
127+
data=data
124128
)
125129

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):
127131
"""
128132
Insert data from crawled URLs to knowledge base.
129133
130134
:param urls: URLs to be crawled and inserted.
131135
:param crawl_depth: How deep to crawl from each base URL. 0 = scrape given URLs only
132136
:param filters: Include only URLs that match these regex patterns
137+
:param params: Runtime parameters for KB
133138
"""
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
134146
self.api.insert_into_knowledge_base(
135147
self.project.name,
136148
self.name,
137-
data={
138-
'urls': urls,
139-
'crawl_depth': crawl_depth,
140-
'filters': [] if filters is None else filters
141-
}
149+
data=data
142150
)
143151

144-
def insert(self, data: Union[pd.DataFrame, Query, dict]):
152+
def insert(self, data: Union[pd.DataFrame, Query, dict], params: dict = None):
145153
"""
146154
Insert data to knowledge base
147155
@@ -155,6 +163,7 @@ def insert(self, data: Union[pd.DataFrame, Query, dict]):
155163
- `id` column can be defined by id_column param, see create knowledge base
156164
157165
:param data: Dataframe or Query object or dict.
166+
:param params: Runtime parameters for KB
158167
"""
159168

160169
if isinstance(data, Query):
@@ -168,13 +177,16 @@ def insert(self, data: Union[pd.DataFrame, Query, dict]):
168177
else:
169178
raise ValueError("Unknown data type, accepted types: DataFrame, Query, dict")
170179

180+
data = {'rows': data}
181+
if params:
182+
data['params'] = params
171183
return self.api.insert_into_knowledge_base(
172184
self.project.name,
173185
self.name,
174-
data={'rows': data}
186+
data=data,
175187
)
176188

177-
def insert_query(self, data: Query):
189+
def insert_query(self, data: Query, params: dict = None):
178190
"""
179191
Insert data to knowledge base using query
180192
@@ -184,6 +196,7 @@ def insert_query(self, data: Query):
184196
it will be replaced
185197
186198
:param data: Dataframe or Query object or dict.
199+
:param params: Runtime parameters for KB
187200
"""
188201
if is_saving():
189202
# generate insert from select query
@@ -200,10 +213,13 @@ def insert_query(self, data: Query):
200213
return Query(self, sql, self.database)
201214

202215
# query have to be in context of mindsdb project
216+
data = {'query': data.sql}
217+
if params:
218+
data['params'] = params
203219
self.api.insert_into_knowledge_base(
204220
self.project.name,
205221
self.name,
206-
data={'query': data.sql}
222+
data=data
207223
)
208224

209225
def completion(self, query, **data):

0 commit comments

Comments
 (0)