Files
ai-agent/internal/ai/rag/chunk/fixed_provider.go
T
t 2bbf42b741 refactor(auth): delegate access control to be-system
Remove Agent Desk users, roles, login sessions, tokens, and local permission persistence. Expose the backend as an embeddable ai-agent module with host-provided subject lookup and operation authorization callbacks, and complete the frontend/backend repository split.
2026-08-21 00:41:07 +08:00

45 lines
1.0 KiB
Go

package chunk
import (
"code.tczkiot.com/wlw/ai-agent/internal/pkg/enums"
"context"
)
type fixedProvider struct{}
func NewFixedProvider() Provider {
return &fixedProvider{}
}
func (p *fixedProvider) Name() string {
return string(enums.KnowledgeChunkProviderFixed)
}
func (p *fixedProvider) Supports(contentType enums.KnowledgeDocumentContentType) bool {
return true
}
func (p *fixedProvider) Chunk(ctx context.Context, req *ChunkRequest) ([]ChunkResult, error) {
text := req.PlainText
if text == "" {
text = req.Content
}
parts := splitPlainText(text, req.Options)
results := make([]ChunkResult, 0, len(parts))
for i, part := range parts {
results = append(results, ChunkResult{
ChunkNo: i,
Title: req.DocumentTitle,
Content: part,
ChunkType: enums.KnowledgeChunkTypeText,
SectionPath: req.DocumentTitle,
CharCount: len([]rune(part)),
TokenCount: estimateTokenCount(part),
Metadata: map[string]any{
"provider": enums.KnowledgeChunkProviderFixed,
},
})
}
return results, nil
}