Common
Common service API reference
Messages
StringMap
A wrapper for a string-to-string map.
This is a workaround for a limitation in Protocol Buffers where a map field
cannot be directly placed in a oneof. By wrapping the map in this message,
it can be used in oneof fields for update strategies, such as replacing vs.
merging labels in update RPCs.
| Field | Type | Description |
|---|---|---|
labels | ...odmem.v1.StringMap.LabelsEntry | The string-to-string map |
StringMap.LabelsEntry
| Field | Type | Description |
|---|---|---|
key | string | |
value | string |
GoodMemStatus
Represents a non-fatal status or warning message for GoodMem operations.
This is typically used in streaming RPCs to provide progress updates or report partial failures without stopping the stream.
| Field | Type | Description |
|---|---|---|
code | goodmem.v1.GoodMemStatusCode | A programmatic status code for client-side handling |
message | string | A human-readable description of the status |
details | ....v1.GoodMemStatus.DetailsEntry | Additional context (e.g., `embedder_id`, `space_id`) |
GoodMemStatus.DetailsEntry
| Field | Type | Description |
|---|---|---|
key | string | |
value | string |
ChunkingConfig
Defines the strategy for splitting a single document into multiple chunks.
This is a top-level configuration that can be set as a default for a Space or specified for an individual Memory, overriding the space's default. Exactly one chunking strategy must be selected.
| Field | Type | Description |
|---|---|---|
none | ...m.v1.ChunkingConfig.NoChunking | Do not split the document |
recursive | ...unkingConfig.RecursiveChunking | Use the recursive splitting strategy |
sentence | ...hunkingConfig.SentenceChunking | Use the sentence-based splitting strategy |
ChunkingConfig.RecursiveChunking
A strategy that splits text recursively based on a list of separators.
This method iterates through a list of separators (e.g., "\n\n", "\n", " ", ""),
splitting the text at each level until the chunks are smaller than the
specified size.
| Field | Type | Description |
|---|---|---|
chunk_size | uint32 | The target size for each chunk (e.g., 1024). Must be > 0 |
chunk_overlap | uint32 | The number of characters or tokens to overlap between chunks |
separators | string | Hierarchical list of separators to split on, in order of preference |
keep_strategy | ...ngConfig.SeparatorKeepStrategy | How to handle separators after splitting |
separator_is_regex | bool | Whether the separator strings are to be treated as regular expressions |
length_measurement | ...unkingConfig.LengthMeasurement | The method for measuring chunk length |
ChunkingConfig.SentenceChunking
A strategy that splits text based on sentence boundaries.
This method is generally more semantically aware than recursive splitting but may be less predictable in chunk size.
| Field | Type | Description |
|---|---|---|
max_chunk_size | uint32 | The maximum size of a chunk. Must be > 0 |
min_chunk_size | uint32 | The minimum size of a chunk before creating a new one |
enable_language_detection | bool | Whether to detect the language for more accurate sentence segmentation |
length_measurement | ...unkingConfig.LengthMeasurement | The method for measuring chunk length |
ChunkingConfig.NoChunking
A strategy that performs no chunking, treating the document as a single chunk.
Enums
ChunkingConfig.SeparatorKeepStrategy
Defines how to handle separators during recursive chunking.
| Name | Value | Description |
|---|---|---|
SEPARATOR_KEEP_STRATEGY_UNSPECIFIED | 0 | The default value. Invalid on writes |
KEEP_NONE | 1 | Drop the separator text entirely |
KEEP_START | 2 | Prepend the separator to the following chunk |
KEEP_END | 3 | Append the separator to the preceding chunk (LangChain default) |
ChunkingConfig.LengthMeasurement
Defines the method for measuring the length of a chunk.
| Name | Value | Description |
|---|---|---|
LENGTH_MEASUREMENT_UNSPECIFIED | 0 | The default value. Invalid on writes |
CHARACTER_COUNT | 1 | Measure length by number of characters (default) |
TOKEN_COUNT | 2 | Measure length by number of tokens (requires a server-side tokenizer) |
CUSTOM | 3 | Reserved for custom, server-side-only length functions |
SortOrder
Specifies the sort order for list operations.
| Name | Value | Description |
|---|---|---|
SORT_ORDER_UNSPECIFIED | 0 | The default value. This is invalid on writes and will be rejected. |
ASCENDING | 1 | Sorts results in ascending order (e.g., A-Z, 0-9) |
DESCENDING | 2 | Sorts results in descending order (e.g., Z-A, 9-0) |
ProviderType
Defines the backend provider for an embedder or reranker model.
Note: This enum is shared between embedders and rerankers.
A potential risk is that the list of supported providers may diverge.
For LLMs, a separate LLMProviderType enum is used to avoid this issue.
| Name | Value | Description |
|---|---|---|
PROVIDER_TYPE_UNSPECIFIED | 0 | The default value. This is invalid on writes and will be rejected |
PROVIDER_TYPE_OPENAI | 1 | Models provided by OpenAI (e.g., `text-embedding-ada-002`) |
PROVIDER_TYPE_VLLM | 2 | Models served via a vLLM-compatible API endpoint |
PROVIDER_TYPE_TEI | 3 | Models served via the HuggingFace Text-Embeddings-Inference (TEI) toolkit |
PROVIDER_TYPE_LLAMA_CPP | 4 | Models served via a Llama.cpp-compatible API endpoint |
PROVIDER_TYPE_VOYAGE | 5 | Models provided by Voyage AI (e.g., `rerank-2.5`) |
PROVIDER_TYPE_COHERE | 6 | Models provided by Cohere's platform |
PROVIDER_TYPE_JINA | 7 | Models provided by Jina AI or Jina-compatible endpoints |
Modality
Defines the type of content a model can process.
Used by embedders, rerankers, and LLMs to declare their capabilities.
| Name | Value | Description |
|---|---|---|
MODALITY_UNSPECIFIED | 0 | The default value. This is invalid on writes and will be rejected |
MODALITY_TEXT | 1 | Textual content |
MODALITY_IMAGE | 2 | Image content |
MODALITY_AUDIO | 3 | Audio content |
MODALITY_VIDEO | 4 | Video content |
GoodMemStatusCode
Defines granular, non-fatal status codes for GoodMem operations.
These codes are sent in the GoodMemStatus message, typically in streaming
responses, to provide clients with programmatic insight into the progress or
partial failures of a request without terminating the entire operation.
| Name | Value | Description |
|---|---|---|
GOODMEM_STATUS_CODE_UNSPECIFIED | 0 | The default value. Should not be used |
INVALID_ARGUMENT | 3 | Standard gRPC status codes (mirrored for client independence) Invalid request parameters (mirrors gRPC INVALID_ARGUMENT) |
NOT_FOUND | 5 | Requested resource not found (mirrors gRPC NOT_FOUND) |
PERMISSION_DENIED | 7 | Access denied to resource (mirrors gRPC PERMISSION_DENIED) |
FAILED_PRECONDITION | 9 | Operation requires specific preconditions (mirrors gRPC FAILED_PRECONDITION) |
EMBEDDER_FAILED | 1000 | Embedder-related warnings Embedding generation failed for a specific embedder |
EMBEDDER_UNAVAILABLE | 1001 | Embedder service is temporarily unavailable |
EMBEDDER_TIMEOUT | 1002 | Embedding request timed out |
VECTOR_SEARCH_FAILED | 2000 | Vector search warnings Vector search failed for a specific embedder/space |
VECTOR_SEARCH_PARTIAL | 2001 | Vector search returned partial results |
VECTOR_SEARCH_TIMEOUT | 2002 | Vector search timed out |
SPACE_INACCESSIBLE | 3000 | Space access warnings User lacks permission to access a requested space |
SPACE_NOT_FOUND | 3001 | Requested space does not exist |
SPACE_NO_EMBEDDERS | 3002 | Space has no configured embedders |
CHUNK_NOT_FOUND | 4000 | Memory/chunk warnings Referenced chunk was not found in database |
MEMORY_LOAD_FAILED | 4001 | Failed to load memory data |
MEMORY_CONTENT_UNAVAILABLE | 4002 | Memory content could not be retrieved |
RERANKING_FAILED | 5000 | Processing warnings Post-processing reranking failed |
SUMMARIZATION_FAILED | 5001 | Summary generation failed |
SUMMARIZATION_TIMEOUT | 5002 | Summary generation timed out |
RATE_LIMITED | 6000 | System warnings Request was rate limited |
RESOURCE_EXHAUSTED | 6001 | System resources exhausted (memory, CPU, etc.) |
CONFIGURATION_ERROR | 6002 | System configuration issue detected |
LLM_CAPABILITY_INFERRED | 7000 | LLM-related warnings LLM capability was auto-filled by the system. |
FEATURE_DISABLED | 9000 | Informational status messages (non-error) Feature disabled due to missing configuration |