github.com/weaviate/weaviate@v1.24.6/usecases/classification/classifier_module.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package classification 13 14 import ( 15 "github.com/weaviate/weaviate/entities/models" 16 "github.com/weaviate/weaviate/entities/modulecapabilities" 17 "github.com/weaviate/weaviate/entities/search" 18 ) 19 20 type moduleWriter struct { 21 writer Writer 22 } 23 24 func (w *moduleWriter) Start() { 25 w.writer.Start() 26 } 27 28 func (w *moduleWriter) Store(item search.Result) error { 29 return w.writer.Store(item) 30 } 31 32 func (w *moduleWriter) Stop() modulecapabilities.WriterResults { 33 res := w.writer.Stop() 34 return batchWriterResults{ 35 successCount: res.SuccessCount(), 36 errorCount: res.ErrorCount(), 37 err: res.Err(), 38 } 39 } 40 41 type moduleClassification struct { 42 classifyItemFn modulecapabilities.ClassifyItemFn 43 } 44 45 func (c *moduleClassification) classifyFn(item search.Result, itemIndex int, 46 params models.Classification, filters Filters, writer Writer, 47 ) error { 48 return c.classifyItemFn(item, itemIndex, params, filters, &moduleWriter{writer}) 49 }