MemoryStreamRequest
MemoryStreamRequest documentation for Go SDK
Request parameters for streaming memory retrieval operations in GoodMem.
Overview
MemoryStreamRequest encapsulates all parameters needed to initiate a streaming memory retrieval with optional ChatPostProcessor configuration for automated result post-processing.
Structure
type MemoryStreamRequest struct {
Message string `json:"message"`
SpaceIDs []string `json:"spaceIds,omitempty"`
RequestedSize *int32 `json:"requestedSize,omitempty"`
FetchMemory *bool `json:"fetchMemory,omitempty"`
FetchMemoryContent *bool `json:"fetchMemoryContent,omitempty"`
GenerateAbstract *bool `json:"generateAbstract,omitempty"`
Format StreamingFormat `json:"format"`
// ChatPostProcessor parameters
PpLlmID *string `json:"ppLlmId,omitempty"`
PpRerankerID *string `json:"ppRerankerId,omitempty"`
PpRelevanceThreshold *float64 `json:"ppRelevanceThreshold,omitempty"`
PpLlmTemp *float64 `json:"ppLlmTemp,omitempty"`
PpMaxResults *int32 `json:"ppMaxResults,omitempty"`
PpChronologicalResort *bool `json:"ppChronologicalResort,omitempty"`
}Fields
| Field | Type | Required | Description |
|---|---|---|---|
Message | string | ✅ Yes | Primary query/message for semantic search |
SpaceIDs | []string | ❌ No | Comma-separated list of space UUIDs to search within |
RequestedSize | *int32 | ❌ No | Maximum number of memories to retrieve (default varies by server) |
FetchMemory | *bool | ❌ No | Whether to fetch memory definitions (default: true) |
FetchMemoryContent | *bool | ❌ No | Whether to fetch original content for memories (default: false) |
GenerateAbstract | *bool | ❌ No | Whether to generate AI abstract of results (default varies) |
Format | StreamingFormat | ✅ Yes | Streaming format: FormatNDJSON or FormatSSE (default: NDJSON) |
PpLlmID | *string | ❌ No | UUID of LLM to use for ChatPostProcessor generation |
PpRerankerID | *string | ❌ No | UUID of reranker to use for ChatPostProcessor |
PpRelevanceThreshold | *float64 | ❌ No | Minimum relevance score for ChatPostProcessor (default: 0.5) |
PpLlmTemp | *float64 | ❌ No | LLM temperature for ChatPostProcessor generation (default: 0.3) |
PpMaxResults | *int32 | ❌ No | Maximum results for ChatPostProcessor (default: 10) |
PpChronologicalResort | *bool | ❌ No | Whether ChatPostProcessor should resort by creation time (default: true) |
Usage Example
import (
"context"
goodmem_client "github.com/PAIR-Systems-Inc/goodmem/clients/go"
)
// Basic request
request := &goodmem_client.MemoryStreamRequest{
Message: "artificial intelligence",
SpaceIDs: []string{"space-uuid"},
Format: goodmem_client.FormatNDJSON,
}
// Request with ChatPostProcessor
requestedSize := int32(5)
fetchMemory := true
llmID := "llm-uuid"
rerankerID := "reranker-uuid"
relevanceThreshold := 0.6
request := &goodmem_client.MemoryStreamRequest{
Message: "artificial intelligence",
SpaceIDs: []string{"space-uuid"},
RequestedSize: &requestedSize,
FetchMemory: &fetchMemory,
Format: goodmem_client.FormatNDJSON,
PpLlmID: &llmID,
PpRerankerID: &rerankerID,
PpRelevanceThreshold: &relevanceThreshold,
}Integration with StreamingClient
Use with StreamingClient:
streamingClient := goodmem_client.NewStreamingClient(apiClient)
stream, err := streamingClient.RetrieveMemoryStream(
context.Background(),
request,
)
if err != nil {
log.Fatal(err)
}
for event := range stream {
// Process streaming events
}Related Types
- StreamingClient - Main streaming client
- MemoryStreamResponse - Response events
- StreamingFormat - Format enumeration
- AdvancedMemoryStreamRequest - Advanced variant