cuemap 0.2.1__tar.gz → 0.3.0__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.
- {cuemap-0.2.1 → cuemap-0.3.0}/LICENSE +1 -1
- {cuemap-0.2.1/cuemap.egg-info → cuemap-0.3.0}/PKG-INFO +12 -21
- {cuemap-0.2.1 → cuemap-0.3.0}/README.md +6 -15
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap/client.py +16 -23
- {cuemap-0.2.1 → cuemap-0.3.0/cuemap.egg-info}/PKG-INFO +12 -21
- {cuemap-0.2.1 → cuemap-0.3.0}/pyproject.toml +6 -6
- {cuemap-0.2.1 → cuemap-0.3.0}/MANIFEST.in +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap/__init__.py +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap/exceptions.py +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap/models.py +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap.egg-info/SOURCES.txt +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap.egg-info/dependency_links.txt +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap.egg-info/requires.txt +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/cuemap.egg-info/top_level.txt +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/examples/pure_usage.py +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/examples/with_local_llm.py +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/examples/with_openai.py +0 -0
- {cuemap-0.2.1 → cuemap-0.3.0}/setup.cfg +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cuemap
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Redis for AI Agents - High-performance temporal-associative memory
|
|
5
5
|
Author-email: CueMap Team <hello@cuemap.dev>
|
|
6
6
|
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/cuemap/
|
|
8
|
-
Project-URL: Documentation, https://github.com/cuemap/
|
|
9
|
-
Project-URL: Repository, https://github.com/cuemap/
|
|
10
|
-
Project-URL: Issues, https://github.com/cuemap/
|
|
11
|
-
Project-URL:
|
|
7
|
+
Project-URL: Homepage, https://github.com/cuemap-dev/sdks
|
|
8
|
+
Project-URL: Documentation, https://github.com/cuemap-dev/sdks/blob/main/python/README.md
|
|
9
|
+
Project-URL: Repository, https://github.com/cuemap-dev/sdks
|
|
10
|
+
Project-URL: Issues, https://github.com/cuemap-dev/sdks/issues
|
|
11
|
+
Project-URL: Engine, https://github.com/cuemap-dev/engine
|
|
12
12
|
Keywords: ai,memory,agents,redis,temporal,associative,llm,rag
|
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
@@ -136,7 +136,7 @@ results = client.recall(["food", "italian"])
|
|
|
136
136
|
# Sushi is filtered out (only matches 1 cue)
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
### Performance
|
|
139
|
+
### Performance (~1M memories)
|
|
140
140
|
|
|
141
141
|
- **Write P99**: 0.33ms
|
|
142
142
|
- **Read P99**: 0.37ms
|
|
@@ -230,20 +230,12 @@ docker run -p 8080:8080 cuemap/engine:latest
|
|
|
230
230
|
### Option 2: From Source
|
|
231
231
|
|
|
232
232
|
```bash
|
|
233
|
-
git clone https://github.com/cuemap/
|
|
234
|
-
cd
|
|
233
|
+
git clone https://github.com/cuemap-dev/engine
|
|
234
|
+
cd engine
|
|
235
235
|
cargo build --release
|
|
236
236
|
./target/release/cuemap-rust --port 8080
|
|
237
237
|
```
|
|
238
238
|
|
|
239
|
-
### Option 3: Docker Compose
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
git clone https://github.com/cuemap/cuemap
|
|
243
|
-
cd cuemap
|
|
244
|
-
docker-compose up -d
|
|
245
|
-
```
|
|
246
|
-
|
|
247
239
|
## Configuration
|
|
248
240
|
|
|
249
241
|
### Connect to Engine
|
|
@@ -323,10 +315,9 @@ async with AsyncCueMap() as client:
|
|
|
323
315
|
|
|
324
316
|
## Documentation
|
|
325
317
|
|
|
326
|
-
- [
|
|
327
|
-
- [
|
|
328
|
-
- [
|
|
329
|
-
- [Examples](https://github.com/cuemap/cuemap/tree/main/cuemap-sdk/examples)
|
|
318
|
+
- [Engine Repository](https://github.com/cuemap-dev/engine)
|
|
319
|
+
- [SDKs Repository](https://github.com/cuemap-dev/sdks)
|
|
320
|
+
- [Examples](https://github.com/cuemap-dev/sdks/tree/main/python/examples)
|
|
330
321
|
|
|
331
322
|
## License
|
|
332
323
|
|
|
@@ -101,7 +101,7 @@ results = client.recall(["food", "italian"])
|
|
|
101
101
|
# Sushi is filtered out (only matches 1 cue)
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
### Performance
|
|
104
|
+
### Performance (~1M memories)
|
|
105
105
|
|
|
106
106
|
- **Write P99**: 0.33ms
|
|
107
107
|
- **Read P99**: 0.37ms
|
|
@@ -195,20 +195,12 @@ docker run -p 8080:8080 cuemap/engine:latest
|
|
|
195
195
|
### Option 2: From Source
|
|
196
196
|
|
|
197
197
|
```bash
|
|
198
|
-
git clone https://github.com/cuemap/
|
|
199
|
-
cd
|
|
198
|
+
git clone https://github.com/cuemap-dev/engine
|
|
199
|
+
cd engine
|
|
200
200
|
cargo build --release
|
|
201
201
|
./target/release/cuemap-rust --port 8080
|
|
202
202
|
```
|
|
203
203
|
|
|
204
|
-
### Option 3: Docker Compose
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
git clone https://github.com/cuemap/cuemap
|
|
208
|
-
cd cuemap
|
|
209
|
-
docker-compose up -d
|
|
210
|
-
```
|
|
211
|
-
|
|
212
204
|
## Configuration
|
|
213
205
|
|
|
214
206
|
### Connect to Engine
|
|
@@ -288,10 +280,9 @@ async with AsyncCueMap() as client:
|
|
|
288
280
|
|
|
289
281
|
## Documentation
|
|
290
282
|
|
|
291
|
-
- [
|
|
292
|
-
- [
|
|
293
|
-
- [
|
|
294
|
-
- [Examples](https://github.com/cuemap/cuemap/tree/main/cuemap-sdk/examples)
|
|
283
|
+
- [Engine Repository](https://github.com/cuemap-dev/engine)
|
|
284
|
+
- [SDKs Repository](https://github.com/cuemap-dev/sdks)
|
|
285
|
+
- [Examples](https://github.com/cuemap-dev/sdks/tree/main/python/examples)
|
|
295
286
|
|
|
296
287
|
## License
|
|
297
288
|
|
|
@@ -48,14 +48,10 @@ class CueMap:
|
|
|
48
48
|
"""Get request headers."""
|
|
49
49
|
headers = {}
|
|
50
50
|
if self.api_key:
|
|
51
|
-
headers["
|
|
52
|
-
return headers
|
|
53
|
-
|
|
54
|
-
def _endpoint(self, path: str) -> str:
|
|
55
|
-
"""Get endpoint with optional project_id."""
|
|
51
|
+
headers["X-API-Key"] = self.api_key
|
|
56
52
|
if self.project_id:
|
|
57
|
-
|
|
58
|
-
return
|
|
53
|
+
headers["X-Project-ID"] = self.project_id
|
|
54
|
+
return headers
|
|
59
55
|
|
|
60
56
|
def add(
|
|
61
57
|
self,
|
|
@@ -81,7 +77,7 @@ class CueMap:
|
|
|
81
77
|
... )
|
|
82
78
|
"""
|
|
83
79
|
response = self.client.post(
|
|
84
|
-
|
|
80
|
+
"/memories",
|
|
85
81
|
json={
|
|
86
82
|
"content": content,
|
|
87
83
|
"cues": cues,
|
|
@@ -120,7 +116,7 @@ class CueMap:
|
|
|
120
116
|
... print(r.content)
|
|
121
117
|
"""
|
|
122
118
|
response = self.client.post(
|
|
123
|
-
|
|
119
|
+
"/recall",
|
|
124
120
|
json={
|
|
125
121
|
"cues": cues,
|
|
126
122
|
"limit": limit,
|
|
@@ -147,7 +143,7 @@ class CueMap:
|
|
|
147
143
|
Success status
|
|
148
144
|
"""
|
|
149
145
|
response = self.client.patch(
|
|
150
|
-
|
|
146
|
+
f"/memories/{memory_id}/reinforce",
|
|
151
147
|
json={"cues": cues},
|
|
152
148
|
headers=self._headers()
|
|
153
149
|
)
|
|
@@ -157,7 +153,7 @@ class CueMap:
|
|
|
157
153
|
def get(self, memory_id: str) -> Memory:
|
|
158
154
|
"""Get a memory by ID."""
|
|
159
155
|
response = self.client.get(
|
|
160
|
-
|
|
156
|
+
f"/memories/{memory_id}",
|
|
161
157
|
headers=self._headers()
|
|
162
158
|
)
|
|
163
159
|
|
|
@@ -171,7 +167,7 @@ class CueMap:
|
|
|
171
167
|
def stats(self) -> Dict[str, Any]:
|
|
172
168
|
"""Get server statistics."""
|
|
173
169
|
response = self.client.get(
|
|
174
|
-
|
|
170
|
+
"/stats",
|
|
175
171
|
headers=self._headers()
|
|
176
172
|
)
|
|
177
173
|
|
|
@@ -217,13 +213,10 @@ class AsyncCueMap:
|
|
|
217
213
|
def _headers(self) -> Dict[str, str]:
|
|
218
214
|
headers = {}
|
|
219
215
|
if self.api_key:
|
|
220
|
-
headers["
|
|
221
|
-
return headers
|
|
222
|
-
|
|
223
|
-
def _endpoint(self, path: str) -> str:
|
|
216
|
+
headers["X-API-Key"] = self.api_key
|
|
224
217
|
if self.project_id:
|
|
225
|
-
|
|
226
|
-
return
|
|
218
|
+
headers["X-Project-ID"] = self.project_id
|
|
219
|
+
return headers
|
|
227
220
|
|
|
228
221
|
async def add(
|
|
229
222
|
self,
|
|
@@ -233,7 +226,7 @@ class AsyncCueMap:
|
|
|
233
226
|
) -> str:
|
|
234
227
|
"""Add a memory (async)."""
|
|
235
228
|
response = await self.client.post(
|
|
236
|
-
|
|
229
|
+
"/memories",
|
|
237
230
|
json={
|
|
238
231
|
"content": content,
|
|
239
232
|
"cues": cues,
|
|
@@ -257,7 +250,7 @@ class AsyncCueMap:
|
|
|
257
250
|
) -> List[RecallResult]:
|
|
258
251
|
"""Recall memories (async)."""
|
|
259
252
|
response = await self.client.post(
|
|
260
|
-
|
|
253
|
+
"/recall",
|
|
261
254
|
json={
|
|
262
255
|
"cues": cues,
|
|
263
256
|
"limit": limit,
|
|
@@ -275,7 +268,7 @@ class AsyncCueMap:
|
|
|
275
268
|
async def reinforce(self, memory_id: str, cues: List[str]) -> bool:
|
|
276
269
|
"""Reinforce a memory (async)."""
|
|
277
270
|
response = await self.client.patch(
|
|
278
|
-
|
|
271
|
+
f"/memories/{memory_id}/reinforce",
|
|
279
272
|
json={"cues": cues},
|
|
280
273
|
headers=self._headers()
|
|
281
274
|
)
|
|
@@ -285,7 +278,7 @@ class AsyncCueMap:
|
|
|
285
278
|
async def get(self, memory_id: str) -> Memory:
|
|
286
279
|
"""Get a memory by ID (async)."""
|
|
287
280
|
response = await self.client.get(
|
|
288
|
-
|
|
281
|
+
f"/memories/{memory_id}",
|
|
289
282
|
headers=self._headers()
|
|
290
283
|
)
|
|
291
284
|
|
|
@@ -299,7 +292,7 @@ class AsyncCueMap:
|
|
|
299
292
|
async def stats(self) -> Dict[str, Any]:
|
|
300
293
|
"""Get server statistics (async)."""
|
|
301
294
|
response = await self.client.get(
|
|
302
|
-
|
|
295
|
+
"/stats",
|
|
303
296
|
headers=self._headers()
|
|
304
297
|
)
|
|
305
298
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cuemap
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Redis for AI Agents - High-performance temporal-associative memory
|
|
5
5
|
Author-email: CueMap Team <hello@cuemap.dev>
|
|
6
6
|
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/cuemap/
|
|
8
|
-
Project-URL: Documentation, https://github.com/cuemap/
|
|
9
|
-
Project-URL: Repository, https://github.com/cuemap/
|
|
10
|
-
Project-URL: Issues, https://github.com/cuemap/
|
|
11
|
-
Project-URL:
|
|
7
|
+
Project-URL: Homepage, https://github.com/cuemap-dev/sdks
|
|
8
|
+
Project-URL: Documentation, https://github.com/cuemap-dev/sdks/blob/main/python/README.md
|
|
9
|
+
Project-URL: Repository, https://github.com/cuemap-dev/sdks
|
|
10
|
+
Project-URL: Issues, https://github.com/cuemap-dev/sdks/issues
|
|
11
|
+
Project-URL: Engine, https://github.com/cuemap-dev/engine
|
|
12
12
|
Keywords: ai,memory,agents,redis,temporal,associative,llm,rag
|
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
@@ -136,7 +136,7 @@ results = client.recall(["food", "italian"])
|
|
|
136
136
|
# Sushi is filtered out (only matches 1 cue)
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
### Performance
|
|
139
|
+
### Performance (~1M memories)
|
|
140
140
|
|
|
141
141
|
- **Write P99**: 0.33ms
|
|
142
142
|
- **Read P99**: 0.37ms
|
|
@@ -230,20 +230,12 @@ docker run -p 8080:8080 cuemap/engine:latest
|
|
|
230
230
|
### Option 2: From Source
|
|
231
231
|
|
|
232
232
|
```bash
|
|
233
|
-
git clone https://github.com/cuemap/
|
|
234
|
-
cd
|
|
233
|
+
git clone https://github.com/cuemap-dev/engine
|
|
234
|
+
cd engine
|
|
235
235
|
cargo build --release
|
|
236
236
|
./target/release/cuemap-rust --port 8080
|
|
237
237
|
```
|
|
238
238
|
|
|
239
|
-
### Option 3: Docker Compose
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
git clone https://github.com/cuemap/cuemap
|
|
243
|
-
cd cuemap
|
|
244
|
-
docker-compose up -d
|
|
245
|
-
```
|
|
246
|
-
|
|
247
239
|
## Configuration
|
|
248
240
|
|
|
249
241
|
### Connect to Engine
|
|
@@ -323,10 +315,9 @@ async with AsyncCueMap() as client:
|
|
|
323
315
|
|
|
324
316
|
## Documentation
|
|
325
317
|
|
|
326
|
-
- [
|
|
327
|
-
- [
|
|
328
|
-
- [
|
|
329
|
-
- [Examples](https://github.com/cuemap/cuemap/tree/main/cuemap-sdk/examples)
|
|
318
|
+
- [Engine Repository](https://github.com/cuemap-dev/engine)
|
|
319
|
+
- [SDKs Repository](https://github.com/cuemap-dev/sdks)
|
|
320
|
+
- [Examples](https://github.com/cuemap-dev/sdks/tree/main/python/examples)
|
|
330
321
|
|
|
331
322
|
## License
|
|
332
323
|
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cuemap"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.0"
|
|
8
8
|
description = "Redis for AI Agents - High-performance temporal-associative memory"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.8"
|
|
@@ -41,8 +41,8 @@ dev = [
|
|
|
41
41
|
]
|
|
42
42
|
|
|
43
43
|
[project.urls]
|
|
44
|
-
Homepage = "https://github.com/cuemap/
|
|
45
|
-
Documentation = "https://github.com/cuemap/
|
|
46
|
-
Repository = "https://github.com/cuemap/
|
|
47
|
-
Issues = "https://github.com/cuemap/
|
|
48
|
-
|
|
44
|
+
Homepage = "https://github.com/cuemap-dev/sdks"
|
|
45
|
+
Documentation = "https://github.com/cuemap-dev/sdks/blob/main/python/README.md"
|
|
46
|
+
Repository = "https://github.com/cuemap-dev/sdks"
|
|
47
|
+
Issues = "https://github.com/cuemap-dev/sdks/issues"
|
|
48
|
+
Engine = "https://github.com/cuemap-dev/engine"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|