跳转至

工厂函数 (Factory Functions)

工厂函数提供 LLM、Embedding 和 Reranker 实例的延迟创建。返回的对象为惰性代理,实际的 ChatOpenAI / OpenAIEmbeddings / Reranker 构造推迟到首次属性访问时进行,确保 import lightrag_langchain 无需 .env 文件或网络连接。

lightrag_langchain.llm.create_llm

create_llm(config: LlmConfig) -> ChatOpenAI

LlmConfig 创建惰性初始化的 ChatOpenAI 代理。

返回的对象看起来像 ChatOpenAI 实例,但构造被延迟到首次属性访问。 导入时不需要网络调用,也不需要 .env 文件。

Example
from lightrag_langchain.config import settings
from lightrag_langchain.llm import create_llm

llm = create_llm(settings.llm)
print(llm.model_name)
源代码位于: src/lightrag_langchain/llm.py
def create_llm(config: LlmConfig) -> ChatOpenAI:  # type: ignore[return-value]
    """从 ``LlmConfig`` 创建惰性初始化的 ChatOpenAI 代理。

    返回的对象看起来像 ``ChatOpenAI`` 实例,但构造被延迟到首次属性访问。
    导入时不需要网络调用,也不需要 .env 文件。

    Example:
        ```python
        from lightrag_langchain.config import settings
        from lightrag_langchain.llm import create_llm

        llm = create_llm(settings.llm)
        print(llm.model_name)
        ```
    """
    return _LazyLLM(config)  # type: ignore[return-value]

lightrag_langchain.llm.create_embedding

create_embedding(
    config: EmbeddingConfig,
) -> OpenAIEmbeddings

EmbeddingConfig 创建惰性初始化的 OpenAIEmbeddings 代理。

返回的对象看起来像 OpenAIEmbeddings 实例,但构造被延迟到首次属性访问。 导入时不需要网络调用,也不需要 .env 文件。

Example
from lightrag_langchain.config import settings
from lightrag_langchain.llm import create_embedding

embedding = create_embedding(settings.embedding)
print(embedding.model)
源代码位于: src/lightrag_langchain/llm.py
def create_embedding(config: EmbeddingConfig) -> OpenAIEmbeddings:  # type: ignore[return-value]
    """从 ``EmbeddingConfig`` 创建惰性初始化的 OpenAIEmbeddings 代理。

    返回的对象看起来像 ``OpenAIEmbeddings`` 实例,但构造被延迟到首次属性访问。
    导入时不需要网络调用,也不需要 .env 文件。

    Example:
        ```python
        from lightrag_langchain.config import settings
        from lightrag_langchain.llm import create_embedding

        embedding = create_embedding(settings.embedding)
        print(embedding.model)
        ```
    """
    return _LazyEmbedding(config)  # type: ignore[return-value]

lightrag_langchain.reranker.create_reranker

create_reranker(config: RerankerConfig) -> Reranker

根据配置中的 binding 字段创建 Reranker 适配器。

分发表::

* ``"cohere"`` → ``_CohereReranker``
* ``"jina"``   → ``_JinaReranker``
* ``"aliyun"`` / ``"dashscope"`` → ``_AliyunReranker``

对于任何无法识别的 binding 值,抛出 ValueError

Example
from lightrag_langchain.config import settings
from lightrag_langchain.reranker import create_reranker

reranker = create_reranker(settings.reranker)
print(reranker)
源代码位于: src/lightrag_langchain/reranker.py
def create_reranker(config: RerankerConfig) -> Reranker:
    """根据配置中的 ``binding`` 字段创建 Reranker 适配器。

    分发表::

        * ``"cohere"`` → ``_CohereReranker``
        * ``"jina"``   → ``_JinaReranker``
        * ``"aliyun"`` / ``"dashscope"`` → ``_AliyunReranker``

    对于任何无法识别的 binding 值,抛出 ``ValueError``。

    Example:
        ```python
        from lightrag_langchain.config import settings
        from lightrag_langchain.reranker import create_reranker

        reranker = create_reranker(settings.reranker)
        print(reranker)
        ```
    """
    binding = config.binding.lower()
    if binding == "cohere":
        return _CohereReranker(config)  # type: ignore[return-value]
    if binding == "jina":
        return _JinaReranker(config)  # type: ignore[return-value]
    if binding in ("aliyun", "dashscope"):
        return _AliyunReranker(config)  # type: ignore[return-value]
    raise ValueError(f"Unknown reranker binding: {config.binding}")