Refactor Tender Management to Introduce Notice Entity and Repository

- Replaced the tender repository with a new notice repository, encapsulating notice-related data access methods.
- Introduced the Notice entity to represent tender/contract notices, including relevant fields and methods for managing notice data.
- Updated the TED scraper to utilize the new notice repository for creating and managing notices, enhancing the integration with the tender management system.
- Implemented Ollama SDK initialization in the web bootstrap process, allowing for improved AI interactions.
- Enhanced the tender service to include Ollama SDK for additional functionality, ensuring a more robust service layer.
This commit is contained in:
n.nakhostin
2025-10-04 15:22:49 +03:30
parent 154610e2a0
commit cc3d6163ed
15 changed files with 1088 additions and 85 deletions
+15
View File
@@ -74,6 +74,21 @@ type NotificationConfig struct {
UserAgent string `env:"NOTIFICATION_USER_AGENT"`
}
// OllamaConfig represents the configuration for the Ollama SDK
type OllamaConfig struct {
BaseURL string `env:"OLLAMA_BASE_URL" default:"http://localhost:11434"`
Timeout time.Duration `env:"OLLAMA_TIMEOUT" default:"300s"`
RetryAttempts int `env:"OLLAMA_RETRY_ATTEMPTS" default:"3"`
RetryDelay time.Duration `env:"OLLAMA_RETRY_DELAY" default:"2s"`
EnableLogging bool `env:"OLLAMA_ENABLE_LOGGING" default:"true"`
UserAgent string `env:"OLLAMA_USER_AGENT" default:"TenderManagement-OllamaSDK/1.0"`
DefaultModel string `env:"OLLAMA_DEFAULT_MODEL" default:"llama2"`
DefaultTemperature float64 `env:"OLLAMA_DEFAULT_TEMPERATURE" default:"0.7"`
DefaultTopP float64 `env:"OLLAMA_DEFAULT_TOP_P" default:"0.9"`
DefaultMaxTokens int `env:"OLLAMA_DEFAULT_MAX_TOKENS" default:"1000"`
EnableStreaming bool `env:"OLLAMA_ENABLE_STREAMING" default:"false"`
}
// LoadConfig loads configuration with priority: OS environment variables > .env file
// OS environment variables take precedence over .env file values
func LoadConfig[T any](path string, config T) (T, error) {