Documentation
¶
Index ¶
- Constants
- func GetConversationID(ctx context.Context) (string, bool)
- func WithConversationID(ctx context.Context, conversationID string) context.Context
- type ConversationBuffer
- type ConversationSummary
- type Option
- type RedisMemory
- type RedisOption
- type RetrieverOption
- type SummaryOption
- type VectorStoreRetriever
Constants ¶
const ConversationIDKey contextKey = "conversation_id"
ConversationIDKey is the key used to store conversation ID in context
Variables ¶
This section is empty.
Functions ¶
func GetConversationID ¶
GetConversationID retrieves the conversation ID from the context
Types ¶
type ConversationBuffer ¶
type ConversationBuffer struct {
// contains filtered or unexported fields
}
ConversationBuffer implements a simple in-memory conversation buffer
func NewConversationBuffer ¶
func NewConversationBuffer(options ...Option) *ConversationBuffer
NewConversationBuffer creates a new conversation buffer
func (*ConversationBuffer) AddMessage ¶
func (c *ConversationBuffer) AddMessage(ctx context.Context, message interfaces.Message) error
AddMessage adds a message to the buffer
func (*ConversationBuffer) Clear ¶
func (c *ConversationBuffer) Clear(ctx context.Context) error
Clear clears the buffer for a conversation
func (*ConversationBuffer) GetMessages ¶
func (c *ConversationBuffer) GetMessages(ctx context.Context, options ...interfaces.GetMessagesOption) ([]interfaces.Message, error)
GetMessages retrieves messages from the buffer
type ConversationSummary ¶
type ConversationSummary struct {
// contains filtered or unexported fields
}
ConversationSummary implements a memory that summarizes old messages
func NewConversationSummary ¶
func NewConversationSummary(llmClient interfaces.LLM, options ...SummaryOption) *ConversationSummary
NewConversationSummary creates a new conversation summary memory
func (*ConversationSummary) AddMessage ¶
func (c *ConversationSummary) AddMessage(ctx context.Context, message interfaces.Message) error
AddMessage adds a message to the memory
func (*ConversationSummary) Clear ¶
func (c *ConversationSummary) Clear(ctx context.Context) error
Clear clears the memory
func (*ConversationSummary) GetMessages ¶
func (c *ConversationSummary) GetMessages(ctx context.Context, options ...interfaces.GetMessagesOption) ([]interfaces.Message, error)
GetMessages retrieves messages from the memory
type Option ¶
type Option func(*ConversationBuffer)
Option represents an option for configuring the conversation buffer
func WithMaxSize ¶
WithMaxSize sets the maximum number of messages to store
type RedisMemory ¶
type RedisMemory struct {
// contains filtered or unexported fields
}
RedisMemory implements a memory that stores messages in Redis
func NewRedisMemory ¶
func NewRedisMemory(client *redis.Client, options ...RedisOption) *RedisMemory
NewRedisMemory creates a new Redis memory
func (*RedisMemory) AddMessage ¶
func (r *RedisMemory) AddMessage(ctx context.Context, message interfaces.Message) error
AddMessage adds a message to the memory
func (*RedisMemory) Clear ¶
func (r *RedisMemory) Clear(ctx context.Context) error
Clear clears the memory
func (*RedisMemory) GetMessages ¶
func (r *RedisMemory) GetMessages(ctx context.Context, options ...interfaces.GetMessagesOption) ([]interfaces.Message, error)
GetMessages retrieves messages from the memory
type RedisOption ¶
type RedisOption func(*RedisMemory)
RedisOption represents an option for configuring the Redis memory
func WithTTL ¶
func WithTTL(ttl time.Duration) RedisOption
WithTTL sets the time-to-live for messages in Redis
type RetrieverOption ¶
type RetrieverOption func(*VectorStoreRetriever)
RetrieverOption represents an option for configuring the vector store retriever
type SummaryOption ¶
type SummaryOption func(*ConversationSummary)
SummaryOption represents an option for configuring the conversation summary
func WithMaxBufferSize ¶
func WithMaxBufferSize(size int) SummaryOption
WithMaxBufferSize sets the maximum number of messages before summarizing
type VectorStoreRetriever ¶
type VectorStoreRetriever struct {
// contains filtered or unexported fields
}
VectorStoreRetriever implements a memory that stores messages in a vector store
func NewVectorStoreRetriever ¶
func NewVectorStoreRetriever(vectorStore interfaces.VectorStore, options ...RetrieverOption) *VectorStoreRetriever
NewVectorStoreRetriever creates a new vector store retriever memory
func (*VectorStoreRetriever) AddMessage ¶
func (v *VectorStoreRetriever) AddMessage(ctx context.Context, message interfaces.Message) error
AddMessage adds a message to the memory
func (*VectorStoreRetriever) Clear ¶
func (v *VectorStoreRetriever) Clear(ctx context.Context) error
Clear clears the memory
func (*VectorStoreRetriever) GetMessages ¶
func (v *VectorStoreRetriever) GetMessages(ctx context.Context, options ...interfaces.GetMessagesOption) ([]interfaces.Message, error)
GetMessages retrieves messages from the memory