介绍
在 DashScope 中,DashScopeEmbedding 是用于生成文本向量嵌入的模型组件
官网:
https://developers.llamaindex.ai/python/framework-api-reference/embeddings/dashscope/
但官网介绍的参数太少了
参数解释
model_name
指定嵌入模型名称,例如:
text-embedding-v1(通用文本嵌入模型)text-embedding-v2(升级版,支持更长文本)
不同模型的最大输入长度(Token 限制)不同。
api_key
阿里云账号的 DashScope API 密钥,用于身份验证。
dimensions(可选)
自定义输出向量的维度(部分模型支持,如 text-embedding-v2 可指定 768/1024 等维度)。
input_type(可选)
输入文本类型,主要有两种常见取值:
"query":表示输入文本是“查询文本”(例如用户的问题、搜索关键词)。"document":表示输入文本是“文档文本”(例如知识库中的段落、待检索的内容)。
作用原理
嵌入模型的核心是生成文本的向量表示,使得语义相似的文本在向量空间中距离更近。
通过指定 input_type,模型可以:
- 针对“查询”和“文档”的不同语义特点调整编码逻辑
- 让“查询向量”与“文档向量”在同一空间中更精准地匹配
- 提升后续检索(如 RAG 场景中“查询匹配文档”)的准确性
使用示例
from dashscope.text.embedding import Embedding
# 生成查询文本的嵌入(用户问题)
query_embedding = Embedding.call(
model=Embedding.Models.text_embedding_v2,
input="DashScope 如何计费?",
input_type="query", # 明确标记为查询
api_key="你的API密钥"
)
# 生成文档文本的嵌入(知识库内容)
doc_embedding = Embedding.call(
model=Embedding.Models.text_embedding_v2,
input="DashScope 仅在模型推理成功时计费,按 token 或调用量计算。",
input_type="document", # 明确标记为文档
api_key="你的API密钥"
)
注意事项
- 若不指定
input_type,模型会默认按document处理。 - 在检索场景(如 RAG)中,强烈建议区分设置:查询用
query,文档用document,可显著提升匹配精度。 - 部分模型可能仅支持特定的
input_type取值,需参考官方文档确认。
简单说,input_type 就是告诉模型“这段文本是来提问的,还是来提供答案的”,帮助模型生成更贴合场景的向量。