OllamaEmbeddings#

class langchain_community.embeddings.ollama.OllamaEmbeddings[source]#

基础类:BaseModel, Embeddings

自版本0.3.1起已弃用:请改用:class:`~langchain_ollama.OllamaEmbeddings`。在langchain-community==1.0.0之前不会移除。

Ollama 在本地运行大型语言模型。

要使用,请按照https://ollama.ai/上的说明操作。

示例

from langchain_community.embeddings import OllamaEmbeddings
ollama_emb = OllamaEmbeddings(
    model="llama:7b",
)
r1 = ollama_emb.embed_documents(
    [
        "Alpha is the first letter of Greek alphabet",
        "Beta is the second letter of Greek alphabet",
    ]
)
r2 = ollama_emb.embed_query(
    "What is the second letter of Greek alphabet"
)

通过解析和验证来自关键字参数的输入数据来创建一个新模型。

如果输入数据无法验证以形成有效模型,则引发 [ValidationError][pydantic_core.ValidationError]。

self 被显式地设为仅位置参数,以允许 self 作为字段名称。

param base_url: str = 'http://localhost:11434'#

模型托管的基础URL。

param embed_instruction: str = 'passage: '#

用于嵌入文档的指令。

param headers: dict | None = None#

传递给端点的额外头部信息(例如 Authorization, Referer)。 当 Ollama 托管在需要令牌进行身份验证的云服务上时,这非常有用。

param mirostat: int | None = None#

启用Mirostat采样以控制困惑度。 (默认值:0,0 = 禁用,1 = Mirostat,2 = Mirostat 2.0)

param mirostat_eta: float | None = None#

影响算法对生成文本反馈的响应速度。较低的学习率会导致调整较慢,而较高的学习率会使算法更敏感。(默认值:0.1)

param mirostat_tau: float | None = None#

控制输出的一致性和多样性之间的平衡。较低的值将导致更集中和一致的文本。(默认值:5.0)

param model: str = 'llama2'#

使用的模型名称。

param model_kwargs: dict | None = None#

其他模型关键字参数

param num_ctx: int | None = None#

设置用于生成下一个标记的上下文窗口的大小。(默认值:2048)

param num_gpu: int | None = None#

使用的GPU数量。在macOS上,默认值为1以启用metal支持,0以禁用。

param num_thread: int | None = None#

设置计算过程中使用的线程数。 默认情况下,Ollama 会自动检测以获得最佳性能。 建议将此值设置为系统物理 CPU 核心数(而不是逻辑核心数)。

param query_instruction: str = 'query: '#

用于嵌入查询的指令。

param repeat_last_n: int | None = None#

设置模型回溯的距离以防止重复。(默认值:64,0 = 禁用,-1 = num_ctx)

param repeat_penalty: float | None = None#

设置对重复的惩罚力度。较高的值(例如1.5)将对重复进行更严厉的惩罚,而较低的值(例如0.9)则会更宽松。(默认值:1.1)

param show_progress: bool = False#

是否显示tqdm进度条。必须安装tqdm

param stop: List[str] | None = None#

设置要使用的停止标记。

param temperature: float | None = None#

模型的温度。增加温度会使模型的回答更具创造性。(默认值:0.8)

param tfs_z: float | None = None#

尾部自由采样用于减少输出中不太可能的标记的影响。较高的值(例如2.0)将更多地减少影响,而值为1.0则禁用此设置。(默认值:1)

param top_k: int | None = None#

减少生成无意义内容的概率。较高的值(例如100)将提供更多样化的答案,而较低的值(例如10)将更加保守。(默认值:40)

param top_p: float | None = None#

与top-k一起工作。较高的值(例如0.95)将导致更多样化的文本,而较低的值(例如0.5)将生成更集中和保守的文本。(默认值:0.9)

async aembed_documents(texts: list[str]) list[list[float]]#

异步嵌入搜索文档。

Parameters:

文本 (列表[字符串]) – 要嵌入的文本列表。

Returns:

嵌入列表。

Return type:

列表[列表[浮点数]]

async aembed_query(text: str) list[float]#

异步嵌入查询文本。

Parameters:

文本 (str) – 要嵌入的文本。

Returns:

嵌入。

Return type:

列表[浮点数]

embed_documents(texts: List[str]) List[List[float]][source]#

使用Ollama部署的嵌入模型嵌入文档。

Parameters:

文本 (列表[字符串]) – 要嵌入的文本列表。

Returns:

嵌入列表,每个文本对应一个。

Return type:

列表[列表[float]]

embed_query(text: str) List[float][来源]#

使用Ollama部署的嵌入模型嵌入查询。

Parameters:

文本 (str) – 要嵌入的文本。

Returns:

文本的嵌入。

Return type:

列表[float]

使用 OllamaEmbeddings 的示例