Ao armazenar grandes volumes de dados não estruturados, como imagens e vídeos, no Object Storage Service (OSS), os métodos tradicionais de busca baseados em nomes de arquivos ou tags manuais tornam-se ineficientes. Essas abordagens não compreendem a semântica do conteúdo dos arquivos. O OSS utiliza modelos de IA multimodais para extrair automaticamente descrições semânticas e resumos concisos dos arquivos em um bucket. Essas informações criam um índice pesquisável que permite buscar o conteúdo dos arquivos diretamente em linguagem natural. Use recursos avançados de pesquisa, como busca de texto para imagem e de texto para vídeo, para aumentar significativamente a precisão e a eficiência na recuperação de dados. Além disso, obtenha uma base sólida para desenvolver aplicações avançadas, como geração aumentada por recuperação (RAG).
Cenários
Pesquisa inteligente para cenários de câmera IP (IPC): Em ambientes de segurança inteligente, este recurso oferece suporte à pesquisa semântica para reprodução de vídeo, envio de eventos de monitoramento e recomendação de palavras-chave em tendência no aplicativo. Por exemplo, ao assistir a uma gravação, o usuário final recebe automaticamente as "Palavras-chave em Tendência Hoje".
Base de conhecimento para geração aumentada por recuperação (RAG): Construa uma base de conhecimento RAG externa usando o grande volume de dados e as capacidades de consciência de conteúdo do OSS. Quando um usuário faz uma pergunta, o recurso de consciência de conteúdo aprimora o processo de recuperação do RAG. Assim, os modelos grandes recebem um contexto mais preciso e relevante para gerar respostas de maior qualidade.
Plataforma de armazenamento e gestão de conhecimento: Desenvolva plataformas de gestão de conhecimento, gestão de ativos de mídia e escritórios inteligentes corporativos com base no conteúdo obtido pela indexação de dados e consciência de conteúdo do OSS. Os recursos de indexação de dados e consciência de conteúdo extraem quase 70 itens de metadados de arquivos multimídia. Utilize esses metadados para criar plataformas de gestão de conhecimento baseadas em nuvem.
Como funciona
A pesquisa semântica é o núcleo da Consciência de Conteúdo com IA. Ela compreende a linguagem natural para corresponder consultas ao conteúdo multimídia dos arquivos, em vez de depender da correspondência tradicional de palavras-chave. O processo ocorre da seguinte forma:
Ative o recurso e realize a indexação inicial: Ao ativar este recurso para um bucket, o sistema inicia uma varredura única dos arquivos existentes e processa assincronamente todos os arquivos compatíveis no bucket.
Extraia recursos e gere descrições: O sistema usa um modelo grande para extrair os principais recursos semânticos de cada arquivo. Ele gera dois tipos de texto descritivo com consciência de conteúdo: uma descrição detalhada (cerca de 100 palavras) e um resumo conciso (menos de 20 palavras).
Vetorize e crie um índice: O sistema vetoriza os recursos semânticos e as descrições com consciência de conteúdo dos arquivos. Em seguida, constrói uma biblioteca de índices vetoriais para suportar pesquisas de alto desempenho em larga escala.
Execute a pesquisa semântica e a reclassificação: Quando um usuário inicia uma consulta, o sistema vetoriza a instrução de busca e recupera os arquivos mais semelhantes do índice vetorial. Depois, combina as representações vetoriais e as descrições com consciência de conteúdo para reclassificar os resultados. Isso melhora a precisão e a taxa de recall, identifica informações-chave com exatidão em grandes conjuntos de dados e viabiliza uma pesquisa semântica aprimorada.
Retorne resultados para aplicações: Os resultados da pesquisa incluem as descrições detalhadas e os resumos concisos gerados pelo recurso de consciência de conteúdo. Obtenha diretamente as informações-chave e utilize-as para criar aplicações avançadas, como "Tendências de Pesquisa" ou "Resumo Diário".
A indexação inicial é executada de forma assíncrona. O processo pode levar de alguns minutos a várias horas, dependendo da quantidade e do tamanho dos arquivos no bucket. Durante esse período, não é possível pesquisar os arquivos existentes. Para arquivos novos ou atualizados, o sistema aciona automaticamente uma atualização incremental do índice.
Limites
Antes de começar, verifique se o seu bucket está em uma das seguintes regiões compatíveis com a Consciência de Conteúdo com IA: China (Pequim), China (Zhangjiakou), China (Hangzhou), China (Xangai), China (Shenzhen) e China (Chengdu).
1. Criar um bucket e carregar arquivos
Faça login no console do OSS.
Na página Buckets, clique em Create Bucket.
Na página Create Bucket, insira um nome de bucket relevante para o seu negócio, como
videos-oss-metaquery. Mantenha as configurações padrão para os demais parâmetros.Clique em Create. Na página de sucesso, clique em View Bucket.
Na página Objects, clique em . Selecione os arquivos de vídeo para upload, como VideoA.mp4, VideoB.mp4 e VideoC.mp4. Mantenha as configurações padrão para os outros parâmetros e clique em Upload.
2. Ativar a Consciência de Conteúdo com IA
Ative a Consciência de Conteúdo com IA do OSS para o seu bucket no recurso Data Index - AISearch. Após a ativação, use a API de consulta do Data Index para realizar pesquisas e consultas semânticas.
Nota
A criação do índice de metadados leva algum tempo. A duração depende do número de objetos no bucket. Se demorar muito, atualize a página para verificar o status da ativação. |
|
3. Executar uma consulta
Após a criação do índice, execute pesquisas semânticas usando o console, um SDK ou uma interface de linha de comando. Basta inserir um texto descritivo, como a yard with a parked car, e o sistema retorna os principais arquivos correspondentes e seus resumos de conteúdo. Desenvolva aplicações diretamente com base nesta API ou SDK. Não é necessário gerenciar a elasticidade dos recursos subjacentes, o processo de vetorização ou a criação e armazenamento de índices, pois o serviço é totalmente serverless.
Console
|
|
SDK
Java
O recurso de pesquisa vetorial está disponível apenas no Java SDK 3.18.2 e versões posteriores. Para mais informações, consulte Pesquisa Vetorial (Java SDK V1).
Python
Para mais informações, consulte AISearch.
import argparse
import alibabacloud_oss_v2 as oss
# Create a command-line argument parser to process command-line input.
parser = argparse.ArgumentParser(description="do meta query semantic sample")
# Add the necessary command-line arguments.
parser.add_argument('--region', help='The region in which the bucket is located.', required=True) # The region where the bucket is located.
parser.add_argument('--bucket', help='The name of the bucket.', required=True) # The name of the bucket.
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS') # The OSS domain name, which is optional.
def main():
# Parse command-line arguments.
args = parser.parse_args()
# Load access credentials from environment variables.
# Before running, you need to set the environment variables: OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# Load the default SDK configurations.
cfg = oss.config.load_default()
# Set the credential provider.
cfg.credentials_provider = credentials_provider
# Set the region.
cfg.region = args.region
# If an endpoint is provided, update the endpoint in the configuration.
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# Create an OSS client instance.
client = oss.Client(cfg)
# Initiate a metadata query request in AISearch mode.
result = client.do_meta_query(oss.DoMetaQueryRequest(
bucket=args.bucket,
mode='semantic',
meta_query=oss.MetaQuery(
max_results=1000,
query='An aerial view of a snow-covered forest',
order='desc',
media_types=oss.MetaQueryMediaTypes(
media_type=['image']
),
simple_query='{"Operation":"gt", "Field": "Size", "Value": "30"}',
),
))
# Print the retrieval results.
print(vars(result))
if __name__ == "__main__":
main()
Go
Para mais informações, consulte AISearch (Go SDK V2).
package main
import (
"context"
"flag"
"log"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)
var (
region string
bucketName string
)
func init() {
// Set a command-line flag to specify the region.
flag.StringVar(®ion, "region", "", "The region in which the bucket is located.")
// Set a command-line flag to specify the bucket name.
flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
}
func main() {
flag.Parse()
// Check if the bucket name is provided.
if len(bucketName) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, bucket name required")
}
// Check if the region is provided.
if len(region) == 0 {
flag.PrintDefaults()
log.Fatalf("invalid parameters, region required")
}
// Create a client configuration and use credentials from environment variables and the specified region.
cfg := oss.LoadDefaultConfig().
WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
WithRegion(region)
client := oss.NewClient(cfg) // Create an OSS client.
// Perform an AISearch operation.
request := &oss.DoMetaQueryRequest{
Bucket: oss.Ptr(bucketName),
Mode: oss.Ptr("semantic"),
MetaQuery: &oss.MetaQuery{
MaxResults: oss.Ptr(int64(99)),
Query: oss.Ptr(`{"Operation":"match","Field":"Filename","Value":"snow"}`), // The Query parameter must be in JSON format (for example, {"Operation":"match","Field":"Filename","Value":"snow"}).
MediaTypes: &oss.MetaQueryMediaTypes{
MediaTypes: []string{"image"}, // Specify the media types to search. In this example, "image".
},
SimpleQuery: oss.Ptr(`{"Operation":"gt", "Field": "Size", "Value": "30"}`),
},
}
result, err := client.DoMetaQuery(context.TODO(), request)
if err != nil {
log.Fatalf("failed to do meta query %v", err)
}
log.Printf("do meta query result:%#v\n", result)
}
PHP
Para mais informações, consulte AISearch (PHP SDK V2).
<?php
// Import the autoloader file to ensure that dependency libraries are correctly loaded.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Define the description of command line arguments.
$optsdesc = [
"region" => ['help' => 'The region in which the bucket is located.', 'required' => True], // The region where the bucket is located. This parameter is required.
"endpoint" => ['help' => 'The domain names that other services can use to access OSS.', 'required' => False], // The endpoint that other services can use to access OSS. This parameter is optional.
"bucket" => ['help' => 'The name of the bucket', 'required' => True], // The name of the bucket. This parameter is required.
];
// Convert the argument description to the long option format required by getopt.
// A colon (:) after each argument indicates that the argument requires a value.
$longopts = \array_map(function ($key) {
return "$key:";
}, array_keys($optsdesc));
// Parse the command line arguments.
$options = getopt("", $longopts);
// Check whether required arguments are specified.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Obtain the help information of the argument.
echo "Error: the following arguments are required: --$key, $help" . PHP_EOL;
exit(1); // If a required argument is not specified, exit the program.
}
}
// Extract values from the parsed arguments.
$region = $options["region"]; // The region where the bucket is located.
$bucket = $options["bucket"]; // The name of the bucket.
// Load the credential information from environment variables.
// Use EnvironmentVariableCredentialsProvider to read the Access Key ID and Access Key Secret from environment variables.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Use the default configurations of the SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Set the credential provider.
$cfg->setRegion($region); // Set the region where the bucket is located.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // If an endpoint is provided, set the endpoint.
}
// Create an OSS client instance.
$client = new Oss\Client($cfg);
// Perform an AISearch query for objects that meet the specified conditions.
$request = new Oss\Models\DoMetaQueryRequest($bucket, new Oss\Models\MetaQuery(
maxResults: 99,
query: "Overlook the snow-covered forest",
mediaTypes: new Oss\Models\MetaQueryMediaTypes('image'),
simpleQuery: '{"Operation":"gt", "Field": "Size", "Value": "30"}',
), 'semantic');
$result = $client->doMetaQuery($request);
printf(
'status code:' . $result->statusCode . PHP_EOL .
'request id:' . $result->requestId . PHP_EOL .
'result:' . var_export($result, true)
);
ossutil
O exemplo a seguir mostra como consultar arquivos que atendem a condições especificadas no bucket examplebucket.
ossutil api do-meta-query --bucket examplebucket --meta-query "{\"Query\":\"Overlooking the snow covered forest\",\"MediaTypes\":{\"MediaType\":\"video\"},\"SimpleQuery\":\"{\\\"Operation\\\":\\\"gt\\\", \\\"Field\\\": \\\"Size\\\", \\\"Value\\\": \\\"1\\\"}\"}" --meta-query-mode semantic
Para mais informações sobre este comando, consulte do-meta-query.
Faturamento
O uso do recurso de Consciência de Conteúdo com IA gera as seguintes taxas:
Taxas de indexação de dados: Ative a Consciência de Conteúdo com IA no modo Data Index - AISearch. Isso gera taxas relacionadas ao Data Index - AISearch.
Taxas de Consciência de Conteúdo com IA: Essas taxas incluem cobranças por consciência de conteúdo de imagem e vídeo, faturadas com base no tipo e uso dos arquivos processados. Após ativar a Consciência de Conteúdo com IA, o OSS verifica automaticamente os arquivos de imagem e vídeo existentes no bucket. Quando novos arquivos de imagem ou vídeo são carregados, o OSS aciona automaticamente a Consciência de Conteúdo com IA. Esses arquivos recém-carregados também incorrem em taxas de Consciência de Conteúdo com IA. Recomendamos monitorar suas faturas atentamente.
-
Taxas de solicitação de API: As taxas de solicitação de API são geradas durante a indexação de arquivos existentes e a atualização de índices para arquivos incrementais. Essas taxas são cobradas com base no número de chamadas de API. As operações de API relevantes são as seguintes:
Operação
API
Verificar arquivos em um bucket
ListObjects
Criar um índice para arquivos em um bucket
HeadObject e GetObject
O arquivo no bucket possui uma tag
GetObjectTag
O arquivo no bucket possui metadados personalizados
GetObjectMeta
O bucket contém um arquivo de link simbólico
GetSymlink
Para evitar cobranças adicionais, desative o AISearch prontamente.
APIs relacionadas
O recurso de Consciência de Conteúdo com IA é implementado com base nas seguintes APIs RESTful. Caso sua aplicação tenha requisitos elevados de personalização, chame essas APIs diretamente para o desenvolvimento. No entanto, implemente manualmente o cálculo de assinatura.
Para mais informações sobre como ativar o recurso de gestão de metadados, consulte OpenMetaQuery.
Para consultar o status atual da gestão de metadados, consulte GetMetaQueryStatus.
Para consultar arquivos que atendem a condições especificadas, consulte DoMetaQuery.
Para desativar o recurso de gestão de metadados, consulte CloseMetaQuery.


