mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-20 05:43:55 +00:00
core[minor]: move document compressor base (#17910)
This commit is contained in:
parent
b3f4de38ae
commit
d7c607ca00
@ -3,6 +3,7 @@ and their transformations.
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
from langchain_core.documents.base import Document
|
from langchain_core.documents.base import Document
|
||||||
|
from langchain_core.documents.compressor import BaseDocumentCompressor
|
||||||
from langchain_core.documents.transformers import BaseDocumentTransformer
|
from langchain_core.documents.transformers import BaseDocumentTransformer
|
||||||
|
|
||||||
__all__ = ["Document", "BaseDocumentTransformer"]
|
__all__ = ["Document", "BaseDocumentTransformer", "BaseDocumentCompressor"]
|
||||||
|
33
libs/core/langchain_core/documents/compressor.py
Normal file
33
libs/core/langchain_core/documents/compressor.py
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
from abc import ABC, abstractmethod
|
||||||
|
from typing import Optional, Sequence
|
||||||
|
|
||||||
|
from langchain_core.callbacks import Callbacks
|
||||||
|
from langchain_core.documents import Document
|
||||||
|
from langchain_core.pydantic_v1 import BaseModel
|
||||||
|
from langchain_core.runnables import run_in_executor
|
||||||
|
|
||||||
|
|
||||||
|
class BaseDocumentCompressor(BaseModel, ABC):
|
||||||
|
"""Base class for document compressors."""
|
||||||
|
|
||||||
|
@abstractmethod
|
||||||
|
def compress_documents(
|
||||||
|
self,
|
||||||
|
documents: Sequence[Document],
|
||||||
|
query: str,
|
||||||
|
callbacks: Optional[Callbacks] = None,
|
||||||
|
) -> Sequence[Document]:
|
||||||
|
"""Compress retrieved documents given the query context."""
|
||||||
|
|
||||||
|
async def acompress_documents(
|
||||||
|
self,
|
||||||
|
documents: Sequence[Document],
|
||||||
|
query: str,
|
||||||
|
callbacks: Optional[Callbacks] = None,
|
||||||
|
) -> Sequence[Document]:
|
||||||
|
"""Compress retrieved documents given the query context."""
|
||||||
|
return await run_in_executor(
|
||||||
|
None, self.compress_documents, documents, query, callbacks
|
||||||
|
)
|
@ -1,6 +1,6 @@
|
|||||||
from langchain_core.documents import __all__
|
from langchain_core.documents import __all__
|
||||||
|
|
||||||
EXPECTED_ALL = ["Document", "BaseDocumentTransformer"]
|
EXPECTED_ALL = ["Document", "BaseDocumentTransformer", "BaseDocumentCompressor"]
|
||||||
|
|
||||||
|
|
||||||
def test_all_imports() -> None:
|
def test_all_imports() -> None:
|
||||||
|
@ -1,38 +1,15 @@
|
|||||||
from abc import ABC, abstractmethod
|
|
||||||
from inspect import signature
|
from inspect import signature
|
||||||
from typing import List, Optional, Sequence, Union
|
from typing import List, Optional, Sequence, Union
|
||||||
|
|
||||||
from langchain_core.documents import BaseDocumentTransformer, Document
|
from langchain_core.documents import (
|
||||||
from langchain_core.pydantic_v1 import BaseModel
|
BaseDocumentCompressor,
|
||||||
from langchain_core.runnables.config import run_in_executor
|
BaseDocumentTransformer,
|
||||||
|
Document,
|
||||||
|
)
|
||||||
|
|
||||||
from langchain.callbacks.manager import Callbacks
|
from langchain.callbacks.manager import Callbacks
|
||||||
|
|
||||||
|
|
||||||
class BaseDocumentCompressor(BaseModel, ABC):
|
|
||||||
"""Base class for document compressors."""
|
|
||||||
|
|
||||||
@abstractmethod
|
|
||||||
def compress_documents(
|
|
||||||
self,
|
|
||||||
documents: Sequence[Document],
|
|
||||||
query: str,
|
|
||||||
callbacks: Optional[Callbacks] = None,
|
|
||||||
) -> Sequence[Document]:
|
|
||||||
"""Compress retrieved documents given the query context."""
|
|
||||||
|
|
||||||
async def acompress_documents(
|
|
||||||
self,
|
|
||||||
documents: Sequence[Document],
|
|
||||||
query: str,
|
|
||||||
callbacks: Optional[Callbacks] = None,
|
|
||||||
) -> Sequence[Document]:
|
|
||||||
"""Compress retrieved documents given the query context."""
|
|
||||||
return await run_in_executor(
|
|
||||||
None, self.compress_documents, documents, query, callbacks
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class DocumentCompressorPipeline(BaseDocumentCompressor):
|
class DocumentCompressorPipeline(BaseDocumentCompressor):
|
||||||
"""Document compressor that uses a pipeline of Transformers."""
|
"""Document compressor that uses a pipeline of Transformers."""
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user