Feat: implemented vector store service

This commit is contained in:
2025-12-06 00:23:48 -05:00
parent ea50a939cb
commit 4f4cefb369
15 changed files with 866 additions and 86 deletions
@@ -0,0 +1,14 @@
from __future__ import annotations
from collections.abc import Sequence
from langchain_core.embeddings import Embeddings
class FakeEmbeddings(Embeddings):
"""Deterministic embeddings generator used for testing."""
def __init__(self, *, size: int = ...) -> None: ...
def embed_documents(self, texts: Sequence[str]) -> list[list[float]]: ...
def embed_query(self, text: str) -> list[float]: ...
__all__ = ["FakeEmbeddings"]
@@ -0,0 +1,44 @@
from __future__ import annotations
from collections.abc import Sequence
from typing import Any, Protocol
from langchain_core.embeddings import Embeddings
class _VectorDocument(Protocol):
metadata: dict[str, Any]
page_content: str
class FAISS:
"""Subset of the FAISS vector store methods used in CleverAgents."""
@classmethod
def from_texts(
cls,
texts: Sequence[str],
embedding: Embeddings,
metadatas: Sequence[dict[str, Any]] | None = ...,
ids: Sequence[str] | None = ...,
**kwargs: Any,
) -> FAISS: ...
def save_local(self, folder_path: str) -> None: ...
@classmethod
def load_local(
cls,
folder_path: str,
embeddings: Embeddings,
*,
allow_dangerous_deserialization: bool = ...,
**kwargs: Any,
) -> FAISS: ...
def similarity_search_with_score(
self,
query: str,
*,
k: int = ...,
filter: Any = ...,
fetch_k: int = ...,
**kwargs: Any,
) -> list[tuple[_VectorDocument, float]]: ...
__all__ = ["FAISS"]
@@ -0,0 +1,9 @@
from __future__ import annotations
from collections.abc import Sequence
class Embeddings:
"""Minimal embeddings protocol used for typing."""
def embed_documents(self, texts: Sequence[str]) -> list[list[float]]: ...
def embed_query(self, text: str) -> list[float]: ...
+17 -1
View File
@@ -1,7 +1,9 @@
"""Type stubs for langchain_openai package."""
from collections.abc import Sequence
from typing import Any
from langchain_core.embeddings import Embeddings as _Embeddings
from langchain_core.language_models import BaseLanguageModel
class ChatOpenAI(BaseLanguageModel):
@@ -43,4 +45,18 @@ class AzureChatOpenAI(BaseLanguageModel):
**kwargs: Any,
) -> None: ...
__all__ = ["ChatOpenAI", "AzureChatOpenAI"]
class OpenAIEmbeddings(_Embeddings):
"""OpenAI embeddings wrapper used for vector stores."""
def __init__(
self,
*,
model: str = ...,
dimensions: int | None = None,
api_key: Any = None,
**kwargs: Any,
) -> None: ...
def embed_documents(self, texts: Sequence[str]) -> list[list[float]]: ...
def embed_query(self, text: str) -> list[float]: ...
__all__ = ["AzureChatOpenAI", "ChatOpenAI", "OpenAIEmbeddings"]