# goodmem-client
[](https://pypi.org/project/goodmem-client/)
Python client for GoodMem - a vector-based memory storage and retrieval service. Provides APIs for creating memory spaces, storing memories with vector embeddings, and performing semantic search with streaming retrieval. Supports multiple embedding providers and advanced metadata handling.
This Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
- API version: v1
- Package version: 1.5.4
- Generator version: 7.13.0
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
For more information, please visit [https://goodmem.io/support](https://goodmem.io/support)
## Requirements.
Python 3.9+
## Installation & Usage
### pip install
You can install the package directly from PyPI:
```sh
pip install goodmem-client
```
If you prefer uv:
```sh
uv pip install goodmem-client
```
Then import the package:
```python
import goodmem_client
```
### Setuptools
Install via [Setuptools](http://pypi.python.org/pypi/setuptools).
```sh
python setup.py install --user
```
(or `sudo python setup.py install` to install the package for all users)
Then import the package:
```python
import goodmem_client
```
### Tests
Execute `pytest` to run the tests.
## Getting Started
Please follow the [installation procedure](#installation--usage) and then run the following:
```python
# Import required modules
from goodmem_client.api import APIKeysApi, SpacesApi
from goodmem_client.configuration import Configuration
from goodmem_client.api_client import ApiClient
from goodmem_client.models import CreateApiKeyRequest
from goodmem_client.streaming import MemoryStreamClient
from goodmem_client.rest import ApiException
from pprint import pprint
# Configure the API client
configuration = Configuration()
configuration.host = "http://localhost:8080" # Use your server URL
# Set authentication
configuration.api_key = {"ApiKeyAuth": "your-api-key"}
# Create API client
api_client = ApiClient(configuration=configuration) # Your API key here
# Create an instance of the API class
api_instance = APIKeysApi(api_client=api_client)
# Prepare a create request with labels
create_request = CreateApiKeyRequest(
labels={
"environment": "development",
"service": "chat-ui"
}
)
try:
# Create a new API key
api_response = api_instance.create_api_key(create_api_key_request=create_request)
print("API Key created successfully:")
print(f"API Key ID: {api_response.api_key_metadata.api_key_id}")
print(f"Raw API Key: {api_response.raw_api_key}")
except ApiException as e:
print(f"Exception when calling APIKeysApi->create_api_key: {e}")
```
### Streaming Memory Retrieval
For memory retrieval operations, use the streaming client which is the primary way to search and retrieve memories:
```python
from goodmem_client.api import SpacesApi
from goodmem_client.streaming import MemoryStreamClient
from goodmem_client.configuration import Configuration
from goodmem_client.api_client import ApiClient
# Configure client
configuration = Configuration()
configuration.host = "http://localhost:8080"
configuration.api_key = {"ApiKeyAuth": "your-api-key"}
api_client = ApiClient(configuration=configuration)
# Create streaming client
spaces_api = SpacesApi(api_client=api_client)
stream_client = MemoryStreamClient(api_client)
# Get space ID (first available space)
spaces = spaces_api.list_spaces()
space_id = spaces.spaces[0].space_id if spaces.spaces else None
# Stream memory retrieval using advanced POST endpoint with custom post-processor
for event in stream_client.retrieve_memory_stream(
message="your search query",
space_ids=[space_id] if space_id else None,
requested_size=5,
fetch_memory=True,
fetch_memory_content=False,
format="ndjson",
post_processor_name="com.goodmem.retrieval.postprocess.ChatPostProcessorFactory",
post_processor_config={
"llm_id": "your-llm-uuid",
"reranker_id": "your-reranker-uuid",
"relevance_threshold": 0.5,
"max_results": 10
}
):
if event.abstract_reply:
print(f"Abstract: {event.abstract_reply.text}")
elif event.retrieved_item and event.retrieved_item.memory:
memory = event.retrieved_item.memory
print(f"Memory: {memory.get('memoryId')}")
if 'metadata' in memory:
print(f"Metadata: {memory['metadata']}")
# Alternative: Use convenience method for ChatPostProcessor with simple parameters
for event in stream_client.retrieve_memory_stream_chat(
message="your search query",
space_ids=[space_id] if space_id else None,
requested_size=5,
fetch_memory=True,
format="ndjson",
pp_llm_id="your-llm-uuid",
pp_reranker_id="your-reranker-uuid",
pp_relevance_threshold=0.5,
pp_max_results=10
):
if event.abstract_reply:
print(f"Abstract: {event.abstract_reply.text}")
```
For comprehensive examples, see the `samples` directory:
- `apikey_sample.py` - API key CRUD operations
- `streaming_sample.py` - Memory retrieval with streaming
- `reproduce_issue_71.py` - Memory creation with metadata
## Documentation for API Endpoints
All URIs are relative to *http://localhost:8080*
Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*APIKeysApi* | [**create_api_key**](docs/APIKeysApi.md#create_api_key) | **POST** /v1/apikeys | Create a new API key
*APIKeysApi* | [**delete_api_key**](docs/APIKeysApi.md#delete_api_key) | **DELETE** /v1/apikeys/{id} | Delete an API key
*APIKeysApi* | [**list_api_keys**](docs/APIKeysApi.md#list_api_keys) | **GET** /v1/apikeys | List API keys
*APIKeysApi* | [**update_api_key**](docs/APIKeysApi.md#update_api_key) | **PUT** /v1/apikeys/{id} | Update an API key
*EmbeddersApi* | [**create_embedder**](docs/EmbeddersApi.md#create_embedder) | **POST** /v1/embedders | Create a new embedder
*EmbeddersApi* | [**delete_embedder**](docs/EmbeddersApi.md#delete_embedder) | **DELETE** /v1/embedders/{id} | Delete an embedder
*EmbeddersApi* | [**get_embedder**](docs/EmbeddersApi.md#get_embedder) | **GET** /v1/embedders/{id} | Get an embedder by ID
*EmbeddersApi* | [**list_embedders**](docs/EmbeddersApi.md#list_embedders) | **GET** /v1/embedders | List embedders
*EmbeddersApi* | [**update_embedder**](docs/EmbeddersApi.md#update_embedder) | **PUT** /v1/embedders/{id} | Update an embedder
*MemoriesApi* | [**batch_create_memory**](docs/MemoriesApi.md#batch_create_memory) | **POST** /v1/memories/batch | Create multiple memories in a batch
*MemoriesApi* | [**batch_delete_memory**](docs/MemoriesApi.md#batch_delete_memory) | **POST** /v1/memories/batch/delete | Delete multiple memories by ID
*MemoriesApi* | [**batch_get_memory**](docs/MemoriesApi.md#batch_get_memory) | **POST** /v1/memories/batch/get | Get multiple memories by ID
*MemoriesApi* | [**create_memory**](docs/MemoriesApi.md#create_memory) | **POST** /v1/memories | Create a new memory
*MemoriesApi* | [**delete_memory**](docs/MemoriesApi.md#delete_memory) | **DELETE** /v1/memories/{id} | Delete a memory
*MemoriesApi* | [**get_memory**](docs/MemoriesApi.md#get_memory) | **GET** /v1/memories/{id} | Get a memory by ID
*MemoriesApi* | [**list_memories**](docs/MemoriesApi.md#list_memories) | **GET** /v1/spaces/{spaceId}/memories | List memories in a space
*MemoriesApi* | [**retrieve_memory**](docs/MemoriesApi.md#retrieve_memory) | **GET** /v1/memories/retrieve | Stream semantic memory retrieval
*MemoriesApi* | [**retrieve_memory_advanced**](docs/MemoriesApi.md#retrieve_memory_advanced) | **POST** /v1/memories/retrieve | Advanced semantic memory retrieval with JSON
*RerankersApi* | [**create_reranker**](docs/RerankersApi.md#create_reranker) | **POST** /v1/rerankers | Create a new reranker
*RerankersApi* | [**delete_reranker**](docs/RerankersApi.md#delete_reranker) | **DELETE** /v1/rerankers/{id} | Delete a reranker
*RerankersApi* | [**get_reranker**](docs/RerankersApi.md#get_reranker) | **GET** /v1/rerankers/{id} | Get a reranker by ID
*RerankersApi* | [**list_rerankers**](docs/RerankersApi.md#list_rerankers) | **GET** /v1/rerankers | List rerankers
*RerankersApi* | [**update_reranker**](docs/RerankersApi.md#update_reranker) | **PUT** /v1/rerankers/{id} | Update a reranker
*SpacesApi* | [**create_space**](docs/SpacesApi.md#create_space) | **POST** /v1/spaces | Create a new Space
*SpacesApi* | [**delete_space**](docs/SpacesApi.md#delete_space) | **DELETE** /v1/spaces/{id} | Delete a space
*SpacesApi* | [**get_space**](docs/SpacesApi.md#get_space) | **GET** /v1/spaces/{id} | Get a space by ID
*SpacesApi* | [**list_spaces**](docs/SpacesApi.md#list_spaces) | **GET** /v1/spaces | List spaces
*SpacesApi* | [**update_space**](docs/SpacesApi.md#update_space) | **PUT** /v1/spaces/{id} | Update a space
*SystemApi* | [**initialize_system**](docs/SystemApi.md#initialize_system) | **POST** /v1/system/init | Initialize the system
*UsersApi* | [**get_user**](docs/UsersApi.md#get_user) | **GET** /v1/users/{id} | Get a user by ID
## Documentation For Models
- [AbstractReply](docs/AbstractReply.md)
- **[ApiKeyResponse](docs/ApiKeyResponse.md)** - API key metadata and information
- **[BatchMemoryCreationRequest](docs/BatchMemoryCreationRequest.md)** - Request for creating multiple memories
- **[BatchMemoryDeletionRequest](docs/BatchMemoryDeletionRequest.md)** - Request for deleting multiple memories
- **[BatchMemoryRetrievalRequest](docs/BatchMemoryRetrievalRequest.md)** - Request for retrieving multiple memories
- [BinaryContent](docs/BinaryContent.md)
- [ChunkReference](docs/ChunkReference.md)
- [ChunkingConfiguration](docs/ChunkingConfiguration.md)
- [ContextItem](docs/ContextItem.md)
- **[CreateApiKeyRequest](docs/CreateApiKeyRequest.md)** - Request for creating a new API key
- **[CreateApiKeyResponse](docs/CreateApiKeyResponse.md)** - Response containing new API key details
- [DistributionType](docs/DistributionType.md)
- **[EmbedderCreationRequest](docs/EmbedderCreationRequest.md)** - Request for creating a new embedder
- **[EmbedderResponse](docs/EmbedderResponse.md)** - Embedder configuration and metadata
- [EmbedderWeight](docs/EmbedderWeight.md)
- [GoodMemStatus](docs/GoodMemStatus.md)
- [LengthMeasurement](docs/LengthMeasurement.md)
- **[ListApiKeysResponse](docs/ListApiKeysResponse.md)** - Response containing list of API keys
- **[ListEmbeddersResponse](docs/ListEmbeddersResponse.md)** - Response containing list of embedders
- [ListRerankersResponse](docs/ListRerankersResponse.md)
- **[ListSpacesResponse](docs/ListSpacesResponse.md)** - Response containing list of spaces
- **[Memory](docs/Memory.md)** - Memory object with content and metadata
- [MemoryChunkResponse](docs/MemoryChunkResponse.md)
- **[MemoryCreationRequest](docs/MemoryCreationRequest.md)** - Request for creating a new memory
- **[MemoryListResponse](docs/MemoryListResponse.md)** - Response containing list of memories
- **[Modality](docs/Modality.md)** - Enumeration of supported modalities (TEXT, IMAGE, etc.)
- [PostProcessor](docs/PostProcessor.md)
- **[ProviderType](docs/ProviderType.md)** - Enumeration of embedding providers (OPENAI, etc.)
- [RecursiveChunkingConfiguration](docs/RecursiveChunkingConfiguration.md)
- [RerankerCreationRequest](docs/RerankerCreationRequest.md)
- [RerankerResponse](docs/RerankerResponse.md)
- [ResultSetBoundary](docs/ResultSetBoundary.md)
- [RetrieveMemoryEvent](docs/RetrieveMemoryEvent.md)
- [RetrieveMemoryRequest](docs/RetrieveMemoryRequest.md)
- [RetrievedItem](docs/RetrievedItem.md)
- [SentenceChunkingConfiguration](docs/SentenceChunkingConfiguration.md)
- [SeparatorKeepStrategy](docs/SeparatorKeepStrategy.md)
- **[Space](docs/Space.md)** - Space object for organizing memories
- **[SpaceCreationRequest](docs/SpaceCreationRequest.md)** - Request for creating a new space
- **[SpaceEmbedder](docs/SpaceEmbedder.md)** - Associates an embedder with a space, including retrieval configuration
- **[SpaceEmbedderConfig](docs/SpaceEmbedderConfig.md)** - Configuration for associating an embedder with a space
- [SpaceKey](docs/SpaceKey.md)
- **[SystemInitResponse](docs/SystemInitResponse.md)** - Response from system initialization
- **[UpdateApiKeyRequest](docs/UpdateApiKeyRequest.md)** - Request for updating an API key
- **[UpdateEmbedderRequest](docs/UpdateEmbedderRequest.md)** - Request for updating an embedder
- [UpdateRerankerRequest](docs/UpdateRerankerRequest.md)
- **[UpdateSpaceRequest](docs/UpdateSpaceRequest.md)** - Request for updating a space
- **[UserResponse](docs/UserResponse.md)** - User account information
<a id="documentation-for-authorization"></a>
## Documentation For Authorization
Authentication schemes defined for the API:
<a id="BearerAuth"></a>
### BearerAuth
- **Type**: Bearer authentication
<a id="ApiKeyAuth"></a>
### ApiKeyAuth
- **Type**: API key
- **API key parameter name**: x-api-key
- **Location**: HTTP header
## Contact & Support
For questions or issues with the Python client, please visit:
- GitHub repository: https://github.com/PAIR-Systems-Inc/goodmem
- PyPI package: https://pypi.org/project/goodmem-client/
## Author
support@goodmem.io
Raw data
{
"_id": null,
"home_page": "https://github.com/PAIR-Systems-Inc/goodmem",
"name": "goodmem-client",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "OpenAPI, OpenAPI-Generator, GoodMem API, vector, embeddings, memory",
"author": "GoodMem API Support",
"author_email": "support@goodmem.io",
"download_url": "https://files.pythonhosted.org/packages/cd/be/76fc20637393f327b5b8ae69db88dd291c9cb80a1e5b4a75a97b8338f95e/goodmem_client-1.5.4.tar.gz",
"platform": null,
"description": "# goodmem-client\n\n[](https://pypi.org/project/goodmem-client/)\nPython client for GoodMem - a vector-based memory storage and retrieval service. Provides APIs for creating memory spaces, storing memories with vector embeddings, and performing semantic search with streaming retrieval. Supports multiple embedding providers and advanced metadata handling.\n\nThis Python package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:\n\n- API version: v1\n- Package version: 1.5.4\n- Generator version: 7.13.0\n- Build package: org.openapitools.codegen.languages.PythonClientCodegen\nFor more information, please visit [https://goodmem.io/support](https://goodmem.io/support)\n\n## Requirements.\n\nPython 3.9+\n\n## Installation & Usage\n### pip install\n\nYou can install the package directly from PyPI:\n\n```sh\npip install goodmem-client\n```\n\nIf you prefer uv:\n\n```sh\nuv pip install goodmem-client\n```\n\nThen import the package:\n```python\nimport goodmem_client\n```\n\n### Setuptools\n\nInstall via [Setuptools](http://pypi.python.org/pypi/setuptools).\n\n```sh\npython setup.py install --user\n```\n(or `sudo python setup.py install` to install the package for all users)\n\nThen import the package:\n```python\nimport goodmem_client\n```\n\n### Tests\n\nExecute `pytest` to run the tests.\n\n## Getting Started\n\nPlease follow the [installation procedure](#installation--usage) and then run the following:\n\n```python\n\n# Import required modules\nfrom goodmem_client.api import APIKeysApi, SpacesApi\nfrom goodmem_client.configuration import Configuration\nfrom goodmem_client.api_client import ApiClient\nfrom goodmem_client.models import CreateApiKeyRequest\nfrom goodmem_client.streaming import MemoryStreamClient\nfrom goodmem_client.rest import ApiException\nfrom pprint import pprint\n\n# Configure the API client\nconfiguration = Configuration()\nconfiguration.host = \"http://localhost:8080\" # Use your server URL\n\n# Set authentication\nconfiguration.api_key = {\"ApiKeyAuth\": \"your-api-key\"}\n\n# Create API client\napi_client = ApiClient(configuration=configuration) # Your API key here\n\n# Create an instance of the API class\napi_instance = APIKeysApi(api_client=api_client)\n\n# Prepare a create request with labels\ncreate_request = CreateApiKeyRequest(\n labels={\n \"environment\": \"development\",\n \"service\": \"chat-ui\"\n }\n)\n\ntry:\n # Create a new API key\n api_response = api_instance.create_api_key(create_api_key_request=create_request)\n print(\"API Key created successfully:\")\n print(f\"API Key ID: {api_response.api_key_metadata.api_key_id}\")\n print(f\"Raw API Key: {api_response.raw_api_key}\")\nexcept ApiException as e:\n print(f\"Exception when calling APIKeysApi->create_api_key: {e}\")\n```\n\n### Streaming Memory Retrieval\n\nFor memory retrieval operations, use the streaming client which is the primary way to search and retrieve memories:\n\n```python\nfrom goodmem_client.api import SpacesApi\nfrom goodmem_client.streaming import MemoryStreamClient\nfrom goodmem_client.configuration import Configuration\nfrom goodmem_client.api_client import ApiClient\n\n# Configure client\nconfiguration = Configuration()\nconfiguration.host = \"http://localhost:8080\"\nconfiguration.api_key = {\"ApiKeyAuth\": \"your-api-key\"}\n\napi_client = ApiClient(configuration=configuration)\n\n# Create streaming client\nspaces_api = SpacesApi(api_client=api_client)\nstream_client = MemoryStreamClient(api_client)\n\n# Get space ID (first available space)\nspaces = spaces_api.list_spaces()\nspace_id = spaces.spaces[0].space_id if spaces.spaces else None\n\n# Stream memory retrieval using advanced POST endpoint with custom post-processor\nfor event in stream_client.retrieve_memory_stream(\n message=\"your search query\",\n space_ids=[space_id] if space_id else None,\n requested_size=5,\n fetch_memory=True,\n fetch_memory_content=False,\n format=\"ndjson\",\n post_processor_name=\"com.goodmem.retrieval.postprocess.ChatPostProcessorFactory\",\n post_processor_config={\n \"llm_id\": \"your-llm-uuid\",\n \"reranker_id\": \"your-reranker-uuid\",\n \"relevance_threshold\": 0.5,\n \"max_results\": 10\n }\n):\n if event.abstract_reply:\n print(f\"Abstract: {event.abstract_reply.text}\")\n elif event.retrieved_item and event.retrieved_item.memory:\n memory = event.retrieved_item.memory\n print(f\"Memory: {memory.get('memoryId')}\")\n if 'metadata' in memory:\n print(f\"Metadata: {memory['metadata']}\")\n\n# Alternative: Use convenience method for ChatPostProcessor with simple parameters\nfor event in stream_client.retrieve_memory_stream_chat(\n message=\"your search query\",\n space_ids=[space_id] if space_id else None,\n requested_size=5,\n fetch_memory=True,\n format=\"ndjson\",\n pp_llm_id=\"your-llm-uuid\",\n pp_reranker_id=\"your-reranker-uuid\",\n pp_relevance_threshold=0.5,\n pp_max_results=10\n):\n if event.abstract_reply:\n print(f\"Abstract: {event.abstract_reply.text}\")\n```\n\nFor comprehensive examples, see the `samples` directory:\n- `apikey_sample.py` - API key CRUD operations\n- `streaming_sample.py` - Memory retrieval with streaming\n- `reproduce_issue_71.py` - Memory creation with metadata\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *http://localhost:8080*\n\nClass | Method | HTTP request | Description\n------------ | ------------- | ------------- | -------------\n*APIKeysApi* | [**create_api_key**](docs/APIKeysApi.md#create_api_key) | **POST** /v1/apikeys | Create a new API key\n*APIKeysApi* | [**delete_api_key**](docs/APIKeysApi.md#delete_api_key) | **DELETE** /v1/apikeys/{id} | Delete an API key\n*APIKeysApi* | [**list_api_keys**](docs/APIKeysApi.md#list_api_keys) | **GET** /v1/apikeys | List API keys\n*APIKeysApi* | [**update_api_key**](docs/APIKeysApi.md#update_api_key) | **PUT** /v1/apikeys/{id} | Update an API key\n*EmbeddersApi* | [**create_embedder**](docs/EmbeddersApi.md#create_embedder) | **POST** /v1/embedders | Create a new embedder\n*EmbeddersApi* | [**delete_embedder**](docs/EmbeddersApi.md#delete_embedder) | **DELETE** /v1/embedders/{id} | Delete an embedder\n*EmbeddersApi* | [**get_embedder**](docs/EmbeddersApi.md#get_embedder) | **GET** /v1/embedders/{id} | Get an embedder by ID\n*EmbeddersApi* | [**list_embedders**](docs/EmbeddersApi.md#list_embedders) | **GET** /v1/embedders | List embedders\n*EmbeddersApi* | [**update_embedder**](docs/EmbeddersApi.md#update_embedder) | **PUT** /v1/embedders/{id} | Update an embedder\n*MemoriesApi* | [**batch_create_memory**](docs/MemoriesApi.md#batch_create_memory) | **POST** /v1/memories/batch | Create multiple memories in a batch\n*MemoriesApi* | [**batch_delete_memory**](docs/MemoriesApi.md#batch_delete_memory) | **POST** /v1/memories/batch/delete | Delete multiple memories by ID\n*MemoriesApi* | [**batch_get_memory**](docs/MemoriesApi.md#batch_get_memory) | **POST** /v1/memories/batch/get | Get multiple memories by ID\n*MemoriesApi* | [**create_memory**](docs/MemoriesApi.md#create_memory) | **POST** /v1/memories | Create a new memory\n*MemoriesApi* | [**delete_memory**](docs/MemoriesApi.md#delete_memory) | **DELETE** /v1/memories/{id} | Delete a memory\n*MemoriesApi* | [**get_memory**](docs/MemoriesApi.md#get_memory) | **GET** /v1/memories/{id} | Get a memory by ID\n*MemoriesApi* | [**list_memories**](docs/MemoriesApi.md#list_memories) | **GET** /v1/spaces/{spaceId}/memories | List memories in a space\n*MemoriesApi* | [**retrieve_memory**](docs/MemoriesApi.md#retrieve_memory) | **GET** /v1/memories/retrieve | Stream semantic memory retrieval\n*MemoriesApi* | [**retrieve_memory_advanced**](docs/MemoriesApi.md#retrieve_memory_advanced) | **POST** /v1/memories/retrieve | Advanced semantic memory retrieval with JSON\n*RerankersApi* | [**create_reranker**](docs/RerankersApi.md#create_reranker) | **POST** /v1/rerankers | Create a new reranker\n*RerankersApi* | [**delete_reranker**](docs/RerankersApi.md#delete_reranker) | **DELETE** /v1/rerankers/{id} | Delete a reranker\n*RerankersApi* | [**get_reranker**](docs/RerankersApi.md#get_reranker) | **GET** /v1/rerankers/{id} | Get a reranker by ID\n*RerankersApi* | [**list_rerankers**](docs/RerankersApi.md#list_rerankers) | **GET** /v1/rerankers | List rerankers\n*RerankersApi* | [**update_reranker**](docs/RerankersApi.md#update_reranker) | **PUT** /v1/rerankers/{id} | Update a reranker\n*SpacesApi* | [**create_space**](docs/SpacesApi.md#create_space) | **POST** /v1/spaces | Create a new Space\n*SpacesApi* | [**delete_space**](docs/SpacesApi.md#delete_space) | **DELETE** /v1/spaces/{id} | Delete a space\n*SpacesApi* | [**get_space**](docs/SpacesApi.md#get_space) | **GET** /v1/spaces/{id} | Get a space by ID\n*SpacesApi* | [**list_spaces**](docs/SpacesApi.md#list_spaces) | **GET** /v1/spaces | List spaces\n*SpacesApi* | [**update_space**](docs/SpacesApi.md#update_space) | **PUT** /v1/spaces/{id} | Update a space\n*SystemApi* | [**initialize_system**](docs/SystemApi.md#initialize_system) | **POST** /v1/system/init | Initialize the system\n*UsersApi* | [**get_user**](docs/UsersApi.md#get_user) | **GET** /v1/users/{id} | Get a user by ID\n\n\n## Documentation For Models\n\n - [AbstractReply](docs/AbstractReply.md)\n - **[ApiKeyResponse](docs/ApiKeyResponse.md)** - API key metadata and information\n - **[BatchMemoryCreationRequest](docs/BatchMemoryCreationRequest.md)** - Request for creating multiple memories\n - **[BatchMemoryDeletionRequest](docs/BatchMemoryDeletionRequest.md)** - Request for deleting multiple memories\n - **[BatchMemoryRetrievalRequest](docs/BatchMemoryRetrievalRequest.md)** - Request for retrieving multiple memories\n - [BinaryContent](docs/BinaryContent.md)\n - [ChunkReference](docs/ChunkReference.md)\n - [ChunkingConfiguration](docs/ChunkingConfiguration.md)\n - [ContextItem](docs/ContextItem.md)\n - **[CreateApiKeyRequest](docs/CreateApiKeyRequest.md)** - Request for creating a new API key\n - **[CreateApiKeyResponse](docs/CreateApiKeyResponse.md)** - Response containing new API key details\n - [DistributionType](docs/DistributionType.md)\n - **[EmbedderCreationRequest](docs/EmbedderCreationRequest.md)** - Request for creating a new embedder\n - **[EmbedderResponse](docs/EmbedderResponse.md)** - Embedder configuration and metadata\n - [EmbedderWeight](docs/EmbedderWeight.md)\n - [GoodMemStatus](docs/GoodMemStatus.md)\n - [LengthMeasurement](docs/LengthMeasurement.md)\n - **[ListApiKeysResponse](docs/ListApiKeysResponse.md)** - Response containing list of API keys\n - **[ListEmbeddersResponse](docs/ListEmbeddersResponse.md)** - Response containing list of embedders\n - [ListRerankersResponse](docs/ListRerankersResponse.md)\n - **[ListSpacesResponse](docs/ListSpacesResponse.md)** - Response containing list of spaces\n - **[Memory](docs/Memory.md)** - Memory object with content and metadata\n - [MemoryChunkResponse](docs/MemoryChunkResponse.md)\n - **[MemoryCreationRequest](docs/MemoryCreationRequest.md)** - Request for creating a new memory\n - **[MemoryListResponse](docs/MemoryListResponse.md)** - Response containing list of memories\n - **[Modality](docs/Modality.md)** - Enumeration of supported modalities (TEXT, IMAGE, etc.)\n - [PostProcessor](docs/PostProcessor.md)\n - **[ProviderType](docs/ProviderType.md)** - Enumeration of embedding providers (OPENAI, etc.)\n - [RecursiveChunkingConfiguration](docs/RecursiveChunkingConfiguration.md)\n - [RerankerCreationRequest](docs/RerankerCreationRequest.md)\n - [RerankerResponse](docs/RerankerResponse.md)\n - [ResultSetBoundary](docs/ResultSetBoundary.md)\n - [RetrieveMemoryEvent](docs/RetrieveMemoryEvent.md)\n - [RetrieveMemoryRequest](docs/RetrieveMemoryRequest.md)\n - [RetrievedItem](docs/RetrievedItem.md)\n - [SentenceChunkingConfiguration](docs/SentenceChunkingConfiguration.md)\n - [SeparatorKeepStrategy](docs/SeparatorKeepStrategy.md)\n - **[Space](docs/Space.md)** - Space object for organizing memories\n - **[SpaceCreationRequest](docs/SpaceCreationRequest.md)** - Request for creating a new space\n - **[SpaceEmbedder](docs/SpaceEmbedder.md)** - Associates an embedder with a space, including retrieval configuration\n - **[SpaceEmbedderConfig](docs/SpaceEmbedderConfig.md)** - Configuration for associating an embedder with a space\n - [SpaceKey](docs/SpaceKey.md)\n - **[SystemInitResponse](docs/SystemInitResponse.md)** - Response from system initialization\n - **[UpdateApiKeyRequest](docs/UpdateApiKeyRequest.md)** - Request for updating an API key\n - **[UpdateEmbedderRequest](docs/UpdateEmbedderRequest.md)** - Request for updating an embedder\n - [UpdateRerankerRequest](docs/UpdateRerankerRequest.md)\n - **[UpdateSpaceRequest](docs/UpdateSpaceRequest.md)** - Request for updating a space\n - **[UserResponse](docs/UserResponse.md)** - User account information\n\n\n<a id=\"documentation-for-authorization\"></a>\n## Documentation For Authorization\n\n\nAuthentication schemes defined for the API:\n<a id=\"BearerAuth\"></a>\n### BearerAuth\n\n- **Type**: Bearer authentication\n\n<a id=\"ApiKeyAuth\"></a>\n### ApiKeyAuth\n\n- **Type**: API key\n- **API key parameter name**: x-api-key\n- **Location**: HTTP header\n\n\n\n## Contact & Support\n\nFor questions or issues with the Python client, please visit:\n- GitHub repository: https://github.com/PAIR-Systems-Inc/goodmem\n- PyPI package: https://pypi.org/project/goodmem-client/\n\n\n## Author\n\nsupport@goodmem.io\n\n\n",
"bugtrack_url": null,
"license": "Apache 2.0",
"summary": "API for interacting with the GoodMem service, providing vector-based memory storage and retrieval with multiple embedder support.",
"version": "1.5.4",
"project_urls": {
"Bug Reports": "https://github.com/PAIR-Systems-Inc/goodmem/issues",
"Homepage": "https://github.com/PAIR-Systems-Inc/goodmem",
"PyPI": "https://pypi.org/project/goodmem-client/",
"Source": "https://github.com/PAIR-Systems-Inc/goodmem/tree/main/clients/python"
},
"split_keywords": [
"openapi",
" openapi-generator",
" goodmem api",
" vector",
" embeddings",
" memory"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7a0f9f6cfa1a09d13cb246dfb665257c25aa131d665c90e1d2cdb7a3560fce06",
"md5": "04930d42bb9658132d8025696c98fc98",
"sha256": "8c01929be3cfa9e035f4217baef598fc103bcd05e814f6ab1a94f81530302790"
},
"downloads": -1,
"filename": "goodmem_client-1.5.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "04930d42bb9658132d8025696c98fc98",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 132186,
"upload_time": "2025-08-09T01:01:14",
"upload_time_iso_8601": "2025-08-09T01:01:14.938069Z",
"url": "https://files.pythonhosted.org/packages/7a/0f/9f6cfa1a09d13cb246dfb665257c25aa131d665c90e1d2cdb7a3560fce06/goodmem_client-1.5.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cdbe76fc20637393f327b5b8ae69db88dd291c9cb80a1e5b4a75a97b8338f95e",
"md5": "4f4d8da37ea92ffe78d29caa7c60e310",
"sha256": "032dba4ebb8814b6697c24e6abc6353f06f74471881436c1114d02b2a5a49ae0"
},
"downloads": -1,
"filename": "goodmem_client-1.5.4.tar.gz",
"has_sig": false,
"md5_digest": "4f4d8da37ea92ffe78d29caa7c60e310",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 75781,
"upload_time": "2025-08-09T01:01:16",
"upload_time_iso_8601": "2025-08-09T01:01:16.103656Z",
"url": "https://files.pythonhosted.org/packages/cd/be/76fc20637393f327b5b8ae69db88dd291c9cb80a1e5b4a75a97b8338f95e/goodmem_client-1.5.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-09 01:01:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "PAIR-Systems-Inc",
"github_project": "goodmem",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "goodmem-client"
}