Skip to content

Commit 68385ae

Browse files
committed
fix update mind
store ds as strings in minds
1 parent b282ccd commit 68385ae

File tree

1 file changed

+30
-18
lines changed

1 file changed

+30
-18
lines changed

minds/minds.py

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,7 @@ def __init__(
2525
self.created_at = created_at
2626
self.updated_at = updated_at
2727

28-
self.datasources = []
29-
for name in datasources:
30-
try:
31-
ds = self.client.datasources.get(name)
32-
except RuntimeError:
33-
# TODO skipped, it could be not sql skill
34-
continue
35-
self.datasources.append(ds)
28+
self.datasources = datasources
3629

3730
def update(
3831
self,
@@ -42,18 +35,37 @@ def update(
4235
parameters=None,
4336
datasources=None
4437
):
45-
if datasources:
46-
datasources = [ds.model_dump() for ds in datasources]
38+
data = {}
39+
40+
if datasources is not None:
41+
ds_names = []
42+
for ds in datasources:
43+
if isinstance(ds, Datasource):
44+
ds = ds.name
45+
elif isinstance(ds, DatabaseConfig):
46+
# try to create
47+
try:
48+
self.client.datasources.create(ds)
49+
except Exception:
50+
...
51+
ds = ds.name
52+
elif not isinstance(ds, str):
53+
raise ValueError(f'Unknown type of datasource: {ds}')
54+
ds_names.append(ds)
55+
data['datasources'] = ds_names
56+
57+
if name is not None:
58+
data['name'] = name
59+
if model_name is not None:
60+
data['model_name'] = model_name
61+
if provider is not None:
62+
data['provider'] = provider
63+
if parameters is not None:
64+
data['parameters'] = parameters
4765

4866
self.api.patch(
49-
f'/projects/{self.project}/minds',
50-
data={
51-
'name': name,
52-
'model_name': model_name,
53-
'provider': provider,
54-
'parameters': parameters,
55-
'datasources': datasources,
56-
}
67+
f'/projects/{self.project}/minds/{self.name}',
68+
data=data
5769
)
5870
if name is not None and name != self.name:
5971
self.name = name

0 commit comments

Comments
 (0)