Skip to content

Commit f8fe81f

Browse files
author
parthiv11
committed
chatbots updated
1 parent 2c78c02 commit f8fe81f

File tree

1 file changed

+39
-21
lines changed

1 file changed

+39
-21
lines changed

mindsdb_sdk/chatbot.py

Lines changed: 39 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
import json
2-
from typing import Union, List
3-
4-
from mindsdb_sdk.utils.context import is_saving
1+
from typing import List
52
from mindsdb_sdk.utils.objects_collection import CollectionBase
6-
from .query import Query
7-
from .databases import Database
3+
84

95
class Chatbot:
106
"""
@@ -20,11 +16,10 @@ class Chatbot:
2016
def __init__(self, api, project, data: dict):
2117
self.api = api
2218
self.project = project
23-
self.name = data['name']
24-
self.database_name = data.get('database_name')
25-
self.agent_name = data.get('agent_name')
26-
27-
19+
self.name = data.get('name')
20+
self.database_name = data.get('database')
21+
self.agent_name = data.get('agent')
22+
self.model_name = data.get('model_name')
2823

2924
def __repr__(self):
3025
return f"{self.__class__.__name__}({self.project.name}.{self.name})"
@@ -45,27 +40,47 @@ def ask(self, query: str, **options):
4540
}
4641
return self.api.chatbot_interaction(self.project.name, self.name, payload)
4742

48-
def update(self, model_name: str = None, database_name: str = None):
43+
def update(self, name: str = None, agent_name: str = None, model_name: str = None, database_name: str = None, inplace: bool = False):
4944
"""
5045
Update chatbot properties.
5146
5247
>>> chatbot.update(model_name='gpt-4', database_name='slack_db')
5348
49+
:param name: New name for the chatbot.
5450
:param model_name: New model to use for the chatbot.
5551
:param database_name: New database connection name.
52+
:param inplace: If True, updates the current object in-place.
53+
:return: Updated Chatbot object or None if inplace is True.
5654
"""
5755
payload = {}
58-
if model_name:
59-
payload['agent_name'] = model_name
56+
57+
if name:
58+
payload['name'] = name
59+
6060
if database_name:
6161
payload['database_name'] = database_name
6262

63-
self.api.update_chatbot(
64-
self.project.name,
65-
self.name,
63+
if agent_name:
64+
payload['agent_name'] = agent_name
65+
66+
if model_name:
67+
payload['model_name'] = model_name
68+
69+
updated_chatbot = self.api.update_chatbot(
70+
project=self.project.name,
71+
chatbot_name=self.name,
6672
data=payload
6773
)
6874

75+
if inplace:
76+
self.name = updated_chatbot.get('name', self.name)
77+
self.database_name = updated_chatbot.get('database', self.database_name)
78+
self.agent_name = updated_chatbot.get('agent', self.agent_name)
79+
self.model_name = updated_chatbot.get('model_name', self.model_name)
80+
return None
81+
82+
return Chatbot(self.api, self.project, updated_chatbot)
83+
6984
def delete(self):
7085
"""
7186
Delete the chatbot.
@@ -129,7 +144,7 @@ def get(self, name: str) -> Chatbot:
129144
data = self.api.get_chatbot(self.project.name, name)
130145
return Chatbot(self.api, self.project, data)
131146

132-
def create(self, name: str, model_name: str, database_name: str = None) -> Chatbot:
147+
def create(self, name: str, agent_name: str = None, model_name: str = None, database_name: str = None) -> Chatbot:
133148
"""
134149
Create a new chatbot.
135150
@@ -146,11 +161,14 @@ def create(self, name: str, model_name: str, database_name: str = None) -> Chatb
146161
"""
147162
payload = {
148163
'name': name,
149-
'agent_name': model_name
164+
'database_name': database_name
150165
}
151166

152-
if database_name:
153-
payload['database_name'] = database_name
167+
if agent_name:
168+
payload['agent_name'] = agent_name
169+
170+
if model_name:
171+
payload['model_name'] = model_name
154172

155173
self.api.create_chatbot(self.project.name, data=payload)
156174

0 commit comments

Comments
 (0)