camel.embeddings package

本页内容

camel.embeddings 包#

子模块#

camel.embeddings.base 模块#

class camel.embeddings.base.BaseEmbedding[来源]#

基类: ABC, Generic[T]

文本嵌入功能的抽象基类。

embed(obj: T, **kwargs: Any) list[float][来源]#

为给定文本生成嵌入向量。

Parameters:
  • obj (T) – 要为其生成嵌入的对象。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的浮点数列表

生成的嵌入向量。

Return type:

列表[浮点数]

abstract embed_list(objs: list[T], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[T]) – 需要生成嵌入表示的对象列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成的嵌入的列表

作为浮点数列表的生成嵌入。

Return type:

列表[列表[浮点数]]

abstract get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

camel.embeddings.mistral_embedding 模块#

class camel.embeddings.mistral_embedding.MistralEmbedding(model_type: EmbeddingModelType = EmbeddingModelType.MISTRAL_EMBED, api_key: str | None = None, dimensions: int | None = None)[来源]#

基类:BaseEmbedding[str]

提供使用Mistral模型的文本嵌入功能。

Parameters:
  • model_type (EmbeddingModelType, optional) – 用于文本嵌入的模型类型。 (默认: MISTRAL_EMBED)

  • api_key (str, optional) – 用于与Mistral服务进行身份验证的API密钥。(默认: None)

  • dimensions (int, optional) – 文本嵌入输出的维度。 (default: None)

Raises:

运行时错误 - 如果指定了不受支持的模型类型。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[str]) – 需要生成嵌入向量的文本列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

camel.embeddings.openai_embedding 模块#

class camel.embeddings.openai_embedding.OpenAIEmbedding(model_type: EmbeddingModelType = EmbeddingModelType.TEXT_EMBEDDING_3_SMALL, url: str | None = None, api_key: str | None = None, dimensions: int | NotGiven = NOT_GIVEN)[来源]#

基类:BaseEmbedding[str]

提供使用OpenAI模型的文本嵌入功能。

Parameters:
  • model_type (EmbeddingModelType, optional) – 用于文本嵌入的模型类型。 (默认: TEXT_EMBEDDING_3_SMALL)

  • url (可选[str], 可选) – OpenAI服务的URL地址。 (默认值: None)

  • api_key (str, optional) – 用于OpenAI服务身份验证的API密钥。(默认值: None)

  • dimensions (int, optional) – 文本嵌入输出的维度。 (default: NOT_GIVEN)

Raises:

运行时错误 - 如果指定了不受支持的模型类型。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[str]) – 需要生成嵌入向量的文本列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

camel.embeddings.sentence_transformers_embeddings 模块#

class camel.embeddings.sentence_transformers_embeddings.SentenceTransformerEncoder(model_name: str = 'intfloat/e5-large-v2', **kwargs)[来源]#

基类:BaseEmbedding[str]

该类提供了使用Sentence Transformers生成文本嵌入的功能。

参考文献

https://www.sbert.net/

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

使用模型为给定文本生成嵌入向量。

Parameters:

objs (list[str]) – 需要生成嵌入向量的文本列表。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

嵌入的维度。

Return type:

int

camel.embeddings.vlm_embedding 模块#

class camel.embeddings.vlm_embedding.VisionLanguageEmbedding(model_name: str = 'openai/clip-vit-base-patch32')[来源]#

基类: BaseEmbedding[str | Image]

提供使用多模态模型的图像嵌入功能。

Parameters:

model_name – 用于生成嵌入向量的模型类型。 默认值为: obj:openai/clip-vit-base-patch32

Raises:

运行时错误 - 如果指定了不受支持的模型类型。

embed_list(objs: List[Image | str], **kwargs: Any) List[List[float]][来源]#

为给定的图像或文本生成嵌入向量。

Parameters:
  • objs (List[Image.Image|str]) – 用于生成嵌入向量的图像或文本列表。

  • image_processor_kwargs - 传递给图像处理器的额外参数。

  • tokenizer_kwargs – 传递给文本分词器(processor)的额外参数。

  • model_kwargs – 传递给主模型的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

Raises:

ValueError – 如果输入类型不是Image.Imagestr

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

模块内容#

class camel.embeddings.AzureEmbedding(model_type: EmbeddingModelType = EmbeddingModelType.TEXT_EMBEDDING_3_SMALL, url: str | None = None, api_key: str | None = None, api_version: str | None = None, dimensions: int | None = None)[来源]#

