Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/

Como criar incorporações vetoriais

Nesta página

  • Escolha um método para criar incorporações
  • Criar e armazenar incorporações a partir de dados
  • Pré-requisitos
  • Procedimento
  • Criar incorporações para queries
  • Procedimento

As incorporações vetoriais representam seus dados como pontos no espaço multidimensional. Essas incorporações capturam relacionamentos significativos em seus dados e habilitam tarefas como pesquisa e recuperação semântica. Você pode armazenar incorporações vetoriais junto com seus outros dados no Atlas e utilizar o Atlas Vector Search para consultar seus dados vetorizados.

Para realizar uma pesquisa vetorial em suas incorporações, faça o seguinte:

  1. Escolha um método para criar incorporações vetoriais.

  2. Crie incorporações vetoriais a partir dos seus dados e armazene-as no Atlas.

  3. Crie uma incorporação de vetor que represente sua consulta de pesquisa e execute a consulta.

O Atlas Vector Search retorna documentos cujas incorporações vetoriais estão mais próximas da incorporação que representa sua query. Isso indica que eles são semelhantes em significado.

Para criar incorporações vetoriais, é necessário usar um modelo de incorporação. Para conectar a um modelo de incorporação e criar embeddings para o Atlas Vector Search, utilize um dos seguintes métodos:

Método
Descrição
Tutoriais
Carregar um modelo open-source
Se você não tiver chaves ou créditos deAPI com um serviço de incorporação, use um modelo de incorporação de código aberto carregando-o localmente a partir do seu aplicativo.
Create and Store Embeddings
Ligue para um serviço de incorporação
A maioria dos fornecedores de IA oferece APIspara seus modelos de incorporação proprietários que você pode usar para criar incorporações vetoriais.
Usar uma integração

Você pode integrar o Atlas Vector Search com estruturas de código aberto como LangChain e LlamaIndex, serviços como Amazon Leite e muito mais.

Essas integrações incluem bibliotecas e ferramentas internas para ajudá-lo a se conectar rapidamente a modelos de incorporação de código aberto e proprietários e a gerar incorporações vetoriais para o Atlas Vector Search.

O procedimento a seguir mostra como criar incorporações vetoriais e armazená-las no Atlas usando um modelo de incorporação proprietário ou de código aberto.


➤ Use o menu suspenso Selecione sua linguagem para definir o idioma dos exemplos nesta página.


Para executar esses exemplos, você deve ter o seguinte:

  • Um Atlas cluster executando o MongoDB versão 6.0.11, 7.0.2 ou posterior. Garanta que seu endereço IP esteja incluído na lista de acessodo seu projeto Atlas.

  • Um ambiente para executar blocos de anotações interativos do Python, como o CoLab.

Conclua as etapas a seguir para criar incorporações vetoriais a partir de dados personalizados e armazená-los em uma coleção no Atlas. Você também pode modificar o seguinte código para gerar incorporações a partir de seus próprios dados de qualquer tipo.

Observação

Se você quiser criar incorporações para uma coleta existente, deverá adicionar um novo campo que contenha a incorporação e atualizar cada documento na coleta.

1

Em uma janela do terminal, execute os seguintes comandos para criar um novo diretório denominado my-embeddings-project e inicializar seu projeto:

mkdir my-embeddings-project
cd my-embeddings-project
npm init -y
2

Configure seu projeto para usar módulos ES adicionando "type": "module" ao seu package.json arquivo e salvando-o.

{
"type": "module",
// other fields...
}
3

Em uma janela do terminal, execute o seguinte comando:

npm install mongodb @xenova/transformers
4
  1. Crie um arquivo denominado create-embeddings.js e cole o seguinte código. Este código faz o seguinte:

    • Cria e exporta uma função assíncrona denominada getEmbedding para gerar uma incorporação para uma determinada entrada. Esta função também especifica:

    • Gera incorporações a partir dos dados de texto de exemplo e as ingere na coleção sample_db.embeddings no Atlas usando o Driver MongoDB Node.js.

    create-embeddings.js
    import { MongoClient } from 'mongodb';
    import { pipeline } from '@xenova/transformers';
    // Function to generate embeddings for a given data source
    export async function getEmbedding(data) {
    const embedder = await pipeline(
    'feature-extraction',
    'Xenova/nomic-embed-text-v1');
    const response = await embedder(data, { pooling: 'mean', normalize: true });
    return Array.from(response.data);
    }
    // Data to embed
    const data = [
    "Titanic: The story of the 1912 sinking of the largest luxury liner ever built",
    "The Lion King: Lion cub and future king Simba searches for his identity",
    "Avatar: A marine is dispatched to the moon Pandora on a unique mission"
    ]
    async function run() {
    // Connect to your Atlas cluster
    const uri = "<connectionString>";
    const client = new MongoClient(uri);
    try {
    await client.connect();
    const db = client.db("sample_db");
    const collection = db.collection("embeddings");
    // Ingest data and embeddings into Atlas
    await Promise.all(data.map(async text => {
    const embedding = await getEmbedding(text);
    // Check if the document already exists before inserting
    const existingDoc = await collection.findOne({ text: text });
    if (!existingDoc) {
    await collection.insertOne({
    text: text,
    embedding: embedding
    });
    console.log(embedding);
    }
    }));
    } catch (err) {
    console.log(err.stack);
    }
    finally {
    await client.close();
    }
    }
    run().catch(console.dir);
  2. Substitua <connectionString> pela connection string SRVdo Atlas cluster.

    Observação

    Sua string de conexão deve usar o seguinte formato:

    mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net
  3. Salve o arquivo e execute o seguinte comando:

    node create-embeddings.js
    [ -0.04323853924870491, -0.008460805751383305, 0.012494648806750774, -0.013014335185289383, ... ]
    [ -0.017400473356246948, 0.04922063276171684, -0.002836339408531785, -0.030395228415727615, ... ]
    [ -0.016950927674770355, 0.013881809078156948, -0.022074559703469276, -0.02838018536567688, ... ]

    Observação

    O número de dimensões na saída foi truncado para legibilidade.

    Você também pode visualizar suas incorporações vetoriais na UI do Atlas navegando até a coleção sample_db.embeddings em seu cluster.

1

Em uma janela do terminal, execute os seguintes comandos para criar um novo diretório denominado my-embeddings-project e inicializar seu projeto:

mkdir my-embeddings-project
cd my-embeddings-project
npm init -y
2

Configure seu projeto para usar módulos ES adicionando "type": "module" ao seu package.json arquivo e salvando-o.

{
"type": "module",
// other fields...
}
3

Em uma janela do terminal, execute o seguinte comando:

npm install mongodb openai
4
  1. Crie um arquivo denominado create-embeddings.js e cole o seguinte código. Este código faz o seguinte:

    • Cria e exporta uma função assíncrona denominada getEmbedding que utiliza o modelo text-embedding-3-small do OpenAI para gerar uma incorporação para uma determinada entrada.

    • Gera incorporações a partir dos dados de texto de exemplo e as ingere na coleção sample_db.embeddings no Atlas usando o Driver MongoDB Node.js.

    create-embeddings.js
    import { MongoClient } from 'mongodb';
    import OpenAI from 'openai';
    // Setup OpenAI configuration
    const openai = new OpenAI({
    apiKey: "<apiKey>",
    });
    // Function to get the embeddings using the OpenAI API
    export async function getEmbedding(text) {
    const response = await openai.embeddings.create({
    model: "text-embedding-3-small",
    input: text,
    encoding_format: "float",
    });
    return response.data[0].embedding;
    }
    // Data to embed
    const data = [
    "Titanic: The story of the 1912 sinking of the largest luxury liner ever built",
    "The Lion King: Lion cub and future king Simba searches for his identity",
    "Avatar: A marine is dispatched to the moon Pandora on a unique mission"
    ]
    async function run() {
    // Connect to your Atlas cluster
    const uri = "<connectionString>";
    const client = new MongoClient(uri);
    try {
    await client.connect();
    const db = client.db("sample_db");
    const collection = db.collection("embeddings");
    // Ingest data and embeddings into Atlas
    await Promise.all(data.map(async text => {
    // Check if the document already exists
    const embedding = await getEmbedding(text);
    const existingDoc = await collection.findOne({ text: text });
    if (!existingDoc) {
    await collection.insertOne({
    text: text,
    embedding: embedding
    });
    console.log(embedding);
    }
    }));
    } catch (err) {
    console.log(err.stack);
    }
    finally {
    await client.close();
    }
    }
    run().catch(console.dir);
  2. Substitua os seguintes valores de espaço reservado:

    Observação

    Sua string de conexão deve usar o seguinte formato:

    mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net
  3. Salve o arquivo e execute o seguinte comando:

    node create-embeddings.js
    [ 0.031927742, -0.014192767, -0.021851597, 0.045498233, -0.0077904654, ... ]
    [ -0.01664538, 0.013198251, 0.048684783, 0.014485021, -0.018121032, ... ]
    [ 0.030449908, 0.046782598, 0.02126599, 0.025799986, -0.015830345, ... ]

    Observação

    O número de dimensões na saída foi truncado para legibilidade.

    Você também pode visualizar suas incorporações vetoriais na UI do Atlas navegando até a coleção sample_db.embeddings em seu cluster.

