MCPcopy Create free account
hub / github.com/astercloud/aster / generateEmbedding

Method generateEmbedding

pkg/knowledge/manager.go:783–803  ·  view source on GitHub ↗

辅助方法 generateEmbedding 生成向量嵌入

(ctx context.Context, item *KnowledgeItem)

Source from the content-addressed store, hash-verified

781
782// generateEmbedding 生成向量嵌入
783func (m *manager) generateEmbedding(ctx context.Context, item *KnowledgeItem) ([]float32, error) {
784 if m.embedder == nil {
785 return nil, errors.New("knowledge: no embedder available")
786 }
787
788 text := item.Content
789 if text == "" {
790 text = item.Title + " " + item.Description
791 }
792
793 embeddings, err := m.embedder.EmbedText(ctx, []string{text})
794 if err != nil {
795 return nil, fmt.Errorf("knowledge: embed failed: %w", err)
796 }
797 if len(embeddings) == 0 {
798 return nil, errors.New("knowledge: no embedding generated")
799 }
800 embedding := embeddings[0]
801
802 return embedding, nil
803}
804
805// calculateQuality 计算知识质量
806func (m *manager) calculateQuality(item *KnowledgeItem) float64 {

Callers 3

AddMethod · 0.95
UpdateMethod · 0.95
RefreshMethod · 0.95

Calls 1

EmbedTextMethod · 0.65

Tested by

no test coverage detected