mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-03 09:53:45 +00:00
refactor(storage): remove core storage api shims and fix imports
This commit is contained in:
parent
90f07dad9e
commit
7e78d5220a
43 changed files with 148 additions and 107 deletions
|
|
@ -11,9 +11,9 @@ from typing import Any, Literal
|
||||||
from pydantic import BaseModel, TypeAdapter
|
from pydantic import BaseModel, TypeAdapter
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule, StackRunConfig
|
from llama_stack.core.datatypes import AccessRule, StackRunConfig
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
Conversation,
|
Conversation,
|
||||||
ConversationDeletedResource,
|
ConversationDeletedResource,
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ from datetime import UTC, datetime, timedelta
|
||||||
from starlette.types import ASGIApp, Receive, Scope, Send
|
from starlette.types import ASGIApp, Receive, Scope, Send
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import KVStoreReference, StorageBackendType
|
from llama_stack.core.storage.datatypes import KVStoreReference, StorageBackendType
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore.kvstore import _KVSTORE_BACKENDS, kvstore_impl
|
from llama_stack.core.storage.kvstore.kvstore import _KVSTORE_BACKENDS, kvstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack_api.internal.kvstore import KVStore
|
from llama_stack_api.internal.kvstore import KVStore
|
||||||
|
|
||||||
logger = get_logger(name=__name__, category="core::server")
|
logger = get_logger(name=__name__, category="core::server")
|
||||||
|
|
|
||||||
|
|
@ -4,4 +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 llama_stack_api.internal.kvstore import KVStore as KVStore
|
||||||
|
|
||||||
from .kvstore import * # noqa: F401, F403
|
from .kvstore import * # noqa: F401, F403
|
||||||
|
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# This source code is licensed under the terms described in the LICENSE file in
|
|
||||||
# the root directory of this source tree.
|
|
||||||
|
|
||||||
from llama_stack_api.internal.kvstore import KVStore
|
|
||||||
|
|
||||||
__all__ = ["KVStore"]
|
|
||||||
|
|
@ -13,11 +13,19 @@ from __future__ import annotations
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import cast
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import KVStoreReference, StorageBackendConfig, StorageBackendType
|
from llama_stack.core.storage.datatypes import KVStoreReference, StorageBackendConfig
|
||||||
|
from llama_stack_api.internal.kvstore import KVStore
|
||||||
|
|
||||||
from .api import KVStore
|
from .config import (
|
||||||
from .config import KVStoreConfig
|
KVStoreConfig,
|
||||||
|
MongoDBKVStoreConfig,
|
||||||
|
PostgresKVStoreConfig,
|
||||||
|
RedisKVStoreConfig,
|
||||||
|
SqliteKVStoreConfig,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def kvstore_dependencies():
|
def kvstore_dependencies():
|
||||||
|
|
@ -33,7 +41,7 @@ def kvstore_dependencies():
|
||||||
|
|
||||||
class InmemoryKVStoreImpl(KVStore):
|
class InmemoryKVStoreImpl(KVStore):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._store = {}
|
self._store: dict[str, str] = {}
|
||||||
|
|
||||||
async def initialize(self) -> None:
|
async def initialize(self) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
@ -41,7 +49,7 @@ class InmemoryKVStoreImpl(KVStore):
|
||||||
async def get(self, key: str) -> str | None:
|
async def get(self, key: str) -> str | None:
|
||||||
return self._store.get(key)
|
return self._store.get(key)
|
||||||
|
|
||||||
async def set(self, key: str, value: str) -> None:
|
async def set(self, key: str, value: str, expiration: datetime | None = None) -> None:
|
||||||
self._store[key] = value
|
self._store[key] = value
|
||||||
|
|
||||||
async def values_in_range(self, start_key: str, end_key: str) -> list[str]:
|
async def values_in_range(self, start_key: str, end_key: str) -> list[str]:
|
||||||
|
|
@ -70,7 +78,8 @@ def register_kvstore_backends(backends: dict[str, StorageBackendConfig]) -> None
|
||||||
_KVSTORE_INSTANCES.clear()
|
_KVSTORE_INSTANCES.clear()
|
||||||
_KVSTORE_LOCKS.clear()
|
_KVSTORE_LOCKS.clear()
|
||||||
for name, cfg in backends.items():
|
for name, cfg in backends.items():
|
||||||
_KVSTORE_BACKENDS[name] = cfg
|
typed_cfg = cast(KVStoreConfig, cfg)
|
||||||
|
_KVSTORE_BACKENDS[name] = typed_cfg
|
||||||
|
|
||||||
|
|
||||||
async def kvstore_impl(reference: KVStoreReference) -> KVStore:
|
async def kvstore_impl(reference: KVStoreReference) -> KVStore:
|
||||||
|
|
@ -94,19 +103,20 @@ async def kvstore_impl(reference: KVStoreReference) -> KVStore:
|
||||||
config = backend_config.model_copy()
|
config = backend_config.model_copy()
|
||||||
config.namespace = reference.namespace
|
config.namespace = reference.namespace
|
||||||
|
|
||||||
if config.type == StorageBackendType.KV_REDIS.value:
|
impl: KVStore
|
||||||
|
if isinstance(config, RedisKVStoreConfig):
|
||||||
from .redis import RedisKVStoreImpl
|
from .redis import RedisKVStoreImpl
|
||||||
|
|
||||||
impl = RedisKVStoreImpl(config)
|
impl = RedisKVStoreImpl(config)
|
||||||
elif config.type == StorageBackendType.KV_SQLITE.value:
|
elif isinstance(config, SqliteKVStoreConfig):
|
||||||
from .sqlite import SqliteKVStoreImpl
|
from .sqlite import SqliteKVStoreImpl
|
||||||
|
|
||||||
impl = SqliteKVStoreImpl(config)
|
impl = SqliteKVStoreImpl(config)
|
||||||
elif config.type == StorageBackendType.KV_POSTGRES.value:
|
elif isinstance(config, PostgresKVStoreConfig):
|
||||||
from .postgres import PostgresKVStoreImpl
|
from .postgres import PostgresKVStoreImpl
|
||||||
|
|
||||||
impl = PostgresKVStoreImpl(config)
|
impl = PostgresKVStoreImpl(config)
|
||||||
elif config.type == StorageBackendType.KV_MONGODB.value:
|
elif isinstance(config, MongoDBKVStoreConfig):
|
||||||
from .mongodb import MongoDBKVStoreImpl
|
from .mongodb import MongoDBKVStoreImpl
|
||||||
|
|
||||||
impl = MongoDBKVStoreImpl(config)
|
impl = MongoDBKVStoreImpl(config)
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ from datetime import datetime
|
||||||
from pymongo import AsyncMongoClient
|
from pymongo import AsyncMongoClient
|
||||||
from pymongo.asynchronous.collection import AsyncCollection
|
from pymongo.asynchronous.collection import AsyncCollection
|
||||||
|
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import KVStore
|
from llama_stack.core.storage.kvstore import KVStore
|
||||||
|
from llama_stack.log import get_logger
|
||||||
|
|
||||||
from ..config import MongoDBKVStoreConfig
|
from ..config import MongoDBKVStoreConfig
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,11 +7,12 @@
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
import psycopg2
|
import psycopg2
|
||||||
|
from psycopg2.extensions import connection as PGConnection
|
||||||
from psycopg2.extras import DictCursor
|
from psycopg2.extras import DictCursor
|
||||||
|
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
|
from llama_stack_api.internal.kvstore import KVStore
|
||||||
|
|
||||||
from ..api import KVStore
|
|
||||||
from ..config import PostgresKVStoreConfig
|
from ..config import PostgresKVStoreConfig
|
||||||
|
|
||||||
log = get_logger(name=__name__, category="providers::utils")
|
log = get_logger(name=__name__, category="providers::utils")
|
||||||
|
|
@ -20,12 +21,12 @@ log = get_logger(name=__name__, category="providers::utils")
|
||||||
class PostgresKVStoreImpl(KVStore):
|
class PostgresKVStoreImpl(KVStore):
|
||||||
def __init__(self, config: PostgresKVStoreConfig):
|
def __init__(self, config: PostgresKVStoreConfig):
|
||||||
self.config = config
|
self.config = config
|
||||||
self.conn = None
|
self._conn: PGConnection | None = None
|
||||||
self.cursor = None
|
self._cursor: DictCursor | None = None
|
||||||
|
|
||||||
async def initialize(self) -> None:
|
async def initialize(self) -> None:
|
||||||
try:
|
try:
|
||||||
self.conn = psycopg2.connect(
|
self._conn = psycopg2.connect(
|
||||||
host=self.config.host,
|
host=self.config.host,
|
||||||
port=self.config.port,
|
port=self.config.port,
|
||||||
database=self.config.db,
|
database=self.config.db,
|
||||||
|
|
@ -34,11 +35,11 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
sslmode=self.config.ssl_mode,
|
sslmode=self.config.ssl_mode,
|
||||||
sslrootcert=self.config.ca_cert_path,
|
sslrootcert=self.config.ca_cert_path,
|
||||||
)
|
)
|
||||||
self.conn.autocommit = True
|
self._conn.autocommit = True
|
||||||
self.cursor = self.conn.cursor(cursor_factory=DictCursor)
|
self._cursor = self._conn.cursor(cursor_factory=DictCursor)
|
||||||
|
|
||||||
# Create table if it doesn't exist
|
# Create table if it doesn't exist
|
||||||
self.cursor.execute(
|
self._cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
CREATE TABLE IF NOT EXISTS {self.config.table_name} (
|
CREATE TABLE IF NOT EXISTS {self.config.table_name} (
|
||||||
key TEXT PRIMARY KEY,
|
key TEXT PRIMARY KEY,
|
||||||
|
|
@ -51,6 +52,11 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
log.exception("Could not connect to PostgreSQL database server")
|
log.exception("Could not connect to PostgreSQL database server")
|
||||||
raise RuntimeError("Could not connect to PostgreSQL database server") from e
|
raise RuntimeError("Could not connect to PostgreSQL database server") from e
|
||||||
|
|
||||||
|
def _cursor_or_raise(self) -> DictCursor:
|
||||||
|
if self._cursor is None:
|
||||||
|
raise RuntimeError("Postgres client not initialized")
|
||||||
|
return self._cursor
|
||||||
|
|
||||||
def _namespaced_key(self, key: str) -> str:
|
def _namespaced_key(self, key: str) -> str:
|
||||||
if not self.config.namespace:
|
if not self.config.namespace:
|
||||||
return key
|
return key
|
||||||
|
|
@ -58,7 +64,8 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
|
|
||||||
async def set(self, key: str, value: str, expiration: datetime | None = None) -> None:
|
async def set(self, key: str, value: str, expiration: datetime | None = None) -> None:
|
||||||
key = self._namespaced_key(key)
|
key = self._namespaced_key(key)
|
||||||
self.cursor.execute(
|
cursor = self._cursor_or_raise()
|
||||||
|
cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
INSERT INTO {self.config.table_name} (key, value, expiration)
|
INSERT INTO {self.config.table_name} (key, value, expiration)
|
||||||
VALUES (%s, %s, %s)
|
VALUES (%s, %s, %s)
|
||||||
|
|
@ -70,7 +77,8 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
|
|
||||||
async def get(self, key: str) -> str | None:
|
async def get(self, key: str) -> str | None:
|
||||||
key = self._namespaced_key(key)
|
key = self._namespaced_key(key)
|
||||||
self.cursor.execute(
|
cursor = self._cursor_or_raise()
|
||||||
|
cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
SELECT value FROM {self.config.table_name}
|
SELECT value FROM {self.config.table_name}
|
||||||
WHERE key = %s
|
WHERE key = %s
|
||||||
|
|
@ -78,12 +86,13 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
""",
|
""",
|
||||||
(key,),
|
(key,),
|
||||||
)
|
)
|
||||||
result = self.cursor.fetchone()
|
result = cursor.fetchone()
|
||||||
return result[0] if result else None
|
return result[0] if result else None
|
||||||
|
|
||||||
async def delete(self, key: str) -> None:
|
async def delete(self, key: str) -> None:
|
||||||
key = self._namespaced_key(key)
|
key = self._namespaced_key(key)
|
||||||
self.cursor.execute(
|
cursor = self._cursor_or_raise()
|
||||||
|
cursor.execute(
|
||||||
f"DELETE FROM {self.config.table_name} WHERE key = %s",
|
f"DELETE FROM {self.config.table_name} WHERE key = %s",
|
||||||
(key,),
|
(key,),
|
||||||
)
|
)
|
||||||
|
|
@ -92,7 +101,8 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
start_key = self._namespaced_key(start_key)
|
start_key = self._namespaced_key(start_key)
|
||||||
end_key = self._namespaced_key(end_key)
|
end_key = self._namespaced_key(end_key)
|
||||||
|
|
||||||
self.cursor.execute(
|
cursor = self._cursor_or_raise()
|
||||||
|
cursor.execute(
|
||||||
f"""
|
f"""
|
||||||
SELECT value FROM {self.config.table_name}
|
SELECT value FROM {self.config.table_name}
|
||||||
WHERE key >= %s AND key < %s
|
WHERE key >= %s AND key < %s
|
||||||
|
|
@ -101,14 +111,15 @@ class PostgresKVStoreImpl(KVStore):
|
||||||
""",
|
""",
|
||||||
(start_key, end_key),
|
(start_key, end_key),
|
||||||
)
|
)
|
||||||
return [row[0] for row in self.cursor.fetchall()]
|
return [row[0] for row in cursor.fetchall()]
|
||||||
|
|
||||||
async def keys_in_range(self, start_key: str, end_key: str) -> list[str]:
|
async def keys_in_range(self, start_key: str, end_key: str) -> list[str]:
|
||||||
start_key = self._namespaced_key(start_key)
|
start_key = self._namespaced_key(start_key)
|
||||||
end_key = self._namespaced_key(end_key)
|
end_key = self._namespaced_key(end_key)
|
||||||
|
|
||||||
self.cursor.execute(
|
cursor = self._cursor_or_raise()
|
||||||
|
cursor.execute(
|
||||||
f"SELECT key FROM {self.config.table_name} WHERE key >= %s AND key < %s",
|
f"SELECT key FROM {self.config.table_name} WHERE key >= %s AND key < %s",
|
||||||
(start_key, end_key),
|
(start_key, end_key),
|
||||||
)
|
)
|
||||||
return [row[0] for row in self.cursor.fetchall()]
|
return [row[0] for row in cursor.fetchall()]
|
||||||
|
|
|
||||||
|
|
@ -8,16 +8,23 @@ from datetime import datetime
|
||||||
|
|
||||||
from redis.asyncio import Redis
|
from redis.asyncio import Redis
|
||||||
|
|
||||||
from ..api import KVStore
|
from llama_stack_api.internal.kvstore import KVStore
|
||||||
|
|
||||||
from ..config import RedisKVStoreConfig
|
from ..config import RedisKVStoreConfig
|
||||||
|
|
||||||
|
|
||||||
class RedisKVStoreImpl(KVStore):
|
class RedisKVStoreImpl(KVStore):
|
||||||
def __init__(self, config: RedisKVStoreConfig):
|
def __init__(self, config: RedisKVStoreConfig):
|
||||||
self.config = config
|
self.config = config
|
||||||
|
self._redis: Redis | None = None
|
||||||
|
|
||||||
async def initialize(self) -> None:
|
async def initialize(self) -> None:
|
||||||
self.redis = Redis.from_url(self.config.url)
|
self._redis = Redis.from_url(self.config.url)
|
||||||
|
|
||||||
|
def _client(self) -> Redis:
|
||||||
|
if self._redis is None:
|
||||||
|
raise RuntimeError("Redis client not initialized")
|
||||||
|
return self._redis
|
||||||
|
|
||||||
def _namespaced_key(self, key: str) -> str:
|
def _namespaced_key(self, key: str) -> str:
|
||||||
if not self.config.namespace:
|
if not self.config.namespace:
|
||||||
|
|
@ -26,30 +33,37 @@ class RedisKVStoreImpl(KVStore):
|
||||||
|
|
||||||
async def set(self, key: str, value: str, expiration: datetime | None = None) -> None:
|
async def set(self, key: str, value: str, expiration: datetime | None = None) -> None:
|
||||||
key = self._namespaced_key(key)
|
key = self._namespaced_key(key)
|
||||||
await self.redis.set(key, value)
|
client = self._client()
|
||||||
|
await client.set(key, value)
|
||||||
if expiration:
|
if expiration:
|
||||||
await self.redis.expireat(key, expiration)
|
await client.expireat(key, expiration)
|
||||||
|
|
||||||
async def get(self, key: str) -> str | None:
|
async def get(self, key: str) -> str | None:
|
||||||
key = self._namespaced_key(key)
|
key = self._namespaced_key(key)
|
||||||
value = await self.redis.get(key)
|
client = self._client()
|
||||||
|
value = await client.get(key)
|
||||||
if value is None:
|
if value is None:
|
||||||
return None
|
return None
|
||||||
await self.redis.ttl(key)
|
await client.ttl(key)
|
||||||
return value
|
if isinstance(value, bytes):
|
||||||
|
return value.decode("utf-8")
|
||||||
|
if isinstance(value, str):
|
||||||
|
return value
|
||||||
|
return str(value)
|
||||||
|
|
||||||
async def delete(self, key: str) -> None:
|
async def delete(self, key: str) -> None:
|
||||||
key = self._namespaced_key(key)
|
key = self._namespaced_key(key)
|
||||||
await self.redis.delete(key)
|
await self._client().delete(key)
|
||||||
|
|
||||||
async def values_in_range(self, start_key: str, end_key: str) -> list[str]:
|
async def values_in_range(self, start_key: str, end_key: str) -> list[str]:
|
||||||
start_key = self._namespaced_key(start_key)
|
start_key = self._namespaced_key(start_key)
|
||||||
end_key = self._namespaced_key(end_key)
|
end_key = self._namespaced_key(end_key)
|
||||||
|
client = self._client()
|
||||||
cursor = 0
|
cursor = 0
|
||||||
pattern = start_key + "*" # Match all keys starting with start_key prefix
|
pattern = start_key + "*" # Match all keys starting with start_key prefix
|
||||||
matching_keys = []
|
matching_keys: list[str | bytes] = []
|
||||||
while True:
|
while True:
|
||||||
cursor, keys = await self.redis.scan(cursor, match=pattern, count=1000)
|
cursor, keys = await client.scan(cursor, match=pattern, count=1000)
|
||||||
|
|
||||||
for key in keys:
|
for key in keys:
|
||||||
key_str = key.decode("utf-8") if isinstance(key, bytes) else key
|
key_str = key.decode("utf-8") if isinstance(key, bytes) else key
|
||||||
|
|
@ -61,7 +75,7 @@ class RedisKVStoreImpl(KVStore):
|
||||||
|
|
||||||
# Then fetch all values in a single MGET call
|
# Then fetch all values in a single MGET call
|
||||||
if matching_keys:
|
if matching_keys:
|
||||||
values = await self.redis.mget(matching_keys)
|
values = await client.mget(matching_keys)
|
||||||
return [
|
return [
|
||||||
value.decode("utf-8") if isinstance(value, bytes) else value for value in values if value is not None
|
value.decode("utf-8") if isinstance(value, bytes) else value for value in values if value is not None
|
||||||
]
|
]
|
||||||
|
|
@ -70,7 +84,18 @@ class RedisKVStoreImpl(KVStore):
|
||||||
|
|
||||||
async def keys_in_range(self, start_key: str, end_key: str) -> list[str]:
|
async def keys_in_range(self, start_key: str, end_key: str) -> list[str]:
|
||||||
"""Get all keys in the given range."""
|
"""Get all keys in the given range."""
|
||||||
matching_keys = await self.redis.zrangebylex(self.namespace, f"[{start_key}", f"[{end_key}")
|
start_key = self._namespaced_key(start_key)
|
||||||
if not matching_keys:
|
end_key = self._namespaced_key(end_key)
|
||||||
return []
|
client = self._client()
|
||||||
return [k.decode("utf-8") for k in matching_keys]
|
cursor = 0
|
||||||
|
pattern = start_key + "*"
|
||||||
|
result: list[str] = []
|
||||||
|
while True:
|
||||||
|
cursor, keys = await client.scan(cursor, match=pattern, count=1000)
|
||||||
|
for key in keys:
|
||||||
|
key_str = key.decode("utf-8") if isinstance(key, bytes) else str(key)
|
||||||
|
if start_key <= key_str <= end_key:
|
||||||
|
result.append(key_str)
|
||||||
|
if cursor == 0:
|
||||||
|
break
|
||||||
|
return result
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ from datetime import datetime
|
||||||
import aiosqlite
|
import aiosqlite
|
||||||
|
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
|
from llama_stack_api.internal.kvstore import KVStore
|
||||||
|
|
||||||
from ..api import KVStore
|
|
||||||
from ..config import SqliteKVStoreConfig
|
from ..config import SqliteKVStoreConfig
|
||||||
|
|
||||||
logger = get_logger(name=__name__, category="providers::utils")
|
logger = get_logger(name=__name__, category="providers::utils")
|
||||||
|
|
|
||||||
|
|
@ -4,4 +4,14 @@
|
||||||
# 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 llama_stack_api.internal.sqlstore import (
|
||||||
|
ColumnDefinition as ColumnDefinition,
|
||||||
|
)
|
||||||
|
from llama_stack_api.internal.sqlstore import (
|
||||||
|
ColumnType as ColumnType,
|
||||||
|
)
|
||||||
|
from llama_stack_api.internal.sqlstore import (
|
||||||
|
SqlStore as SqlStore,
|
||||||
|
)
|
||||||
|
|
||||||
from .sqlstore import * # noqa: F401,F403
|
from .sqlstore import * # noqa: F401,F403
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
||||||
# All rights reserved.
|
|
||||||
#
|
|
||||||
# This source code is licensed under the terms described in the LICENSE file in
|
|
||||||
# the root directory of this source tree.
|
|
||||||
|
|
||||||
from llama_stack_api import PaginatedResponse
|
|
||||||
from llama_stack_api.internal.sqlstore import ColumnDefinition, ColumnType, SqlStore
|
|
||||||
|
|
||||||
__all__ = ["ColumnDefinition", "ColumnType", "SqlStore", "PaginatedResponse"]
|
|
||||||
|
|
@ -14,8 +14,8 @@ from llama_stack.core.datatypes import User
|
||||||
from llama_stack.core.request_headers import get_authenticated_user
|
from llama_stack.core.request_headers import get_authenticated_user
|
||||||
from llama_stack.core.storage.datatypes import StorageBackendType
|
from llama_stack.core.storage.datatypes import StorageBackendType
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
|
from llama_stack_api import PaginatedResponse
|
||||||
from .api import ColumnDefinition, ColumnType, PaginatedResponse, SqlStore
|
from llama_stack_api.internal.sqlstore import ColumnDefinition, ColumnType, SqlStore
|
||||||
|
|
||||||
logger = get_logger(name=__name__, category="providers::utils")
|
logger = get_logger(name=__name__, category="providers::utils")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,7 @@ from sqlalchemy.sql.elements import ColumnElement
|
||||||
from llama_stack.core.storage.datatypes import SqlAlchemySqlStoreConfig
|
from llama_stack.core.storage.datatypes import SqlAlchemySqlStoreConfig
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack_api import PaginatedResponse
|
from llama_stack_api import PaginatedResponse
|
||||||
|
from llama_stack_api.internal.sqlstore import ColumnDefinition, ColumnType, SqlStore
|
||||||
from .api import ColumnDefinition, ColumnType, SqlStore
|
|
||||||
|
|
||||||
logger = get_logger(name=__name__, category="providers::utils")
|
logger = get_logger(name=__name__, category="providers::utils")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,7 @@ from llama_stack.core.storage.datatypes import (
|
||||||
StorageBackendConfig,
|
StorageBackendConfig,
|
||||||
StorageBackendType,
|
StorageBackendType,
|
||||||
)
|
)
|
||||||
|
from llama_stack_api.internal.sqlstore import SqlStore
|
||||||
from .api import SqlStore
|
|
||||||
|
|
||||||
sql_store_pip_packages = ["sqlalchemy[asyncio]", "aiosqlite", "asyncpg"]
|
sql_store_pip_packages = ["sqlalchemy[asyncio]", "aiosqlite", "asyncpg"]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@ import pydantic
|
||||||
|
|
||||||
from llama_stack.core.datatypes import RoutableObjectWithProvider
|
from llama_stack.core.datatypes import RoutableObjectWithProvider
|
||||||
from llama_stack.core.storage.datatypes import KVStoreReference
|
from llama_stack.core.storage.datatypes import KVStoreReference
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import KVStore, kvstore_impl
|
from llama_stack.core.storage.kvstore import KVStore, kvstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
|
|
||||||
logger = get_logger(__name__, category="core::registry")
|
logger = get_logger(__name__, category="core::registry")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,8 @@ from llama_stack.core.datatypes import (
|
||||||
ToolGroupInput,
|
ToolGroupInput,
|
||||||
VectorStoresConfig,
|
VectorStoresConfig,
|
||||||
)
|
)
|
||||||
|
from llama_stack.core.storage.kvstore.config import PostgresKVStoreConfig
|
||||||
|
from llama_stack.core.storage.sqlstore.sqlstore import PostgresSqlStoreConfig
|
||||||
from llama_stack.core.utils.dynamic import instantiate_class_type
|
from llama_stack.core.utils.dynamic import instantiate_class_type
|
||||||
from llama_stack.distributions.template import DistributionTemplate, RunConfigSettings
|
from llama_stack.distributions.template import DistributionTemplate, RunConfigSettings
|
||||||
from llama_stack.providers.inline.files.localfs.config import LocalfsFilesImplConfig
|
from llama_stack.providers.inline.files.localfs.config import LocalfsFilesImplConfig
|
||||||
|
|
@ -35,8 +37,6 @@ from llama_stack.providers.remote.vector_io.pgvector.config import (
|
||||||
)
|
)
|
||||||
from llama_stack.providers.remote.vector_io.qdrant.config import QdrantVectorIOConfig
|
from llama_stack.providers.remote.vector_io.qdrant.config import QdrantVectorIOConfig
|
||||||
from llama_stack.providers.remote.vector_io.weaviate.config import WeaviateVectorIOConfig
|
from llama_stack.providers.remote.vector_io.weaviate.config import WeaviateVectorIOConfig
|
||||||
from llama_stack.core.storage.kvstore.config import PostgresKVStoreConfig
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import PostgresSqlStoreConfig
|
|
||||||
from llama_stack_api import RemoteProviderSpec
|
from llama_stack_api import RemoteProviderSpec
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,13 +35,13 @@ from llama_stack.core.storage.datatypes import (
|
||||||
SqlStoreReference,
|
SqlStoreReference,
|
||||||
StorageBackendType,
|
StorageBackendType,
|
||||||
)
|
)
|
||||||
from llama_stack.core.utils.dynamic import instantiate_class_type
|
|
||||||
from llama_stack.core.utils.image_types import LlamaStackImageType
|
|
||||||
from llama_stack.providers.utils.inference.model_registry import ProviderModelEntry
|
|
||||||
from llama_stack.core.storage.kvstore.config import SqliteKVStoreConfig
|
from llama_stack.core.storage.kvstore.config import SqliteKVStoreConfig
|
||||||
from llama_stack.core.storage.kvstore.config import get_pip_packages as get_kv_pip_packages
|
from llama_stack.core.storage.kvstore.config import get_pip_packages as get_kv_pip_packages
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import SqliteSqlStoreConfig
|
from llama_stack.core.storage.sqlstore.sqlstore import SqliteSqlStoreConfig
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import get_pip_packages as get_sql_pip_packages
|
from llama_stack.core.storage.sqlstore.sqlstore import get_pip_packages as get_sql_pip_packages
|
||||||
|
from llama_stack.core.utils.dynamic import instantiate_class_type
|
||||||
|
from llama_stack.core.utils.image_types import LlamaStackImageType
|
||||||
|
from llama_stack.providers.utils.inference.model_registry import ProviderModelEntry
|
||||||
from llama_stack_api import DatasetPurpose, ModelType
|
from llama_stack_api import DatasetPurpose, ModelType
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@
|
||||||
|
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule
|
from llama_stack.core.datatypes import AccessRule
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import InmemoryKVStoreImpl, kvstore_impl
|
from llama_stack.core.storage.kvstore import InmemoryKVStoreImpl, kvstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.utils.responses.responses_store import ResponsesStore
|
from llama_stack.providers.utils.responses.responses_store import ResponsesStore
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
Agents,
|
Agents,
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@ from typing import Any, Literal
|
||||||
from openai.types.batch import BatchError, Errors
|
from openai.types.batch import BatchError, Errors
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import KVStore
|
from llama_stack.core.storage.kvstore import KVStore
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
Batches,
|
Batches,
|
||||||
BatchObject,
|
BatchObject,
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@
|
||||||
# the root directory of this source tree.
|
# the root directory of this source tree.
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from llama_stack.providers.utils.datasetio.url_utils import get_dataframe_from_uri
|
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
|
from llama_stack.providers.utils.datasetio.url_utils import get_dataframe_from_uri
|
||||||
from llama_stack.providers.utils.pagination import paginate_records
|
from llama_stack.providers.utils.pagination import paginate_records
|
||||||
from llama_stack_api import Dataset, DatasetIO, DatasetsProtocolPrivate, PaginatedResponse
|
from llama_stack_api import Dataset, DatasetIO, DatasetsProtocolPrivate, PaginatedResponse
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,8 +8,8 @@ from typing import Any
|
||||||
|
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
from llama_stack.providers.utils.common.data_schema_validator import ColumnName
|
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
|
from llama_stack.providers.utils.common.data_schema_validator import ColumnName
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
Agents,
|
Agents,
|
||||||
Benchmark,
|
Benchmark,
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,10 @@ from fastapi import Depends, File, Form, Response, UploadFile
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule
|
from llama_stack.core.datatypes import AccessRule
|
||||||
from llama_stack.core.id_generation import generate_object_id
|
from llama_stack.core.id_generation import generate_object_id
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.providers.utils.files.form_data import parse_expires_after
|
|
||||||
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
|
from llama_stack.providers.utils.files.form_data import parse_expires_after
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
ExpiresAfter,
|
ExpiresAfter,
|
||||||
Files,
|
Files,
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ import faiss # type: ignore[import-untyped]
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from numpy.typing import NDArray
|
from numpy.typing import NDArray
|
||||||
|
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ import numpy as np
|
||||||
import sqlite_vec # type: ignore[import-untyped]
|
import sqlite_vec # type: ignore[import-untyped]
|
||||||
from numpy.typing import NDArray
|
from numpy.typing import NDArray
|
||||||
|
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import (
|
from llama_stack.providers.utils.memory.vector_store import (
|
||||||
RERANKER_TYPE_RRF,
|
RERANKER_TYPE_RRF,
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,9 @@ from typing import Annotated, Any
|
||||||
from fastapi import Depends, File, Form, Response, UploadFile
|
from fastapi import Depends, File, Form, Response, UploadFile
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule
|
from llama_stack.core.datatypes import AccessRule
|
||||||
from llama_stack.providers.utils.files.form_data import parse_expires_after
|
|
||||||
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
||||||
|
from llama_stack.providers.utils.files.form_data import parse_expires_after
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
ExpiresAfter,
|
ExpiresAfter,
|
||||||
Files,
|
Files,
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@ if TYPE_CHECKING:
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule
|
from llama_stack.core.datatypes import AccessRule
|
||||||
from llama_stack.core.id_generation import generate_object_id
|
from llama_stack.core.id_generation import generate_object_id
|
||||||
from llama_stack.providers.utils.files.form_data import parse_expires_after
|
|
||||||
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
||||||
|
from llama_stack.providers.utils.files.form_data import parse_expires_after
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
ExpiresAfter,
|
ExpiresAfter,
|
||||||
Files,
|
Files,
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ from urllib.parse import urlparse
|
||||||
import chromadb
|
import chromadb
|
||||||
from numpy.typing import NDArray
|
from numpy.typing import NDArray
|
||||||
|
|
||||||
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.inline.vector_io.chroma import ChromaVectorIOConfig as InlineChromaVectorIOConfig
|
from llama_stack.providers.inline.vector_io.chroma import ChromaVectorIOConfig as InlineChromaVectorIOConfig
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
|
|
|
||||||
|
|
@ -11,9 +11,9 @@ from typing import Any
|
||||||
from numpy.typing import NDArray
|
from numpy.typing import NDArray
|
||||||
from pymilvus import AnnSearchRequest, DataType, Function, FunctionType, MilvusClient, RRFRanker, WeightedRanker
|
from pymilvus import AnnSearchRequest, DataType, Function, FunctionType, MilvusClient, RRFRanker, WeightedRanker
|
||||||
|
|
||||||
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.inline.vector_io.milvus import MilvusVectorIOConfig as InlineMilvusVectorIOConfig
|
from llama_stack.providers.inline.vector_io.milvus import MilvusVectorIOConfig as InlineMilvusVectorIOConfig
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import (
|
from llama_stack.providers.utils.memory.vector_store import (
|
||||||
RERANKER_TYPE_WEIGHTED,
|
RERANKER_TYPE_WEIGHTED,
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ from psycopg2 import sql
|
||||||
from psycopg2.extras import Json, execute_values
|
from psycopg2.extras import Json, execute_values
|
||||||
from pydantic import BaseModel, TypeAdapter
|
from pydantic import BaseModel, TypeAdapter
|
||||||
|
|
||||||
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.utils.inference.prompt_adapter import interleaved_content_as_str
|
from llama_stack.providers.utils.inference.prompt_adapter import interleaved_content_as_str
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
||||||
from llama_stack.providers.utils.vector_io.vector_utils import WeightedInMemoryAggregator, sanitize_collection_name
|
from llama_stack.providers.utils.vector_io.vector_utils import WeightedInMemoryAggregator, sanitize_collection_name
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ from numpy.typing import NDArray
|
||||||
from qdrant_client import AsyncQdrantClient, models
|
from qdrant_client import AsyncQdrantClient, models
|
||||||
from qdrant_client.models import PointStruct
|
from qdrant_client.models import PointStruct
|
||||||
|
|
||||||
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.inline.vector_io.qdrant import QdrantVectorIOConfig as InlineQdrantVectorIOConfig
|
from llama_stack.providers.inline.vector_io.qdrant import QdrantVectorIOConfig as InlineQdrantVectorIOConfig
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
from llama_stack.providers.utils.memory.vector_store import ChunkForDeletion, EmbeddingIndex, VectorStoreWithIndex
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ from weaviate.classes.init import Auth
|
||||||
from weaviate.classes.query import Filter, HybridFusion
|
from weaviate.classes.query import Filter, HybridFusion
|
||||||
|
|
||||||
from llama_stack.core.request_headers import NeedsRequestProviderData
|
from llama_stack.core.request_headers import NeedsRequestProviderData
|
||||||
from llama_stack.log import get_logger
|
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl
|
from llama_stack.core.storage.kvstore import kvstore_impl
|
||||||
|
from llama_stack.log import get_logger
|
||||||
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
from llama_stack.providers.utils.memory.openai_vector_store_mixin import OpenAIVectorStoreMixin
|
||||||
from llama_stack.providers.utils.memory.vector_store import (
|
from llama_stack.providers.utils.memory.vector_store import (
|
||||||
RERANKER_TYPE_RRF,
|
RERANKER_TYPE_RRF,
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@ from sqlalchemy.exc import IntegrityError
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule
|
from llama_stack.core.datatypes import AccessRule
|
||||||
from llama_stack.core.storage.datatypes import InferenceStoreReference, StorageBackendType
|
from llama_stack.core.storage.datatypes import InferenceStoreReference, StorageBackendType
|
||||||
|
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
||||||
|
from llama_stack.core.storage.sqlstore.sqlstore import _SQLSTORE_BACKENDS, sqlstore_impl
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
ListOpenAIChatCompletionResponse,
|
ListOpenAIChatCompletionResponse,
|
||||||
|
|
@ -18,10 +20,7 @@ from llama_stack_api import (
|
||||||
OpenAIMessageParam,
|
OpenAIMessageParam,
|
||||||
Order,
|
Order,
|
||||||
)
|
)
|
||||||
|
from llama_stack_api.internal.sqlstore import ColumnDefinition, ColumnType
|
||||||
from llama_stack.core.storage.sqlstore.api import ColumnDefinition, ColumnType
|
|
||||||
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import _SQLSTORE_BACKENDS, sqlstore_impl
|
|
||||||
|
|
||||||
logger = get_logger(name=__name__, category="inference")
|
logger = get_logger(name=__name__, category="inference")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@
|
||||||
|
|
||||||
from llama_stack.core.datatypes import AccessRule
|
from llama_stack.core.datatypes import AccessRule
|
||||||
from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqlStoreReference
|
from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqlStoreReference
|
||||||
|
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
||||||
|
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
||||||
from llama_stack.log import get_logger
|
from llama_stack.log import get_logger
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
ListOpenAIResponseInputItem,
|
ListOpenAIResponseInputItem,
|
||||||
|
|
@ -17,10 +19,7 @@ from llama_stack_api import (
|
||||||
OpenAIResponseObjectWithInput,
|
OpenAIResponseObjectWithInput,
|
||||||
Order,
|
Order,
|
||||||
)
|
)
|
||||||
|
from llama_stack_api.internal.sqlstore import ColumnDefinition, ColumnType
|
||||||
from llama_stack.core.storage.sqlstore.api import ColumnDefinition, ColumnType
|
|
||||||
from llama_stack.core.storage.sqlstore.authorized_sqlstore import AuthorizedSqlStore
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import sqlstore_impl
|
|
||||||
|
|
||||||
logger = get_logger(name=__name__, category="openai_responses")
|
logger = get_logger(name=__name__, category="openai_responses")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
|
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This source code is licensed under the terms described in the LICENSE file in
|
||||||
|
# the root directory of this source tree.
|
||||||
|
|
||||||
# Internal subpackage for shared interfaces that are not part of the public API.
|
# Internal subpackage for shared interfaces that are not part of the public API.
|
||||||
|
|
||||||
__all__: list[str] = []
|
__all__: list[str] = []
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ import pytest
|
||||||
|
|
||||||
from llama_stack.core.access_control.access_control import default_policy
|
from llama_stack.core.access_control.access_control import default_policy
|
||||||
from llama_stack.core.storage.datatypes import SqliteSqlStoreConfig, SqlStoreReference
|
from llama_stack.core.storage.datatypes import SqliteSqlStoreConfig, SqlStoreReference
|
||||||
|
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
||||||
from llama_stack.providers.inline.files.localfs import (
|
from llama_stack.providers.inline.files.localfs import (
|
||||||
LocalfsFilesImpl,
|
LocalfsFilesImpl,
|
||||||
LocalfsFilesImplConfig,
|
LocalfsFilesImplConfig,
|
||||||
)
|
)
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
|
||||||
from llama_stack_api import OpenAIFilePurpose, Order, ResourceNotFoundError
|
from llama_stack_api import OpenAIFilePurpose, Order, ResourceNotFoundError
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llama_stack.core.store.registry import CachedDiskDistributionRegistry, DiskDistributionRegistry
|
|
||||||
from llama_stack.core.storage.kvstore.config import SqliteKVStoreConfig
|
from llama_stack.core.storage.kvstore.config import SqliteKVStoreConfig
|
||||||
from llama_stack.core.storage.kvstore.sqlite import SqliteKVStoreImpl
|
from llama_stack.core.storage.kvstore.sqlite import SqliteKVStoreImpl
|
||||||
|
from llama_stack.core.store.registry import CachedDiskDistributionRegistry, DiskDistributionRegistry
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ from openai.types.chat.chat_completion_chunk import (
|
||||||
|
|
||||||
from llama_stack.core.access_control.access_control import default_policy
|
from llama_stack.core.access_control.access_control import default_policy
|
||||||
from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqliteSqlStoreConfig
|
from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqliteSqlStoreConfig
|
||||||
|
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
||||||
from llama_stack.providers.inline.agents.meta_reference.responses.openai_responses import (
|
from llama_stack.providers.inline.agents.meta_reference.responses.openai_responses import (
|
||||||
OpenAIResponsesImpl,
|
OpenAIResponsesImpl,
|
||||||
)
|
)
|
||||||
|
|
@ -24,7 +25,6 @@ from llama_stack.providers.utils.responses.responses_store import (
|
||||||
ResponsesStore,
|
ResponsesStore,
|
||||||
_OpenAIResponseObjectWithInputAndMessages,
|
_OpenAIResponseObjectWithInputAndMessages,
|
||||||
)
|
)
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
|
||||||
from llama_stack_api.agents import Order
|
from llama_stack_api.agents import Order
|
||||||
from llama_stack_api.inference import (
|
from llama_stack_api.inference import (
|
||||||
OpenAIAssistantMessageParam,
|
OpenAIAssistantMessageParam,
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ from unittest.mock import AsyncMock
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import KVStoreReference, SqliteKVStoreConfig
|
from llama_stack.core.storage.datatypes import KVStoreReference, SqliteKVStoreConfig
|
||||||
|
from llama_stack.core.storage.kvstore import kvstore_impl, register_kvstore_backends
|
||||||
from llama_stack.providers.inline.batches.reference.batches import ReferenceBatchesImpl
|
from llama_stack.providers.inline.batches.reference.batches import ReferenceBatchesImpl
|
||||||
from llama_stack.providers.inline.batches.reference.config import ReferenceBatchesImplConfig
|
from llama_stack.providers.inline.batches.reference.config import ReferenceBatchesImplConfig
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl, register_kvstore_backends
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ import pytest
|
||||||
from moto import mock_aws
|
from moto import mock_aws
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import SqliteSqlStoreConfig, SqlStoreReference
|
from llama_stack.core.storage.datatypes import SqliteSqlStoreConfig, SqlStoreReference
|
||||||
from llama_stack.providers.remote.files.s3 import S3FilesImplConfig, get_adapter_impl
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
||||||
|
from llama_stack.providers.remote.files.s3 import S3FilesImplConfig, get_adapter_impl
|
||||||
|
|
||||||
|
|
||||||
class MockUploadFile:
|
class MockUploadFile:
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,13 @@ import numpy as np
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import KVStoreReference, SqliteKVStoreConfig
|
from llama_stack.core.storage.datatypes import KVStoreReference, SqliteKVStoreConfig
|
||||||
|
from llama_stack.core.storage.kvstore import register_kvstore_backends
|
||||||
from llama_stack.providers.inline.vector_io.faiss.config import FaissVectorIOConfig
|
from llama_stack.providers.inline.vector_io.faiss.config import FaissVectorIOConfig
|
||||||
from llama_stack.providers.inline.vector_io.faiss.faiss import FaissIndex, FaissVectorIOAdapter
|
from llama_stack.providers.inline.vector_io.faiss.faiss import FaissIndex, FaissVectorIOAdapter
|
||||||
from llama_stack.providers.inline.vector_io.sqlite_vec import SQLiteVectorIOConfig
|
from llama_stack.providers.inline.vector_io.sqlite_vec import SQLiteVectorIOConfig
|
||||||
from llama_stack.providers.inline.vector_io.sqlite_vec.sqlite_vec import SQLiteVecIndex, SQLiteVecVectorIOAdapter
|
from llama_stack.providers.inline.vector_io.sqlite_vec.sqlite_vec import SQLiteVecIndex, SQLiteVecVectorIOAdapter
|
||||||
from llama_stack.providers.remote.vector_io.pgvector.config import PGVectorVectorIOConfig
|
from llama_stack.providers.remote.vector_io.pgvector.config import PGVectorVectorIOConfig
|
||||||
from llama_stack.providers.remote.vector_io.pgvector.pgvector import PGVectorIndex, PGVectorVectorIOAdapter
|
from llama_stack.providers.remote.vector_io.pgvector.pgvector import PGVectorIndex, PGVectorVectorIOAdapter
|
||||||
from llama_stack.core.storage.kvstore import register_kvstore_backends
|
|
||||||
from llama_stack_api import Chunk, ChunkMetadata, QueryChunksResponse, VectorStore
|
from llama_stack_api import Chunk, ChunkMetadata, QueryChunksResponse, VectorStore
|
||||||
|
|
||||||
EMBEDDING_DIMENSION = 768
|
EMBEDDING_DIMENSION = 768
|
||||||
|
|
|
||||||
|
|
@ -9,12 +9,12 @@ import pytest
|
||||||
|
|
||||||
from llama_stack.core.datatypes import VectorStoreWithOwner
|
from llama_stack.core.datatypes import VectorStoreWithOwner
|
||||||
from llama_stack.core.storage.datatypes import KVStoreReference, SqliteKVStoreConfig
|
from llama_stack.core.storage.datatypes import KVStoreReference, SqliteKVStoreConfig
|
||||||
|
from llama_stack.core.storage.kvstore import kvstore_impl, register_kvstore_backends
|
||||||
from llama_stack.core.store.registry import (
|
from llama_stack.core.store.registry import (
|
||||||
KEY_FORMAT,
|
KEY_FORMAT,
|
||||||
CachedDiskDistributionRegistry,
|
CachedDiskDistributionRegistry,
|
||||||
DiskDistributionRegistry,
|
DiskDistributionRegistry,
|
||||||
)
|
)
|
||||||
from llama_stack.core.storage.kvstore import kvstore_impl, register_kvstore_backends
|
|
||||||
from llama_stack_api import Model, VectorStore
|
from llama_stack_api import Model, VectorStore
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@ import time
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import InferenceStoreReference, SqliteSqlStoreConfig
|
from llama_stack.core.storage.datatypes import InferenceStoreReference, SqliteSqlStoreConfig
|
||||||
from llama_stack.providers.utils.inference.inference_store import InferenceStore
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
||||||
|
from llama_stack.providers.utils.inference.inference_store import InferenceStore
|
||||||
from llama_stack_api import (
|
from llama_stack_api import (
|
||||||
OpenAIAssistantMessageParam,
|
OpenAIAssistantMessageParam,
|
||||||
OpenAIChatCompletion,
|
OpenAIChatCompletion,
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ from uuid import uuid4
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqliteSqlStoreConfig
|
from llama_stack.core.storage.datatypes import ResponsesStoreReference, SqliteSqlStoreConfig
|
||||||
from llama_stack.providers.utils.responses.responses_store import ResponsesStore
|
|
||||||
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
from llama_stack.core.storage.sqlstore.sqlstore import register_sqlstore_backends
|
||||||
|
from llama_stack.providers.utils.responses.responses_store import ResponsesStore
|
||||||
from llama_stack_api import OpenAIMessageParam, OpenAIResponseInput, OpenAIResponseObject, OpenAIUserMessageParam, Order
|
from llama_stack_api import OpenAIMessageParam, OpenAIResponseInput, OpenAIResponseObject, OpenAIUserMessageParam, Order
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue