unique_sdk 0.9.18__py3-none-any.whl → 0.9.20__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.
- unique_sdk/__init__.py +3 -0
- unique_sdk/_api_requestor.py +2 -0
- unique_sdk/api_resources/_message_assessment.py +72 -0
- {unique_sdk-0.9.18.dist-info → unique_sdk-0.9.20.dist-info}/METADATA +46 -1
- {unique_sdk-0.9.18.dist-info → unique_sdk-0.9.20.dist-info}/RECORD +7 -6
- {unique_sdk-0.9.18.dist-info → unique_sdk-0.9.20.dist-info}/LICENSE +0 -0
- {unique_sdk-0.9.18.dist-info → unique_sdk-0.9.20.dist-info}/WHEEL +0 -0
unique_sdk/__init__.py
CHANGED
|
@@ -82,6 +82,9 @@ from unique_sdk.api_resources._short_term_memory import (
|
|
|
82
82
|
)
|
|
83
83
|
from unique_sdk.api_resources._embedding import Embeddings as Embeddings
|
|
84
84
|
from unique_sdk.api_resources._acronyms import Acronyms as Acronyms
|
|
85
|
+
from unique_sdk.api_resources._message_assessment import (
|
|
86
|
+
MessageAssessment as MessageAssessment,
|
|
87
|
+
)
|
|
85
88
|
|
|
86
89
|
# Unique QL
|
|
87
90
|
|
unique_sdk/_api_requestor.py
CHANGED
|
@@ -376,6 +376,8 @@ class APIRequestor(object):
|
|
|
376
376
|
|
|
377
377
|
def specific_api_error(self, rbody, rcode, resp, rheaders, error_data):
|
|
378
378
|
cause = error_data.get("cause", {})
|
|
379
|
+
if isinstance(cause, str):
|
|
380
|
+
cause = {"error": {"message": cause}, "status": rcode}
|
|
379
381
|
status = cause.get("status", rcode)
|
|
380
382
|
|
|
381
383
|
_util.log_info(
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
from typing import (
|
|
2
|
+
ClassVar,
|
|
3
|
+
Literal,
|
|
4
|
+
Unpack,
|
|
5
|
+
)
|
|
6
|
+
|
|
7
|
+
from unique_sdk._api_resource import APIResource
|
|
8
|
+
from unique_sdk._request_options import RequestOptions
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class MessageAssessment(APIResource["MessageAssessment"]):
|
|
12
|
+
OBJECT_NAME: ClassVar[Literal["message_assessment"]] = "message_assessment"
|
|
13
|
+
RESOURCE_URL = "/message-assessment"
|
|
14
|
+
|
|
15
|
+
class CreateParams(RequestOptions):
|
|
16
|
+
messageId: str
|
|
17
|
+
status: Literal["PENDING", "DONE", "ERROR"]
|
|
18
|
+
type: Literal["HALLUCINATION", "COMPLIANCE"]
|
|
19
|
+
isVisible: bool
|
|
20
|
+
explanation: str | None
|
|
21
|
+
label: Literal["POSITIVE", "NEGATIVE", "VERIFIED", "UNVERIFIED"] | None
|
|
22
|
+
|
|
23
|
+
class ModifyParams(RequestOptions):
|
|
24
|
+
messageId: str
|
|
25
|
+
type: Literal["HALLUCINATION", "COMPLIANCE"]
|
|
26
|
+
status: Literal["PENDING", "DONE", "ERROR"] | None
|
|
27
|
+
explanation: str | None
|
|
28
|
+
label: Literal["POSITIVE", "NEGATIVE", "VERIFIED", "UNVERIFIED"] | None
|
|
29
|
+
|
|
30
|
+
@classmethod
|
|
31
|
+
def create(
|
|
32
|
+
cls,
|
|
33
|
+
user_id: str,
|
|
34
|
+
company_id: str,
|
|
35
|
+
**params: Unpack["MessageAssessment.CreateParams"],
|
|
36
|
+
) -> "MessageAssessment":
|
|
37
|
+
return cls._static_request(
|
|
38
|
+
"post", cls.RESOURCE_URL, user_id, company_id, params=params
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
@classmethod
|
|
42
|
+
async def create_async(
|
|
43
|
+
cls,
|
|
44
|
+
user_id: str,
|
|
45
|
+
company_id: str,
|
|
46
|
+
**params: Unpack["MessageAssessment.CreateParams"],
|
|
47
|
+
) -> "MessageAssessment":
|
|
48
|
+
return await cls._static_request_async(
|
|
49
|
+
"post", cls.RESOURCE_URL, user_id, company_id, params=params
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
@classmethod
|
|
53
|
+
def modify(
|
|
54
|
+
cls,
|
|
55
|
+
user_id: str,
|
|
56
|
+
company_id: str,
|
|
57
|
+
**params: Unpack["MessageAssessment.ModifyParams"],
|
|
58
|
+
) -> "MessageAssessment":
|
|
59
|
+
url = f"{cls.RESOURCE_URL}/{params['messageId']}"
|
|
60
|
+
return cls._static_request("patch", url, user_id, company_id, params=params)
|
|
61
|
+
|
|
62
|
+
@classmethod
|
|
63
|
+
async def modify_async(
|
|
64
|
+
cls,
|
|
65
|
+
user_id: str,
|
|
66
|
+
company_id: str,
|
|
67
|
+
**params: Unpack["MessageAssessment.ModifyParams"],
|
|
68
|
+
) -> "MessageAssessment":
|
|
69
|
+
url = f"{cls.RESOURCE_URL}/{params['messageId']}"
|
|
70
|
+
return await cls._static_request_async(
|
|
71
|
+
"patch", url, user_id, company_id, params=params
|
|
72
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: unique_sdk
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.20
|
|
4
4
|
Summary:
|
|
5
5
|
License: MIT
|
|
6
6
|
Author: Martin Fadler
|
|
@@ -34,6 +34,7 @@ The Unique Python SDK provides access to the public API of Unique FinanceGPT. It
|
|
|
34
34
|
- [Search](#search)
|
|
35
35
|
- [Search String](#search-string)
|
|
36
36
|
- [Short Term Memory](#short-term-memory)
|
|
37
|
+
- [Message Assessment](#message-assessment)
|
|
37
38
|
6. [UniqueQL](#uniqueql)
|
|
38
39
|
- [Query Structure](#uniqueql-query-structure)
|
|
39
40
|
- [Metadata Filtering](#metadata-filtering)
|
|
@@ -587,6 +588,7 @@ you need to provide an `memoryName` as an identifier.
|
|
|
587
588
|
|
|
588
589
|
you can then save it and retreive it live defined below.
|
|
589
590
|
|
|
591
|
+
|
|
590
592
|
#### `unique_sdk.ShortTermMemory.create`
|
|
591
593
|
|
|
592
594
|
```python
|
|
@@ -614,6 +616,43 @@ m = unique_sdk.ShortTermMemory.find_latest(
|
|
|
614
616
|
print(m)
|
|
615
617
|
```
|
|
616
618
|
|
|
619
|
+
### Message Assessment
|
|
620
|
+
|
|
621
|
+
Used to create and modify message assessments for tracking hallucinations and compliance evaluations of assistant messages.
|
|
622
|
+
|
|
623
|
+
#### `unique_sdk.MessageAssessment.create`
|
|
624
|
+
|
|
625
|
+
Create a new message assessment for an assistant message.
|
|
626
|
+
|
|
627
|
+
```python
|
|
628
|
+
assessment = unique_sdk.MessageAssessment.create(
|
|
629
|
+
user_id=user_id,
|
|
630
|
+
company_id=company_id,
|
|
631
|
+
assistant_message_id="msg_...",
|
|
632
|
+
status="DONE",
|
|
633
|
+
explanation="This response contains incorrect information about...",
|
|
634
|
+
label="NEGATIVE",
|
|
635
|
+
type="HALLUCINATION",
|
|
636
|
+
isVisible=True
|
|
637
|
+
)
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
#### `unique_sdk.MessageAssessment.modify`
|
|
641
|
+
|
|
642
|
+
Modify an existing message assessment.
|
|
643
|
+
|
|
644
|
+
```python
|
|
645
|
+
assessment = unique_sdk.MessageAssessment.modify(
|
|
646
|
+
user_id=user_id,
|
|
647
|
+
company_id=company_id,
|
|
648
|
+
assistant_message_id="msg_...",
|
|
649
|
+
status="DONE",
|
|
650
|
+
explanation="Updated explanation...",
|
|
651
|
+
label="NEGATIVE",
|
|
652
|
+
type="HALLUCINATION"
|
|
653
|
+
)
|
|
654
|
+
```
|
|
655
|
+
|
|
617
656
|
## UniqueQL
|
|
618
657
|
|
|
619
658
|
[UniqueQL](https://unique-ch.atlassian.net/wiki/x/coAXHQ) is an advanced query language designed to enhance search capabilities within various search modes such as Vector, Full-Text Search (FTS), and Combined. This query language enables users to perform detailed searches by filtering through metadata attributes like filenames, URLs, dates, and more. UniqueQL is versatile and can be translated into different query formats for various database systems, including PostgreSQL and Qdrant.
|
|
@@ -899,6 +938,12 @@ All notable changes to this project will be documented in this file.
|
|
|
899
938
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
900
939
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
901
940
|
|
|
941
|
+
## [0.9.20] - 2025-02-01
|
|
942
|
+
- Add url parameter to `MessageAssessment.create_async` and `MessageAssessment.modify_async`
|
|
943
|
+
|
|
944
|
+
## [0.9.19] - 2025-01-31
|
|
945
|
+
- Add `MessageAssessment` resource
|
|
946
|
+
|
|
902
947
|
## [0.9.18] - 2025-01-22
|
|
903
948
|
- Removed `Invalid response body from API` from `retry_dict` as it's our own artificail error.
|
|
904
949
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
unique_sdk/__init__.py,sha256=
|
|
2
|
-
unique_sdk/_api_requestor.py,sha256=
|
|
1
|
+
unique_sdk/__init__.py,sha256=_bFNx6aDyXx_P8VO3RQISQH0PNIqpY3Zev3tsVNUeps,3177
|
|
2
|
+
unique_sdk/_api_requestor.py,sha256=UxFnEyLPX8orHzFcPJC4tDSVqF4sCDJpWlN6IunOYyQ,14645
|
|
3
3
|
unique_sdk/_api_resource.py,sha256=ytjomI-IVJwsbvdPyuZCfF-bl-Abgf66bu1D34YxCu8,6244
|
|
4
4
|
unique_sdk/_api_version.py,sha256=Ku4JPdeyJtnX5eJJvRCEc1_u44UObdVrvrL1T-WwWCs,46
|
|
5
5
|
unique_sdk/_error.py,sha256=j-deT0PJ-exLCwUkqORRaxaLLrGunDag9bKJSmBBKZI,3343
|
|
@@ -21,6 +21,7 @@ unique_sdk/api_resources/_embedding.py,sha256=C6qak7cCUBMBINfPhgH8taCJZ9n6w1MUEl
|
|
|
21
21
|
unique_sdk/api_resources/_event.py,sha256=bpWF9vstdoAWbUzr-iiGP713ceP0zPk77GJXiImf9zg,374
|
|
22
22
|
unique_sdk/api_resources/_integrated.py,sha256=R5a5oSVQXkh5xyeFwor-7sfePsBdtUyh8SbTMS6AMz4,3036
|
|
23
23
|
unique_sdk/api_resources/_message.py,sha256=gEDIzg3METZU2k7m69meAuf0IWmZxnYOjbBKPRMwPYE,7688
|
|
24
|
+
unique_sdk/api_resources/_message_assessment.py,sha256=EEf-cThCEd2N6hceENG3HnJQPoe_2Oiq5MBy5hfAxmM,2272
|
|
24
25
|
unique_sdk/api_resources/_search.py,sha256=m9gL-Cv347r6cM9MwGWgddORGHzPF3jK5dzL3plaeNI,1883
|
|
25
26
|
unique_sdk/api_resources/_search_string.py,sha256=I43XqKfYwWSwhZ4r0UHx5fs1MUGbLszWHrxqBvo6Tx8,1785
|
|
26
27
|
unique_sdk/api_resources/_short_term_memory.py,sha256=vPRN-Y0WPx74E6y-A3LocGc0TxJdzT-xGL66WzZwKRg,2820
|
|
@@ -28,7 +29,7 @@ unique_sdk/utils/chat_history.py,sha256=5UqL9hF1O9pV7skbNOlEibF5rHdYsmG3m5-YEPUo
|
|
|
28
29
|
unique_sdk/utils/file_io.py,sha256=tcS-5NA97AyiJPhKpWs3i0qKNFsZlttToxrvnWRDJrs,3857
|
|
29
30
|
unique_sdk/utils/sources.py,sha256=wfboE-neMKa0Wuq9QzfAEFMkNLrIrmm0v-QF33sLo6k,4952
|
|
30
31
|
unique_sdk/utils/token.py,sha256=AzKuAA1AwBtnvSFxGcsHLpxXr_wWE5Mj4jYBbOz2ljA,1740
|
|
31
|
-
unique_sdk-0.9.
|
|
32
|
-
unique_sdk-0.9.
|
|
33
|
-
unique_sdk-0.9.
|
|
34
|
-
unique_sdk-0.9.
|
|
32
|
+
unique_sdk-0.9.20.dist-info/LICENSE,sha256=EJCWoHgrXVBUb47PnjeV4MFIEOR71MAdCOIgv61J-4k,1065
|
|
33
|
+
unique_sdk-0.9.20.dist-info/METADATA,sha256=8uMy1QbABEhlg1xysGcmfp0QOApqaqkSZyL0g1bdu9M,29861
|
|
34
|
+
unique_sdk-0.9.20.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
35
|
+
unique_sdk-0.9.20.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|