基类:BaseEmbedding[str]

提供使用Azure的OpenAI模型的文本嵌入功能。

Parameters:
  • model_type (EmbeddingModelType, optional) – 用于文本嵌入的模型类型。 (default: TEXT_EMBEDDING_3_SMALL)

  • url (可选[str], 可选) – Azure OpenAI服务的URL。 (默认值: None)

  • api_key (str, optional) – 用于Azure OpenAI服务身份验证的API密钥。(默认: None)

  • api_version (str, optional) – Azure OpenAI服务的API版本。 (默认值: None)

  • dimensions (Optional[int], optional) – 文本嵌入输出的维度。(默认: None)

Raises:
  • RuntimeError - 如果指定了不受支持的模型类型。

  • ValueError - 如果缺少必需的API配置。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

使用Azure OpenAI模型嵌入文本列表。

Parameters:
  • objs (list[str]) – 需要嵌入的文本列表。

  • **kwargs (Any) – 传递给API的额外关键字参数。

Returns:

输入文本的嵌入向量。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

class camel.embeddings.BaseEmbedding[来源]#

基类: ABC, Generic[T]

文本嵌入功能的抽象基类。

embed(obj: T, **kwargs: Any) list[float][来源]#

为给定文本生成嵌入向量。

Parameters:
  • obj (T) – 要为其生成嵌入的对象。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的浮点数列表

生成的嵌入向量。

Return type:

列表[浮点数]

abstract embed_list(objs: list[T], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[T]) – 需要生成嵌入表示的对象列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成的嵌入的列表

作为浮点数列表的生成嵌入。

Return type:

列表[列表[浮点数]]

abstract get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

class camel.embeddings.JinaEmbedding(model_type: EmbeddingModelType = EmbeddingModelType.JINA_EMBEDDINGS_V3, api_key: str | None = None, dimensions: int | None = None, embedding_type: str | None = None, task: str | None = None, late_chunking: bool = False, normalized: bool = False)[来源]#

基类: BaseEmbedding[str | Image]

提供使用Jina AI API的文本和图像嵌入功能。

Parameters:
  • model_type (EmbeddingModelType, optional) – 用于生成嵌入向量的模型类型。(默认: JINA_EMBEDDINGS_V3)

  • api_key (Optional[str], optional) – 用于Jina AI身份验证的API密钥。(默认值: None)

  • dimensions (可选[int], 可选) – 输出嵌入的维度。(默认: None)

  • embedding_type (Optional[str], optional) – 要生成的嵌入格式类型。选项:'int8'(二进制编码,具有更高的存储和传输效率),'uint8'(无符号二进制编码,具有更高的存储和传输效率),'base64'(base64字符串编码,具有更高的传输效率)。(默认值:None

  • task (Optional[str], optional) – 文本嵌入的任务类型。 可选值:retrieval.query, retrieval.passage, text-matching, classification, separation. (默认值: None)

  • late_chunking (bool, optional) – 如果为True,会将输入中的所有句子连接起来并视为单个输入处理。(默认: False)

  • normalized (bool, optional) – 如果为True,嵌入向量会被归一化为单位L2范数。(默认: False)

embed_list(objs: list[str | Image], **kwargs: Any) list[list[float]][来源]#

为给定的文本或图像生成嵌入向量。

Parameters:
  • objs (list[Union[str, Image.Image]]) – 需要生成嵌入向量的文本或图像。

  • **kwargs (Any) - 传递给嵌入API的额外参数。在此实现中未使用。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

Raises:
  • ValueError - 如果输入类型不被支持。

  • RuntimeError - 如果API请求失败。

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

class camel.embeddings.MistralEmbedding(model_type: EmbeddingModelType = EmbeddingModelType.MISTRAL_EMBED, api_key: str | None = None, dimensions: int | None = None)[来源]#

基类:BaseEmbedding[str]

提供使用Mistral模型的文本嵌入功能。

Parameters:
  • model_type (EmbeddingModelType, optional) – 用于文本嵌入的模型类型。 (默认: MISTRAL_EMBED)

  • api_key (str, optional) – 用于与Mistral服务进行身份验证的API密钥。(默认: None)

  • dimensions (int, optional) – 文本嵌入输出的维度。 (default: None)

Raises:

运行时错误 - 如果指定了不受支持的模型类型。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[str]) – 需要生成嵌入向量的文本列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

class camel.embeddings.OpenAICompatibleEmbedding(model_type: str, api_key: str | None = None, url: str | None = None, output_dim: int | None = None)[来源]#

