VectorStoreCollection<TKey,TRecord>.UpsertAsync Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Insere um registo no armazenamento vetorial. Se o registo já existe, é atualizado. Se não existir, é criado.
Sobrecargas
| Name | Descrição |
|---|---|
| UpsertAsync(IEnumerable<TRecord>, CancellationToken) |
Coloca um lote de registos no armazenamento vetorial. Não garante que a coleção exista. Se o registo já existir, é atualizado. Se o registo não existir, é criado. |
| UpsertAsync(TRecord, CancellationToken) |
Insere um registo no armazenamento vetorial. Não garante que a coleção exista. Se o registo já existir, é atualizado. Se o registo não existir, é criado. |
UpsertAsync(IEnumerable<TRecord>, CancellationToken)
- Origem:
- VectorStoreCollection.cs
Coloca um lote de registos no armazenamento vetorial. Não garante que a coleção exista. Se o registo já existir, é atualizado. Se o registo não existir, é criado.
public abstract System.Threading.Tasks.Task UpsertAsync(System.Collections.Generic.IEnumerable<TRecord> records, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertAsync : seq<'Record (requires 'Record : null)> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public MustOverride Function UpsertAsync (records As IEnumerable(Of TRecord), Optional cancellationToken As CancellationToken = Nothing) As Task
Parâmetros
- records
- IEnumerable<TRecord>
Os registos para subir.
- cancellationToken
- CancellationToken
O CancellationToken para monitorizar pedidos de cancelamento. A predefinição é None.
Devoluções
A Task que termina quando os registos foram atualizados.
Exceções
O comando falha em executar por qualquer motivo.
Observações
O método exato de upserting do lote é específico da implementação e pode variar consoante o suporte à base de dados.
De forma semelhante, o comportamento do erro pode variar entre bases de dados: sempre que possível, o lote deve ser invertido atomicamente, para que quaisquer erros provoquem a reversão de todo o lote. Quando não são suportados, alguns discos podem ser atualizados enquanto outros não. Se as propriedades chave forem definidas pelo utilizador, então toda a operação upsert é idempotente e pode simplesmente ser tentada novamente se ocorrer um erro. No entanto, se as chaves geradas pela loja estiverem em uso, a operação upsert deixa de ser idempotente; Nesse caso, se a base de dados não garantir atomicidade, tentar novamente pode causar a criação de registos duplicados.
As implementações de VectorStoreCollection<TKey,TRecord> devem implementar este método de forma a realizar a geração de embedding uma vez para o batch, em vez de gerar um embedding para cada registo separadamente. É por isso que não é fornecida uma implementação padrão que chame UpsertAsync(TRecord, CancellationToken) .
Aplica-se a
UpsertAsync(TRecord, CancellationToken)
- Origem:
- VectorStoreCollection.cs
Insere um registo no armazenamento vetorial. Não garante que a coleção exista. Se o registo já existir, é atualizado. Se o registo não existir, é criado.
public abstract System.Threading.Tasks.Task UpsertAsync(TRecord record, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertAsync : 'Record * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public MustOverride Function UpsertAsync (record As TRecord, Optional cancellationToken As CancellationToken = Nothing) As Task
Parâmetros
- record
- TRecord
O recorde para upsert.
- cancellationToken
- CancellationToken
O CancellationToken para monitorizar pedidos de cancelamento. A predefinição é None.
Devoluções
A Task que termina quando o registo foi atualizado.
Exceções
O comando falha em executar por qualquer motivo.