Skip to content

Create Vector Store

client.VectorStores.New(ctx, body) (*VectorStore, error)
POST/v5/vector-stores/create

Create a new vector store for storing and querying document embeddings.

The vector store name must be unique within your account and follow naming conventions (3-63 characters, alphanumeric with hyphens/underscores). Once created, the embedding configuration and dimensions are immutable and cannot be changed. To use a different model, you must create a new vector store.

Embedding Configuration: Provide embedding_config (for base or custom model deployments), embedding_model (shorthand for a base model), or dimensions only (raw embeddings).

  • With embedding_config or embedding_model: dimensions are auto-derived, and documents can be upserted with text content (auto-embedded) or with pre-computed embeddings.
  • With dimensions only: the store accepts only pre-computed embeddings. Semantic/hybrid queries are not supported (lexical search only).

Indexed Fields: Optionally specify metadata fields to index at creation time. Only indexed fields can be used for filtering — indexing is required, not just a performance optimization. Additional indexed fields can be added later using the configure endpoint, but cannot be removed once added. Keep in mind that each indexed field increases write latency and storage overhead, so only index fields you actively filter on.

ParametersExpand Collapse
body VectorStoreNewParams
Name param.Field[string]

A unique name for the vector store within the account

Dimensions param.Field[int64]Optional

Dimension size of embedding vectors. Required when neither ‘embedding_config’ nor ‘embedding_model’ is set. Automatically derived when an embedding model is provided.

exclusiveMinimum0
EmbeddingConfig param.Field[EmbeddingConfigUnion]Optional

The embedding configuration. Either ‘base’ type with an embedding_model, or ‘models_api’ type with a model_deployment_id for custom models.

EmbeddingModel param.Field[EmbeddingModelName]Optional

The base embedding model to use. Shorthand for embedding_config with type ‘base’. Provide either embedding_config or embedding_model, not both.

IndexedMetadataFields param.Field[map[string, string]]Optional

Dictionary mapping metadata field names to their types for efficient filtering. Only STRING, NUMBER, and BOOLEAN types can be indexed.

const VectorStoreNewParamsIndexedMetadataFieldString VectorStoreNewParamsIndexedMetadataField = "string"
const VectorStoreNewParamsIndexedMetadataFieldNumber VectorStoreNewParamsIndexedMetadataField = "number"
const VectorStoreNewParamsIndexedMetadataFieldBoolean VectorStoreNewParamsIndexedMetadataField = "boolean"
ReturnsExpand Collapse
type VectorStore struct{…}

Response model for vector store operations.

ID string

The unique identifier of the vector store

CreatedAt Time

Timestamp of creation

formatdate-time
EmbeddingDimensions int64

Dimensionality of the embedding vectors

Name string

The name of the vector store

UpdatedAt Time

Timestamp of last update

formatdate-time
EmbeddingConfig EmbeddingConfigUnionOptional

Embedding configuration identifying the model and its type. None for raw-embedding-only stores.

One of the following:
type EmbeddingConfigModelsAPI struct{…}
ModelDeploymentID string

The ID of the deployment of the created model in the Models API V3.

Type ModelsAPI

The type of the embedding configuration.

type EmbeddingConfigBase struct{…}
EmbeddingModel EmbeddingModelName

The name of the base embedding model to use. Either a known base model (EmbeddingModelName) or, in ray-serve deployments with NATIVE_OPENAI_EMBEDDING_GATEWAY enabled, any model id served by the OpenAI-compatible inference proxy (e.g. ‘nomic-embed-text-v1.5’). For fully custom deployments, use type ‘models_api’ with a model_deployment_id.

One of the following:
type EmbeddingModelName string
One of the following:
const EmbeddingModelNameSentenceTransformersAllMiniLmL12V2 EmbeddingModelName = "sentence-transformers/all-MiniLM-L12-v2"
const EmbeddingModelNameSentenceTransformersMultiQaDistilbertCosV1 EmbeddingModelName = "sentence-transformers/multi-qa-distilbert-cos-v1"
const EmbeddingModelNameOpenAITextEmbeddingAda002 EmbeddingModelName = "openai/text-embedding-ada-002"
const EmbeddingModelNameOpenAITextEmbedding3Small EmbeddingModelName = "openai/text-embedding-3-small"
const EmbeddingModelNameOpenAITextEmbedding3Large EmbeddingModelName = "openai/text-embedding-3-large"
const EmbeddingModelNameEmbedEnglishV3_0 EmbeddingModelName = "embed-english-v3.0"
const EmbeddingModelNameEmbedEnglishLightV3_0 EmbeddingModelName = "embed-english-light-v3.0"
const EmbeddingModelNameEmbedMultilingualV3_0 EmbeddingModelName = "embed-multilingual-v3.0"
const EmbeddingModelNameGeminiTextEmbedding005 EmbeddingModelName = "gemini/text-embedding-005"
const EmbeddingModelNameGeminiTextMultilingualEmbedding002 EmbeddingModelName = "gemini/text-multilingual-embedding-002"
const EmbeddingModelNameGeminiGeminiEmbedding001 EmbeddingModelName = "gemini/gemini-embedding-001"
string
Type EmbeddingConfigBaseTypeOptional

The type of the embedding configuration.

IndexedMetadataFields map[string, string]Optional

Dictionary mapping metadata field names to their types

One of the following:
const VectorStoreIndexedMetadataFieldString VectorStoreIndexedMetadataField = "string"
const VectorStoreIndexedMetadataFieldNumber VectorStoreIndexedMetadataField = "number"
const VectorStoreIndexedMetadataFieldBoolean VectorStoreIndexedMetadataField = "boolean"

Create Vector Store

package main

import (
  "context"
  "fmt"

  "github.com/scaleapi/sgp-dev-go"
  "github.com/scaleapi/sgp-dev-go/option"
)

func main() {
  client := sgpdev.NewClient(
    option.WithAPIKey("My API Key"),
    option.WithAccountID("My Account ID"),
  )
  vectorStore, err := client.VectorStores.New(context.TODO(), sgpdev.VectorStoreNewParams{
    Name: "name",
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", vectorStore.ID)
}
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "embedding_dimensions": 0,
  "name": "name",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "embedding_config": {
    "model_deployment_id": "model_deployment_id",
    "type": "models_api"
  },
  "indexed_metadata_fields": {
    "foo": "string"
  }
}
Returns Examples
{
  "id": "id",
  "created_at": "2019-12-27T18:11:19.117Z",
  "embedding_dimensions": 0,
  "name": "name",
  "updated_at": "2019-12-27T18:11:19.117Z",
  "embedding_config": {
    "model_deployment_id": "model_deployment_id",
    "type": "models_api"
  },
  "indexed_metadata_fields": {
    "foo": "string"
  }
}