基类:BaseEmbedding[str]

提供支持OpenAI兼容性的文本嵌入功能。

Parameters:
  • model_type (str) - 用于文本嵌入的模型类型。

  • api_key (str) - 用于模型服务身份验证的API密钥。

  • url (str) – 模型服务的URL地址。

  • output_dim (Optional[int]) – 嵌入向量的维度。如果为None,将在第一次嵌入调用时确定。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[str]) – 需要生成嵌入向量的文本列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

Raises:

ValueError – 如果无法确定嵌入维度。

class camel.embeddings.OpenAIEmbedding(model_type: EmbeddingModelType = EmbeddingModelType.TEXT_EMBEDDING_3_SMALL, url: str | None = None, api_key: str | None = None, dimensions: int | NotGiven = NOT_GIVEN)[来源]#

基类:BaseEmbedding[str]

提供使用OpenAI模型的文本嵌入功能。

Parameters:
  • model_type (EmbeddingModelType, optional) – 用于文本嵌入的模型类型。 (default: TEXT_EMBEDDING_3_SMALL)

  • url (可选[str], 可选) – OpenAI服务的URL地址。 (默认值: None)

  • api_key (str, optional) – 用于OpenAI服务身份验证的API密钥。(默认值: None)

  • dimensions (int, optional) – 文本嵌入输出的维度。 (default: NOT_GIVEN)

Raises:

运行时错误 - 如果指定了不受支持的模型类型。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[str]) – 需要生成嵌入向量的文本列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

class camel.embeddings.SentenceTransformerEncoder(model_name: str = 'intfloat/e5-large-v2', **kwargs)[来源]#

基类:BaseEmbedding[str]

该类提供了使用Sentence Transformers生成文本嵌入的功能。

参考文献

https://www.sbert.net/

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

使用模型为给定文本生成嵌入向量。

Parameters:

objs (list[str]) – 需要生成嵌入向量的文本列表。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

嵌入的维度。

Return type:

int

class camel.embeddings.TogetherEmbedding(model_name: str = 'togethercomputer/m2-bert-80M-8k-retrieval', api_key: str | None = None, dimensions: int | None = None)[来源]#

基类:BaseEmbedding[str]

提供使用Together AI模型的文本嵌入功能。

Parameters:
  • model_name (str, optional) – 用于文本嵌入的模型名称。 (默认: togethercomputer/m2-bert-80M-8k-retrieval)

  • api_key (str, optional) – 用于与Together服务进行身份验证的API密钥。(默认: None)

  • dimensions (int, optional) – 文本嵌入输出的维度。 (default: None)

Raises:
  • ValueError - 如果模型名称格式无效或提供了空输入列表。

  • RuntimeError - 如果API请求失败。

embed_list(objs: list[str], **kwargs: Any) list[list[float]][来源]#

为给定文本生成嵌入向量。

Parameters:
  • objs (list[str]) – 需要生成嵌入向量的文本列表。

  • **kwargs (Any) – 传递给嵌入API的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

Raises:
  • ValueError - 如果输入列表为空。

  • RuntimeError - 如果API请求失败。

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int

Raises:

ValueError – 如果无法确定嵌入维度。

class camel.embeddings.VisionLanguageEmbedding(model_name: str = 'openai/clip-vit-base-patch32')[来源]#

基类: BaseEmbedding[str | Image]

提供使用多模态模型的图像嵌入功能。

Parameters:

model_name – 用于生成嵌入向量的模型类型。 默认值为: obj:openai/clip-vit-base-patch32

Raises:

运行时错误 - 如果指定了不受支持的模型类型。

embed_list(objs: List[Image | str], **kwargs: Any) List[List[float]][来源]#

为给定的图像或文本生成嵌入向量。

Parameters:
  • objs (List[Image.Image|str]) – 用于生成嵌入向量的图像或文本列表。

  • image_processor_kwargs - 传递给图像处理器的额外参数。

  • tokenizer_kwargs – 传递给文本分词器(processor)的额外参数。

  • model_kwargs – 传递给主模型的额外参数。

Returns:

表示生成嵌入的列表

作为浮点数的列表。

Return type:

列表[列表[浮点数]]

Raises:

ValueError – 如果输入类型不是Image.Imagestr

get_output_dim() int[来源]#

返回嵌入向量的输出维度。

Returns:

当前模型的嵌入维度。

Return type:

int