vikingdb-python-sdk 0.1.28__tar.gz → 0.1.30__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/PKG-INFO +3 -2
  2. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/client.py +5 -5
  3. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/collection.py +16 -16
  4. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/memory/collection.py +28 -28
  5. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/models/__init__.py +4 -0
  6. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/models/index.py +23 -0
  7. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/version.py +1 -1
  8. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb_python_sdk.egg-info/PKG-INFO +3 -2
  9. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/LICENSE.txt +0 -0
  10. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/README.md +0 -0
  11. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/pyproject.toml +0 -0
  12. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/setup.cfg +0 -0
  13. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/__init__.py +0 -0
  14. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/_client.py +0 -0
  15. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/auth.py +0 -0
  16. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/exceptions.py +0 -0
  17. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/__init__.py +0 -0
  18. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/exceptions.py +0 -0
  19. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/__init__.py +0 -0
  20. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/base.py +0 -0
  21. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/chat.py +0 -0
  22. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/doc.py +0 -0
  23. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/point.py +0 -0
  24. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/rerank.py +0 -0
  25. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/search.py +0 -0
  26. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/knowledge/models/service_chat.py +0 -0
  27. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/memory/__init__.py +0 -0
  28. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/memory/client.py +0 -0
  29. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/memory/exceptions.py +0 -0
  30. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/memory/types.py +0 -0
  31. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/request_options.py +0 -0
  32. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/__init__.py +0 -0
  33. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/base.py +0 -0
  34. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/client.py +0 -0
  35. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/collection.py +0 -0
  36. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/embedding.py +0 -0
  37. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/exceptions.py +0 -0
  38. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/index.py +0 -0
  39. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/models/base.py +0 -0
  40. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/models/collection.py +0 -0
  41. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/models/embedding.py +0 -0
  42. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/models/rerank.py +0 -0
  43. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb/vector/rerank.py +0 -0
  44. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb_python_sdk.egg-info/SOURCES.txt +0 -0
  45. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb_python_sdk.egg-info/dependency_links.txt +0 -0
  46. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb_python_sdk.egg-info/requires.txt +0 -0
  47. {vikingdb_python_sdk-0.1.28 → vikingdb_python_sdk-0.1.30}/vikingdb_python_sdk.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: vikingdb-python-sdk
3
- Version: 0.1.28
3
+ Version: 0.1.30
4
4
  Summary: vikingdb Python SDK
5
5
  License: Apache-2.0
6
6
  Project-URL: Documentation, https://github.com/volcengine/vikingdb-python-sdk/blob/main/README.md
@@ -24,6 +24,7 @@ Requires-Dist: typing_extensions>=4.9.0
24
24
  Requires-Dist: urllib3>=1.21.1
25
25
  Requires-Dist: volcengine>=1.0.0
26
26
  Requires-Dist: aiohttp>=3.10.0
27
+ Dynamic: license-file
27
28
 
28
29
  ## VikingDB Python SDK (v2)
29
30
 
@@ -148,7 +148,7 @@ class VikingKnowledge(Client):
148
148
  payload["rerank_instruction"] = rerank_instruction
149
149
  if endpoint_id is not None:
150
150
  payload["endpoint_id"] = endpoint_id
151
- res = self.json_exception("Rerank", {}, json.dumps(payload), headers=headers, timeout=timeout)
151
+ res = self.json_exception("Rerank", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
152
152
  response = RerankResponse.parse_with(res)
153
153
  return response
154
154
 
@@ -166,11 +166,11 @@ class VikingKnowledge(Client):
166
166
  )
167
167
  if bool(payload.get("stream")):
168
168
  def _gen():
169
- for res in self.stream_json_exception("ChatCompletion", {}, json.dumps(payload), headers=headers, timeout=timeout):
169
+ for res in self.stream_json_exception("ChatCompletion", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout):
170
170
  yield ChatCompletionResponse.parse_with(res)
171
171
  return _gen()
172
172
  else:
173
- res = self.json_exception("ChatCompletion", {}, json.dumps(payload), headers=headers, timeout=timeout)
173
+ res = self.json_exception("ChatCompletion", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
174
174
  return ChatCompletionResponse.parse_with(res)
175
175
 
176
176
  def service_chat(
@@ -187,9 +187,9 @@ class VikingKnowledge(Client):
187
187
  )
188
188
  if bool(payload.get("stream")):
189
189
  def _gen():
190
- for res in self.stream_json_exception("ServiceChat", {}, json.dumps(payload), headers=headers, timeout=timeout):
190
+ for res in self.stream_json_exception("ServiceChat", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout):
191
191
  yield ServiceChatResponse.parse_with(res)
192
192
  return _gen()
193
193
  else:
194
- res = self.json_exception("ServiceChat", {}, json.dumps(payload), headers=headers, timeout=timeout)
194
+ res = self.json_exception("ServiceChat", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
195
195
  return ServiceChatResponse.parse_with(res)
@@ -47,7 +47,7 @@ class KnowledgeCollection:
47
47
  else dict(request)
48
48
  )
49
49
  payload = {**self._meta_payload, **req_payload}
50
- res = self.client.json_exception("AddDoc", {}, json.dumps(payload), headers=headers, timeout=timeout)
50
+ res = self.client.json_exception("AddDoc", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
51
51
  response = AddDocResponse.parse_with(res)
52
52
  return response
53
53
 
@@ -64,7 +64,7 @@ class KnowledgeCollection:
64
64
  else dict(request)
65
65
  )
66
66
  payload = {**self._meta_payload, **req_payload}
67
- res = self.client.json_exception("AddDocV2", {}, json.dumps(payload), headers=headers, timeout=timeout)
67
+ res = self.client.json_exception("AddDocV2", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
68
68
  response = AddDocV2Response.parse_with(res)
69
69
  return response
70
70
 
@@ -76,7 +76,7 @@ class KnowledgeCollection:
76
76
  timeout: Optional[int] = None,
77
77
  ) -> CommonResponse:
78
78
  payload = {**self._meta_payload, "doc_id": doc_id}
79
- res = self.client.json_exception("DeleteDoc", {}, json.dumps(payload), headers=headers, timeout=timeout)
79
+ res = self.client.json_exception("DeleteDoc", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
80
80
  response = CommonResponse.model_validate(res)
81
81
  return response
82
82
 
@@ -91,7 +91,7 @@ class KnowledgeCollection:
91
91
  payload = {**self._meta_payload, "doc_id": doc_id}
92
92
  if return_token_usage:
93
93
  payload["return_token_usage"] = True
94
- res = self.client.json_exception("GetDocInfo", {}, json.dumps(payload), headers=headers, timeout=timeout)
94
+ res = self.client.json_exception("GetDocInfo", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
95
95
  data_obj = res["data"] if isinstance(res, dict) and "data" in res else {}
96
96
  if not isinstance(data_obj, dict):
97
97
  data_obj = {}
@@ -113,7 +113,7 @@ class KnowledgeCollection:
113
113
  else dict(request)
114
114
  )
115
115
  payload: dict = {**self._meta_payload, **req_payload}
116
- res = self.client.json_exception("ListDocs", {}, json.dumps(payload), headers=headers, timeout=timeout)
116
+ res = self.client.json_exception("ListDocs", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
117
117
  response = ListDocsResponse.parse_with(res)
118
118
  return response
119
119
 
@@ -130,7 +130,7 @@ class KnowledgeCollection:
130
130
  else dict(request)
131
131
  )
132
132
  payload: dict = {**self._meta_payload, **req_payload}
133
- res = self.client.json_exception("ListDocsV2", {}, json.dumps(payload), headers=headers, timeout=timeout)
133
+ res = self.client.json_exception("ListDocsV2", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
134
134
  response = ListDocsV2Response.parse_with(res)
135
135
  return response
136
136
 
@@ -147,7 +147,7 @@ class KnowledgeCollection:
147
147
  else dict(request)
148
148
  )
149
149
  payload: dict = {**self._meta_payload, **req_payload}
150
- res = self.client.json_exception("SearchDocsByFilter", {}, json.dumps(payload), headers=headers, timeout=timeout)
150
+ res = self.client.json_exception("SearchDocsByFilter", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
151
151
  response = SearchDocsByFilterResponse.parse_with(res)
152
152
  return response
153
153
 
@@ -160,7 +160,7 @@ class KnowledgeCollection:
160
160
  timeout: Optional[int] = None,
161
161
  ) -> CommonResponse:
162
162
  payload = {**self._meta_payload, "doc_id": doc_id, "meta": [item.model_dump(by_alias=True) for item in meta]}
163
- res = self.client.json_exception("UpdateDocMeta", {}, json.dumps(payload), headers=headers, timeout=timeout)
163
+ res = self.client.json_exception("UpdateDocMeta", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
164
164
  response = CommonResponse.model_validate(res)
165
165
  return response
166
166
 
@@ -173,7 +173,7 @@ class KnowledgeCollection:
173
173
  timeout: Optional[int] = None,
174
174
  ) -> CommonResponse:
175
175
  payload = {**self._meta_payload, "doc_id": doc_id, "doc_name": doc_name}
176
- res = self.client.json_exception("UpdateDoc", {}, json.dumps(payload), headers=headers, timeout=timeout)
176
+ res = self.client.json_exception("UpdateDoc", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
177
177
  response = CommonResponse.model_validate(res)
178
178
  return response
179
179
 
@@ -188,7 +188,7 @@ class KnowledgeCollection:
188
188
  payload = {**self._meta_payload, "point_id": point_id}
189
189
  if get_attachment_link:
190
190
  payload["get_attachment_link"] = True
191
- res = self.client.json_exception("GetPointInfo", {}, json.dumps(payload), headers=headers, timeout=timeout)
191
+ res = self.client.json_exception("GetPointInfo", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
192
192
  data_obj = res["data"] if isinstance(res, dict) and "data" in res else {}
193
193
  if not isinstance(data_obj, dict):
194
194
  data_obj = {}
@@ -210,7 +210,7 @@ class KnowledgeCollection:
210
210
  else dict(request)
211
211
  )
212
212
  payload: dict = {**self._meta_payload, **req_payload}
213
- res = self.client.json_exception("ListPoints", {}, json.dumps(payload), headers=headers, timeout=timeout)
213
+ res = self.client.json_exception("ListPoints", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
214
214
  response = ListPointsResponse.parse_with(res)
215
215
  return response
216
216
 
@@ -227,7 +227,7 @@ class KnowledgeCollection:
227
227
  else dict(request)
228
228
  )
229
229
  payload = {**self._meta_payload, **req_payload}
230
- res = self.client.json_exception("AddPoint", {}, json.dumps(payload), headers=headers, timeout=timeout)
230
+ res = self.client.json_exception("AddPoint", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
231
231
  response = PointAddResponse.parse_with(res)
232
232
  return response
233
233
 
@@ -245,7 +245,7 @@ class KnowledgeCollection:
245
245
  else dict(update)
246
246
  )
247
247
  payload = {**self._meta_payload, "point_id": point_id, **upd_payload}
248
- res = self.client.json_exception("UpdatePoint", {}, json.dumps(payload), headers=headers, timeout=timeout)
248
+ res = self.client.json_exception("UpdatePoint", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
249
249
  response = CommonResponse.model_validate(res)
250
250
  return response
251
251
 
@@ -262,7 +262,7 @@ class KnowledgeCollection:
262
262
  else dict(request)
263
263
  )
264
264
  payload = {**self._meta_payload, **req_payload}
265
- res = self.client.json_exception("DeletePoint", {}, json.dumps(payload), headers=headers, timeout=timeout)
265
+ res = self.client.json_exception("DeletePoint", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
266
266
  response = CommonResponse.model_validate(res)
267
267
  return response
268
268
 
@@ -279,7 +279,7 @@ class KnowledgeCollection:
279
279
  else dict(request)
280
280
  )
281
281
  payload: dict = {**self._meta_payload, **req_payload, "name": self._meta.collection_name}
282
- res = self.client.json_exception("SearchCollection", {}, json.dumps(payload), headers=headers, timeout=timeout)
282
+ res = self.client.json_exception("SearchCollection", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
283
283
  response = SearchResponse.parse_with(res)
284
284
  return response
285
285
 
@@ -297,6 +297,6 @@ class KnowledgeCollection:
297
297
  else dict(request)
298
298
  )
299
299
  payload: dict = {**self._meta_payload, **req_payload, "name": self._meta.collection_name}
300
- res = self.client.json_exception("SearchKnowledge", {}, json.dumps(payload), headers=headers, timeout=timeout)
300
+ res = self.client.json_exception("SearchKnowledge", {}, json.dumps(payload, ensure_ascii=False), headers=headers, timeout=timeout)
301
301
  response = SearchKnowledgeResponse.parse_with(res)
302
302
  return response
@@ -90,7 +90,7 @@ class Collection:
90
90
  if self.resource_id is not None:
91
91
  params["resource_id"] = self.resource_id
92
92
 
93
- res = self.client.json_exception("AddEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
93
+ res = self.client.json_exception("AddEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
94
94
  return res
95
95
 
96
96
  async def async_add_event(
@@ -139,7 +139,7 @@ class Collection:
139
139
  if self.resource_id is not None:
140
140
  params["resource_id"] = self.resource_id
141
141
 
142
- res = await self.client.async_json_exception("AddEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
142
+ res = await self.client.async_json_exception("AddEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
143
143
  return res
144
144
 
145
145
  def update_event(
@@ -180,7 +180,7 @@ class Collection:
180
180
  if self.resource_id is not None:
181
181
  params["resource_id"] = self.resource_id
182
182
 
183
- res = self.client.json_exception("UpdateEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
183
+ res = self.client.json_exception("UpdateEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
184
184
  return res
185
185
 
186
186
  async def async_update_event(
@@ -221,7 +221,7 @@ class Collection:
221
221
  if self.resource_id is not None:
222
222
  params["resource_id"] = self.resource_id
223
223
 
224
- res = await self.client.async_json_exception("UpdateEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
224
+ res = await self.client.async_json_exception("UpdateEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
225
225
  return res
226
226
 
227
227
  def delete_event(
@@ -251,7 +251,7 @@ class Collection:
251
251
  if self.resource_id is not None:
252
252
  params["resource_id"] = self.resource_id
253
253
 
254
- res = self.client.json_exception("DeleteEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
254
+ res = self.client.json_exception("DeleteEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
255
255
  return res
256
256
 
257
257
  async def async_delete_event(
@@ -281,7 +281,7 @@ class Collection:
281
281
  if self.resource_id is not None:
282
282
  params["resource_id"] = self.resource_id
283
283
 
284
- res = await self.client.async_json_exception("DeleteEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
284
+ res = await self.client.async_json_exception("DeleteEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
285
285
  return res
286
286
 
287
287
  def batch_delete_event(
@@ -315,7 +315,7 @@ class Collection:
315
315
  if self.resource_id is not None:
316
316
  params["resource_id"] = self.resource_id
317
317
 
318
- res = self.client.json_exception("BatchDeleteEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
318
+ res = self.client.json_exception("BatchDeleteEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
319
319
  return res
320
320
 
321
321
  async def async_batch_delete_event(
@@ -349,7 +349,7 @@ class Collection:
349
349
  if self.resource_id is not None:
350
350
  params["resource_id"] = self.resource_id
351
351
 
352
- res = await self.client.async_json_exception("BatchDeleteEvent", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
352
+ res = await self.client.async_json_exception("BatchDeleteEvent", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
353
353
  return res
354
354
  # ==================== Profile Operations ====================
355
355
 
@@ -398,7 +398,7 @@ class Collection:
398
398
  if self.resource_id is not None:
399
399
  params["resource_id"] = self.resource_id
400
400
 
401
- res = self.client.json_exception("AddProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
401
+ res = self.client.json_exception("AddProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
402
402
  return res
403
403
 
404
404
  async def async_add_profile(
@@ -446,7 +446,7 @@ class Collection:
446
446
  if self.resource_id is not None:
447
447
  params["resource_id"] = self.resource_id
448
448
 
449
- res = await self.client.async_json_exception("AddProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
449
+ res = await self.client.async_json_exception("AddProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
450
450
  return res
451
451
 
452
452
  def update_profile(
@@ -479,7 +479,7 @@ class Collection:
479
479
  if self.resource_id is not None:
480
480
  params["resource_id"] = self.resource_id
481
481
 
482
- res = self.client.json_exception("UpdateProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
482
+ res = self.client.json_exception("UpdateProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
483
483
  return res
484
484
 
485
485
  async def async_update_profile(
@@ -512,7 +512,7 @@ class Collection:
512
512
  if self.resource_id is not None:
513
513
  params["resource_id"] = self.resource_id
514
514
 
515
- res = await self.client.async_json_exception("UpdateProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
515
+ res = await self.client.async_json_exception("UpdateProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
516
516
  return res
517
517
 
518
518
  def delete_profile(
@@ -542,7 +542,7 @@ class Collection:
542
542
  if self.resource_id is not None:
543
543
  params["resource_id"] = self.resource_id
544
544
 
545
- res = self.client.json_exception("DeleteProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
545
+ res = self.client.json_exception("DeleteProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
546
546
  return res
547
547
 
548
548
  async def async_delete_profile(
@@ -572,7 +572,7 @@ class Collection:
572
572
  if self.resource_id is not None:
573
573
  params["resource_id"] = self.resource_id
574
574
 
575
- res = await self.client.async_json_exception("DeleteProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
575
+ res = await self.client.async_json_exception("DeleteProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
576
576
  return res
577
577
 
578
578
  def trigger_update_profile(
@@ -606,7 +606,7 @@ class Collection:
606
606
  if self.resource_id is not None:
607
607
  params["resource_id"] = self.resource_id
608
608
 
609
- res = self.client.json_exception("TriggerUpdateProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
609
+ res = self.client.json_exception("TriggerUpdateProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
610
610
  return res
611
611
 
612
612
  async def async_trigger_update_profile(
@@ -631,7 +631,7 @@ class Collection:
631
631
  if self.resource_id is not None:
632
632
  params["resource_id"] = self.resource_id
633
633
 
634
- res = await self.client.async_json_exception("TriggerUpdateProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
634
+ res = await self.client.async_json_exception("TriggerUpdateProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
635
635
  return res
636
636
 
637
637
  def batch_delete_profile(
@@ -661,7 +661,7 @@ class Collection:
661
661
  if self.resource_id is not None:
662
662
  params["resource_id"] = self.resource_id
663
663
 
664
- res = self.client.json_exception("BatchDeleteProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
664
+ res = self.client.json_exception("BatchDeleteProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
665
665
  return res
666
666
 
667
667
  async def async_batch_delete_profile(
@@ -691,7 +691,7 @@ class Collection:
691
691
  if self.resource_id is not None:
692
692
  params["resource_id"] = self.resource_id
693
693
 
694
- res = await self.client.async_json_exception("BatchDeleteProfile", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
694
+ res = await self.client.async_json_exception("BatchDeleteProfile", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
695
695
  return res
696
696
  # ==================== Session Operations ====================
697
697
 
@@ -736,7 +736,7 @@ class Collection:
736
736
  if store_file is not None:
737
737
  params["store_file"] = store_file
738
738
 
739
- res = self.client.json_exception("AddSession", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
739
+ res = self.client.json_exception("AddSession", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
740
740
  return res
741
741
 
742
742
  async def async_add_session(
@@ -780,7 +780,7 @@ class Collection:
780
780
  if store_file is not None:
781
781
  params["store_file"] = store_file
782
782
 
783
- res = await self.client.async_json_exception("AddSession", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
783
+ res = await self.client.async_json_exception("AddSession", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
784
784
  return res
785
785
 
786
786
  # ==================== Session Info Operations ====================
@@ -812,7 +812,7 @@ class Collection:
812
812
  if self.resource_id is not None:
813
813
  params["resource_id"] = self.resource_id
814
814
 
815
- res = self.client.json_exception("GetSessionInfo", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
815
+ res = self.client.json_exception("GetSessionInfo", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
816
816
  return res
817
817
 
818
818
  async def async_get_session_info(
@@ -842,7 +842,7 @@ class Collection:
842
842
  if self.resource_id is not None:
843
843
  params["resource_id"] = self.resource_id
844
844
 
845
- res = await self.client.async_json_exception("GetSessionInfo", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
845
+ res = await self.client.async_json_exception("GetSessionInfo", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
846
846
  return res
847
847
 
848
848
  # ==================== Search Operations ====================
@@ -882,7 +882,7 @@ class Collection:
882
882
  if self.resource_id is not None:
883
883
  params["resource_id"] = self.resource_id
884
884
 
885
- res = self.client.json_exception("SearchMemory", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
885
+ res = self.client.json_exception("SearchMemory", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
886
886
  return res
887
887
 
888
888
  async def async_search_memory(
@@ -920,7 +920,7 @@ class Collection:
920
920
  if self.resource_id is not None:
921
921
  params["resource_id"] = self.resource_id
922
922
 
923
- res = await self.client.async_json_exception("SearchMemory", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
923
+ res = await self.client.async_json_exception("SearchMemory", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
924
924
  return res
925
925
 
926
926
  def search_event_memory(
@@ -948,7 +948,7 @@ class Collection:
948
948
  if self.resource_id is not None:
949
949
  params["resource_id"] = self.resource_id
950
950
 
951
- res = self.client.json_exception("SearchEventMemory", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
951
+ res = self.client.json_exception("SearchEventMemory", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
952
952
  return res
953
953
 
954
954
  def search_profile_memory(
@@ -973,7 +973,7 @@ class Collection:
973
973
  if self.resource_id is not None:
974
974
  params["resource_id"] = self.resource_id
975
975
 
976
- res = self.client.json_exception("SearchProfileMemory", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
976
+ res = self.client.json_exception("SearchProfileMemory", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
977
977
  return res
978
978
 
979
979
  async def async_search_event_memory(
@@ -1004,7 +1004,7 @@ class Collection:
1004
1004
  if self.resource_id is not None:
1005
1005
  params["resource_id"] = self.resource_id
1006
1006
 
1007
- res = await self.client.async_json_exception("SearchEventMemory", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
1007
+ res = await self.client.async_json_exception("SearchEventMemory", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
1008
1008
  return res
1009
1009
 
1010
1010
  async def async_search_profile_memory(
@@ -1032,7 +1032,7 @@ class Collection:
1032
1032
  if self.resource_id is not None:
1033
1033
  params["resource_id"] = self.resource_id
1034
1034
 
1035
- res = await self.client.async_json_exception("SearchProfileMemory", {}, json.dumps(params, cls=EnumEncoder), headers=headers, timeout=timeout)
1035
+ res = await self.client.async_json_exception("SearchProfileMemory", {}, json.dumps(params, cls=EnumEncoder, ensure_ascii=False), headers=headers, timeout=timeout)
1036
1036
  return res
1037
1037
 
1038
1038
 
@@ -46,6 +46,7 @@ from .index import (
46
46
  FetchDataInIndexRequest,
47
47
  FetchDataInIndexResponse,
48
48
  FetchDataInIndexResult,
49
+ Highlight,
49
50
  IndexDataItem,
50
51
  Instruction,
51
52
  ModelRerank,
@@ -60,6 +61,7 @@ from .index import (
60
61
  SearchResponse,
61
62
  SearchResult,
62
63
  TensorRerank,
64
+ VectorWeightedSumResult,
63
65
  )
64
66
 
65
67
  __all__ = [
@@ -89,6 +91,7 @@ __all__ = [
89
91
  "FetchDataInIndexResponse",
90
92
  "FetchDataInIndexResult",
91
93
  "FullModalData",
94
+ "Highlight",
92
95
  "IndexDataItem",
93
96
  "IndexMeta",
94
97
  "Instruction",
@@ -111,4 +114,5 @@ __all__ = [
111
114
  "UpdateDataRequest",
112
115
  "UpdateDataResponse",
113
116
  "UpdateDataResult",
117
+ "VectorWeightedSumResult",
114
118
  ]
@@ -57,6 +57,11 @@ class SearchBase(RecallBase):
57
57
  return_download_url: Optional[bool] = Field(default=None, alias="return_download_url")
58
58
  return_analyzed_result: Optional[bool] = Field(default=None, alias="return_analyzed_result")
59
59
  return_detail_info: Optional[bool] = Field(default=None, alias="return_detail_info")
60
+ ignore_unknown_fields: Optional[bool] = Field(default=None, alias="ignore_unknown_fields")
61
+
62
+
63
+ class Highlight(Model):
64
+ enable: Optional[bool] = Field(default=None, alias="enable")
60
65
 
61
66
 
62
67
  class Instruction(Model):
@@ -86,6 +91,7 @@ class SearchItemResult(Model):
86
91
  score: Optional[float] = Field(default=None, alias="score")
87
92
  origin_score: Optional[float] = Field(default=None, alias="origin_score")
88
93
  addition_score: Optional[float] = Field(default=None, alias="addition_score")
94
+ highlight: Optional[Mapping[str, Mapping[str, List[int]]]] = Field(default=None, alias="highlight")
89
95
 
90
96
 
91
97
  class SearchResult(Model):
@@ -137,6 +143,7 @@ class SearchByKeywordsRequest(SearchBase):
137
143
  mode: Optional[str] = Field(default=None, alias="mode")
138
144
  keywords: Optional[Sequence[str]] = Field(default=None, alias="keywords")
139
145
  query: Optional[str] = Field(default=None, alias="query")
146
+ highlight: Optional[Highlight] = Field(default=None, alias="highlight")
140
147
  case_sensitive: Optional[bool] = Field(default=None, alias="case_sensitive")
141
148
  fields: Optional[Sequence[str]] = Field(default=None, alias="fields")
142
149
  bm25_k1: Optional[float] = Field(default=None, alias="bm25_k1")
@@ -149,15 +156,31 @@ class SearchByRandomRequest(SearchBase):
149
156
 
150
157
  class AggRequest(RecallBase):
151
158
  op: str = Field(alias="op")
159
+ group_by: Optional[str] = Field(default=None, alias="group_by")
160
+ # Deprecated: use group_by instead.
152
161
  field: Optional[str] = Field(default=None, alias="field")
162
+ calc_value_on: Optional[str] = Field(default=None, alias="calc_value_on")
163
+ ids: Optional[Sequence[Any]] = Field(default=None, alias="ids")
164
+ weights: Optional[Sequence[float]] = Field(default=None, alias="weights")
153
165
  cond: Optional[Mapping[str, Any]] = Field(default=None, alias="cond")
154
166
  order: Optional[str] = Field(default=None, alias="order")
155
167
 
156
168
 
169
+ class VectorWeightedSumResult(Model):
170
+ vector: List[float] = Field(default_factory=list, alias="vector")
171
+ found_count: Optional[int] = Field(default=None, alias="found_count")
172
+ found_ids: List[Any] = Field(default_factory=list, alias="found_ids")
173
+ weight_sum: Optional[float] = Field(default=None, alias="weight_sum")
174
+
175
+
157
176
  class AggResult(Model):
158
177
  agg: Dict[str, Any] = Field(default_factory=dict, alias="agg")
159
178
  op: Optional[str] = Field(default=None, alias="op")
179
+ group_by: Optional[str] = Field(default=None, alias="group_by")
180
+ # Deprecated: use group_by instead.
160
181
  field: Optional[str] = Field(default=None, alias="field")
182
+ calc_value_on: Optional[str] = Field(default=None, alias="calc_value_on")
183
+ vector_weighted_sum: Optional[VectorWeightedSumResult] = Field(default=None, alias="vector_weighted_sum")
161
184
 
162
185
 
163
186
  class AggResponse(DataApiResponse):
@@ -1,4 +1,4 @@
1
1
  # Copyright (c) 2025 Beijing Volcano Engine Technology Co., Ltd.
2
2
  # SPDX-License-Identifier: Apache-2.0
3
3
 
4
- __version__ = '0.1.28'
4
+ __version__ = '0.1.30'
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: vikingdb-python-sdk
3
- Version: 0.1.28
3
+ Version: 0.1.30
4
4
  Summary: vikingdb Python SDK
5
5
  License: Apache-2.0
6
6
  Project-URL: Documentation, https://github.com/volcengine/vikingdb-python-sdk/blob/main/README.md
@@ -24,6 +24,7 @@ Requires-Dist: typing_extensions>=4.9.0
24
24
  Requires-Dist: urllib3>=1.21.1
25
25
  Requires-Dist: volcengine>=1.0.0
26
26
  Requires-Dist: aiohttp>=3.10.0
27
+ Dynamic: license-file
27
28
 
28
29
  ## VikingDB Python SDK (v2)
29
30