mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-08-01 16:24:44 +00:00
change register signature to make params required
This commit is contained in:
parent
4206f07ada
commit
4369c2d0b6
5 changed files with 43 additions and 29 deletions
|
@ -65,15 +65,39 @@ class GraphMemoryBank(MemoryBank):
|
||||||
|
|
||||||
@json_schema_type
|
@json_schema_type
|
||||||
class VectorMemoryBankParams(BaseModel):
|
class VectorMemoryBankParams(BaseModel):
|
||||||
type: Literal[MemoryBankType.vector.value] = MemoryBankType.vector.value
|
memory_bank_type: Literal[MemoryBankType.vector.value] = MemoryBankType.vector.value
|
||||||
embedding_model: str
|
embedding_model: str
|
||||||
chunk_size_in_tokens: int
|
chunk_size_in_tokens: int
|
||||||
overlap_size_in_tokens: Optional[int] = None
|
overlap_size_in_tokens: Optional[int] = None
|
||||||
|
|
||||||
|
|
||||||
|
@json_schema_type
|
||||||
|
class KeyValueMemoryBankParams(BaseModel):
|
||||||
|
memory_bank_type: Literal[MemoryBankType.keyvalue.value] = (
|
||||||
|
MemoryBankType.keyvalue.value
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@json_schema_type
|
||||||
|
class KeywordMemoryBankParams(BaseModel):
|
||||||
|
memory_bank_type: Literal[MemoryBankType.keyword.value] = (
|
||||||
|
MemoryBankType.keyword.value
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@json_schema_type
|
||||||
|
class GraphMemoryBankParams(BaseModel):
|
||||||
|
memory_bank_type: Literal[MemoryBankType.graph.value] = MemoryBankType.graph.value
|
||||||
|
|
||||||
|
|
||||||
BankParams = Annotated[
|
BankParams = Annotated[
|
||||||
Union[VectorMemoryBankParams],
|
Union[
|
||||||
Field(discriminator="type"),
|
VectorMemoryBankParams,
|
||||||
|
KeyValueMemoryBankParams,
|
||||||
|
KeywordMemoryBankParams,
|
||||||
|
GraphMemoryBankParams,
|
||||||
|
],
|
||||||
|
Field(discriminator="memory_bank_type"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -89,8 +113,7 @@ class MemoryBanks(Protocol):
|
||||||
async def register_memory_bank(
|
async def register_memory_bank(
|
||||||
self,
|
self,
|
||||||
memory_bank_id: str,
|
memory_bank_id: str,
|
||||||
memory_bank_type: MemoryBankType,
|
params: BankParams,
|
||||||
provider_id: Optional[str] = None,
|
provider_id: Optional[str] = None,
|
||||||
provider_memorybank_id: Optional[str] = None,
|
provider_memorybank_id: Optional[str] = None,
|
||||||
params: Optional[BankParams] = None,
|
|
||||||
) -> MemoryBank: ...
|
) -> MemoryBank: ...
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
from typing import Any, AsyncGenerator, Dict, List, Optional
|
from typing import Any, AsyncGenerator, Dict, List, Optional
|
||||||
|
|
||||||
from llama_stack.apis.datasetio.datasetio import DatasetIO
|
from llama_stack.apis.datasetio.datasetio import DatasetIO
|
||||||
from llama_stack.apis.memory_banks.memory_banks import BankParams, MemoryBankType
|
from llama_stack.apis.memory_banks.memory_banks import BankParams
|
||||||
from llama_stack.distribution.datatypes import RoutingTable
|
from llama_stack.distribution.datatypes import RoutingTable
|
||||||
from llama_stack.apis.memory import * # noqa: F403
|
from llama_stack.apis.memory import * # noqa: F403
|
||||||
from llama_stack.apis.inference import * # noqa: F403
|
from llama_stack.apis.inference import * # noqa: F403
|
||||||
|
@ -35,17 +35,15 @@ class MemoryRouter(Memory):
|
||||||
async def register_memory_bank(
|
async def register_memory_bank(
|
||||||
self,
|
self,
|
||||||
memory_bank_id: str,
|
memory_bank_id: str,
|
||||||
memory_bank_type: MemoryBankType,
|
params: BankParams,
|
||||||
provider_id: Optional[str] = None,
|
provider_id: Optional[str] = None,
|
||||||
provider_memorybank_id: Optional[str] = None,
|
provider_memorybank_id: Optional[str] = None,
|
||||||
params: Optional[BankParams] = None,
|
|
||||||
) -> None:
|
) -> None:
|
||||||
await self.routing_table.register_memory_bank(
|
await self.routing_table.register_memory_bank(
|
||||||
memory_bank_id,
|
memory_bank_id,
|
||||||
memory_bank_type,
|
params,
|
||||||
provider_id,
|
provider_id,
|
||||||
provider_memorybank_id,
|
provider_memorybank_id,
|
||||||
params,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
async def insert_documents(
|
async def insert_documents(
|
||||||
|
|
|
@ -272,10 +272,9 @@ class MemoryBanksRoutingTable(CommonRoutingTableImpl, MemoryBanks):
|
||||||
async def register_memory_bank(
|
async def register_memory_bank(
|
||||||
self,
|
self,
|
||||||
memory_bank_id: str,
|
memory_bank_id: str,
|
||||||
memory_bank_type: MemoryBankType,
|
params: BankParams,
|
||||||
provider_id: Optional[str] = None,
|
provider_id: Optional[str] = None,
|
||||||
provider_memorybank_id: Optional[str] = None,
|
provider_memorybank_id: Optional[str] = None,
|
||||||
params: Optional[BankParams] = None,
|
|
||||||
) -> MemoryBank:
|
) -> MemoryBank:
|
||||||
if provider_memorybank_id is None:
|
if provider_memorybank_id is None:
|
||||||
provider_memorybank_id = memory_bank_id
|
provider_memorybank_id = memory_bank_id
|
||||||
|
@ -289,10 +288,9 @@ class MemoryBanksRoutingTable(CommonRoutingTableImpl, MemoryBanks):
|
||||||
)
|
)
|
||||||
memory_bank = build_memory_bank(
|
memory_bank = build_memory_bank(
|
||||||
memory_bank_id,
|
memory_bank_id,
|
||||||
memory_bank_type,
|
params,
|
||||||
provider_id,
|
provider_id,
|
||||||
provider_memorybank_id,
|
provider_memorybank_id,
|
||||||
params,
|
|
||||||
)
|
)
|
||||||
await self.register_object(memory_bank)
|
await self.register_object(memory_bank)
|
||||||
return memory_bank
|
return memory_bank
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
# This source code is licensed under the terms described in the LICENSE file in
|
# This source code is licensed under the terms described in the LICENSE file in
|
||||||
# the root directory of this source tree.
|
# the root directory of this source tree.
|
||||||
|
|
||||||
from typing import Optional
|
|
||||||
|
|
||||||
from llama_stack.apis.memory_banks.memory_banks import (
|
from llama_stack.apis.memory_banks.memory_banks import (
|
||||||
BankParams,
|
BankParams,
|
||||||
|
@ -20,43 +19,42 @@ from llama_stack.apis.memory_banks.memory_banks import (
|
||||||
|
|
||||||
def build_memory_bank(
|
def build_memory_bank(
|
||||||
memory_bank_id: str,
|
memory_bank_id: str,
|
||||||
memory_bank_type: MemoryBankType,
|
params: BankParams,
|
||||||
provider_id: str,
|
provider_id: str,
|
||||||
provider_memorybank_id: str,
|
provider_memorybank_id: str,
|
||||||
params: Optional[BankParams] = None,
|
|
||||||
) -> MemoryBank:
|
) -> MemoryBank:
|
||||||
if memory_bank_type == MemoryBankType.vector.value:
|
if params.memory_bank_type == MemoryBankType.vector.value:
|
||||||
assert isinstance(params, VectorMemoryBankParams)
|
assert isinstance(params, VectorMemoryBankParams)
|
||||||
memory_bank = VectorMemoryBank(
|
memory_bank = VectorMemoryBank(
|
||||||
identifier=memory_bank_id,
|
identifier=memory_bank_id,
|
||||||
provider_id=provider_id,
|
provider_id=provider_id,
|
||||||
provider_resource_id=provider_memorybank_id,
|
provider_resource_id=provider_memorybank_id,
|
||||||
memory_bank_type=memory_bank_type,
|
memory_bank_type=params.memory_bank_type,
|
||||||
embedding_model=params.embedding_model,
|
embedding_model=params.embedding_model,
|
||||||
chunk_size_in_tokens=params.chunk_size_in_tokens,
|
chunk_size_in_tokens=params.chunk_size_in_tokens,
|
||||||
overlap_size_in_tokens=params.overlap_size_in_tokens,
|
overlap_size_in_tokens=params.overlap_size_in_tokens,
|
||||||
)
|
)
|
||||||
elif memory_bank_type == MemoryBankType.keyvalue.value:
|
elif params.memory_bank_type == MemoryBankType.keyvalue.value:
|
||||||
memory_bank = KeyValueMemoryBank(
|
memory_bank = KeyValueMemoryBank(
|
||||||
identifier=memory_bank_id,
|
identifier=memory_bank_id,
|
||||||
provider_id=provider_id,
|
provider_id=provider_id,
|
||||||
provider_resource_id=provider_memorybank_id,
|
provider_resource_id=provider_memorybank_id,
|
||||||
memory_bank_type=memory_bank_type,
|
memory_bank_type=params.memory_bank_type,
|
||||||
)
|
)
|
||||||
elif memory_bank_type == MemoryBankType.keyword.value:
|
elif params.memory_bank_type == MemoryBankType.keyword.value:
|
||||||
memory_bank = KeywordMemoryBank(
|
memory_bank = KeywordMemoryBank(
|
||||||
identifier=memory_bank_id,
|
identifier=memory_bank_id,
|
||||||
provider_id=provider_id,
|
provider_id=provider_id,
|
||||||
provider_resource_id=provider_memorybank_id,
|
provider_resource_id=provider_memorybank_id,
|
||||||
memory_bank_type=memory_bank_type,
|
memory_bank_type=params.memory_bank_type,
|
||||||
)
|
)
|
||||||
elif memory_bank_type == MemoryBankType.graph.value:
|
elif params.memory_bank_type == MemoryBankType.graph.value:
|
||||||
memory_bank = GraphMemoryBank(
|
memory_bank = GraphMemoryBank(
|
||||||
identifier=memory_bank_id,
|
identifier=memory_bank_id,
|
||||||
provider_id=provider_id,
|
provider_id=provider_id,
|
||||||
provider_resource_id=provider_memorybank_id,
|
provider_resource_id=provider_memorybank_id,
|
||||||
memory_bank_type=memory_bank_type,
|
memory_bank_type=params.memory_bank_type,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
raise ValueError(f"Unknown memory bank type: {memory_bank_type}")
|
raise ValueError(f"Unknown memory bank type: {params.memory_bank_type}")
|
||||||
return memory_bank
|
return memory_bank
|
||||||
|
|
|
@ -47,7 +47,6 @@ async def register_memory_bank(banks_impl: MemoryBanks):
|
||||||
|
|
||||||
return await banks_impl.register_memory_bank(
|
return await banks_impl.register_memory_bank(
|
||||||
memory_bank_id="test_bank",
|
memory_bank_id="test_bank",
|
||||||
memory_bank_type="vector",
|
|
||||||
params=VectorMemoryBankParams(
|
params=VectorMemoryBankParams(
|
||||||
embedding_model="all-MiniLM-L6-v2",
|
embedding_model="all-MiniLM-L6-v2",
|
||||||
chunk_size_in_tokens=512,
|
chunk_size_in_tokens=512,
|
||||||
|
@ -74,7 +73,6 @@ class TestMemory:
|
||||||
|
|
||||||
bank = await banks_impl.register_memory_bank(
|
bank = await banks_impl.register_memory_bank(
|
||||||
memory_bank_id="test_bank_no_provider",
|
memory_bank_id="test_bank_no_provider",
|
||||||
memory_bank_type="vector",
|
|
||||||
params=VectorMemoryBankParams(
|
params=VectorMemoryBankParams(
|
||||||
embedding_model="all-MiniLM-L6-v2",
|
embedding_model="all-MiniLM-L6-v2",
|
||||||
chunk_size_in_tokens=512,
|
chunk_size_in_tokens=512,
|
||||||
|
@ -88,7 +86,6 @@ class TestMemory:
|
||||||
# register same memory bank with same id again will fail
|
# register same memory bank with same id again will fail
|
||||||
await banks_impl.register_memory_bank(
|
await banks_impl.register_memory_bank(
|
||||||
memory_bank_id="test_bank_no_provider",
|
memory_bank_id="test_bank_no_provider",
|
||||||
memory_bank_type="vector",
|
|
||||||
params=VectorMemoryBankParams(
|
params=VectorMemoryBankParams(
|
||||||
embedding_model="all-MiniLM-L6-v2",
|
embedding_model="all-MiniLM-L6-v2",
|
||||||
chunk_size_in_tokens=512,
|
chunk_size_in_tokens=512,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue