Documentation
¶
Index ¶
- func DecodeMessages(b []byte) ([]*schema.Message, error)
- func EncodeMessages(msgs []*schema.Message) ([]byte, error)
- func NewMiniRedisClient() (*redis.Client, func(), error)
- type InMemoryStore
- func (s *InMemoryStore) Query(ctx context.Context, sessionID, text string, limit int) ([]*schema.Message, error)
- func (s *InMemoryStore) Read(ctx context.Context, sessionID string) ([]*schema.Message, error)
- func (s *InMemoryStore) Write(ctx context.Context, sessionID string, msgs []*schema.Message) error
- type MemoryStore
- type RedisStore
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecodeMessages ¶
DecodeMessages deserializes messages previously encoded by EncodeMessages.
func EncodeMessages ¶
EncodeMessages serializes messages using Gob.
func NewMiniRedisClient ¶
NewMiniRedisClient starts an embedded Redis server for local demos/tests.
Types ¶
type InMemoryStore ¶
type InMemoryStore struct {
// contains filtered or unexported fields
}
InMemoryStore keeps serialized messages in a process-local map. Suitable for demos/tests; not shared across processes.
func NewInMemoryStore ¶
func NewInMemoryStore() *InMemoryStore
func (*InMemoryStore) Query ¶
func (s *InMemoryStore) Query(ctx context.Context, sessionID, text string, limit int) ([]*schema.Message, error)
Query performs a simple substring search on message contents for the session.
type MemoryStore ¶
type MemoryStore interface {
Write(ctx context.Context, sessionID string, msgs []*schema.Message) error
Read(ctx context.Context, sessionID string) ([]*schema.Message, error)
Query(ctx context.Context, sessionID, text string, limit int) ([]*schema.Message, error)
}
MemoryStore persists and restores short-term conversation history. Implementations are responsible for storing a slice of messages under a session key.
type RedisStore ¶
type RedisStore struct {
// contains filtered or unexported fields
}
RedisStore persists serialized messages in Redis under the provided session key.
func NewRedisStore ¶
func NewRedisStore(cli *redis.Client) *RedisStore
Click to show internal directories.
Click to hide internal directories.