@@ -288,7 +288,8 @@ def get(self, name: str) -> KnowledgeBase:
288
288
def create (
289
289
self ,
290
290
name : str ,
291
- model : Model = None ,
291
+ embedding_model : dict = None ,
292
+ reranking_model : dict = None ,
292
293
storage : Table = None ,
293
294
metadata_columns : list = None ,
294
295
content_columns : list = None ,
@@ -301,7 +302,8 @@ def create(
301
302
302
303
>>> kb = server.knowledge_bases.create(
303
304
... 'my_kb',
304
- ... model=server.models.emb_model,
305
+ ... embedding_model={'provider': 'openai', 'model': 'text-embedding-ada-002', 'api_key': 'sk-...'},
306
+ ... reranking_model={'provider': 'openai', 'model': 'gpt-4', 'api_key': 'sk-...'},
305
307
... storage=server.databases.pvec.tables.tbl1,
306
308
... metadata_columns=['date', 'author'],
307
309
... content_columns=['review', 'description'],
@@ -310,7 +312,8 @@ def create(
310
312
...)
311
313
312
314
:param name: name of the knowledge base
313
- :param model: embedding model, optional. Default: 'sentence_transformers' will be used (defined in mindsdb server)
315
+ :param embedding_model: embedding model, optional. Default: OpenAI will be the default provider
316
+ :param reranking_model: reranking model, optional. Default: OpenAI will be the default provider
314
317
:param storage: vector storage, optional. Default: chromadb database will be created
315
318
:param metadata_columns: columns to use as metadata, optional. Default: all columns which are not content and id
316
319
:param content_columns: columns to use as content, optional. Default: all columns except id column
@@ -319,30 +322,24 @@ def create(
319
322
:return: created KnowledgeBase object
320
323
"""
321
324
322
- params_out = {}
323
-
324
- if metadata_columns is not None :
325
- params_out ['metadata_columns' ] = metadata_columns
326
-
327
- if content_columns is not None :
328
- params_out ['content_columns' ] = content_columns
329
-
330
- if id_column is not None :
331
- params_out ['id_column' ] = id_column
332
-
333
- if params is not None :
334
- params_out .update (params )
335
-
336
- if model is not None :
337
- model = model .name
338
-
339
325
payload = {
340
326
'name' : name ,
341
- 'model' : model ,
342
- 'params' : params_out
343
327
}
344
328
345
- if storage is not None :
329
+ if embedding_model :
330
+ payload ['embedding_model' ] = embedding_model
331
+ if reranking_model :
332
+ payload ['reranking_model' ] = reranking_model
333
+ if metadata_columns :
334
+ payload ['metadata_columns' ] = metadata_columns
335
+ if content_columns :
336
+ payload ['content_columns' ] = content_columns
337
+ if id_column :
338
+ payload ['id_column' ] = id_column
339
+ if params :
340
+ payload ['params' ] = params
341
+
342
+ if storage :
346
343
payload ['storage' ] = {
347
344
'database' : storage .db .name ,
348
345
'table' : storage .name
0 commit comments