mirror of
https://github.com/mayswind/ezbookkeeping.git
synced 2026-05-18 16:54:25 +08:00
modify the structure of the large language model options in the configuration file
This commit is contained in:
@@ -8,7 +8,7 @@ import (
|
||||
|
||||
// LargeLanguageModelProviderContainer contains the current large language model provider
|
||||
type LargeLanguageModelProviderContainer struct {
|
||||
current LargeLanguageModelProvider
|
||||
receiptImageRecognitionCurrentProvider LargeLanguageModelProvider
|
||||
}
|
||||
|
||||
// Initialize a large language model provider container singleton instance
|
||||
@@ -18,31 +18,40 @@ var (
|
||||
|
||||
// InitializeLargeLanguageModelProvider initializes the current large language model provider according to the config
|
||||
func InitializeLargeLanguageModelProvider(config *settings.Config) error {
|
||||
if config.LLMProvider == settings.OpenAILLMProvider {
|
||||
Container.current = NewOpenAILargeLanguageModelProvider(config)
|
||||
return nil
|
||||
} else if config.LLMProvider == settings.OpenAICompatibleLLMProvider {
|
||||
Container.current = NewOpenAICompatibleLargeLanguageModelProvider(config)
|
||||
return nil
|
||||
} else if config.LLMProvider == settings.OpenRouterLLMProvider {
|
||||
Container.current = NewOpenRouterLargeLanguageModelProvider(config)
|
||||
return nil
|
||||
} else if config.LLMProvider == settings.OllamaLLMProvider {
|
||||
Container.current = NewOllamaLargeLanguageModelProvider(config)
|
||||
return nil
|
||||
} else if config.LLMProvider == "" {
|
||||
Container.current = nil
|
||||
return nil
|
||||
var err error = nil
|
||||
|
||||
if config.ReceiptImageRecognitionLLMConfig != nil {
|
||||
Container.receiptImageRecognitionCurrentProvider, err = initializeLargeLanguageModelProvider(config.ReceiptImageRecognitionLLMConfig)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
return errs.ErrInvalidLLMProvider
|
||||
return nil
|
||||
}
|
||||
|
||||
func initializeLargeLanguageModelProvider(llmConfig *settings.LLMConfig) (LargeLanguageModelProvider, error) {
|
||||
if llmConfig.LLMProvider == settings.OpenAILLMProvider {
|
||||
return NewOpenAILargeLanguageModelProvider(llmConfig), nil
|
||||
} else if llmConfig.LLMProvider == settings.OpenAICompatibleLLMProvider {
|
||||
return NewOpenAICompatibleLargeLanguageModelProvider(llmConfig), nil
|
||||
} else if llmConfig.LLMProvider == settings.OpenRouterLLMProvider {
|
||||
return NewOpenRouterLargeLanguageModelProvider(llmConfig), nil
|
||||
} else if llmConfig.LLMProvider == settings.OllamaLLMProvider {
|
||||
return NewOllamaLargeLanguageModelProvider(llmConfig), nil
|
||||
} else if llmConfig.LLMProvider == "" {
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
return nil, errs.ErrInvalidLLMProvider
|
||||
}
|
||||
|
||||
// GetJsonResponseByReceiptImageRecognitionModel returns the json response from the current large language model provider by receipt image recognition model
|
||||
func (l *LargeLanguageModelProviderContainer) GetJsonResponseByReceiptImageRecognitionModel(c core.Context, uid int64, currentConfig *settings.Config, request *LargeLanguageModelRequest) (*LargeLanguageModelTextualResponse, error) {
|
||||
if Container.current == nil {
|
||||
if currentConfig.ReceiptImageRecognitionLLMConfig == nil || Container.receiptImageRecognitionCurrentProvider == nil {
|
||||
return nil, errs.ErrInvalidLLMProvider
|
||||
}
|
||||
|
||||
return l.current.GetJsonResponseByReceiptImageRecognitionModel(c, uid, currentConfig, request)
|
||||
return l.receiptImageRecognitionCurrentProvider.GetJsonResponse(c, uid, currentConfig.ReceiptImageRecognitionLLMConfig, request)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user