tencentcloud-sdk-python-dataagent 3.1.112__py2.py3-none-any.whl → 3.1.115__py2.py3-none-any.whl

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.
tencentcloud/__init__.py CHANGED
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
 
16
16
 
17
- __version__ = '3.1.112'
17
+ __version__ = '3.1.115'
@@ -72,6 +72,29 @@ class DataagentClient(AbstractClient):
72
72
  raise TencentCloudSDKException(type(e).__name__, str(e))
73
73
 
74
74
 
75
+ def AppendKnowledgeTask(self, request):
76
+ r"""追加文件
77
+
78
+ :param request: Request instance for AppendKnowledgeTask.
79
+ :type request: :class:`tencentcloud.dataagent.v20250513.models.AppendKnowledgeTaskRequest`
80
+ :rtype: :class:`tencentcloud.dataagent.v20250513.models.AppendKnowledgeTaskResponse`
81
+
82
+ """
83
+ try:
84
+ params = request._serialize()
85
+ headers = request.headers
86
+ body = self.call("AppendKnowledgeTask", params, headers=headers)
87
+ response = json.loads(body)
88
+ model = models.AppendKnowledgeTaskResponse()
89
+ model._deserialize(response["Response"])
90
+ return model
91
+ except Exception as e:
92
+ if isinstance(e, TencentCloudSDKException):
93
+ raise
94
+ else:
95
+ raise TencentCloudSDKException(type(e).__name__, str(e))
96
+
97
+
75
98
  def ChatAI(self, request):
76
99
  r"""提供DataAgent 产品服务API
77
100
 
@@ -412,6 +435,29 @@ class DataagentClient(AbstractClient):
412
435
  raise TencentCloudSDKException(type(e).__name__, str(e))
413
436
 
414
437
 
438
+ def QueryKnowledgeTask(self, request):
439
+ r"""查询文件任务状态
440
+
441
+ :param request: Request instance for QueryKnowledgeTask.
442
+ :type request: :class:`tencentcloud.dataagent.v20250513.models.QueryKnowledgeTaskRequest`
443
+ :rtype: :class:`tencentcloud.dataagent.v20250513.models.QueryKnowledgeTaskResponse`
444
+
445
+ """
446
+ try:
447
+ params = request._serialize()
448
+ headers = request.headers
449
+ body = self.call("QueryKnowledgeTask", params, headers=headers)
450
+ response = json.loads(body)
451
+ model = models.QueryKnowledgeTaskResponse()
452
+ model._deserialize(response["Response"])
453
+ return model
454
+ except Exception as e:
455
+ if isinstance(e, TencentCloudSDKException):
456
+ raise
457
+ else:
458
+ raise TencentCloudSDKException(type(e).__name__, str(e))
459
+
460
+
415
461
  def QuerySceneList(self, request):
416
462
  r"""查询场景列表
417
463
 
@@ -61,6 +61,24 @@ class DataagentClient(AbstractClient):
61
61
 
62
62
  return await self.call_and_deserialize(**kwargs)
63
63
 
64
+ async def AppendKnowledgeTask(
65
+ self,
66
+ request: models.AppendKnowledgeTaskRequest,
67
+ opts: Dict = None,
68
+ ) -> models.AppendKnowledgeTaskResponse:
69
+ """
70
+ 追加文件
71
+ """
72
+
73
+ kwargs = {}
74
+ kwargs["action"] = "AppendKnowledgeTask"
75
+ kwargs["params"] = request._serialize()
76
+ kwargs["resp_cls"] = models.AppendKnowledgeTaskResponse
77
+ kwargs["headers"] = request.headers
78
+ kwargs["opts"] = opts or {}
79
+
80
+ return await self.call_and_deserialize(**kwargs)
81
+
64
82
  async def ChatAI(
65
83
  self,
66
84
  request: models.ChatAIRequest,
@@ -331,6 +349,24 @@ class DataagentClient(AbstractClient):
331
349
 
332
350
  return await self.call_and_deserialize(**kwargs)
333
351
 
352
+ async def QueryKnowledgeTask(
353
+ self,
354
+ request: models.QueryKnowledgeTaskRequest,
355
+ opts: Dict = None,
356
+ ) -> models.QueryKnowledgeTaskResponse:
357
+ """
358
+ 查询文件任务状态
359
+ """
360
+
361
+ kwargs = {}
362
+ kwargs["action"] = "QueryKnowledgeTask"
363
+ kwargs["params"] = request._serialize()
364
+ kwargs["resp_cls"] = models.QueryKnowledgeTaskResponse
365
+ kwargs["headers"] = request.headers
366
+ kwargs["opts"] = opts or {}
367
+
368
+ return await self.call_and_deserialize(**kwargs)
369
+
334
370
  async def QuerySceneList(
335
371
  self,
336
372
  request: models.QuerySceneListRequest,
@@ -313,6 +313,201 @@ class AddSceneResponse(AbstractModel):
313
313
  self._RequestId = params.get("RequestId")
314
314
 
315
315
 
316
+ class AppendDocument(AbstractModel):
317
+ r"""追加文件
318
+
319
+ """
320
+
321
+ def __init__(self):
322
+ r"""
323
+ :param _FileName: <p>文件名称</p>
324
+ :type FileName: str
325
+ :param _FileId: <p>文件id</p>
326
+ :type FileId: str
327
+ :param _FileUrl: <p>文件url</p>
328
+ :type FileUrl: str
329
+ :param _FileSize: <p>文件大小</p>
330
+ :type FileSize: float
331
+ """
332
+ self._FileName = None
333
+ self._FileId = None
334
+ self._FileUrl = None
335
+ self._FileSize = None
336
+
337
+ @property
338
+ def FileName(self):
339
+ r"""<p>文件名称</p>
340
+ :rtype: str
341
+ """
342
+ return self._FileName
343
+
344
+ @FileName.setter
345
+ def FileName(self, FileName):
346
+ self._FileName = FileName
347
+
348
+ @property
349
+ def FileId(self):
350
+ r"""<p>文件id</p>
351
+ :rtype: str
352
+ """
353
+ return self._FileId
354
+
355
+ @FileId.setter
356
+ def FileId(self, FileId):
357
+ self._FileId = FileId
358
+
359
+ @property
360
+ def FileUrl(self):
361
+ r"""<p>文件url</p>
362
+ :rtype: str
363
+ """
364
+ return self._FileUrl
365
+
366
+ @FileUrl.setter
367
+ def FileUrl(self, FileUrl):
368
+ self._FileUrl = FileUrl
369
+
370
+ @property
371
+ def FileSize(self):
372
+ r"""<p>文件大小</p>
373
+ :rtype: float
374
+ """
375
+ return self._FileSize
376
+
377
+ @FileSize.setter
378
+ def FileSize(self, FileSize):
379
+ self._FileSize = FileSize
380
+
381
+
382
+ def _deserialize(self, params):
383
+ self._FileName = params.get("FileName")
384
+ self._FileId = params.get("FileId")
385
+ self._FileUrl = params.get("FileUrl")
386
+ self._FileSize = params.get("FileSize")
387
+ memeber_set = set(params.keys())
388
+ for name, value in vars(self).items():
389
+ property_name = name[1:]
390
+ if property_name in memeber_set:
391
+ memeber_set.remove(property_name)
392
+ if len(memeber_set) > 0:
393
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
394
+
395
+
396
+
397
+ class AppendKnowledgeTaskRequest(AbstractModel):
398
+ r"""AppendKnowledgeTask请求参数结构体
399
+
400
+ """
401
+
402
+ def __init__(self):
403
+ r"""
404
+ :param _InstanceId: <p>实例id</p>
405
+ :type InstanceId: str
406
+ :param _KnowledgeBaseId: <p>知识库id</p>
407
+ :type KnowledgeBaseId: str
408
+ :param _FileId: <p>文件id</p>
409
+ :type FileId: str
410
+ :param _Documents: <p>追加的文档列表</p>
411
+ :type Documents: list of AppendDocument
412
+ """
413
+ self._InstanceId = None
414
+ self._KnowledgeBaseId = None
415
+ self._FileId = None
416
+ self._Documents = None
417
+
418
+ @property
419
+ def InstanceId(self):
420
+ r"""<p>实例id</p>
421
+ :rtype: str
422
+ """
423
+ return self._InstanceId
424
+
425
+ @InstanceId.setter
426
+ def InstanceId(self, InstanceId):
427
+ self._InstanceId = InstanceId
428
+
429
+ @property
430
+ def KnowledgeBaseId(self):
431
+ r"""<p>知识库id</p>
432
+ :rtype: str
433
+ """
434
+ return self._KnowledgeBaseId
435
+
436
+ @KnowledgeBaseId.setter
437
+ def KnowledgeBaseId(self, KnowledgeBaseId):
438
+ self._KnowledgeBaseId = KnowledgeBaseId
439
+
440
+ @property
441
+ def FileId(self):
442
+ r"""<p>文件id</p>
443
+ :rtype: str
444
+ """
445
+ return self._FileId
446
+
447
+ @FileId.setter
448
+ def FileId(self, FileId):
449
+ self._FileId = FileId
450
+
451
+ @property
452
+ def Documents(self):
453
+ r"""<p>追加的文档列表</p>
454
+ :rtype: list of AppendDocument
455
+ """
456
+ return self._Documents
457
+
458
+ @Documents.setter
459
+ def Documents(self, Documents):
460
+ self._Documents = Documents
461
+
462
+
463
+ def _deserialize(self, params):
464
+ self._InstanceId = params.get("InstanceId")
465
+ self._KnowledgeBaseId = params.get("KnowledgeBaseId")
466
+ self._FileId = params.get("FileId")
467
+ if params.get("Documents") is not None:
468
+ self._Documents = []
469
+ for item in params.get("Documents"):
470
+ obj = AppendDocument()
471
+ obj._deserialize(item)
472
+ self._Documents.append(obj)
473
+ memeber_set = set(params.keys())
474
+ for name, value in vars(self).items():
475
+ property_name = name[1:]
476
+ if property_name in memeber_set:
477
+ memeber_set.remove(property_name)
478
+ if len(memeber_set) > 0:
479
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
480
+
481
+
482
+
483
+ class AppendKnowledgeTaskResponse(AbstractModel):
484
+ r"""AppendKnowledgeTask返回参数结构体
485
+
486
+ """
487
+
488
+ def __init__(self):
489
+ r"""
490
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
491
+ :type RequestId: str
492
+ """
493
+ self._RequestId = None
494
+
495
+ @property
496
+ def RequestId(self):
497
+ r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
498
+ :rtype: str
499
+ """
500
+ return self._RequestId
501
+
502
+ @RequestId.setter
503
+ def RequestId(self, RequestId):
504
+ self._RequestId = RequestId
505
+
506
+
507
+ def _deserialize(self, params):
508
+ self._RequestId = params.get("RequestId")
509
+
510
+
316
511
  class ChatAIRequest(AbstractModel):
317
512
  r"""ChatAI请求参数结构体
318
513
 
@@ -1520,6 +1715,87 @@ class FileInfo(AbstractModel):
1520
1715
 
1521
1716
 
1522
1717
 
1718
+ class FileTaskStatus(AbstractModel):
1719
+ r"""文件任务状态
1720
+
1721
+ """
1722
+
1723
+ def __init__(self):
1724
+ r"""
1725
+ :param _FileId: <p>文件id</p>
1726
+ :type FileId: str
1727
+ :param _Status: <p>状态</p><p>枚举值:</p><ul><li>0: 处理中</li><li>1: 可用</li><li>-1: 错误</li></ul>
1728
+ :type Status: int
1729
+ :param _IsTerminated: <p>是否已拉取过状态</p><p>枚举值:</p><ul><li>0: 未被拉取过状态</li><li>1: 已被拉取过状态</li></ul>
1730
+ :type IsTerminated: int
1731
+ :param _ErrorMsg: <p>错误信息,状态-1时不为空</p>
1732
+ :type ErrorMsg: str
1733
+ """
1734
+ self._FileId = None
1735
+ self._Status = None
1736
+ self._IsTerminated = None
1737
+ self._ErrorMsg = None
1738
+
1739
+ @property
1740
+ def FileId(self):
1741
+ r"""<p>文件id</p>
1742
+ :rtype: str
1743
+ """
1744
+ return self._FileId
1745
+
1746
+ @FileId.setter
1747
+ def FileId(self, FileId):
1748
+ self._FileId = FileId
1749
+
1750
+ @property
1751
+ def Status(self):
1752
+ r"""<p>状态</p><p>枚举值:</p><ul><li>0: 处理中</li><li>1: 可用</li><li>-1: 错误</li></ul>
1753
+ :rtype: int
1754
+ """
1755
+ return self._Status
1756
+
1757
+ @Status.setter
1758
+ def Status(self, Status):
1759
+ self._Status = Status
1760
+
1761
+ @property
1762
+ def IsTerminated(self):
1763
+ r"""<p>是否已拉取过状态</p><p>枚举值:</p><ul><li>0: 未被拉取过状态</li><li>1: 已被拉取过状态</li></ul>
1764
+ :rtype: int
1765
+ """
1766
+ return self._IsTerminated
1767
+
1768
+ @IsTerminated.setter
1769
+ def IsTerminated(self, IsTerminated):
1770
+ self._IsTerminated = IsTerminated
1771
+
1772
+ @property
1773
+ def ErrorMsg(self):
1774
+ r"""<p>错误信息,状态-1时不为空</p>
1775
+ :rtype: str
1776
+ """
1777
+ return self._ErrorMsg
1778
+
1779
+ @ErrorMsg.setter
1780
+ def ErrorMsg(self, ErrorMsg):
1781
+ self._ErrorMsg = ErrorMsg
1782
+
1783
+
1784
+ def _deserialize(self, params):
1785
+ self._FileId = params.get("FileId")
1786
+ self._Status = params.get("Status")
1787
+ self._IsTerminated = params.get("IsTerminated")
1788
+ self._ErrorMsg = params.get("ErrorMsg")
1789
+ memeber_set = set(params.keys())
1790
+ for name, value in vars(self).items():
1791
+ property_name = name[1:]
1792
+ if property_name in memeber_set:
1793
+ memeber_set.remove(property_name)
1794
+ if len(memeber_set) > 0:
1795
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
1796
+
1797
+
1798
+
1523
1799
  class GetJobsByKnowledgeBaseIdRequest(AbstractModel):
1524
1800
  r"""GetJobsByKnowledgeBaseId请求参数结构体
1525
1801
 
@@ -3176,6 +3452,120 @@ class QueryChunkListResponse(AbstractModel):
3176
3452
  self._RequestId = params.get("RequestId")
3177
3453
 
3178
3454
 
3455
+ class QueryKnowledgeTaskRequest(AbstractModel):
3456
+ r"""QueryKnowledgeTask请求参数结构体
3457
+
3458
+ """
3459
+
3460
+ def __init__(self):
3461
+ r"""
3462
+ :param _InstanceId: <p>实例id</p>
3463
+ :type InstanceId: str
3464
+ :param _KnowledgeBaseId: <p>知识库id</p>
3465
+ :type KnowledgeBaseId: str
3466
+ :param _FileIds: <p>文件id列表</p>
3467
+ :type FileIds: list of str
3468
+ """
3469
+ self._InstanceId = None
3470
+ self._KnowledgeBaseId = None
3471
+ self._FileIds = None
3472
+
3473
+ @property
3474
+ def InstanceId(self):
3475
+ r"""<p>实例id</p>
3476
+ :rtype: str
3477
+ """
3478
+ return self._InstanceId
3479
+
3480
+ @InstanceId.setter
3481
+ def InstanceId(self, InstanceId):
3482
+ self._InstanceId = InstanceId
3483
+
3484
+ @property
3485
+ def KnowledgeBaseId(self):
3486
+ r"""<p>知识库id</p>
3487
+ :rtype: str
3488
+ """
3489
+ return self._KnowledgeBaseId
3490
+
3491
+ @KnowledgeBaseId.setter
3492
+ def KnowledgeBaseId(self, KnowledgeBaseId):
3493
+ self._KnowledgeBaseId = KnowledgeBaseId
3494
+
3495
+ @property
3496
+ def FileIds(self):
3497
+ r"""<p>文件id列表</p>
3498
+ :rtype: list of str
3499
+ """
3500
+ return self._FileIds
3501
+
3502
+ @FileIds.setter
3503
+ def FileIds(self, FileIds):
3504
+ self._FileIds = FileIds
3505
+
3506
+
3507
+ def _deserialize(self, params):
3508
+ self._InstanceId = params.get("InstanceId")
3509
+ self._KnowledgeBaseId = params.get("KnowledgeBaseId")
3510
+ self._FileIds = params.get("FileIds")
3511
+ memeber_set = set(params.keys())
3512
+ for name, value in vars(self).items():
3513
+ property_name = name[1:]
3514
+ if property_name in memeber_set:
3515
+ memeber_set.remove(property_name)
3516
+ if len(memeber_set) > 0:
3517
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
3518
+
3519
+
3520
+
3521
+ class QueryKnowledgeTaskResponse(AbstractModel):
3522
+ r"""QueryKnowledgeTask返回参数结构体
3523
+
3524
+ """
3525
+
3526
+ def __init__(self):
3527
+ r"""
3528
+ :param _FileList: <p>文档任务详情对象</p>
3529
+ :type FileList: list of FileTaskStatus
3530
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
3531
+ :type RequestId: str
3532
+ """
3533
+ self._FileList = None
3534
+ self._RequestId = None
3535
+
3536
+ @property
3537
+ def FileList(self):
3538
+ r"""<p>文档任务详情对象</p>
3539
+ :rtype: list of FileTaskStatus
3540
+ """
3541
+ return self._FileList
3542
+
3543
+ @FileList.setter
3544
+ def FileList(self, FileList):
3545
+ self._FileList = FileList
3546
+
3547
+ @property
3548
+ def RequestId(self):
3549
+ r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
3550
+ :rtype: str
3551
+ """
3552
+ return self._RequestId
3553
+
3554
+ @RequestId.setter
3555
+ def RequestId(self, RequestId):
3556
+ self._RequestId = RequestId
3557
+
3558
+
3559
+ def _deserialize(self, params):
3560
+ if params.get("FileList") is not None:
3561
+ self._FileList = []
3562
+ for item in params.get("FileList"):
3563
+ obj = FileTaskStatus()
3564
+ obj._deserialize(item)
3565
+ self._FileList.append(obj)
3566
+ self._RequestId = params.get("RequestId")
3567
+
3568
+
3179
3569
  class QuerySceneListRequest(AbstractModel):
3180
3570
  r"""QuerySceneList请求参数结构体
3181
3571
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-dataagent
3
- Version: 3.1.112
3
+ Version: 3.1.115
4
4
  Summary: Tencent Cloud Dataagent SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common <4.0.0,>=3.1.112
18
+ Requires-Dist: tencentcloud-sdk-python-common <4.0.0,>=3.1.115
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -0,0 +1,11 @@
1
+ tencentcloud/__init__.py,sha256=NLKGfZ01nECbgVZ2UR5IeQwtLc7bAyQ-t4lQgJuG0ls,630
2
+ tencentcloud/dataagent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ tencentcloud/dataagent/v20250513/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ tencentcloud/dataagent/v20250513/dataagent_client.py,sha256=7JJmoOH63SeY-832j6kbS6SJrGjUCLe3Q3KUr4Ob8pU,21922
5
+ tencentcloud/dataagent/v20250513/dataagent_client_async.py,sha256=6XJ8pjx42DGLaX6jNX3hic2sFLKHxzEdWCf6kmztpjM,14551
6
+ tencentcloud/dataagent/v20250513/errorcodes.py,sha256=oDA3b6phBkyUFg0XUkL4tNQmIcBBhAxrvs5cLZ0sk1g,1538
7
+ tencentcloud/dataagent/v20250513/models.py,sha256=-ep01xYiw7z-kPDUgdXGAveiejjOQAW24ZgHcXw7Xcc,144980
8
+ tencentcloud_sdk_python_dataagent-3.1.115.dist-info/METADATA,sha256=T0EP29iAZRvbQGBjMh3aWoB8eFXRy63L0Le6L1gOZ9g,1527
9
+ tencentcloud_sdk_python_dataagent-3.1.115.dist-info/WHEEL,sha256=a5ogxI61vGGBHYbAAwISCXsfU7mxKr76gTpCEmSNOI8,109
10
+ tencentcloud_sdk_python_dataagent-3.1.115.dist-info/top_level.txt,sha256=g-8OyzoqI6O6LiS85zkeNzhB-osEnRIPZMdyRd_0eL0,13
11
+ tencentcloud_sdk_python_dataagent-3.1.115.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- tencentcloud/__init__.py,sha256=Mq2JsEBUAoVRWhH2ZdmzNAC82kdYoTWlSdIYTDQ0TH0,630
2
- tencentcloud/dataagent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- tencentcloud/dataagent/v20250513/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- tencentcloud/dataagent/v20250513/dataagent_client.py,sha256=8ALXxWaIa3EntVTkrRhjlbQQYbFCK9vJH4b1TZMM-5A,20140
5
- tencentcloud/dataagent/v20250513/dataagent_client_async.py,sha256=BnHQdtrdYMJ4CfPNFFHJX6ySSqpgi9USr85IUrCWh1o,13394
6
- tencentcloud/dataagent/v20250513/errorcodes.py,sha256=oDA3b6phBkyUFg0XUkL4tNQmIcBBhAxrvs5cLZ0sk1g,1538
7
- tencentcloud/dataagent/v20250513/models.py,sha256=sWlWVaXT0XEYO3WFk9JxfcAkx6NkKOQZa3WCZ-6H-PA,133888
8
- tencentcloud_sdk_python_dataagent-3.1.112.dist-info/METADATA,sha256=sIIt4fqfrFbMaAwjfUSskAxgpSSS05cTpAvlml4ZGKY,1527
9
- tencentcloud_sdk_python_dataagent-3.1.112.dist-info/WHEEL,sha256=a5ogxI61vGGBHYbAAwISCXsfU7mxKr76gTpCEmSNOI8,109
10
- tencentcloud_sdk_python_dataagent-3.1.112.dist-info/top_level.txt,sha256=g-8OyzoqI6O6LiS85zkeNzhB-osEnRIPZMdyRd_0eL0,13
11
- tencentcloud_sdk_python_dataagent-3.1.112.dist-info/RECORD,,