1

Crie um bloco de anotações Python interativo salvando um arquivo com a extensão .ipynb e, em seguida, execute o seguinte comando no bloco de anotações para instalar as dependências:

pip install --quiet nomic sentence-transformers pymongo
2

Cole e execute o seguinte código em seu bloco de anotações para criar uma função que gere incorporações vetoriais usando um modelo de incorporação de código aberto da Nomic AI. Este código faz o seguinte:

  • Carrega o nomic-embed-text-v1 modelo de incorporação.

  • Cria uma função denominada get_embedding que utiliza o modelo para gerar uma incorporação para uma determinada entrada de texto.

  • Gera uma única incorporação para a string foo.

from nomic import embed
from sentence_transformers import SentenceTransformer
# Load the embedding model (https://huggingface.co/nomic-ai/nomic-embed-text-v1")
model = SentenceTransformer("nomic-ai/nomic-embed-text-v1", trust_remote_code=True)
# Define a function to generate embeddings
def get_embedding(data):
"""Generates vector embeddings for the given data."""
embedding = model.encode(data)
return embedding.tolist()
# Generate an embedding
get_embedding("foo")
[-0.029808253049850464, 0.03841473162174225, -0.02561120130121708, -0.06707508116960526, 0.03867151960730553, ... ]
3

Cole e execute o código a seguir em seu bloco de anotações para conectar-se ao cluster do Atlas, gerar incorporações a partir de dados personalizados e inseri-las na sample_db.embeddings coleção usando o MongoDB PyMongo Driver. Substitua <connection-string> pela connection string SRVdo seu Atlas cluster.

Observação

Sua string de conexão deve usar o seguinte formato:

mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net
import pymongo
# Connect to your Atlas cluster
mongo_client = pymongo.MongoClient("<connection-string>")
db = mongo_client["sample_db"]
collection = db["embeddings"]
# Sample data
data = [
"Titanic: The story of the 1912 sinking of the largest luxury liner ever built",
"The Lion King: Lion cub and future king Simba searches for his identity",
"Avatar: A marine is dispatched to the moon Pandora on a unique mission"
]
# Ingest data into Atlas
for text in data:
embedding = get_embedding(text)
collection.insert_one({ "text": text, "embedding": embedding })

Depois de executar o código de amostra, você pode visualizar suas incorporações vetoriais na Atlas navegando até a collection sample_db.embeddings no seu cluster.

1

Crie um bloco de anotações Python interativo salvando um arquivo com a extensão .ipynb e, em seguida, execute o seguinte comando no bloco de anotações para instalar as dependências:

pip install --quiet openai pymongo
2

Cole e execute o seguinte código em seu bloco de anotações para criar uma função que gera incorporações vetoriais usando um modelo de incorporação proprietário da OpenAI. Substitua <api-key> pela sua chave de API OpenAI. Este código faz o seguinte:

  • Especifica o modelo de incorporação do text-embedding-3-small .

  • Cria uma função denominada get_embedding que chama a API do modelo para gerar uma incorporação para uma determinada entrada de texto.

  • Gera uma única incorporação para a string foo.

import os
from openai import OpenAI
# Specify your OpenAI API key and embedding model
os.environ["OPENAI_API_KEY"] = "<api-key>"
model = "text-embedding-3-small"
openai_client = OpenAI()
# Define a function to generate embeddings
def get_embedding(text):
"""Generates vector embeddings for the given text."""
embedding = openai_client.embeddings.create(input = [text], model=model).data[0].embedding
return embedding
# Generate an embedding
get_embedding("foo")
[-0.005843308754265308, -0.013111298903822899, -0.014585349708795547, 0.03580040484666824, 0.02671629749238491, ... ]

Dica

Veja também:

Para obter detalhes da API e uma lista de modelos disponíveis, consulte a documentação do OpenAI.

3

Cole e execute o código a seguir em seu bloco de anotações para conectar-se ao cluster do Atlas, gerar incorporações a partir de dados personalizados e inseri-las na sample_db.embeddings coleção usando o MongoDB PyMongo Driver. Substitua <connection-string> pela connection string SRVdo seu Atlas cluster.

Observação

Sua string de conexão deve usar o seguinte formato:

mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net
import pymongo
# Connect to your Atlas cluster
mongo_client = pymongo.MongoClient("<connection-string>")
db = mongo_client["sample_db"]
collection = db["embeddings"]
# Sample data
data = [
"Titanic: The story of the 1912 sinking of the largest luxury liner ever built",
"The Lion King: Lion cub and future king Simba searches for his identity",
"Avatar: A marine is dispatched to the moon Pandora on a unique mission"
]
# Ingest data into Atlas
for text in data:
embedding = get_embedding(text)
collection.insert_one({ "text": text, "embedding": embedding })

Depois de executar o código de amostra, você pode visualizar suas incorporações vetoriais na Atlas navegando até a collection sample_db.embeddings no seu cluster.

O procedimento seguinte mostra como criar uma incorporação para consultas do Atlas Vector Search utilizando um modelo de incorporação de código aberto ou proprietário.

Depois de criar as incorporações a partir dos dados de amostra, conclua as etapas a seguir para criar um índice do Atlas Vector Search nos seus dados e incorporações para queries do Vector Search.

1

Para habilitar consultas de pesquisa vetorial em seus dados, você deve criar um índice do Atlas Vector Search em sua coleção.

Conclua as etapas a seguir para criar um índice na collection sample_db.embeddings que especifique o campo embedding como o tipo de vetor , as dimensões vetoriais 768 e a medida de similaridade como euclidean.

  1. Crie um arquivo denominado create-index.js e cole o seguinte código.

    create-index.js
    import { MongoClient } from 'mongodb';
    // connect to your Atlas deployment
    const uri = "<connectionString>";
    const client = new MongoClient(uri);
    async function run() {
    try {
    const database = client.db("sample_db");
    const collection = database.collection("embeddings");
    // define your Atlas Vector Search index
    const index = {
    name: "vector_index",
    type: "vectorSearch",
    definition: {
    "fields": [
    {
    "type": "vector",
    "numDimensions": 768,
    "path": "embedding",
    "similarity": "euclidean"
    }
    ]
    }
    }
    // run the helper method
    const result = await collection.createSearchIndex(index);
    console.log(result);
    } finally {
    await client.close();
    }
    }
    run().catch(console.dir);
  2. Substitua <connectionString> pela connection string SRVdo Atlas cluster.

  3. Salve o arquivo e execute o seguinte comando:

    node create-index.js

Para saber mais, consulte Criar um Índice do Atlas Vector Search.

2
  1. Crie um arquivo denominado vector-query.js e cole o seguinte código.

    Para executar uma query de pesquisa vetorial, gere um vetor de query para passar para o pipeline de agregação.

    Por exemplo, o seguinte código faz o seguinte:

    • Cria uma incorporação para a string ocean tragedy chamando a função de incorporação definida no exemplo anterior.

    • Passa a incorporação no campo queryVector em seu aggregation pipeline.

    • Executa a query de pesquisa vetorial. Ele retorna documentos semanticamente semelhantes em ordem de relevância e sua pontuação de pesquisa vetorial.

    vector-query.js
    import { MongoClient } from 'mongodb';
    import { getEmbedding } from './create-embeddings.js';
    // MongoDB connection URI and options
    const uri = "<connectionString>";
    const client = new MongoClient(uri);
    async function run() {
    try {
    // Connect to the MongoDB client
    await client.connect();
    // Specify the database and collection
    const database = client.db("sample_db");
    const collection = database.collection("embeddings");
    // Generate embedding for the search query
    const queryEmbedding = await getEmbedding("ocean tragedy");
    // Define the sample vector search pipeline
    const pipeline = [
    {
    $vectorSearch: {
    index: "vector_index",
    queryVector: queryEmbedding,
    path: "embedding",
    exact: true,
    limit: 5
    }
    },
    {
    $project: {
    _id: 0,
    text: 1,
    score: {
    $meta: "vectorSearchScore"
    }
    }
    }
    ];
    // run pipeline
    const result = collection.aggregate(pipeline);
    // print results
    for await (const doc of result) {
    console.dir(JSON.stringify(doc));
    }
    } finally {
    await client.close();
    }
    }
    run().catch(console.dir);
  2. Substitua <connectionString> pela connection string SRVdo Atlas cluster.

  3. Salve o arquivo e execute o seguinte comando:

    node vector-query.js
    '{"text":"Titanic: The story of the 1912 sinking of the largest luxury liner ever built","score":0.5103757977485657}'
    '{"text":"Avatar: A marine is dispatched to the moon Pandora on a unique mission","score":0.4616812467575073}'
    '{"text":"The Lion King: Lion cub and future king Simba searches for his identity","score":0.4115804433822632}'
1

Para habilitar consultas de pesquisa vetorial em seus dados, você deve criar um índice do Atlas Vector Search em sua coleção.

Conclua as etapas a seguir para criar um índice na collection sample_db.embeddings que especifique o campo embedding como o tipo de vetor , as dimensões vetoriais 1536 e a medida de similaridade como euclidean.

  1. Crie um arquivo denominado create-index.js e cole o seguinte código.

    create-index.js
    import { MongoClient } from 'mongodb';
    // connect to your Atlas deployment
    const uri = "<connectionString>";
    const client = new MongoClient(uri);
    async function run() {
    try {
    const database = client.db("sample_db");
    const collection = database.collection("embeddings");
    // define your Atlas Vector Search index
    const index = {
    name: "vector_index",
    type: "vectorSearch",
    definition: {
    "fields": [
    {
    "type": "vector",
    "numDimensions": 1536,
    "path": "embedding",
    "similarity": "euclidean"
    }
    ]
    }
    }
    // run the helper method
    const result = await collection.createSearchIndex(index);
    console.log(result);
    } finally {
    await client.close();
    }
    }
    run().catch(console.dir);
  2. Substitua <connectionString> pela connection string SRVdo Atlas cluster.

  3. Salve o arquivo e execute o seguinte comando:

    node create-index.js

Para saber mais, consulte Criar um Índice do Atlas Vector Search.

2
  1. Crie um arquivo denominado vector-query.js e cole o seguinte código.

    Para executar uma query de pesquisa vetorial, gere um vetor de query para passar para o pipeline de agregação.

    Por exemplo, o seguinte código faz o seguinte:

    • Cria uma incorporação para a string ocean tragedy chamando a função de incorporação definida no exemplo anterior.

    • Passa a incorporação no campo queryVector em seu aggregation pipeline.

    • Executa a query de pesquisa vetorial. Ele retorna documentos semanticamente semelhantes em ordem de relevância e sua pontuação de pesquisa vetorial.

    vector-query.js
    import { MongoClient } from 'mongodb';
    import { getEmbedding } from './create-embeddings.js';
    // MongoDB connection URI and options
    const uri = "<connectionString>";
    const client = new MongoClient(uri);
    async function run() {
    try {
    // Connect to the MongoDB client
    await client.connect();
    // Specify the database and collection
    const database = client.db("sample_db");
    const collection = database.collection("embeddings");
    // Generate embedding for the search query
    const queryEmbedding = await getEmbedding("ocean tragedy");
    // Define the sample vector search pipeline
    const pipeline = [
    {
    $vectorSearch: {
    index: "vector_index",
    queryVector: queryEmbedding,
    path: "embedding",
    exact: true,
    limit: 5
    }
    },
    {
    $project: {
    _id: 0,
    text: 1,
    score: {
    $meta: "vectorSearchScore"
    }
    }
    }
    ];
    // run pipeline
    const result = collection.aggregate(pipeline);
    // print results
    for await (const doc of result) {
    console.dir(JSON.stringify(doc));
    }
    } finally {
    await client.close();
    }
    }
    run().catch(console.dir);
  2. Substitua <connectionString> pela connection string SRVdo Atlas cluster.

  3. Salve o arquivo e execute o seguinte comando:

    node vector-query.js
    '{"text":"Titanic: The story of the 1912 sinking of the largest luxury liner ever built","score":0.4551968574523926}'
    '{"text":"Avatar: A marine is dispatched to the moon Pandora on a unique mission","score":0.4050074517726898}'
    '{"text":"The Lion King: Lion cub and future king Simba searches for his identity","score":0.3594386577606201}'
1

Para habilitar consultas de pesquisa vetorial em seus dados, você deve criar um índice do Atlas Vector Search em sua coleção.

Execute o seguinte código para criar um índice na coleção sample_db.embeddings que especifica o campo embedding como o tipo de vetor , 768 dimensões de vetor e a medida de similaridade como euclidean.

from pymongo.operations import SearchIndexModel
# Create your index model, then create the search index
search_index_model = SearchIndexModel(
definition = {
"fields": [
{
"type": "vector",
"path": "embedding",
"numDimensions": 768,
"similarity": "euclidean"
}
]
},
name="vector_index",
type="vectorSearch",
)
collection.create_search_index(model=search_index_model)

Para saber mais, consulte Criar um Índice do Atlas Vector Search.

2

Para executar uma query de pesquisa vetorial, gere um vetor de query para passar para o pipeline de agregação.

Por exemplo, o seguinte código faz o seguinte:

  • Cria uma incorporação para a string ocean tragedy chamando a função de incorporação definida no exemplo anterior.

  • Passa a incorporação no campo queryVector em seu aggregation pipeline.

  • Executa a query de pesquisa vetorial. Ele retorna documentos semanticamente semelhantes em ordem de relevância e sua pontuação de pesquisa vetorial.

# Generate embedding for the search query
query_embedding = get_embedding("ocean tragedy")
# Sample vector search pipeline
pipeline = [
{
"$vectorSearch": {
"index": "vector_index",
"queryVector": query_embedding,
"path": "embedding",
"exact": true,
"limit": 5
}
},
{
"$project": {
"_id": 0,
"text": 1,
"score": {
"$meta": "vectorSearchScore"
}
}
}
]
# Execute the search
results = collection.aggregate(pipeline)
# Print results
for i in results:
print(i)
{'text': 'Titanic: The story of the 1912 sinking of the largest luxury liner ever built','score': 0.5103757977485657}
{'text': 'Avatar: A marine is dispatched to the moon Pandora on a unique mission','score': 0.4616812467575073}
{'text': 'The Lion King: Lion cub and future king Simba searches for his identity','score': 0.4115804433822632}
1

Para habilitar consultas de pesquisa vetorial em seus dados, você deve criar um índice do Atlas Vector Search em sua coleção.

Execute o seguinte código para criar um índice na coleção sample_db.embeddings que especifica o campo embedding como o tipo de vetor , 1536 dimensões de vetor e a medida de similaridade como euclidean.

from pymongo.operations import SearchIndexModel
# Create your index model, then create the search index
search_index_model = SearchIndexModel(
definition = {
"fields": [
{
"type": "vector",
"path": "embedding",
"numDimensions": 1536,
"similarity": "euclidean"
}
]
},
name="vector_index",
type="vectorSearch",
)
collection.create_search_index(model=search_index_model)

Para saber mais, consulte Criar um Índice do Atlas Vector Search.

2

Para executar uma query de pesquisa vetorial, gere um vetor de query para passar para o pipeline de agregação.

Por exemplo, o seguinte código faz o seguinte:

  • Cria uma incorporação para a string ocean tragedy chamando a função de incorporação definida no exemplo anterior.

  • Passa a incorporação no campo queryVector em seu aggregation pipeline.

  • Executa a query de pesquisa vetorial. Ele retorna documentos semanticamente semelhantes em ordem de relevância e sua pontuação de pesquisa vetorial.

# Generate embedding for the search query
query_embedding = get_embedding("ocean tragedy")
# Sample vector search pipeline
pipeline = [
{
"$vectorSearch": {
"index": "vector_index",
"queryVector": query_embedding,
"path": "embedding",
"exact": true,
"limit": 5
}
},
{
"$project": {
"_id": 0,
"text": 1,
"score": {
"$meta": "vectorSearchScore"
}
}
}
]
# Execute the search
results = collection.aggregate(pipeline)
# Print results
for i in results:
print(i)
{'text': 'Titanic: The story of the 1912 sinking of the largest luxury liner ever built','score': 0.4551968574523926}
{'text': 'Avatar: A marine is dispatched to the moon Pandora on a unique mission','score': 0.4050074517726898}
{'text': 'The Lion King: Lion cub and future king Simba searches for his identity','score': 0.3594386577606201}

Dica

Você também pode criar incorporações chamando o ponto de extremidade da API diretamente. Para saber mais, consulte Referência da API OpenAI.

Para saber mais sobre como executar queries de pesquisa vetorial, consulte Executar queries de pesquisa vetorial.

Voltar

Início rápido do Atlas Vector Search

Próximo

Crie e gerencie índices