Usando um Vector Store

O uso de armazenamentos de vetores é necessário para chamar a API compatível com o OCI OpenAI.

  1. Na página de lista Armazenamentos de vetores, selecione o armazenamento de vetores que você deseja usar. Se precisar de ajuda para localizar a página da lista, consulte Listando um projeto.
  2. Selecione a guia Como usar.
  3. Segue as etapas na tela.

Dados Não Estruturados

Se o armazenamento de vetores estiver configurado para dados não estruturados, o que significa que você tem documentos que deseja usar como parte do workflow agentic, siga estas etapas:

Observação

Esses códigos nas etapas a seguir são escritos para o Python SDK. O fluxo ainda será o mesmo se você usar a API REST ou o SDK Java.

1. Crie Clientes do Plano de Controle e do Plano de Dados

O cliente do plano de controle é para API de gerenciamento, como criar um armazenamento de vetores e adicionar arquivos a ele. O cliente do plano de dados é para acessar os grandes modelos de linguagem que o serviço OCI Generative AI oferece.

from oci_openai import OciOpenAI, OciSessionAuth
dp_endpoint = "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com/20231130"
cp_endpoint = "https://generativeai.us-chicago-1.oci.oraclecloud.com/20231130"
profile = os.environ.get("OCI_PROFILE", "DEFAULT") //replace with your profile name if not using default
region = os.environ("OCI_REGION")
compartment_id = os.environ("OCI_COMPARTMENT_ID")

# Create DP + CP clients
auth = OciSessionAuth(profile_name=profile)
dp_client = OciOpenAI(
    service_endpoint=dp_endpoint,
    auth=auth,
    compartment_id=compartment_id,
    default_headers={"opc-compartment-id": compartment_id},
)
cp_client = OciOpenAI(
    service_endpoint=cp_endpoint,
    auth=auth,
    compartment_id=compartment_id,
)

2. Criar um Vector Store

Esta etapa cria armazenamentos de vetores e, em seguida, obtém seu ID e faz parte do conjunto completo de tarefas para criar e usar um armazenamento de vetores. No entanto, se você estiver nesta página, você já tem um armazenamento de vetores que você pode usar. Para usar o armazenamento de vetores que você está em sua página de detalhes, ignore esta etapa e, em vez disso, selecione a guia Detalhes e copie o ID do armazenamento de vetores em um bloco de notas para uso na próxima etapa.

vs = cp_client.vector_stores.create(
    name="a-demo-store",
    description="Demo vector store",
    expires_after={"anchor": "last_active_at", "days": 30},
    metadata={"created_by": "oci-samples"},
)
vector_store_id = vs.id
print(f"Created vector store: {vector_store_id}")
Observação

A API de Armazenamentos de Vetor usa o mesmo formato da API de Armazenamentos de Vetor OpenAI. Consulte OpenAI Documentação da API Create vector store.

3. Adicionar Arquivos ao Vector Store

Para adicionar dados não estruturados a este armazenamento de vetores,
Para adicionar um arquivo

Primeiro, adicione esse arquivo e obtenha o ID desse arquivo usando os métodos de criação e recuperação da API de Arquivos. Em seguida, crie um arquivo de armazenamento de vetores, usando o ID do armazenamento de vetores e o ID do arquivo.

Para adicionar um lote de arquivos
Primeiro, adicione todos os arquivos e obtenha todos os IDs de arquivo. Em seguida, crie um lote.
# File upload
file_id = "..." # <-- Replace with actual File ID
vs_file = dp_client.vector_stores.files.create(
    vector_store_id=vector_store_id,
    file_id=file_id
)
   
# Batch File Add
file_ids = ["....", "....", "...."] # <-- Replace with actual File IDs
batch = dp_client.vector_stores.file_batches.create(
    vector_store_id=vector_store_id,
    file_ids=file_ids,
    attributes={"type": "batch"},
)
Dica

Recomendamos que você armazene arquivos no OCI Object Storage e use um conector de armazenamento de vetores para vincular o bucket do Object Storage que contém os arquivos ao armazenamento de vetores.

4. Pesquisar no Vector Store

Você pode usar consultas e filtros para pesquisar o armazenamento de vetores.
Observação

Para obter referência, consulte a API de armazenamento de vetores de pesquisa na documentação OpenAI. Para a API de armazenamento de vetores de pesquisa, os seguintes parâmetros não são suportados.
  • rewrite_query (Opcional)): Se a consulta de linguagem natural deve ser reescrita para pesquisa vetorial - Esta opção não é suportada e está desativada, mesmo que você a defina como verdadeira.
  • ranking_options ranker (Opcional)): Não há suporte para modelos de classificador personalizados. Por exemplo, default-2024-11-15 não é suportado. No entanto, você pode definir o classificador como auto para que a API de pesquisa use o classificador do sistema ou defini-lo como none para desativar o classificador e reduzir a latência.
query = "What is your question?" # <-- Replace with question/query
res = dp_client.vector_stores.search(
    vector_store_id=vector_store_id,
    query=query,
    max_num_results=10,
    rewrite_query=False
)
Dica

Recomendamos que você armazene arquivos no OCI Object Storage e use um conector de armazenamento de vetores para vincular o bucket do Object Storage que contém os arquivos ao armazenamento de vetores.