@@ -48,9 +48,11 @@ public final class Config {
4848 private final RSSFeedsConfig rssFeedsConfig ;
4949 private final String selectRolesChannelPattern ;
5050 private final String memberCountCategoryPattern ;
51+ private final RoleApplicationSystemConfig roleApplicationSystemConfig ;
5152 private final QuoteBoardConfig quoteBoardConfig ;
5253 private final TopHelpersConfig topHelpers ;
5354 private final DynamicVoiceChatConfig dynamicVoiceChatConfig ;
55+ private final String tavilyApiKey ;
5456
5557 @ SuppressWarnings ("ConstructorWithTooManyParameters" )
5658 @ JsonCreator (mode = JsonCreator .Mode .PROPERTIES )
@@ -106,9 +108,12 @@ private Config(@JsonProperty(value = "token", required = true) String token,
106108 required = true ) String selectRolesChannelPattern ,
107109 @ JsonProperty (value = "quoteBoardConfig" ,
108110 required = true ) QuoteBoardConfig quoteBoardConfig ,
111+ @ JsonProperty (value = "roleApplicationSystem" ,
112+ required = true ) RoleApplicationSystemConfig roleApplicationSystemConfig ,
109113 @ JsonProperty (value = "topHelpers" , required = true ) TopHelpersConfig topHelpers ,
110114 @ JsonProperty (value = "dynamicVoiceChatConfig" ,
111- required = true ) DynamicVoiceChatConfig dynamicVoiceChatConfig ) {
115+ required = true ) DynamicVoiceChatConfig dynamicVoiceChatConfig ,
116+ @ JsonProperty (value = "tavilyApiKey" , required = true ) String tavilyApiKey ) {
112117 this .token = Objects .requireNonNull (token );
113118 this .githubApiKey = Objects .requireNonNull (githubApiKey );
114119 this .databasePath = Objects .requireNonNull (databasePath );
@@ -144,8 +149,10 @@ private Config(@JsonProperty(value = "token", required = true) String token,
144149 this .rssFeedsConfig = Objects .requireNonNull (rssFeedsConfig );
145150 this .selectRolesChannelPattern = Objects .requireNonNull (selectRolesChannelPattern );
146151 this .quoteBoardConfig = Objects .requireNonNull (quoteBoardConfig );
152+ this .roleApplicationSystemConfig = roleApplicationSystemConfig ;
147153 this .topHelpers = Objects .requireNonNull (topHelpers );
148154 this .dynamicVoiceChatConfig = Objects .requireNonNull (dynamicVoiceChatConfig );
155+ this .tavilyApiKey = Objects .requireNonNull (tavilyApiKey );
149156 }
150157
151158 /**
@@ -460,6 +467,15 @@ public String getMemberCountCategoryPattern() {
460467 return memberCountCategoryPattern ;
461468 }
462469
470+ /**
471+ * The configuration related to the application form.
472+ *
473+ * @return the application form config
474+ */
475+ public RoleApplicationSystemConfig getRoleApplicationSystemConfig () {
476+ return roleApplicationSystemConfig ;
477+ }
478+
463479 /**
464480 * Gets the RSS feeds configuration.
465481 *
@@ -486,4 +502,16 @@ public TopHelpersConfig getTopHelpers() {
486502 public DynamicVoiceChatConfig getDynamicVoiceChatConfig () {
487503 return dynamicVoiceChatConfig ;
488504 }
505+
506+ /**
507+ * Gets the API key for Tavily ({@link <a href="https://www.tavily.com">tavily.com</a>}), a
508+ * search engine API tailored for LLMs. It is used by the ChatGPT command to power the AI-driven
509+ * web search tool, allowing the assistant to fetch up-to-date information from the web when
510+ * answering user questions.
511+ *
512+ * @return the Tavily API key
513+ */
514+ public String getTavilyApiKey () {
515+ return tavilyApiKey ;
516+ }
489517}
0 commit comments