mirror of
https://github.com/headroomlabs-ai/headroom.git
synced 2026-08-27 14:17:10 -04:00
Merge pull request #333 from smartwatermelon/fix/proxy-numpy-import
fix(memory): make numpy import optional for proxy boot path
This commit is contained in:
commit
276e92e05c
2 changed files with 12 additions and 6 deletions
|
|
@ -14,13 +14,14 @@ import re
|
|||
import sqlite3
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
import numpy as np
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
from ..models import Memory, ScopeLevel
|
||||
from ..ports import MemoryFilter
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import numpy as np
|
||||
|
||||
# Regex pattern for safe metadata keys: alphanumeric, underscores, hyphens only
|
||||
# This prevents JSON path injection attacks via malicious key names
|
||||
_SAFE_METADATA_KEY_PATTERN = re.compile(r"^[a-zA-Z_][a-zA-Z0-9_\-]*$")
|
||||
|
|
@ -165,6 +166,8 @@ class SQLiteMemoryStore:
|
|||
"""Serialize numpy array to bytes for BLOB storage."""
|
||||
if embedding is None:
|
||||
return None
|
||||
import numpy as np
|
||||
|
||||
return bytes(embedding.astype(np.float32).tobytes())
|
||||
|
||||
def _deserialize_embedding(
|
||||
|
|
@ -173,6 +176,8 @@ class SQLiteMemoryStore:
|
|||
"""Deserialize bytes back to numpy array."""
|
||||
if data is None:
|
||||
return None
|
||||
import numpy as np
|
||||
|
||||
arr = np.frombuffer(data, dtype=np.float32)
|
||||
return arr
|
||||
|
||||
|
|
|
|||
|
|
@ -5,12 +5,13 @@ from __future__ import annotations
|
|||
import uuid
|
||||
from dataclasses import dataclass, field
|
||||
from datetime import datetime
|
||||
from typing import Any, Protocol, runtime_checkable
|
||||
|
||||
import numpy as np
|
||||
from typing import TYPE_CHECKING, Any, Protocol, runtime_checkable
|
||||
|
||||
from headroom.memory.models import Memory, ScopeLevel
|
||||
|
||||
if TYPE_CHECKING:
|
||||
import numpy as np
|
||||
|
||||
# =============================================================================
|
||||
# Filter Dataclasses
|
||||
# =============================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue