stores

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 13, 2026 License: MIT Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	Separator = "\n* "
)

Variables

View Source
var (
	ErrNoRows   = pgx.ErrNoRows
	ErrNotFound = pgx.ErrNotFound
	ErrEmptyKey = pgx.ErrEmptyKey

	ContextWithColumns  = pgx.ContextWithColumns
	ColumnsFromContext  = pgx.ColumnsFromContext
	ContextWithRelation = pgx.ContextWithRelation
	RelationFromContext = pgx.RelationFromContext

	RegisterModel = pgx.RegisterModel
)

vars nolint

View Source
var (
	ErrEmptyParam = errors.New("empty param")
)

Functions

func DbOpModelMetaCreator

func DbOpModelMetaCreator(ctx context.Context, db ormDB, obj ModelMetaCreator) (err error)

func GetEmbedding

func GetEmbedding(ctx context.Context, text string) (vec corpus.Vector, err error)

func GetHistorySummary

func GetHistorySummary(ctx context.Context, history aigc.HistoryItems, tips string) (summary string, err error)

func GetKeywords

func GetKeywords(ctx context.Context, text string) (kw string, err error)

func GetLLMClient

func GetLLMClient() llm.Client

GetLLMClient 获取 LLM Client (默认 Interact)

func GetLLMEmbeddingClient

func GetLLMEmbeddingClient() llm.Client

GetLLMEmbeddingClient 获取 Embedding 用 LLM Client

func GetLLMSummarizeClient

func GetLLMSummarizeClient() llm.Client

GetLLMSummarizeClient 获取 Summarize/Completion 用 LLM Client

func GetSummary

func GetSummary(ctx context.Context, text, tips string) (summary string, err error)

GetSummary 生成聊天记录的简短标题 text 参数为聊天记录文本,tips 参数为自定义提示内容(可选)

func InitDB

func InitDB(ctx context.Context) error

func IsKeeper

func IsKeeper(ctx context.Context) bool

IsKeeper 检查当前上下文中的用户是否具有 keeper 角色或 UID

func LoadPreset

func LoadPreset() (doc aigc.Preset, err error)

func OpModelCreator

func OpModelCreator(ctx context.Context, obj comm.ModelCreator) (id oid.OID, name string)

func SgtDB

func SgtDB(args ...string) *pgx.DB

SgtDB start and return a singleton instance of DB **Attention**: args only used with fist call

Types

type ChatLogSpec

type ChatLogSpec struct {
	PageSpec
	ModelSpec

	// 会话ID
	ChatID string `extensions:"x-order=A" form:"csid" json:"csid"`
}

func (*ChatLogSpec) Sift

func (spec *ChatLogSpec) Sift(q *ormQuery) *ormQuery

type CobDocumentSpec

type CobDocumentSpec struct {
	PageSpec
	ModelSpec

	// 主标题 名称
	Title string `extensions:"x-order=A" form:"title" json:"title"`
	// 小节标题 属性 类别
	Heading string `extensions:"x-order=B" form:"heading" json:"heading"`
	// 内容 值
	Content string `extensions:"x-order=C" form:"content" json:"content"`
}

func (*CobDocumentSpec) CanSort

func (spec *CobDocumentSpec) CanSort(k string) bool

func (*CobDocumentSpec) Sift

func (spec *CobDocumentSpec) Sift(q *ormQuery) *ormQuery

type CobStore

type CobStore interface {
	CobStoreX

	ListDocument(ctx context.Context, spec *CobDocumentSpec) (data corpus.Documents, total int, err error)
	GetDocument(ctx context.Context, id string) (obj *corpus.Document, err error)
	CreateDocument(ctx context.Context, in corpus.DocumentBasic) (obj *corpus.Document, err error)
	UpdateDocument(ctx context.Context, id string, in corpus.DocumentSet) error
	DeleteDocument(ctx context.Context, id string) error

	GetDocVector(ctx context.Context, id string) (obj *corpus.DocVector, err error)
	CreateDocVector(ctx context.Context, in corpus.DocVectorBasic) (obj *corpus.DocVector, err error)
	DeleteDocVector(ctx context.Context, id string) error

	CreateChatLog(ctx context.Context, in corpus.ChatLogBasic) (obj *corpus.ChatLog, err error)
	GetChatLog(ctx context.Context, id string) (obj *corpus.ChatLog, err error)
	ListChatLog(ctx context.Context, spec *ChatLogSpec) (data corpus.ChatLogs, total int, err error)
	DeleteChatLog(ctx context.Context, id string) error
}

type CobStoreX

type CobStoreX interface {
	ImportDocs(ctx context.Context, r io.Reader, lw io.Writer) error
	ExportDocs(ctx context.Context, ea ExportArg) error
	EmbeddingDocVector(ctx context.Context, spec *CobDocumentSpec) error
	ConstructPrompt(ctx context.Context, ms MatchSpec) (prompt string, err error)
	MatchDocments(ctx context.Context, ms MatchSpec) (data corpus.Documents, err error)
	MatchVectorWith(ctx context.Context, vec corpus.Vector, threshold float32, limit int) (data corpus.DocMatches, err error)
	InvokerForSearch() mcps.Invoker
	InvokerForCreate() mcps.Invoker
}

type Conversation

type Conversation interface {
	GetID() string
	GetOID() oid.OID
	SetTools(names ...string)
	Save(ctx context.Context) error
	CountHistory(ctx context.Context) int
	AddHistory(ctx context.Context, item *aigc.HistoryItem) error
	ListHistory(ctx context.Context) (aigc.HistoryItems, error)
	ClearHistory(ctx context.Context) error
}

func NewConversation

func NewConversation(ctx context.Context, id any) Conversation

NewConversation 创建会话,使用默认 Redis 客户端

type ConvoMessageSpec

type ConvoMessageSpec struct {
	PageSpec
	ModelSpec

	// 会话编号
	SessionID string `extensions:"x-order=A" form:"session" json:"session"`
	// 角色
	Role string `extensions:"x-order=B" form:"role" json:"role"`
	// TokenCount
	TokenCount int `extensions:"x-order=C" form:"tokenCount" json:"tokenCount"`
}

func (*ConvoMessageSpec) Sift

func (spec *ConvoMessageSpec) Sift(q *ormQuery) *ormQuery

type ConvoSessionSpec

type ConvoSessionSpec struct {
	PageSpec
	ModelSpec

	// 标题
	Title string `extensions:"x-order=A" form:"title" json:"title"`
	// 状态
	//  * `open` - 开启
	//  * `closed` - 关闭
	Status convo.SessionStatus `extensions:"x-order=B" form:"status" json:"status" swaggertype:"string"`
	// 所有者编号 (多值使用逗号分隔)
	OwnerID string `extensions:"x-order=C" form:"owner" json:"owner,omitempty"`
}

func (*ConvoSessionSpec) Sift

func (spec *ConvoSessionSpec) Sift(q *ormQuery) *ormQuery

type ConvoStore

type ConvoStore interface {
	ConvoStoreX

	ListSession(ctx context.Context, spec *ConvoSessionSpec) (data convo.Sessions, total int, err error)
	GetSession(ctx context.Context, id string) (obj *convo.Session, err error)
	CreateSession(ctx context.Context, in convo.SessionBasic) (obj *convo.Session, err error)
	UpdateSession(ctx context.Context, id string, in convo.SessionSet) error
	DeleteSession(ctx context.Context, id string) error

	ListMessage(ctx context.Context, spec *ConvoMessageSpec) (data convo.Messages, total int, err error)
	GetMessage(ctx context.Context, id string) (obj *convo.Message, err error)
	CreateMessage(ctx context.Context, in convo.MessageBasic) (obj *convo.Message, err error)
	DeleteMessage(ctx context.Context, id string) error

	ListUser(ctx context.Context, spec *ConvoUserSpec) (data convo.Users, total int, err error)
	GetUser(ctx context.Context, id string) (obj *convo.User, err error)
	DeleteUser(ctx context.Context, id string) error
}

type ConvoStoreX

type ConvoStoreX interface {
	SaveSession(ctx context.Context, sess *convo.Session) error
	SaveUser(ctx context.Context, user *ConvoUser) error
}

type ConvoUser

type ConvoUser = convo.User

type ConvoUserSpec

type ConvoUserSpec struct {
	PageSpec
	ModelSpec

	// 登录名 唯一
	Username string `extensions:"x-order=A" form:"username" json:"username"`
	// 昵称
	Nickname string `extensions:"x-order=B" form:"nickname" json:"nickname"`
}

func (*ConvoUserSpec) Sift

func (spec *ConvoUserSpec) Sift(q *ormQuery) *ormQuery

type ExportArg

type ExportArg struct {
	Spec   *CobDocumentSpec
	Out    io.Writer
	Format string // csv,jsonl
}

type MCPServerSpec

type MCPServerSpec struct {
	PageSpec
	ModelSpec

	// 名称
	Name string `extensions:"x-order=A" form:"name" json:"name"`
	// 传输类型 (支持混合解码)
	//  * `stdIO` - 标准IO
	//  * `sse`
	//  * `streamable`
	//  * `inMemory` - 内部运行
	TransType string `extensions:"x-order=B" form:"transType" json:"transType" swaggertype:"string"`
	// 是否激活
	IsActive string `extensions:"x-order=C" form:"isActive" json:"isActive"`
	// 连接状态
	//  * `disconnected` - 断开
	//  * `connecting` - 连接中
	//  * `connected` - 已连接
	Status mcps.Status `extensions:"x-order=D" form:"status" json:"status" swaggertype:"string"`
}

func (*MCPServerSpec) Sift

func (spec *MCPServerSpec) Sift(q *ormQuery) *ormQuery

type MCPStore

type MCPStore interface {
	ListServer(ctx context.Context, spec *MCPServerSpec) (data mcps.Servers, total int, err error)
	GetServer(ctx context.Context, id string) (obj *mcps.Server, err error)
	CreateServer(ctx context.Context, in mcps.ServerBasic) (obj *mcps.Server, err error)
	UpdateServer(ctx context.Context, id string, in mcps.ServerSet) error
	DeleteServer(ctx context.Context, id string) error
}

type MatchSpec

type MatchSpec struct {
	Question     string
	Threshold    float32
	Limit        int
	SkipKeywords bool
}

type Model

type Model = pgx.Model

type ModelMeta

type ModelMeta = comm.ModelMeta

type ModelMetaCreator

type ModelMetaCreator interface {
	ModelMeta
	comm.ModelCreator
}

type ModelSpec

type ModelSpec = pgx.ModelSpec

type PageSpec

type PageSpec = comm.PageSpec

type RedisClient

type RedisClient = redis.UniversalClient

func SgtRC

func SgtRC() RedisClient

SgtRC start return a singleton instance of redis client

type Storage

type Storage interface {
	Cob() CobStore     // gened
	MCP() MCPStore     // gened
	Convo() ConvoStore // gened
}

type StringsDiff

type StringsDiff = pgx.StringsDiff

type TextSearchSpec

type TextSearchSpec = pgx.TextSearchSpec

type User

type User = auth.User

func UserFromContext

func UserFromContext(ctx context.Context) (*User, bool)

type Wrap

type Wrap struct {
	// contains filtered or unexported fields
}

Wrap implements Storages

func NewWithDB

func NewWithDB(db *pgx.DB) *Wrap

NewWithDB return new instance of Wrap

func Sgt

func Sgt() *Wrap

Sgt start and return a singleton instance of Storage

func (*Wrap) Close

func (w *Wrap) Close()

func (*Wrap) Cob

func (w *Wrap) Cob() CobStore

func (*Wrap) Convo

func (w *Wrap) Convo() ConvoStore

func (*Wrap) KB

func (w *Wrap) KB() CobStore

func (*Wrap) MCP

func (w *Wrap) MCP() MCPStore

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL