昇腾社区首页
中文
注册

类功能

功能描述

本地使用cn_clip启动模型,提供将图片和文本的embedding功能。ImageEmbedding类继承实现了langchain_core.embeddings.Embeddings接口。

函数原型

from mx_rag.embedding.local import ImageEmbedding
ImageEmbedding(model_name, model_path, dev_id)

输入参数说明

参数名

数据类型

可选/必选

说明

model_name

str

必选

模型名称,必须为['ViT-B-16', 'ViT-L-14', 'ViT-L-14-336', 'ViT-H-14', 'RN50']其中之一。

model_path

str

必选

模型权重文件目录,路径长度不能超过1024,不能为软链接和相对路径。

  • 目录下的各文件大小不能超过10GB、深度不超过64,且文件总个数不超过512。
  • 运行用户的属组,以及非运行用户不能有该目录下文件的写权限。
  • 目录下的文件以及文件的上一级目录的属组必须是运行用户。

dev_id

int

可选

模型运行的NPU卡ID,取值范围[0, 63],默认为“0”

返回值说明

ImageEmbedding对象。

调用示例

import sys
from paddle.base import libpaddle
from mx_rag.document.loader import ImageLoader
from mx_rag.embedding.local import ImageEmbedding
embed = ImageEmbedding.create(model_name="ViT-B-16", model_path="/data/chinese-clip-vit-base-patch16")
print(embed.embed_documents(['abc', 'bcd']))
print(embed.embed_query('abc'))
                                
loader = ImageLoader("image path")
docs = loader.load()
if len(docs) < 1:
    print("load image failed")
    sys.exit(1)
    
print(embed.embed_images([docs[0].page_content]))