@@ -22,17 +22,19 @@ const (
2222
2323// Config represents the main application configuration
2424type Config struct {
25- Version string `json:"version"`
26- Slack SlackConfig `json:"slack"`
27- LLM LLMConfig `json:"llm"`
28- MCPServers map [string ]MCPServerConfig `json:"mcpServers"`
29- RAG RAGConfig `json:"rag,omitempty"`
30- Monitoring MonitoringConfig `json:"monitoring,omitempty"`
31- Timeouts TimeoutConfig `json:"timeouts,omitempty"`
32- Retry RetryConfig `json:"retry,omitempty"`
33- Reload ReloadConfig `json:"reload,omitempty"`
34- Observability ObservabilityConfig `json:"observability,omitempty"`
35- UseStdIOClient bool `json:"useStdIOClient,omitempty"` // Use terminal client instead of a real slack bot, for local development
25+ Version string `json:"version"`
26+ Slack SlackConfig `json:"slack"`
27+ LLM LLMConfig `json:"llm"`
28+ MCPServers map [string ]MCPServerConfig `json:"mcpServers"`
29+ QueryEnhancementProvider string `json:"queryEnhancementProvider,omitempty"` // Optional: LLM provider for query enhancement (applies to all queries)
30+ QueryEnhancementPromptFile string `json:"queryEnhancementPromptFile,omitempty"` // Optional: Path to custom query enhancement prompt file
31+ RAG RAGConfig `json:"rag,omitempty"`
32+ Monitoring MonitoringConfig `json:"monitoring,omitempty"`
33+ Timeouts TimeoutConfig `json:"timeouts,omitempty"`
34+ Retry RetryConfig `json:"retry,omitempty"`
35+ Reload ReloadConfig `json:"reload,omitempty"`
36+ Observability ObservabilityConfig `json:"observability,omitempty"`
37+ UseStdIOClient bool `json:"useStdIOClient,omitempty"` // Use terminal client instead of a real slack bot, for local development
3638}
3739
3840// SlackConfig contains Slack-specific configuration
@@ -111,26 +113,37 @@ type MCPToolsConfig struct {
111113
112114// RAGConfig contains RAG system configuration
113115type RAGConfig struct {
114- Enabled bool `json:"enabled,omitempty"`
115- Provider string `json:"provider,omitempty"`
116- ChunkSize int `json:"chunkSize,omitempty"`
117- Providers map [string ]RAGProviderConfig `json:"providers,omitempty"`
116+ Enabled bool `json:"enabled,omitempty"`
117+ Provider string `json:"provider,omitempty"`
118+ ChunkSize int `json:"chunkSize,omitempty"`
119+ EmbeddingProvider string `json:"embeddingProvider,omitempty"` // Optional: Embedding provider (voyage, openai, cohere, etc.)
120+ Providers map [string ]RAGProviderConfig `json:"providers,omitempty"`
121+ EmbeddingProviders map [string ]RAGEmbeddingProviderConfig `json:"embeddingProviders,omitempty"` // Embedding provider configs
118122}
119123
120124// RAGProviderConfig contains RAG provider-specific settings
121125// TODO: Refactor this to use a common interface for all RAG providers, can use environment variables to configure the different providers
122126type RAGProviderConfig struct {
123127 DatabasePath string `json:"databasePath,omitempty"` // Simple provider: path to JSON database
124- IndexName string `json:"indexName,omitempty"` // OpenAI provider: vector store name
128+ IndexName string `json:"indexName,omitempty"` // OpenAI/S3 provider: vector store/index name
125129 VectorStoreID string `json:"vectorStoreId,omitempty"` // OpenAI provider: existing vector store ID
126130 Dimensions int `json:"dimensions,omitempty"` // OpenAI provider: embedding dimensions
127131 SimilarityMetric string `json:"similarityMetric,omitempty"` // OpenAI provider: similarity metric
128- MaxResults int `json:"maxResults,omitempty"` // OpenAI provider: maximum search results
129- ScoreThreshold float64 `json:"scoreThreshold,omitempty"` // OpenAI provider: score threshold
132+ MaxResults int `json:"maxResults,omitempty"` // OpenAI/S3 provider: maximum search results
133+ ScoreThreshold float64 `json:"scoreThreshold,omitempty"` // OpenAI/S3 provider: score threshold
130134 RewriteQuery bool `json:"rewriteQuery,omitempty"` // OpenAI provider: rewrite query
131135 VectorStoreNameRegex string `json:"vectorStoreNameRegex,omitempty"` // OpenAI provider: vector store name regex
132136 VectorStoreMetadataKey string `json:"vectorStoreMetadataKey,omitempty"` // OpenAI provider: vector store metadata key
133137 VectorStoreMetadataValue string `json:"vectorStoreMetadataValue,omitempty"` // OpenAI provider: vector store metadata value
138+ BucketName string `json:"bucketName,omitempty"` // S3 provider: S3 bucket name
139+ Region string `json:"region,omitempty"` // S3 provider: AWS region
140+ DateFilterField string `json:"dateFilterField,omitempty"` // Date filter metadata field name
141+ DateRangeWindowDays int `json:"dateRangeWindowDays,omitempty"` // Days to expand date range backward (default: 7)
142+ }
143+
144+ // RAGEmbeddingProviderConfig contains embedding provider-specific settings
145+ type RAGEmbeddingProviderConfig struct {
146+ APIKey string `json:"apiKey,omitempty"` // API key for the embedding provider
134147}
135148
136149// MonitoringConfig contains monitoring and observability settings
0 commit comments