mirror of
				https://github.com/hwchase17/langchain.git
				synced 2025-11-03 17:54:10 +00:00 
			
		
		
		
	Moved the following modules to new package langchain-community in a backwards compatible fashion: ``` mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community mv langchain/langchain/adapters community/langchain_community mv langchain/langchain/callbacks community/langchain_community/callbacks mv langchain/langchain/chat_loaders community/langchain_community mv langchain/langchain/chat_models community/langchain_community mv langchain/langchain/document_loaders community/langchain_community mv langchain/langchain/docstore community/langchain_community mv langchain/langchain/document_transformers community/langchain_community mv langchain/langchain/embeddings community/langchain_community mv langchain/langchain/graphs community/langchain_community mv langchain/langchain/llms community/langchain_community mv langchain/langchain/memory/chat_message_histories community/langchain_community mv langchain/langchain/retrievers community/langchain_community mv langchain/langchain/storage community/langchain_community mv langchain/langchain/tools community/langchain_community mv langchain/langchain/utilities community/langchain_community mv langchain/langchain/vectorstores community/langchain_community mv langchain/langchain/agents/agent_toolkits community/langchain_community mv langchain/langchain/cache.py community/langchain_community ``` Moved the following to core ``` mv langchain/langchain/utils/json_schema.py core/langchain_core/utils mv langchain/langchain/utils/html.py core/langchain_core/utils mv langchain/langchain/utils/strings.py core/langchain_core/utils cat langchain/langchain/utils/env.py >> core/langchain_core/utils/env.py rm langchain/langchain/utils/env.py ``` See .scripts/community_split/script_integrations.sh for all changes
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import annotations
 | 
						|
 | 
						|
import warnings
 | 
						|
from typing import Any, Iterator, List, Optional
 | 
						|
 | 
						|
from langchain_core.embeddings import Embeddings
 | 
						|
from langchain_core.pydantic_v1 import BaseModel
 | 
						|
 | 
						|
 | 
						|
def _chunk(texts: List[str], size: int) -> Iterator[List[str]]:
 | 
						|
    for i in range(0, len(texts), size):
 | 
						|
        yield texts[i : i + size]
 | 
						|
 | 
						|
 | 
						|
class MlflowAIGatewayEmbeddings(Embeddings, BaseModel):
 | 
						|
    """
 | 
						|
    Wrapper around embeddings LLMs in the MLflow AI Gateway.
 | 
						|
 | 
						|
    To use, you should have the ``mlflow[gateway]`` python package installed.
 | 
						|
    For more information, see https://mlflow.org/docs/latest/gateway/index.html.
 | 
						|
 | 
						|
    Example:
 | 
						|
        .. code-block:: python
 | 
						|
 | 
						|
            from langchain_community.embeddings import MlflowAIGatewayEmbeddings
 | 
						|
 | 
						|
            embeddings = MlflowAIGatewayEmbeddings(
 | 
						|
                gateway_uri="<your-mlflow-ai-gateway-uri>",
 | 
						|
                route="<your-mlflow-ai-gateway-embeddings-route>"
 | 
						|
            )
 | 
						|
    """
 | 
						|
 | 
						|
    route: str
 | 
						|
    """The route to use for the MLflow AI Gateway API."""
 | 
						|
    gateway_uri: Optional[str] = None
 | 
						|
    """The URI for the MLflow AI Gateway API."""
 | 
						|
 | 
						|
    def __init__(self, **kwargs: Any):
 | 
						|
        warnings.warn(
 | 
						|
            "`MlflowAIGatewayEmbeddings` is deprecated. Use `MlflowEmbeddings` or "
 | 
						|
            "`DatabricksEmbeddings` instead.",
 | 
						|
            DeprecationWarning,
 | 
						|
        )
 | 
						|
        try:
 | 
						|
            import mlflow.gateway
 | 
						|
        except ImportError as e:
 | 
						|
            raise ImportError(
 | 
						|
                "Could not import `mlflow.gateway` module. "
 | 
						|
                "Please install it with `pip install mlflow[gateway]`."
 | 
						|
            ) from e
 | 
						|
 | 
						|
        super().__init__(**kwargs)
 | 
						|
        if self.gateway_uri:
 | 
						|
            mlflow.gateway.set_gateway_uri(self.gateway_uri)
 | 
						|
 | 
						|
    def _query(self, texts: List[str]) -> List[List[float]]:
 | 
						|
        try:
 | 
						|
            import mlflow.gateway
 | 
						|
        except ImportError as e:
 | 
						|
            raise ImportError(
 | 
						|
                "Could not import `mlflow.gateway` module. "
 | 
						|
                "Please install it with `pip install mlflow[gateway]`."
 | 
						|
            ) from e
 | 
						|
 | 
						|
        embeddings = []
 | 
						|
        for txt in _chunk(texts, 20):
 | 
						|
            resp = mlflow.gateway.query(self.route, data={"text": txt})
 | 
						|
            embeddings.append(resp["embeddings"])
 | 
						|
        return embeddings
 | 
						|
 | 
						|
    def embed_documents(self, texts: List[str]) -> List[List[float]]:
 | 
						|
        return self._query(texts)
 | 
						|
 | 
						|
    def embed_query(self, text: str) -> List[float]:
 | 
						|
        return self._query([text])[0]
 |