mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 13:23:35 +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.compressor import BaseDocumentCompressor
|
||||
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__
|
||||
|
||||
EXPECTED_ALL = ["Document", "BaseDocumentTransformer"]
|
||||
EXPECTED_ALL = ["Document", "BaseDocumentTransformer", "BaseDocumentCompressor"]
|
||||
|
||||
|
||||
def test_all_imports() -> None:
|
||||
|
@ -1,38 +1,15 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from inspect import signature
|
||||
from typing import List, Optional, Sequence, Union
|
||||
|
||||
from langchain_core.documents import BaseDocumentTransformer, Document
|
||||
from langchain_core.pydantic_v1 import BaseModel
|
||||
from langchain_core.runnables.config import run_in_executor
|
||||
from langchain_core.documents import (
|
||||
BaseDocumentCompressor,
|
||||
BaseDocumentTransformer,
|
||||
Document,
|
||||
)
|
||||
|
||||
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):
|
||||
"""Document compressor that uses a pipeline of Transformers."""
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user