From 08c83e09e68ab2bd759cddaab29cd65a61ae8f81 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 9 Aug 2025 09:11:25 +0800 Subject: [PATCH] Update Schema methods to include locale parameter for providers - Modified Schema methods across various providers (chunking, embedding, extractor, fetcher, converters) to accept an additional locale parameter, enhancing localization support. - Updated corresponding test cases to reflect the changes in method signatures and ensure proper functionality with the new locale argument. --- kb/providers/chunking.go | 4 ++-- kb/providers/converters/mcp.go | 2 +- kb/providers/converters/mcp_test.go | 2 +- kb/providers/converters/ocr.go | 2 +- kb/providers/converters/ocr_test.go | 2 +- kb/providers/converters/office.go | 2 +- kb/providers/converters/office_test.go | 2 +- kb/providers/converters/utf8.go | 2 +- kb/providers/converters/utf8_test.go | 2 +- kb/providers/converters/video.go | 2 +- kb/providers/converters/video_test.go | 2 +- kb/providers/converters/vision.go | 2 +- kb/providers/converters/vision_test.go | 2 +- kb/providers/converters/whisper.go | 2 +- kb/providers/converters/whisper_test.go | 2 +- kb/providers/embedding.go | 4 ++-- kb/providers/embedding_test.go | 4 ++-- kb/providers/extractor.go | 2 +- kb/providers/extractor_test.go | 2 +- kb/providers/factory/factory.go | 4 ++-- kb/providers/factory/interfaces.go | 2 +- kb/providers/fetcher.go | 4 ++-- kb/providers/fetcher_test.go | 4 ++-- 23 files changed, 29 insertions(+), 29 deletions(-) diff --git a/kb/providers/chunking.go b/kb/providers/chunking.go index bc047bf9..ee67f293 100644 --- a/kb/providers/chunking.go +++ b/kb/providers/chunking.go @@ -95,7 +95,7 @@ func (s *Structured) Options(option *kbtypes.ProviderOption) (*types.ChunkingOpt } // Schema returns the schema for the structured chunking provider -func (s *Structured) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (s *Structured) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } @@ -240,6 +240,6 @@ func (s *Semantic) Options(option *kbtypes.ProviderOption) (*types.ChunkingOptio } // Schema returns the schema for the semantic chunking provider -func (s *Semantic) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (s *Semantic) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/mcp.go b/kb/providers/converters/mcp.go index d6834d15..2cdf524d 100644 --- a/kb/providers/converters/mcp.go +++ b/kb/providers/converters/mcp.go @@ -127,6 +127,6 @@ func (mcp *MCP) AutoDetect(filename, contentTypes string) (bool, int, error) { } // Schema returns the schema for the MCP converter -func (mcp *MCP) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (mcp *MCP) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/mcp_test.go b/kb/providers/converters/mcp_test.go index 7e5768b0..e4f6858d 100644 --- a/kb/providers/converters/mcp_test.go +++ b/kb/providers/converters/mcp_test.go @@ -220,7 +220,7 @@ func TestMCP_AutoDetect(t *testing.T) { func TestMCP_Schema(t *testing.T) { mcp := &MCP{} - schema, err := mcp.Schema(nil) + schema, err := mcp.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/converters/ocr.go b/kb/providers/converters/ocr.go index 3cc6f4d1..6969dd3e 100644 --- a/kb/providers/converters/ocr.go +++ b/kb/providers/converters/ocr.go @@ -168,6 +168,6 @@ func (ocr *OCR) AutoDetect(filename, contentTypes string) (bool, int, error) { } // Schema returns the schema for the OCR converter -func (ocr *OCR) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (ocr *OCR) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/ocr_test.go b/kb/providers/converters/ocr_test.go index 97f0f94f..a82ec448 100644 --- a/kb/providers/converters/ocr_test.go +++ b/kb/providers/converters/ocr_test.go @@ -397,7 +397,7 @@ func TestOCR_AutoDetect(t *testing.T) { func TestOCR_Schema(t *testing.T) { ocr := &OCR{} - schema, err := ocr.Schema(nil) + schema, err := ocr.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/converters/office.go b/kb/providers/converters/office.go index 04ff2edd..d67350cc 100644 --- a/kb/providers/converters/office.go +++ b/kb/providers/converters/office.go @@ -108,6 +108,6 @@ func (office *Office) AutoDetect(filename, contentTypes string) (bool, int, erro } // Schema returns the schema for the Office converter -func (office *Office) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (office *Office) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/office_test.go b/kb/providers/converters/office_test.go index 7cdfe049..22505ed3 100644 --- a/kb/providers/converters/office_test.go +++ b/kb/providers/converters/office_test.go @@ -303,7 +303,7 @@ func TestOffice_AutoDetect(t *testing.T) { func TestOffice_Schema(t *testing.T) { office := &Office{} - schema, err := office.Schema(nil) + schema, err := office.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/converters/utf8.go b/kb/providers/converters/utf8.go index 9723f047..6cd80b94 100644 --- a/kb/providers/converters/utf8.go +++ b/kb/providers/converters/utf8.go @@ -43,6 +43,6 @@ func (utf8 *UTF8) AutoDetect(filename, contentTypes string) (bool, int, error) { } // Schema returns the schema for the UTF8 converter -func (utf8 *UTF8) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (utf8 *UTF8) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/utf8_test.go b/kb/providers/converters/utf8_test.go index 940077da..e7241839 100644 --- a/kb/providers/converters/utf8_test.go +++ b/kb/providers/converters/utf8_test.go @@ -121,7 +121,7 @@ func TestUTF8_AutoDetect(t *testing.T) { func TestUTF8_Schema(t *testing.T) { utf8 := &UTF8{} - schema, err := utf8.Schema(nil) + schema, err := utf8.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/converters/video.go b/kb/providers/converters/video.go index 3991d6ad..1732fce4 100644 --- a/kb/providers/converters/video.go +++ b/kb/providers/converters/video.go @@ -189,6 +189,6 @@ func (video *Video) AutoDetect(filename, contentTypes string) (bool, int, error) } // Schema returns the schema for the Video converter -func (video *Video) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (video *Video) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/video_test.go b/kb/providers/converters/video_test.go index c8f97006..dbc16022 100644 --- a/kb/providers/converters/video_test.go +++ b/kb/providers/converters/video_test.go @@ -244,7 +244,7 @@ func TestVideo_AutoDetect(t *testing.T) { func TestVideo_Schema(t *testing.T) { video := &Video{} - schema, err := video.Schema(nil) + schema, err := video.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/converters/vision.go b/kb/providers/converters/vision.go index cfcd4f43..7f0c689c 100644 --- a/kb/providers/converters/vision.go +++ b/kb/providers/converters/vision.go @@ -93,6 +93,6 @@ func (vision *Vision) AutoDetect(filename, contentTypes string) (bool, int, erro } // Schema returns the schema for the Vision converter -func (vision *Vision) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (vision *Vision) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/vision_test.go b/kb/providers/converters/vision_test.go index b1362394..7c853645 100644 --- a/kb/providers/converters/vision_test.go +++ b/kb/providers/converters/vision_test.go @@ -182,7 +182,7 @@ func TestVision_AutoDetect(t *testing.T) { func TestVision_Schema(t *testing.T) { vision := &Vision{} - schema, err := vision.Schema(nil) + schema, err := vision.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/converters/whisper.go b/kb/providers/converters/whisper.go index 4e4cb33e..6efb38a0 100644 --- a/kb/providers/converters/whisper.go +++ b/kb/providers/converters/whisper.go @@ -143,6 +143,6 @@ func (whisper *Whisper) AutoDetect(filename, contentTypes string) (bool, int, er } // Schema returns the schema for the Whisper converter -func (whisper *Whisper) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (whisper *Whisper) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/converters/whisper_test.go b/kb/providers/converters/whisper_test.go index 8f9ed3ec..1d29c775 100644 --- a/kb/providers/converters/whisper_test.go +++ b/kb/providers/converters/whisper_test.go @@ -213,7 +213,7 @@ func TestWhisper_AutoDetect(t *testing.T) { func TestWhisper_Schema(t *testing.T) { whisper := &Whisper{} - schema, err := whisper.Schema(nil) + schema, err := whisper.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/embedding.go b/kb/providers/embedding.go index 038ad2b8..07016ee6 100644 --- a/kb/providers/embedding.go +++ b/kb/providers/embedding.go @@ -70,7 +70,7 @@ func (o *OpenAI) Make(option *kbtypes.ProviderOption) (types.Embedding, error) { } // Schema returns the schema for the OpenAI embedding provider -func (o *OpenAI) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (o *OpenAI) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } @@ -141,6 +141,6 @@ func (f *Fastembed) Make(option *kbtypes.ProviderOption) (types.Embedding, error } // Schema returns the schema for the Fastembed embedding provider -func (f *Fastembed) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (f *Fastembed) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/embedding_test.go b/kb/providers/embedding_test.go index 575d5075..249163bd 100644 --- a/kb/providers/embedding_test.go +++ b/kb/providers/embedding_test.go @@ -122,7 +122,7 @@ func TestOpenAI_Make(t *testing.T) { func TestOpenAI_Schema(t *testing.T) { openai := &OpenAI{} - schema, err := openai.Schema(nil) + schema, err := openai.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } @@ -283,7 +283,7 @@ func TestFastembed_Make(t *testing.T) { func TestFastembed_Schema(t *testing.T) { fastembed := &Fastembed{} - schema, err := fastembed.Schema(nil) + schema, err := fastembed.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/extractor.go b/kb/providers/extractor.go index 9b2d4afd..a2d68b7e 100644 --- a/kb/providers/extractor.go +++ b/kb/providers/extractor.go @@ -128,6 +128,6 @@ func (e *ExtractorOpenAI) Make(option *kbtypes.ProviderOption) (types.Extraction } // Schema returns the schema for the OpenAI extractor provider -func (e *ExtractorOpenAI) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (e *ExtractorOpenAI) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/extractor_test.go b/kb/providers/extractor_test.go index e0d2014b..1d32f908 100644 --- a/kb/providers/extractor_test.go +++ b/kb/providers/extractor_test.go @@ -279,7 +279,7 @@ func TestExtractorOpenAI_Make(t *testing.T) { func TestExtractorOpenAI_Schema(t *testing.T) { extractor := &ExtractorOpenAI{} - schema, err := extractor.Schema(nil) + schema, err := extractor.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } diff --git a/kb/providers/factory/factory.go b/kb/providers/factory/factory.go index 6e8b7410..190a82e9 100644 --- a/kb/providers/factory/factory.go +++ b/kb/providers/factory/factory.go @@ -129,7 +129,7 @@ func MakeFetcher(id string, option *kbtypes.ProviderOption) (types.Fetcher, erro // === Schema API === // GetSchema returns the schema for a provider -func GetSchema(typ ProviderType, provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func GetSchema(typ ProviderType, provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { var schema Schema = nil var exists bool = false switch typ { @@ -147,5 +147,5 @@ func GetSchema(typ ProviderType, provider *kbtypes.Provider) (*kbtypes.ProviderS if !exists { return nil, fmt.Errorf("%s provider %s not found", typ, provider.ID) } - return schema.Schema(provider) + return schema.Schema(provider, locale) } diff --git a/kb/providers/factory/interfaces.go b/kb/providers/factory/interfaces.go index 8effcdaa..2992129b 100644 --- a/kb/providers/factory/interfaces.go +++ b/kb/providers/factory/interfaces.go @@ -39,5 +39,5 @@ type Fetcher interface { // Schema interface for providers type Schema interface { - Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) + Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) } diff --git a/kb/providers/fetcher.go b/kb/providers/fetcher.go index 8d519963..8930f3d1 100644 --- a/kb/providers/fetcher.go +++ b/kb/providers/fetcher.go @@ -66,7 +66,7 @@ func (f *FetcherHTTP) Make(option *kbtypes.ProviderOption) (types.Fetcher, error } // Schema returns the schema for the HTTP fetcher provider -func (f *FetcherHTTP) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (f *FetcherHTTP) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } @@ -155,6 +155,6 @@ func (f *FetcherMCP) Make(option *kbtypes.ProviderOption) (types.Fetcher, error) } // Schema returns the schema for the MCP fetcher provider -func (f *FetcherMCP) Schema(provider *kbtypes.Provider) (*kbtypes.ProviderSchema, error) { +func (f *FetcherMCP) Schema(provider *kbtypes.Provider, locale string) (*kbtypes.ProviderSchema, error) { return nil, nil } diff --git a/kb/providers/fetcher_test.go b/kb/providers/fetcher_test.go index 8084580e..c34fa819 100644 --- a/kb/providers/fetcher_test.go +++ b/kb/providers/fetcher_test.go @@ -183,7 +183,7 @@ func TestFetcherHTTP_Make(t *testing.T) { func TestFetcherHTTP_Schema(t *testing.T) { fetcher := &FetcherHTTP{} - schema, err := fetcher.Schema(nil) + schema, err := fetcher.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) } @@ -441,7 +441,7 @@ func TestFetcherMCP_Make(t *testing.T) { func TestFetcherMCP_Schema(t *testing.T) { fetcher := &FetcherMCP{} - schema, err := fetcher.Schema(nil) + schema, err := fetcher.Schema(nil, "en") if err != nil { t.Errorf("Expected no error, got %v", err) }