orca-sdk 0.0.92__py3-none-any.whl → 0.0.93__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.
- orca_sdk/_generated_api_client/api/__init__.py +4 -0
- orca_sdk/_generated_api_client/api/memoryset/suggest_cascading_edits_memoryset_name_or_id_memory_memory_id_cascading_edits_post.py +233 -0
- orca_sdk/_generated_api_client/models/__init__.py +4 -0
- orca_sdk/_generated_api_client/models/cascade_edit_suggestions_request.py +154 -0
- orca_sdk/_generated_api_client/models/cascading_edit_suggestion.py +92 -0
- orca_sdk/_generated_api_client/models/classification_evaluation_result.py +62 -0
- orca_sdk/_generated_api_client/models/filter_item_field_type_0_item.py +1 -0
- orca_sdk/_generated_api_client/models/label_prediction_memory_lookup.py +8 -0
- orca_sdk/_generated_api_client/models/labeled_memory.py +8 -0
- orca_sdk/_generated_api_client/models/labeled_memory_lookup.py +8 -0
- orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics.py +8 -0
- orca_sdk/_generated_api_client/models/prediction_request.py +16 -7
- orca_sdk/_utils/data_parsing.py +31 -2
- orca_sdk/_utils/data_parsing_test.py +18 -15
- orca_sdk/_utils/tqdm_file_reader.py +12 -0
- orca_sdk/classification_model.py +27 -9
- orca_sdk/classification_model_test.py +49 -34
- orca_sdk/conftest.py +86 -25
- orca_sdk/datasource.py +22 -12
- orca_sdk/embedding_model_test.py +6 -5
- orca_sdk/memoryset.py +78 -0
- orca_sdk/memoryset_test.py +197 -123
- {orca_sdk-0.0.92.dist-info → orca_sdk-0.0.93.dist-info}/METADATA +1 -1
- {orca_sdk-0.0.92.dist-info → orca_sdk-0.0.93.dist-info}/RECORD +25 -21
- {orca_sdk-0.0.92.dist-info → orca_sdk-0.0.93.dist-info}/WHEEL +0 -0
orca_sdk/memoryset_test.py
CHANGED
|
@@ -1,23 +1,45 @@
|
|
|
1
1
|
import random
|
|
2
|
+
import time
|
|
3
|
+
from typing import Generator
|
|
2
4
|
from uuid import uuid4
|
|
3
5
|
|
|
4
6
|
import pytest
|
|
7
|
+
from datasets import ClassLabel, Features, Value
|
|
5
8
|
from datasets.arrow_dataset import Dataset
|
|
6
9
|
|
|
10
|
+
from orca_sdk.conftest import SAMPLE_DATA
|
|
11
|
+
|
|
12
|
+
from ._generated_api_client.models import CascadingEditSuggestion
|
|
7
13
|
from .classification_model import ClassificationModel
|
|
8
14
|
from .datasource import Datasource
|
|
9
15
|
from .embedding_model import PretrainedEmbeddingModel
|
|
10
16
|
from .memoryset import LabeledMemoryset, TaskStatus
|
|
11
17
|
|
|
18
|
+
"""
|
|
19
|
+
Test Performance Note:
|
|
20
|
+
|
|
21
|
+
Creating new `LabeledMemoryset` objects is expensive, so this test file applies the following optimizations:
|
|
22
|
+
|
|
23
|
+
- Two fixtures are used to manage memorysets:
|
|
24
|
+
- `readonly_memoryset` is a session-scoped fixture shared across tests that do not modify state.
|
|
25
|
+
It should only be used in nullipotent tests.
|
|
26
|
+
- `writable_memoryset` is a function-scoped, regenerating fixture.
|
|
27
|
+
It can be used in tests that mutate or delete the memoryset, and will be reset before each test.
|
|
28
|
+
|
|
29
|
+
- To minimize fixture overhead, tests using `writable_memoryset` should combine related behaviors.
|
|
30
|
+
For example, prefer a single `test_delete` that covers both single and multiple deletion cases,
|
|
31
|
+
rather than separate `test_delete_single` and `test_delete_multiple` tests.
|
|
32
|
+
"""
|
|
12
33
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
assert
|
|
16
|
-
assert
|
|
17
|
-
assert
|
|
18
|
-
assert
|
|
19
|
-
assert
|
|
20
|
-
assert
|
|
34
|
+
|
|
35
|
+
def test_create_memoryset(readonly_memoryset: LabeledMemoryset, hf_dataset: Dataset, label_names: list[str]):
|
|
36
|
+
assert readonly_memoryset is not None
|
|
37
|
+
assert readonly_memoryset.name == "test_readonly_memoryset"
|
|
38
|
+
assert readonly_memoryset.embedding_model == PretrainedEmbeddingModel.GTE_BASE
|
|
39
|
+
assert readonly_memoryset.label_names == label_names
|
|
40
|
+
assert readonly_memoryset.insertion_status == TaskStatus.COMPLETED
|
|
41
|
+
assert isinstance(readonly_memoryset.length, int)
|
|
42
|
+
assert readonly_memoryset.length == len(hf_dataset)
|
|
21
43
|
|
|
22
44
|
|
|
23
45
|
def test_create_memoryset_unauthenticated(unauthenticated, datasource):
|
|
@@ -29,61 +51,55 @@ def test_create_memoryset_invalid_input(datasource):
|
|
|
29
51
|
# invalid name
|
|
30
52
|
with pytest.raises(ValueError, match=r"Invalid input:.*"):
|
|
31
53
|
LabeledMemoryset.create("test memoryset", datasource)
|
|
32
|
-
# invalid datasource
|
|
33
|
-
datasource.id = str(uuid4())
|
|
34
|
-
with pytest.raises(ValueError, match=r"Invalid input:.*"):
|
|
35
|
-
LabeledMemoryset.create("test_memoryset_invalid_datasource", datasource)
|
|
36
54
|
|
|
37
55
|
|
|
38
|
-
def test_create_memoryset_already_exists_error(hf_dataset, label_names,
|
|
56
|
+
def test_create_memoryset_already_exists_error(hf_dataset, label_names, readonly_memoryset):
|
|
57
|
+
memoryset_name = readonly_memoryset.name
|
|
39
58
|
with pytest.raises(ValueError):
|
|
40
|
-
LabeledMemoryset.from_hf_dataset(
|
|
59
|
+
LabeledMemoryset.from_hf_dataset(memoryset_name, hf_dataset, label_names=label_names)
|
|
41
60
|
with pytest.raises(ValueError):
|
|
42
|
-
LabeledMemoryset.from_hf_dataset(
|
|
43
|
-
"test_memoryset", hf_dataset, label_names=label_names, value_column="text", if_exists="error"
|
|
44
|
-
)
|
|
61
|
+
LabeledMemoryset.from_hf_dataset(memoryset_name, hf_dataset, label_names=label_names, if_exists="error")
|
|
45
62
|
|
|
46
63
|
|
|
47
|
-
def test_create_memoryset_already_exists_open(hf_dataset, label_names,
|
|
64
|
+
def test_create_memoryset_already_exists_open(hf_dataset, label_names, readonly_memoryset):
|
|
48
65
|
# invalid label names
|
|
49
66
|
with pytest.raises(ValueError):
|
|
50
67
|
LabeledMemoryset.from_hf_dataset(
|
|
51
|
-
|
|
68
|
+
readonly_memoryset.name,
|
|
52
69
|
hf_dataset,
|
|
53
70
|
label_names=["turtles", "frogs"],
|
|
54
|
-
value_column="text",
|
|
55
71
|
if_exists="open",
|
|
56
72
|
)
|
|
57
73
|
# different embedding model
|
|
58
74
|
with pytest.raises(ValueError):
|
|
59
75
|
LabeledMemoryset.from_hf_dataset(
|
|
60
|
-
|
|
76
|
+
readonly_memoryset.name,
|
|
61
77
|
hf_dataset,
|
|
62
78
|
label_names=label_names,
|
|
63
79
|
embedding_model=PretrainedEmbeddingModel.DISTILBERT,
|
|
64
80
|
if_exists="open",
|
|
65
81
|
)
|
|
66
82
|
opened_memoryset = LabeledMemoryset.from_hf_dataset(
|
|
67
|
-
|
|
83
|
+
readonly_memoryset.name,
|
|
68
84
|
hf_dataset,
|
|
69
85
|
embedding_model=PretrainedEmbeddingModel.GTE_BASE,
|
|
70
86
|
if_exists="open",
|
|
71
87
|
)
|
|
72
88
|
assert opened_memoryset is not None
|
|
73
|
-
assert opened_memoryset.name ==
|
|
89
|
+
assert opened_memoryset.name == readonly_memoryset.name
|
|
74
90
|
assert opened_memoryset.length == len(hf_dataset)
|
|
75
91
|
|
|
76
92
|
|
|
77
|
-
def test_open_memoryset(
|
|
78
|
-
fetched_memoryset = LabeledMemoryset.open(
|
|
93
|
+
def test_open_memoryset(readonly_memoryset, hf_dataset):
|
|
94
|
+
fetched_memoryset = LabeledMemoryset.open(readonly_memoryset.name)
|
|
79
95
|
assert fetched_memoryset is not None
|
|
80
|
-
assert fetched_memoryset.name ==
|
|
96
|
+
assert fetched_memoryset.name == readonly_memoryset.name
|
|
81
97
|
assert fetched_memoryset.length == len(hf_dataset)
|
|
82
98
|
|
|
83
99
|
|
|
84
|
-
def test_open_memoryset_unauthenticated(unauthenticated,
|
|
100
|
+
def test_open_memoryset_unauthenticated(unauthenticated, readonly_memoryset):
|
|
85
101
|
with pytest.raises(ValueError, match="Invalid API key"):
|
|
86
|
-
LabeledMemoryset.open(
|
|
102
|
+
LabeledMemoryset.open(readonly_memoryset.name)
|
|
87
103
|
|
|
88
104
|
|
|
89
105
|
def test_open_memoryset_not_found():
|
|
@@ -96,15 +112,15 @@ def test_open_memoryset_invalid_input():
|
|
|
96
112
|
LabeledMemoryset.open("not valid id")
|
|
97
113
|
|
|
98
114
|
|
|
99
|
-
def test_open_memoryset_unauthorized(unauthorized,
|
|
115
|
+
def test_open_memoryset_unauthorized(unauthorized, readonly_memoryset):
|
|
100
116
|
with pytest.raises(LookupError):
|
|
101
|
-
LabeledMemoryset.open(
|
|
117
|
+
LabeledMemoryset.open(readonly_memoryset.name)
|
|
102
118
|
|
|
103
119
|
|
|
104
|
-
def test_all_memorysets(
|
|
120
|
+
def test_all_memorysets(readonly_memoryset: LabeledMemoryset):
|
|
105
121
|
memorysets = LabeledMemoryset.all()
|
|
106
122
|
assert len(memorysets) > 0
|
|
107
|
-
assert any(memoryset.name ==
|
|
123
|
+
assert any(memoryset.name == readonly_memoryset.name for memoryset in memorysets)
|
|
108
124
|
|
|
109
125
|
|
|
110
126
|
def test_all_memorysets_unauthenticated(unauthenticated):
|
|
@@ -112,51 +128,39 @@ def test_all_memorysets_unauthenticated(unauthenticated):
|
|
|
112
128
|
LabeledMemoryset.all()
|
|
113
129
|
|
|
114
130
|
|
|
115
|
-
def test_all_memorysets_unauthorized(unauthorized,
|
|
116
|
-
assert
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def test_drop_memoryset(hf_dataset):
|
|
120
|
-
memoryset = LabeledMemoryset.from_hf_dataset(
|
|
121
|
-
"test_memoryset_delete",
|
|
122
|
-
hf_dataset.select(range(1)),
|
|
123
|
-
value_column="text",
|
|
124
|
-
)
|
|
125
|
-
assert LabeledMemoryset.exists(memoryset.name)
|
|
126
|
-
LabeledMemoryset.drop(memoryset.name)
|
|
127
|
-
assert not LabeledMemoryset.exists(memoryset.name)
|
|
131
|
+
def test_all_memorysets_unauthorized(unauthorized, readonly_memoryset):
|
|
132
|
+
assert readonly_memoryset not in LabeledMemoryset.all()
|
|
128
133
|
|
|
129
134
|
|
|
130
|
-
def test_drop_memoryset_unauthenticated(unauthenticated,
|
|
135
|
+
def test_drop_memoryset_unauthenticated(unauthenticated, readonly_memoryset):
|
|
131
136
|
with pytest.raises(ValueError, match="Invalid API key"):
|
|
132
|
-
LabeledMemoryset.drop(
|
|
137
|
+
LabeledMemoryset.drop(readonly_memoryset.name)
|
|
133
138
|
|
|
134
139
|
|
|
135
|
-
def test_drop_memoryset_not_found(
|
|
140
|
+
def test_drop_memoryset_not_found():
|
|
136
141
|
with pytest.raises(LookupError):
|
|
137
142
|
LabeledMemoryset.drop(str(uuid4()))
|
|
138
143
|
# ignores error if specified
|
|
139
144
|
LabeledMemoryset.drop(str(uuid4()), if_not_exists="ignore")
|
|
140
145
|
|
|
141
146
|
|
|
142
|
-
def test_drop_memoryset_unauthorized(unauthorized,
|
|
147
|
+
def test_drop_memoryset_unauthorized(unauthorized, readonly_memoryset):
|
|
143
148
|
with pytest.raises(LookupError):
|
|
144
|
-
LabeledMemoryset.drop(
|
|
149
|
+
LabeledMemoryset.drop(readonly_memoryset.name)
|
|
145
150
|
|
|
146
151
|
|
|
147
|
-
def test_update_memoryset_metadata(
|
|
148
|
-
|
|
149
|
-
assert memoryset.description == "New description"
|
|
152
|
+
def test_update_memoryset_metadata(writable_memoryset: LabeledMemoryset):
|
|
153
|
+
# NOTE: We're combining multiple tests into one here to avoid multiple API calls
|
|
150
154
|
|
|
155
|
+
writable_memoryset.update_metadata(description="New description")
|
|
156
|
+
assert writable_memoryset.description == "New description"
|
|
151
157
|
|
|
152
|
-
|
|
153
|
-
assert
|
|
154
|
-
memoryset.update_metadata(description=None)
|
|
155
|
-
assert memoryset.description is None
|
|
158
|
+
writable_memoryset.update_metadata(description=None)
|
|
159
|
+
assert writable_memoryset.description is None
|
|
156
160
|
|
|
157
161
|
|
|
158
|
-
def test_search(
|
|
159
|
-
memory_lookups =
|
|
162
|
+
def test_search(readonly_memoryset: LabeledMemoryset):
|
|
163
|
+
memory_lookups = readonly_memoryset.search(["i love soup", "cats are cute"])
|
|
160
164
|
assert len(memory_lookups) == 2
|
|
161
165
|
assert len(memory_lookups[0]) == 1
|
|
162
166
|
assert len(memory_lookups[1]) == 1
|
|
@@ -164,53 +168,53 @@ def test_search(memoryset: LabeledMemoryset):
|
|
|
164
168
|
assert memory_lookups[1][0].label == 1
|
|
165
169
|
|
|
166
170
|
|
|
167
|
-
def test_search_count(
|
|
168
|
-
memory_lookups =
|
|
171
|
+
def test_search_count(readonly_memoryset: LabeledMemoryset):
|
|
172
|
+
memory_lookups = readonly_memoryset.search("i love soup", count=3)
|
|
169
173
|
assert len(memory_lookups) == 3
|
|
170
174
|
assert memory_lookups[0].label == 0
|
|
171
175
|
assert memory_lookups[1].label == 0
|
|
172
176
|
assert memory_lookups[2].label == 0
|
|
173
177
|
|
|
174
178
|
|
|
175
|
-
def test_get_memory_at_index(
|
|
176
|
-
memory =
|
|
177
|
-
assert memory.value == hf_dataset[0]["
|
|
179
|
+
def test_get_memory_at_index(readonly_memoryset: LabeledMemoryset, hf_dataset: Dataset, label_names: list[str]):
|
|
180
|
+
memory = readonly_memoryset[0]
|
|
181
|
+
assert memory.value == hf_dataset[0]["value"]
|
|
178
182
|
assert memory.label == hf_dataset[0]["label"]
|
|
179
183
|
assert memory.label_name == label_names[hf_dataset[0]["label"]]
|
|
180
184
|
assert memory.source_id == hf_dataset[0]["source_id"]
|
|
181
185
|
assert memory.score == hf_dataset[0]["score"]
|
|
182
186
|
assert memory.key == hf_dataset[0]["key"]
|
|
183
|
-
last_memory =
|
|
184
|
-
assert last_memory.value == hf_dataset[-1]["
|
|
187
|
+
last_memory = readonly_memoryset[-1]
|
|
188
|
+
assert last_memory.value == hf_dataset[-1]["value"]
|
|
185
189
|
assert last_memory.label == hf_dataset[-1]["label"]
|
|
186
190
|
|
|
187
191
|
|
|
188
|
-
def test_get_range_of_memories(
|
|
189
|
-
memories =
|
|
192
|
+
def test_get_range_of_memories(readonly_memoryset: LabeledMemoryset, hf_dataset: Dataset):
|
|
193
|
+
memories = readonly_memoryset[1:3]
|
|
190
194
|
assert len(memories) == 2
|
|
191
|
-
assert memories[0].value == hf_dataset["
|
|
192
|
-
assert memories[1].value == hf_dataset["
|
|
195
|
+
assert memories[0].value == hf_dataset["value"][1]
|
|
196
|
+
assert memories[1].value == hf_dataset["value"][2]
|
|
193
197
|
|
|
194
198
|
|
|
195
|
-
def test_get_memory_by_id(
|
|
196
|
-
memory =
|
|
197
|
-
assert memory.value == hf_dataset[0]["
|
|
198
|
-
assert memory ==
|
|
199
|
+
def test_get_memory_by_id(readonly_memoryset: LabeledMemoryset, hf_dataset: Dataset):
|
|
200
|
+
memory = readonly_memoryset.get(readonly_memoryset[0].memory_id)
|
|
201
|
+
assert memory.value == hf_dataset[0]["value"]
|
|
202
|
+
assert memory == readonly_memoryset[memory.memory_id]
|
|
199
203
|
|
|
200
204
|
|
|
201
|
-
def test_get_memories_by_id(
|
|
202
|
-
memories =
|
|
205
|
+
def test_get_memories_by_id(readonly_memoryset: LabeledMemoryset, hf_dataset: Dataset):
|
|
206
|
+
memories = readonly_memoryset.get([readonly_memoryset[0].memory_id, readonly_memoryset[1].memory_id])
|
|
203
207
|
assert len(memories) == 2
|
|
204
|
-
assert memories[0].value == hf_dataset[0]["
|
|
205
|
-
assert memories[1].value == hf_dataset[1]["
|
|
208
|
+
assert memories[0].value == hf_dataset[0]["value"]
|
|
209
|
+
assert memories[1].value == hf_dataset[1]["value"]
|
|
206
210
|
|
|
207
211
|
|
|
208
|
-
def test_query_memoryset(
|
|
209
|
-
memories =
|
|
212
|
+
def test_query_memoryset(readonly_memoryset: LabeledMemoryset):
|
|
213
|
+
memories = readonly_memoryset.query(filters=[("label", "==", 1)])
|
|
210
214
|
assert len(memories) == 8
|
|
211
215
|
assert all(memory.label == 1 for memory in memories)
|
|
212
|
-
assert len(
|
|
213
|
-
assert len(
|
|
216
|
+
assert len(readonly_memoryset.query(limit=2)) == 2
|
|
217
|
+
assert len(readonly_memoryset.query(filters=[("metadata.key", "==", "val1")])) == 1
|
|
214
218
|
|
|
215
219
|
|
|
216
220
|
def test_query_memoryset_with_feedback_metrics(model: ClassificationModel):
|
|
@@ -268,19 +272,19 @@ def test_query_memoryset_with_feedback_metrics_sort(model: ClassificationModel):
|
|
|
268
272
|
assert memories[-1].feedback_metrics["positive"]["avg"] == -1.0
|
|
269
273
|
|
|
270
274
|
|
|
271
|
-
def test_insert_memories(
|
|
272
|
-
|
|
273
|
-
prev_length =
|
|
274
|
-
|
|
275
|
+
def test_insert_memories(writable_memoryset: LabeledMemoryset):
|
|
276
|
+
writable_memoryset.refresh()
|
|
277
|
+
prev_length = writable_memoryset.length
|
|
278
|
+
writable_memoryset.insert(
|
|
275
279
|
[
|
|
276
280
|
dict(value="tomato soup is my favorite", label=0),
|
|
277
281
|
dict(value="cats are fun to play with", label=1),
|
|
278
282
|
]
|
|
279
283
|
)
|
|
280
|
-
assert
|
|
281
|
-
|
|
282
|
-
assert
|
|
283
|
-
last_memory =
|
|
284
|
+
assert writable_memoryset.length == prev_length + 2
|
|
285
|
+
writable_memoryset.insert(dict(value="tomato soup is my favorite", label=0, key="test", source_id="test"))
|
|
286
|
+
assert writable_memoryset.length == prev_length + 3
|
|
287
|
+
last_memory = writable_memoryset[-1]
|
|
284
288
|
assert last_memory.value == "tomato soup is my favorite"
|
|
285
289
|
assert last_memory.label == 0
|
|
286
290
|
assert last_memory.metadata
|
|
@@ -288,25 +292,26 @@ def test_insert_memories(memoryset: LabeledMemoryset):
|
|
|
288
292
|
assert last_memory.source_id == "test"
|
|
289
293
|
|
|
290
294
|
|
|
291
|
-
def
|
|
292
|
-
|
|
293
|
-
|
|
295
|
+
def test_update_memories(writable_memoryset: LabeledMemoryset, hf_dataset: Dataset):
|
|
296
|
+
# We've combined the update tests into one to avoid multiple expensive requests for a writable_memoryset
|
|
297
|
+
|
|
298
|
+
# test updating a single memory
|
|
299
|
+
memory_id = writable_memoryset[0].memory_id
|
|
300
|
+
updated_memory = writable_memoryset.update(dict(memory_id=memory_id, value="i love soup so much"))
|
|
294
301
|
assert updated_memory.value == "i love soup so much"
|
|
295
302
|
assert updated_memory.label == hf_dataset[0]["label"]
|
|
296
|
-
assert
|
|
297
|
-
|
|
303
|
+
assert writable_memoryset.get(memory_id).value == "i love soup so much"
|
|
298
304
|
|
|
299
|
-
|
|
300
|
-
memory =
|
|
305
|
+
# test updating a memory instance
|
|
306
|
+
memory = writable_memoryset[0]
|
|
301
307
|
updated_memory = memory.update(value="i love soup even more")
|
|
302
308
|
assert updated_memory is memory
|
|
303
309
|
assert memory.value == "i love soup even more"
|
|
304
310
|
assert memory.label == hf_dataset[0]["label"]
|
|
305
311
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
updated_memories = memoryset.update(
|
|
312
|
+
# test updating multiple memories
|
|
313
|
+
memory_ids = [memory.memory_id for memory in writable_memoryset[:2]]
|
|
314
|
+
updated_memories = writable_memoryset.update(
|
|
310
315
|
[
|
|
311
316
|
dict(memory_id=memory_ids[0], value="i love soup so much"),
|
|
312
317
|
dict(memory_id=memory_ids[1], value="cats are so cute"),
|
|
@@ -316,35 +321,37 @@ def test_update_memories(memoryset: LabeledMemoryset):
|
|
|
316
321
|
assert updated_memories[1].value == "cats are so cute"
|
|
317
322
|
|
|
318
323
|
|
|
319
|
-
def
|
|
320
|
-
|
|
321
|
-
prev_length = memoryset.length
|
|
322
|
-
memory_id = memoryset[0].memory_id
|
|
323
|
-
memoryset.delete(memory_id)
|
|
324
|
-
with pytest.raises(LookupError):
|
|
325
|
-
memoryset.get(memory_id)
|
|
326
|
-
assert memoryset.length == prev_length - 1
|
|
324
|
+
def test_delete_memories(writable_memoryset: LabeledMemoryset):
|
|
325
|
+
# We've combined the delete tests into one to avoid multiple expensive requests for a writable_memoryset
|
|
327
326
|
|
|
327
|
+
# test deleting a single memory
|
|
328
|
+
prev_length = writable_memoryset.length
|
|
329
|
+
memory_id = writable_memoryset[0].memory_id
|
|
330
|
+
writable_memoryset.delete(memory_id)
|
|
331
|
+
with pytest.raises(LookupError):
|
|
332
|
+
writable_memoryset.get(memory_id)
|
|
333
|
+
assert writable_memoryset.length == prev_length - 1
|
|
328
334
|
|
|
329
|
-
|
|
330
|
-
prev_length =
|
|
331
|
-
|
|
332
|
-
assert
|
|
335
|
+
# test deleting multiple memories
|
|
336
|
+
prev_length = writable_memoryset.length
|
|
337
|
+
writable_memoryset.delete([writable_memoryset[0].memory_id, writable_memoryset[1].memory_id])
|
|
338
|
+
assert writable_memoryset.length == prev_length - 2
|
|
333
339
|
|
|
334
340
|
|
|
335
|
-
def test_clone_memoryset(
|
|
336
|
-
cloned_memoryset =
|
|
341
|
+
def test_clone_memoryset(readonly_memoryset: LabeledMemoryset):
|
|
342
|
+
cloned_memoryset = readonly_memoryset.clone(
|
|
343
|
+
"test_cloned_memoryset", embedding_model=PretrainedEmbeddingModel.DISTILBERT
|
|
344
|
+
)
|
|
337
345
|
assert cloned_memoryset is not None
|
|
338
346
|
assert cloned_memoryset.name == "test_cloned_memoryset"
|
|
339
|
-
assert cloned_memoryset.length ==
|
|
347
|
+
assert cloned_memoryset.length == readonly_memoryset.length
|
|
340
348
|
assert cloned_memoryset.embedding_model == PretrainedEmbeddingModel.DISTILBERT
|
|
341
349
|
assert cloned_memoryset.insertion_status == TaskStatus.COMPLETED
|
|
342
350
|
|
|
343
351
|
|
|
344
|
-
def test_embedding_evaluation(
|
|
345
|
-
datasource = Datasource.from_hf_dataset("eval_datasource", hf_dataset, if_exists="open")
|
|
352
|
+
def test_embedding_evaluation(eval_datasource: Datasource):
|
|
346
353
|
response = LabeledMemoryset.run_embedding_evaluation(
|
|
347
|
-
|
|
354
|
+
eval_datasource, embedding_models=["CDE_SMALL"], neighbor_count=2
|
|
348
355
|
)
|
|
349
356
|
assert response is not None
|
|
350
357
|
assert isinstance(response, dict)
|
|
@@ -358,8 +365,8 @@ def test_embedding_evaluation(hf_dataset):
|
|
|
358
365
|
|
|
359
366
|
|
|
360
367
|
@pytest.fixture(scope="function")
|
|
361
|
-
async def test_group_potential_duplicates(
|
|
362
|
-
|
|
368
|
+
async def test_group_potential_duplicates(writable_memoryset: LabeledMemoryset):
|
|
369
|
+
writable_memoryset.insert(
|
|
363
370
|
[
|
|
364
371
|
dict(value="raspberry soup Is my favorite", label=0),
|
|
365
372
|
dict(value="Raspberry soup is MY favorite", label=0),
|
|
@@ -375,7 +382,74 @@ async def test_group_potential_duplicates(memoryset: LabeledMemoryset):
|
|
|
375
382
|
]
|
|
376
383
|
)
|
|
377
384
|
|
|
378
|
-
|
|
379
|
-
response =
|
|
385
|
+
writable_memoryset.analyze({"name": "duplicate", "possible_duplicate_threshold": 0.97})
|
|
386
|
+
response = writable_memoryset.get_potential_duplicate_groups()
|
|
380
387
|
assert isinstance(response, list)
|
|
381
388
|
assert sorted([len(res) for res in response]) == [5, 6] # 5 favorite, 6 mom
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
def test_get_cascading_edits_suggestions(writable_memoryset: LabeledMemoryset):
|
|
392
|
+
# Insert a memory to test cascading edits
|
|
393
|
+
SOUP = 0
|
|
394
|
+
CATS = 1
|
|
395
|
+
query_text = "i love soup" # from SAMPLE_DATA in conftest.py
|
|
396
|
+
mislabeled_soup_text = "soup is comfort in a bowl"
|
|
397
|
+
writable_memoryset.insert(
|
|
398
|
+
[
|
|
399
|
+
dict(value=mislabeled_soup_text, label=CATS), # mislabeled soup memory
|
|
400
|
+
]
|
|
401
|
+
)
|
|
402
|
+
|
|
403
|
+
# Fetch the memory to update
|
|
404
|
+
memory = writable_memoryset.query(filters=[("value", "==", query_text)])[0]
|
|
405
|
+
|
|
406
|
+
# Update the label and get cascading edit suggestions
|
|
407
|
+
suggestions = writable_memoryset.get_cascading_edits_suggestions(
|
|
408
|
+
memory=memory,
|
|
409
|
+
old_label=CATS,
|
|
410
|
+
new_label=SOUP,
|
|
411
|
+
max_neighbors=10,
|
|
412
|
+
max_validation_neighbors=5,
|
|
413
|
+
)
|
|
414
|
+
|
|
415
|
+
# Validate the suggestions
|
|
416
|
+
assert len(suggestions) == 1
|
|
417
|
+
assert suggestions[0].neighbor.value == mislabeled_soup_text
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
def test_analyze_invalid_analysis_name(readonly_memoryset: LabeledMemoryset):
|
|
421
|
+
"""Test that analyze() raises ValueError for invalid analysis names"""
|
|
422
|
+
memoryset = LabeledMemoryset.open(readonly_memoryset.name)
|
|
423
|
+
|
|
424
|
+
# Test with string input
|
|
425
|
+
with pytest.raises(ValueError) as excinfo:
|
|
426
|
+
memoryset.analyze("invalid_name")
|
|
427
|
+
assert "Invalid analysis name: invalid_name" in str(excinfo.value)
|
|
428
|
+
assert "Valid names are:" in str(excinfo.value)
|
|
429
|
+
|
|
430
|
+
# Test with dict input
|
|
431
|
+
with pytest.raises(ValueError) as excinfo:
|
|
432
|
+
memoryset.analyze({"name": "invalid_name"})
|
|
433
|
+
assert "Invalid analysis name: invalid_name" in str(excinfo.value)
|
|
434
|
+
assert "Valid names are:" in str(excinfo.value)
|
|
435
|
+
|
|
436
|
+
# Test with multiple analyses where one is invalid
|
|
437
|
+
with pytest.raises(ValueError) as excinfo:
|
|
438
|
+
memoryset.analyze("duplicate", "invalid_name")
|
|
439
|
+
assert "Invalid analysis name: invalid_name" in str(excinfo.value)
|
|
440
|
+
assert "Valid names are:" in str(excinfo.value)
|
|
441
|
+
|
|
442
|
+
# Test with valid analysis names
|
|
443
|
+
result = memoryset.analyze("duplicate", "cluster")
|
|
444
|
+
assert isinstance(result, dict)
|
|
445
|
+
assert "duplicate" in result
|
|
446
|
+
assert "cluster" in result
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
def test_drop_memoryset(writable_memoryset: LabeledMemoryset):
|
|
450
|
+
# NOTE: Keep this test at the end to ensure the memoryset is dropped after all tests.
|
|
451
|
+
# Otherwise, it would be recreated on the next test run if it were dropped earlier, and
|
|
452
|
+
# that's expensive.
|
|
453
|
+
assert LabeledMemoryset.exists(writable_memoryset.name)
|
|
454
|
+
LabeledMemoryset.drop(writable_memoryset.name)
|
|
455
|
+
assert not LabeledMemoryset.exists(writable_memoryset.name)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
orca_sdk/__init__.py,sha256=n0csZZlmu18cSj9aelY0SGIMoM4ymz0Wx00RK2GN8jQ,783
|
|
2
2
|
orca_sdk/_generated_api_client/__init__.py,sha256=2-BPUe-gQ4yMDdxcfBZ1PEHKn-te41oFdKgrzK29JV0,69
|
|
3
|
-
orca_sdk/_generated_api_client/api/__init__.py,sha256=
|
|
3
|
+
orca_sdk/_generated_api_client/api/__init__.py,sha256=3Kwwz_mNGgVMnYF-VRXiHnwZNBomWwM9HNI1ROrvbtA,9301
|
|
4
4
|
orca_sdk/_generated_api_client/api/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
5
|
orca_sdk/_generated_api_client/api/auth/check_authentication_auth_get.py,sha256=lARAAY0SCTCBUPRo9r31yGoJZ2RklwaqD6kQBnsXfsY,3900
|
|
6
6
|
orca_sdk/_generated_api_client/api/auth/create_api_key_auth_api_key_post.py,sha256=HeSjn9M8vplZdoeZE8jYyHq_s_chx4ElwF6FZptI_f4,4570
|
|
@@ -53,6 +53,7 @@ orca_sdk/_generated_api_client/api/memoryset/list_memorysets_memoryset_get.py,sh
|
|
|
53
53
|
orca_sdk/_generated_api_client/api/memoryset/memoryset_lookup_gpu_memoryset_name_or_id_lookup_post.py,sha256=LlbgqtFbIcmLIEficz6NqNDi3ofb2dk1mtwSb5TW6hk,5426
|
|
54
54
|
orca_sdk/_generated_api_client/api/memoryset/potential_duplicate_groups_memoryset_name_or_id_potential_duplicate_groups_get.py,sha256=GFV-VC26gnrKsBbUJ-r8an27IOKTRO8zwuH3m97-dbA,4812
|
|
55
55
|
orca_sdk/_generated_api_client/api/memoryset/query_memoryset_memoryset_name_or_id_memories_post.py,sha256=AZuWJjzVX4Q5rEhuByGMdd3eIlkijUHTyB4NsevCg3U,5110
|
|
56
|
+
orca_sdk/_generated_api_client/api/memoryset/suggest_cascading_edits_memoryset_name_or_id_memory_memory_id_cascading_edits_post.py,sha256=GRkPaFCjQEK1sqW_pA6HM790020Tth7tgDwbTs1VOHI,7238
|
|
56
57
|
orca_sdk/_generated_api_client/api/memoryset/update_memories_gpu_memoryset_name_or_id_memories_patch.py,sha256=830keCUt7CaGsd0TlxPK_TuhiMTVQKhFobRpJGVzq9I,5284
|
|
57
58
|
orca_sdk/_generated_api_client/api/memoryset/update_memory_gpu_memoryset_name_or_id_memory_patch.py,sha256=cbfnljmpDMto1dRcrhZDxLJRXYeCMvaZjas9mzA51w8,5144
|
|
58
59
|
orca_sdk/_generated_api_client/api/memoryset/update_memoryset_memoryset_name_or_id_patch.py,sha256=VxXtTAl_NDMJYOEOnAEZw8yqhP0w-ADtXGmYbsnfAdk,5010
|
|
@@ -77,14 +78,16 @@ orca_sdk/_generated_api_client/api/telemetry/record_prediction_feedback_telemetr
|
|
|
77
78
|
orca_sdk/_generated_api_client/api/telemetry/update_prediction_telemetry_prediction_prediction_id_patch.py,sha256=l94sgnNg4IkhigmFmx3gpeTA6pl-WwdFZmsNCWX2hw0,4779
|
|
78
79
|
orca_sdk/_generated_api_client/client.py,sha256=fPYjw_Y3Q2xbosRZAHb5hlOuV4KqIfHgFtEnJx1Yce8,8430
|
|
79
80
|
orca_sdk/_generated_api_client/errors.py,sha256=jgL5oFlxjCNjjxWNpaFtFMqNxrG8TK6jpk5bZDvWeRM,1853
|
|
80
|
-
orca_sdk/_generated_api_client/models/__init__.py,sha256=
|
|
81
|
+
orca_sdk/_generated_api_client/models/__init__.py,sha256=bdrEE4WTcf4kaRWd2BOOeIGe95Cb1wwJGL6cVy6p0SE,10926
|
|
81
82
|
orca_sdk/_generated_api_client/models/analyze_neighbor_labels_result.py,sha256=n5xhKNRx_QaAmXgveWSwLRlAjTHkuEGiH0-Vr1H6RsY,4256
|
|
82
83
|
orca_sdk/_generated_api_client/models/api_key_metadata.py,sha256=jQrSe_X5hCgFYh8PwX-X0M6VINVGVhLBlKmv4qN5otA,3789
|
|
83
84
|
orca_sdk/_generated_api_client/models/api_key_metadata_scope_item.py,sha256=umhWzrAt0ZEI9B7pLpnOEsc5Kc-dxeJdzHX7iHyjt4I,182
|
|
84
85
|
orca_sdk/_generated_api_client/models/base_label_prediction_result.py,sha256=wJBkJcUdI588tOXimOZ6lBIFGPAaStBrOC84m4-8CIw,3828
|
|
85
86
|
orca_sdk/_generated_api_client/models/base_model.py,sha256=0UY9I_q-b6kOG0LYcw_C192PKRfmejYX9rZa7POCrTc,1563
|
|
86
87
|
orca_sdk/_generated_api_client/models/body_create_datasource_datasource_post.py,sha256=w5Ni3zFPMTf8XYsH-EZmlokx7vV0vpQiSnbXlktoQBY,6713
|
|
87
|
-
orca_sdk/_generated_api_client/models/
|
|
88
|
+
orca_sdk/_generated_api_client/models/cascade_edit_suggestions_request.py,sha256=juE1BymgvGCihm0KFKle6x2rw3C2KbDsQY8Jhydxpb4,5742
|
|
89
|
+
orca_sdk/_generated_api_client/models/cascading_edit_suggestion.py,sha256=lXgBJ663mtHpmHxfkzIdTktnvF9BZFitVdqavjgOcNs,2679
|
|
90
|
+
orca_sdk/_generated_api_client/models/classification_evaluation_result.py,sha256=0rdQWoW5F9c2FpPHiq8pkNQVRCHOGrNtNM5z7Y4KR64,7401
|
|
88
91
|
orca_sdk/_generated_api_client/models/clone_labeled_memoryset_request.py,sha256=oMZL1jSF0twNNEwbBuz5VuLewcRcbIOc4h7MxMvI4uY,6535
|
|
89
92
|
orca_sdk/_generated_api_client/models/cluster_metrics.py,sha256=u5ODh3udSzndaKaStb1vK1P49J7l0UtZ9Q977jyTxZ8,2078
|
|
90
93
|
orca_sdk/_generated_api_client/models/column_info.py,sha256=aI0YD5aOabF0B_JpUU6uFSWmN6nTiDUwnjb6L9KKj9M,3358
|
|
@@ -110,7 +113,7 @@ orca_sdk/_generated_api_client/models/evaluation_response.py,sha256=3ADAPevS7WOm
|
|
|
110
113
|
orca_sdk/_generated_api_client/models/feedback_metrics.py,sha256=1Y8aRPTIShFRPGoqN4kqoI0DnoOKmI7mx3jfx4gCoS8,2229
|
|
111
114
|
orca_sdk/_generated_api_client/models/feedback_type.py,sha256=EtKEUBoLVnJLdXiiH6R9QKPHqgTrbGJ_svdeDogn69k,169
|
|
112
115
|
orca_sdk/_generated_api_client/models/filter_item.py,sha256=pYj2qR1SaPrXbk7D02sKa3mIZACz8AX1Nz7Mq_-ss5k,8257
|
|
113
|
-
orca_sdk/_generated_api_client/models/filter_item_field_type_0_item.py,sha256=
|
|
116
|
+
orca_sdk/_generated_api_client/models/filter_item_field_type_0_item.py,sha256=iyRsQvQKAnthnbtIzXFwQqVZsWjVkRUfBL9jbogfo1I,383
|
|
114
117
|
orca_sdk/_generated_api_client/models/filter_item_field_type_2_item_type_1.py,sha256=5E9GwCFT1TyGjqF1cUBqJ5g4dL7MyaFMMpPOKMvd1gs,926
|
|
115
118
|
orca_sdk/_generated_api_client/models/filter_item_op.py,sha256=vtjnJWrVJMwg6gj6BjDl6FasWzBCQygHpBbpRycOdGM,283
|
|
116
119
|
orca_sdk/_generated_api_client/models/finetune_embedding_model_request.py,sha256=O9iHbzevRZ-oQLHXMv-v4IEKG7GboRDLDuLePzng9v4,10211
|
|
@@ -119,19 +122,19 @@ orca_sdk/_generated_api_client/models/finetuned_embedding_model_metadata.py,sha2
|
|
|
119
122
|
orca_sdk/_generated_api_client/models/get_memories_request.py,sha256=xNit9r5gJqqXId1KhNdQsoMh_cKjvbl9UVapfT6W3Ks,1949
|
|
120
123
|
orca_sdk/_generated_api_client/models/internal_server_error_response.py,sha256=RBVgjZKuBM-fql-N_hts-RvgfrN09T7yqqOOhHYBVN8,2310
|
|
121
124
|
orca_sdk/_generated_api_client/models/label_class_metrics.py,sha256=Q3vWLw8F_IdwAwhunLp0f_l7PvP1gZN1XGCZQRJtbAY,3144
|
|
122
|
-
orca_sdk/_generated_api_client/models/label_prediction_memory_lookup.py,sha256=
|
|
125
|
+
orca_sdk/_generated_api_client/models/label_prediction_memory_lookup.py,sha256=_r2UeP1Op3w2luQiOgQ7cQmdG8X0q9VbmdSG2T07mfw,6248
|
|
123
126
|
orca_sdk/_generated_api_client/models/label_prediction_memory_lookup_metadata.py,sha256=bsXtXEf25ch5qAdpnXWSi2qzCkQPZ4xhKcHWMxlgOhQ,2338
|
|
124
127
|
orca_sdk/_generated_api_client/models/label_prediction_with_memories_and_feedback.py,sha256=ZxmUTIY02_eZz5EeO6xwehFyS4yYzt_Nw3v0pEbTclQ,9004
|
|
125
|
-
orca_sdk/_generated_api_client/models/labeled_memory.py,sha256=
|
|
128
|
+
orca_sdk/_generated_api_client/models/labeled_memory.py,sha256=bLCcyezGKT05PROBXnObnaxvj5ymSrBc2r4fPH2mgcQ,5448
|
|
126
129
|
orca_sdk/_generated_api_client/models/labeled_memory_insert.py,sha256=O3rgrloH3eu9YPzP7X1AKRfq6wxx9Eznl_prpRiMVVM,3768
|
|
127
130
|
orca_sdk/_generated_api_client/models/labeled_memory_insert_metadata.py,sha256=b9T8i61YUIkNpbJzLwUztfUGNqwRzYJ51RfFpukNS5I,2295
|
|
128
|
-
orca_sdk/_generated_api_client/models/labeled_memory_lookup.py,sha256=
|
|
131
|
+
orca_sdk/_generated_api_client/models/labeled_memory_lookup.py,sha256=ufC44ri2gkSK8Dodnq1oSqvtB2_28H-wfoPKsIPy-p4,5613
|
|
129
132
|
orca_sdk/_generated_api_client/models/labeled_memory_lookup_metadata.py,sha256=8-gqpENgh8ZxLPIvm2nrnpzlCdKQBeBlKAj20dCPpo8,2295
|
|
130
133
|
orca_sdk/_generated_api_client/models/labeled_memory_metadata.py,sha256=2BEZAYpUCJwF9xd_avvR8m-gh13MXjgfUXVXFFSj-UE,2262
|
|
131
134
|
orca_sdk/_generated_api_client/models/labeled_memory_metrics.py,sha256=fXDYee3im18yfNtV8OwbDZNgXRkDhYBpu3f87v_NHFc,10765
|
|
132
135
|
orca_sdk/_generated_api_client/models/labeled_memory_update.py,sha256=stIKFqWNQR6SGPnhraH3L5EBnsSn7I5UUK6IX8sKdX0,5662
|
|
133
136
|
orca_sdk/_generated_api_client/models/labeled_memory_update_metadata_type_0.py,sha256=PVuiR3MpN2PGcui-L1airH44rs_1Ith076kpvItstf0,2326
|
|
134
|
-
orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics.py,sha256=
|
|
137
|
+
orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics.py,sha256=oFvoGzk7i4Z2kwPY8Ko-IPJ2XTQzsKWeeuaI0qwzcH4,6550
|
|
135
138
|
orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics_feedback_metrics.py,sha256=qSUl04WibCHV-1yoytEW2TI5in2cf1HCerpOJ8wej3w,2272
|
|
136
139
|
orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics_metadata.py,sha256=wYnU5KuMTlUwIxpbrCe4obx40h_-FJExxoCOMd0-Qik,2366
|
|
137
140
|
orca_sdk/_generated_api_client/models/labeled_memoryset_metadata.py,sha256=1GiEJSXBA6VnUoLYSNk2f5Zxyj8bi_kWvUGOUzHNKyQ,7669
|
|
@@ -166,7 +169,7 @@ orca_sdk/_generated_api_client/models/prediction_feedback.py,sha256=wigdEfcKnuGr
|
|
|
166
169
|
orca_sdk/_generated_api_client/models/prediction_feedback_category.py,sha256=qlaU7wRFtgNQt-hsTwZvt0uPtFJepv0v4TPFP19N00E,3031
|
|
167
170
|
orca_sdk/_generated_api_client/models/prediction_feedback_request.py,sha256=uhtjJ5y4H4tTAQGqzYY5RzzSsntXsb2EP3dxzjnfIYE,3812
|
|
168
171
|
orca_sdk/_generated_api_client/models/prediction_feedback_result.py,sha256=uFqV0S9opm6fkcMo1cVS4rXTXHY259YvacRUKtfbGl0,3317
|
|
169
|
-
orca_sdk/_generated_api_client/models/prediction_request.py,sha256=
|
|
172
|
+
orca_sdk/_generated_api_client/models/prediction_request.py,sha256=HE4AVf1d2yp_tUWdmie8zsTGh7bRdHh_gY2QJSocpl4,6787
|
|
170
173
|
orca_sdk/_generated_api_client/models/prediction_sort_item_item_type_0.py,sha256=Q9RNooVV_he9I9J20ugXylFQPYIuBLfVX2d9XJha6VI,226
|
|
171
174
|
orca_sdk/_generated_api_client/models/prediction_sort_item_item_type_1.py,sha256=iW6iIk_mpkkPFaxDcyLfkRQ75vrAMlEap_7hp4263pE,166
|
|
172
175
|
orca_sdk/_generated_api_client/models/pretrained_embedding_model_metadata.py,sha256=XMHvBdeGpbSn7ZPJaBVT3QeNa2lVD1zioyj9X957wmo,2928
|
|
@@ -199,26 +202,27 @@ orca_sdk/_utils/analysis_ui_style.css,sha256=q_ba_-_KtgztepHg829zLzypaxKayl7ySC1
|
|
|
199
202
|
orca_sdk/_utils/auth.py,sha256=9nLgcuw5B9BCkThN8Qhyq0TeJAyaRSK4bLbOsZCDIqg,2793
|
|
200
203
|
orca_sdk/_utils/auth_test.py,sha256=ygVWv1Ex53LaxIP7p2hzPHl8l9qYyBD5IGmEFJMps6s,1056
|
|
201
204
|
orca_sdk/_utils/common.py,sha256=wUm2pNDWytEecC5WiDWd02-yCZw3Akx0bIutG4lHsFA,805
|
|
202
|
-
orca_sdk/_utils/data_parsing.py,sha256=
|
|
203
|
-
orca_sdk/_utils/data_parsing_test.py,sha256=
|
|
205
|
+
orca_sdk/_utils/data_parsing.py,sha256=2XPiZEV6yQ_W0brCO1QEdVuYQnZCh7h-1-1WskRnegg,5326
|
|
206
|
+
orca_sdk/_utils/data_parsing_test.py,sha256=XFluNehttlZtdy5cuQwzMx9KVUKv1Nh1FvTmPU4X8_0,9068
|
|
204
207
|
orca_sdk/_utils/prediction_result_ui.css,sha256=sqBlkRLnovb5X5EcUDdB6iGpH63nVRlTW4uAmXuD0WM,258
|
|
205
208
|
orca_sdk/_utils/prediction_result_ui.py,sha256=dudc21ka2Bqdtr_8wQaMVFxLGvrsZxWUZvfC9dn4i2A,2990
|
|
206
209
|
orca_sdk/_utils/task.py,sha256=WOfFuRCoh6QHVDDYrGeq3Hi6NVihQQZJii0cBCONOWk,2400
|
|
210
|
+
orca_sdk/_utils/tqdm_file_reader.py,sha256=Lw7Cg1UgNuRUoN6jjqZb-IlV00H-kbRcrZLdudr1GxE,324
|
|
207
211
|
orca_sdk/_utils/value_parser.py,sha256=c3qMABCCDQcIjn9N1orYYnlRwDW9JWdGwW_2TDZPLdI,1286
|
|
208
212
|
orca_sdk/_utils/value_parser_test.py,sha256=OybsiC-Obi32RRi9NIuwrVBRAnlyPMV1xVAaevSrb7M,1079
|
|
209
|
-
orca_sdk/classification_model.py,sha256=
|
|
210
|
-
orca_sdk/classification_model_test.py,sha256=
|
|
211
|
-
orca_sdk/conftest.py,sha256=
|
|
213
|
+
orca_sdk/classification_model.py,sha256=E_Mmo3SzsUBue8t1mugLfPFsoAZcEzudgw_qfPayKBk,27564
|
|
214
|
+
orca_sdk/classification_model_test.py,sha256=flhk3vhdIpjuPlpVDrzIgpyoAGGiiYyWB1cRtuNE1oQ,14183
|
|
215
|
+
orca_sdk/conftest.py,sha256=JfwN_-43_EzPtJLY58R7ucVWXnAdw_HGRCf_8XFtXf4,7025
|
|
212
216
|
orca_sdk/credentials.py,sha256=gq_4w_o-igCCLNR6TY1x4RzMYysKUCsXJvdi6nem-A0,3558
|
|
213
217
|
orca_sdk/credentials_test.py,sha256=ETTyDZ9MEpb_X6yiRcgYGWNKCB2QZ5CLYB_unRGg1b8,1028
|
|
214
|
-
orca_sdk/datasource.py,sha256=
|
|
218
|
+
orca_sdk/datasource.py,sha256=hRw9GIQAAQLk-bQWqaKZSLJXt5XcBPr-CWzwXvftz2U,14217
|
|
215
219
|
orca_sdk/datasource_test.py,sha256=5zRew9Wi05cPJj-xSF0PwRZ8oDaaO5MhqJojlfqT5p4,3158
|
|
216
220
|
orca_sdk/embedding_model.py,sha256=Hw8NlwzWVK5ts8SF0lHIs7hL38hCTreEiIyoqHY-OFA,14187
|
|
217
|
-
orca_sdk/embedding_model_test.py,sha256=
|
|
218
|
-
orca_sdk/memoryset.py,sha256=
|
|
219
|
-
orca_sdk/memoryset_test.py,sha256=
|
|
221
|
+
orca_sdk/embedding_model_test.py,sha256=YbhA8flPuhhb6p67CR4sBj31e6mmbIa6-YRDPMF-xJE,6875
|
|
222
|
+
orca_sdk/memoryset.py,sha256=_YayL3m-qdkiiRefq0J7b3320cV1hnU-jww16SU0ThY,59864
|
|
223
|
+
orca_sdk/memoryset_test.py,sha256=z4aW4ljeGOiWkBC2mXGGm4pu5JAQCNDqYuHcaw4I6UQ,18968
|
|
220
224
|
orca_sdk/telemetry.py,sha256=U53NI7_D1IpWqdV8NYuUrwvhpX0CF_PJvRRvOiFekno,16393
|
|
221
225
|
orca_sdk/telemetry_test.py,sha256=7JfS0k7r9STMCkasCjXWL3KmbrdmVjVnFeYPCdT8jqQ,5059
|
|
222
|
-
orca_sdk-0.0.
|
|
223
|
-
orca_sdk-0.0.
|
|
224
|
-
orca_sdk-0.0.
|
|
226
|
+
orca_sdk-0.0.93.dist-info/METADATA,sha256=VKQ_ZnIWW5P9okjSzZZjRvjtXTU9zkNLKbbWRI9mHLE,3229
|
|
227
|
+
orca_sdk-0.0.93.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
228
|
+
orca_sdk-0.0.93.dist-info/RECORD,,
|
|
File without changes
|