GoodMem
ReferenceClient SDKsGoRequests

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

FieldTypeRequiredDescription
Messagestring✅ YesPrimary query/message for semantic search
SpaceIDs[]string❌ NoComma-separated list of space UUIDs to search within
RequestedSize*int32❌ NoMaximum number of memories to retrieve (default varies by server)
FetchMemory*bool❌ NoWhether to fetch memory definitions (default: true)
FetchMemoryContent*bool❌ NoWhether to fetch original content for memories (default: false)
GenerateAbstract*bool❌ NoWhether to generate AI abstract of results (default varies)
FormatStreamingFormat✅ YesStreaming format: FormatNDJSON or FormatSSE (default: NDJSON)
PpLlmID*string❌ NoUUID of LLM to use for ChatPostProcessor generation
PpRerankerID*string❌ NoUUID of reranker to use for ChatPostProcessor
PpRelevanceThreshold*float64❌ NoMinimum relevance score for ChatPostProcessor (default: 0.5)
PpLlmTemp*float64❌ NoLLM temperature for ChatPostProcessor generation (default: 0.3)
PpMaxResults*int32❌ NoMaximum results for ChatPostProcessor (default: 10)
PpChronologicalResort*bool❌ NoWhether 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
}