跳转至

SAGE Middleware 服务层概览

服务层是 SAGE Middleware 的核心组件,提供预定义的微服务,通过编排各种组件形成完整的服务逻辑,向上层应用提供统一的服务接口。服务层采用微服务架构设计,支持独立部署、扩展和管理。

1. 调用入口(统一 API)

  • 同步:self.call_service["service_name"].method(args...)
  • 异步:self.call_service_async["service_name"].method(args...) → Future(.result(timeout=...))

示例:

# Function 中
value = self.call_service["kv_service"].get("key1")
fut = self.call_service_async["vdb_service"].search(query=vec, top_k=10)
results = fut.result(timeout=5)

2. 服务清单与职责(示意)

flowchart TB
    API["Service API<br/>(call_service)"]
    MS1["Memory Service<br/>(Neuromem 编排长期记忆)"]
    MS2["VDB Service<br/>(向量数据库抽象)"]
    MS3["KV Service<br/>(键值/会话/元数据)"]
    MS4["Graph Service<br/>(图关系/上下文)"]

    API --> MS1
    API --> MS2
    API --> MS3
    API --> MS4

3. 端到端调用路径(示意)

flowchart LR
  F[Function]
  M[Memory Service]
  V[VDB Service]
  K[KV Service]
  G[Graph Service]
  SD["SAGE-DB (GPU/CPU)"]

  F --> M
  M --> V
  M --> K
  M --> G
  V --> SD

4. 典型用法

  • Memory(长期记忆)
mid = self.call_service["memory_service"].store_memory(
    content=content,
    vector=vec,
    session_id=sid,
    memory_type="conversation",
    metadata={"source": "user"},
)
hits = self.call_service["memory_service"].search_memories(
    query_vector=vec, session_id=sid, limit=5
)
  • VDB(直接向量服务)
self.call_service["vdb_service"].add_vectors(vectors=batch, ids=ids, metadata=md)
hits = self.call_service["vdb_service"].search(query=vec, top_k=10)
  • KV
self.call_service["kv_service"].put("k", {"v": 1})
v = self.call_service["kv_service"].get("k")
  • Graph
self.call_service["graph_service"].add_edge("A", "B", {"rel": "next"})

更多示例,请参考“服务快速入门”。