在自然语言处理(NLP)和人工智能(AI)的领域,文本嵌入技术被广泛应用于各种任务,如信息检索、文本分类和语义分析。本文将介绍如何使用DashScope Embeddings进行文本嵌入,并提供一些示例代码。
安装LlamaIndex和DashScope Embeddings
首先,我们需要安装llama-index-core
和llama-index-embeddings-dashscope
。可以使用以下命令:
%pip install llama-index-core
%pip install llama-index-embeddings-dashscope
然后,设置API密钥:
%env DASHSCOPE_API_KEY=YOUR_DASHSCOPE_API_KEY
使用DashScope Embeddings进行文本嵌入
单文本嵌入
以下示例展示了如何对单个文本进行嵌入:
# 导入库
from llama_index.embeddings.dashscope import (
DashScopeEmbedding,
DashScopeTextEmbeddingModels,
DashScopeTextEmbeddingType,
)
# 创建嵌入对象
embedder = DashScopeEmbedding(
model_name=DashScopeTextEmbeddingModels.TEXT_EMBEDDING_V2,
text_type=DashScopeTextEmbeddingType.TEXT_TYPE_QUERY,
)
# 进行文本嵌入
embedding = embedder.get_text_embedding("衣服的质量杠杠的,很漂亮,不枉我等了这么久啊,喜欢,以后还来这里买")
print(f"嵌入维度: {len(embedding)}")
print(embedding[:5])
输出结果:
嵌入维度: 1536
[-0.00838587212517078, 0.01004877272531103, 0.0015754734226650637, -0.04273583173235969, -0.05209946086276315]
注释 : //中转API
批量文本嵌入
如果需要对多个文本进行嵌入,可以使用批量嵌入功能:
# 导入库
from llama_index.embeddings.dashscope import (
DashScopeEmbedding,
DashScopeBatchTextEmbeddingModels,
DashScopeTextEmbeddingType,
)
# 创建嵌入对象
embedder = DashScopeEmbedding(
model_name=DashScopeBatchTextEmbeddingModels.TEXT_EMBEDDING_ASYNC_V2,
text_type=DashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT,
)
# 批量文本嵌入
embedding_result_file_url = embedder.get_batch_text_embedding(
embedding_file_url="https://dashscope.oss-cn-beijing.aliyuncs.com/samples/text/text-embedding-test.txt"
)
print(embedding_result_file_url)
注释 : //中转API
多模态嵌入
DashScope Embeddings还支持多模态嵌入,包括文本、图像和音频:
# 导入库
from llama_index.embeddings.dashscope import (
DashScopeEmbedding,
DashScopeMultiModalEmbeddingModels,
)
# 创建嵌入对象
embedder = DashScopeEmbedding(
model_name=DashScopeMultiModalEmbeddingModels.MULTIMODAL_EMBEDDING_ONE_PEACE_V1,
)
input = [
{"factor": 1, "text": "你好"},
{
"factor": 2,
"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/cow.flac",
},
{
"factor": 3,
"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png",
},
]
# 进行多模态嵌入
embedding = embedder.get_multimodal_embedding(input=input)
print(f"嵌入维度: {len(embedding)}")
print(embedding[:5])
注释 : //中转API
可能遇到的错误
- API Key错误: 请确保API密钥正确且未过期。
- 网络问题: 请确保网络连接正常,特别是在访问外部资源时。
- 输入数据格式错误: 确保输入数据格式符合API要求,文本、图像和音频的URL地址需正确。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: