Knowledge bases¶
-
class
mindsdb_sdk.knowledge_bases.
KnowledgeBase
(project, data: dict)¶ Bases:
mindsdb_sdk.query.Query
Knowledge base object, used to update or query knowledge base
Add data to knowledge base:
>>> kb.insert(pd.read_csv('house_sales.csv'))
Query relevant results
>>> df = kb.find('flats').fetch()
-
find
(query: str, limit: int = 100)¶ Query data from knowledge base. Knowledge base should return a most relevant results for the query
>>> # query knowledge base >>> query = my_kb.find('dogs') >>> # fetch dataframe to client >>> print(query.fetch())
- Parameters
query – text query
limit – count of rows in result, default 100
- Returns
Query object
-
insert
(data: Union[pandas.core.frame.DataFrame, mindsdb_sdk.query.Query, dict])¶ Insert data to knowledge base
>>> # insert using query >>> my_kb.insert(server.databases.example_db.tables.houses_sales.filter(type='house')) >>> # using dataframe >>> my_kb.insert(pd.read_csv('house_sales.csv')) >>> # using dict >>> my_kb.insert({'type': 'house', 'date': '2020-02-02'})
Data will be if id (defined by id_column param, see create knowledge base) is already exists in knowledge base it will be replaced
- Parameters
data – Dataframe or Query object or dict.
-
-
class
mindsdb_sdk.knowledge_bases.
KnowledgeBases
(project, api)¶ Bases:
mindsdb_sdk.utils.objects_collection.CollectionBase
Knowledge bases
Get list:
>>> kb_list = server.knowledge_bases.list() >>> kb = kb_list[0]
Get by name:
>>> kb = server.knowledge_bases.get('my_kb') >>> # or : >>> kb = server.knowledge_bases.my_kb
Create:
>>> kb = server.knowledge_bases.create('my_kb')
Drop:
>>> server.knowledge_bases.drop('my_kb')
-
create
(name: str, model: mindsdb_sdk.models.Model = None, storage: mindsdb_sdk.tables.Table = None, metadata_columns: mindsdb_sdk.knowledge_bases.KnowledgeBases.list = None, content_columns: mindsdb_sdk.knowledge_bases.KnowledgeBases.list = None, id_column: str = None, params: dict = None) → Union[mindsdb_sdk.knowledge_bases.KnowledgeBase, mindsdb_sdk.query.Query]¶ Create knowledge base:
>>> kb = server.knowledge_bases.create( ... 'my_kb', ... model=server.models.emb_model, ... storage=server.databases.pvec.tables.tbl1, ... metadata_columns=['date', 'author'], ... content_columns=['review', 'description'], ... id_column='number', ... params={'a': 1} ...)
- Parameters
name – name of the knowledge base
model – embedding model, optional. Default: ‘sentence_transformers’ will be used (defined in mindsdb server)
storage – vector storage, optional. Default: chromadb database will be created
metadata_columns – columns to use as metadata, optional. Default: all columns which are not content and id
content_columns – columns to use as content, optional. Default: all columns except id column
id_column – the column to use as id, optinal. Default: ‘id’, if exists
params – other parameters to knowledge base
- Returns
created KnowledgeBase object
-
drop
(name: str)¶ - Parameters
name –
- Returns
-
get
(name: str) → mindsdb_sdk.knowledge_bases.KnowledgeBase¶ Get knowledge base by name
- Parameters
name – name of the knowledge base
- Returns
KnowledgeBase object
-
list
() → List[mindsdb_sdk.knowledge_bases.KnowledgeBase]¶ Get list of knowledge bases inside of project:
>>> kb_list = project.knowledge_bases.list()
- Returns
list of knowledge bases
-