Skip to content
LlamaIndex 文档版本 跟随上游 源快照 8caa997b 更新于 2026-10-18

探索 MixedBread AI 嵌入模型的自定义编码格式(binary、int、float、base64 等)、嵌入维度(Matryoshka)和上下文提示能力。

如果你在 Colab 中打开这个 Notebook,可能需要先安装 LlamaIndex 🦙。

%pip install llama-index-embeddings-mixedbreadai
!pip install llama-index
import os
from llama_index.embeddings.mixedbreadai import MixedbreadAIEmbedding
# API Key and Embedding Initialization

# You can visit https://www.mixedbread.ai/api-reference#quick-start-guide
# to get an api key
mixedbread_api_key = os.environ.get("MXBAI_API_KEY", "your-api-key")

# Please check https://www.mixedbread.ai/docs/embeddings/models#whats-new-in-the-mixedbread-embed-model-family
# for our embedding models
model_name = "mixedbread-ai/mxbai-embed-large-v1"
oven = MixedbreadAIEmbedding(api_key=mixedbread_api_key, model_name=model_name)

embeddings = oven.get_query_embedding("Why bread is so tasty?")

print(len(embeddings))
print(embeddings[:5])
1024
[0.01128387451171875, 0.031097412109375, -0.00606536865234375, 0.0291748046875, -0.038604736328125]

使用提示词进行上下文嵌入

提示词可以帮助模型更好地理解嵌入在后续任务中的用途,从而提升性能。我们的实验表明,使用领域特定的提示词可以提升性能。

prompt_for_retrieval = (
    "Represent this sentence for searching relevant passages:"
)

contextual_oven = MixedbreadAIEmbedding(
    api_key=mixedbread_api_key,
    model_name=model_name,
    prompt=prompt_for_retrieval,
)

contextual_embeddings = contextual_oven.get_query_embedding(
    "What bread is invented in Germany?"
)

print(len(contextual_embeddings))
print(contextual_embeddings[:5])
1024
[-0.0235443115234375, -0.0152435302734375, 0.008392333984375, 0.00336456298828125, -0.044647216796875]

量化与 Matryoshka 支持

Mixedbread AI 嵌入支持量化和 matryoshka,以缩小嵌入尺寸、改善存储,同时保留大部分性能。更多信息请参阅以下文章:

使用不同的编码格式

默认的 encoding_format 是 float。我们还支持 float16、binary、ubinary、int8、uint8、base64。

# with `binary` embedding types
binary_oven = MixedbreadAIEmbedding(
    api_key=mixedbread_api_key,
    model_name=model_name,
    encoding_format="binary",
)

binary_embeddings = binary_oven.get_text_embedding(
    "The bread is tiny but still filling!"
)

print(len(binary_embeddings))
print(binary_embeddings[:5])
128
[-121.0, 96.0, -108.0, 111.0, 110.0]

使用不同的嵌入维度

Mixedbread AI 嵌入模型支持 Matryoshka 维度截断。默认维度设为模型的最大值。请关注我们的网站,了解哪些模型支持 Matryoshka。

# with truncated dimension
half_oven = MixedbreadAIEmbedding(
    api_key=mixedbread_api_key,
    model_name=model_name,
    dimensions=512,  # 1024 is the maximum of `mxbai-embed-large-v1`
)

half_embeddings = half_oven.get_text_embedding(
    "I want the better half of my bread."
)

print(len(half_embeddings))
print(half_embeddings[:5])
512
[-0.014221191, -0.013671875, -0.03314209, 0.025909424, -0.035095215]

BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。