Skip to content

Commit 44a3337

Browse files
committed
Add assistant search Web API methods
1 parent 5803580 commit 44a3337

19 files changed

Lines changed: 599 additions & 6 deletions
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"ok": false,
3+
"warning": "",
4+
"error": "",
5+
"needed": "",
6+
"provided": "",
7+
"results": {
8+
"messages": [],
9+
"files": [],
10+
"channels": [],
11+
"users": []
12+
},
13+
"response_metadata": {
14+
"next_cursor": "",
15+
"messages": [],
16+
"warnings": []
17+
}
18+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"ok": false,
3+
"warning": "",
4+
"error": "",
5+
"needed": "",
6+
"provided": "",
7+
"is_ai_search_enabled": false
8+
}

metadata/web-api/rate_limit_tiers.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@
114114
"apps.permissions.users.request": "Tier2",
115115
"apps.uninstall": "Tier1",
116116
"apps.user.connection.update": "Tier2",
117+
"assistant.search.context": "SpecialTier_assistant_search_context",
118+
"assistant.search.info": "Tier2",
117119
"assistant.threads.setStatus": "SpecialTier_assistant_threads_setStatus",
118120
"assistant.threads.setSuggestedPrompts": "Tier3",
119121
"assistant.threads.setTitle": "Tier3",
@@ -325,4 +327,4 @@
325327
"workflows.stepCompleted": "Tier2",
326328
"workflows.stepFailed": "Tier2",
327329
"workflows.updateStep": "Tier2"
328-
}
330+
}

slack-api-client/src/main/java/com/slack/api/methods/AsyncMethodsClient.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
import com.slack.api.methods.request.apps.event.authorizations.AppsEventAuthorizationsListRequest;
4545
import com.slack.api.methods.request.apps.user.connection.AppsUserConnectionUpdateRequest;
4646
import com.slack.api.methods.request.apps.manifest.*;
47+
import com.slack.api.methods.request.assistant.search.AssistantSearchContextRequest;
48+
import com.slack.api.methods.request.assistant.search.AssistantSearchInfoRequest;
4749
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetStatusRequest;
4850
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetSuggestedPromptsRequest;
4951
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetTitleRequest;
@@ -183,6 +185,8 @@
183185
import com.slack.api.methods.response.apps.event.authorizations.AppsEventAuthorizationsListResponse;
184186
import com.slack.api.methods.response.apps.user.connection.AppsUserConnectionUpdateResponse;
185187
import com.slack.api.methods.response.apps.manifest.*;
188+
import com.slack.api.methods.response.asssistant.search.AssistantSearchContextResponse;
189+
import com.slack.api.methods.response.asssistant.search.AssistantSearchInfoResponse;
186190
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetStatusResponse;
187191
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetSuggestedPromptsResponse;
188192
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetTitleResponse;
@@ -859,6 +863,18 @@ CompletableFuture<AdminConversationsWhitelistListGroupsLinkedToChannelResponse>
859863

860864
CompletableFuture<AppsManifestValidateResponse> appsManifestValidate(RequestConfigurator<AppsManifestValidateRequest.AppsManifestValidateRequestBuilder> req);
861865

866+
// ------------------------------
867+
// assistant.search
868+
// ------------------------------
869+
870+
CompletableFuture<AssistantSearchContextResponse> assistantSearchContext(AssistantSearchContextRequest req);
871+
872+
CompletableFuture<AssistantSearchContextResponse> assistantSearchContext(RequestConfigurator<AssistantSearchContextRequest.AssistantSearchContextRequestBuilder> req);
873+
874+
CompletableFuture<AssistantSearchInfoResponse> assistantSearchInfo(AssistantSearchInfoRequest req);
875+
876+
CompletableFuture<AssistantSearchInfoResponse> assistantSearchInfo(RequestConfigurator<AssistantSearchInfoRequest.AssistantSearchInfoRequestBuilder> req);
877+
862878
// ------------------------------
863879
// assistant.threads
864880
// ------------------------------

slack-api-client/src/main/java/com/slack/api/methods/Methods.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,6 +283,13 @@ private Methods() {
283283
@Deprecated
284284
public static final String APPS_PERMISSIONS_USERS_REQUEST = "apps.permissions.users.request";
285285

286+
// ------------------------------
287+
// assistant.search
288+
// ------------------------------
289+
290+
public static final String ASSISTANT_SEARCH_CONTEXT = "assistant.search.context";
291+
public static final String ASSISTANT_SEARCH_INFO = "assistant.search.info";
292+
286293
// ------------------------------
287294
// assistant.threads
288295
// ------------------------------

slack-api-client/src/main/java/com/slack/api/methods/MethodsClient.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
import com.slack.api.methods.request.apps.permissions.scopes.AppsPermissionsScopesListRequest;
5151
import com.slack.api.methods.request.apps.permissions.users.AppsPermissionsUsersListRequest;
5252
import com.slack.api.methods.request.apps.permissions.users.AppsPermissionsUsersRequestRequest;
53+
import com.slack.api.methods.request.assistant.search.AssistantSearchContextRequest;
54+
import com.slack.api.methods.request.assistant.search.AssistantSearchInfoRequest;
5355
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetStatusRequest;
5456
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetSuggestedPromptsRequest;
5557
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetTitleRequest;
@@ -202,6 +204,8 @@
202204
import com.slack.api.methods.response.apps.permissions.scopes.AppsPermissionsScopesListResponse;
203205
import com.slack.api.methods.response.apps.permissions.users.AppsPermissionsUsersListResponse;
204206
import com.slack.api.methods.response.apps.permissions.users.AppsPermissionsUsersRequestResponse;
207+
import com.slack.api.methods.response.asssistant.search.AssistantSearchContextResponse;
208+
import com.slack.api.methods.response.asssistant.search.AssistantSearchInfoResponse;
205209
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetStatusResponse;
206210
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetSuggestedPromptsResponse;
207211
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetTitleResponse;
@@ -1307,6 +1311,24 @@ AppsPermissionsUsersListResponse appsPermissionsUsersList(AppsPermissionsUsersLi
13071311
AppsPermissionsUsersRequestResponse appsPermissionsUsersRequest(AppsPermissionsUsersRequestRequest req)
13081312
throws IOException, SlackApiException;
13091313

1314+
// ------------------------------
1315+
// assistant.search
1316+
// ------------------------------
1317+
1318+
AssistantSearchContextResponse assistantSearchContext(AssistantSearchContextRequest req)
1319+
throws IOException, SlackApiException;
1320+
1321+
AssistantSearchContextResponse assistantSearchContext(
1322+
RequestConfigurator<AssistantSearchContextRequest.AssistantSearchContextRequestBuilder> req)
1323+
throws IOException, SlackApiException;
1324+
1325+
AssistantSearchInfoResponse assistantSearchInfo(AssistantSearchInfoRequest req)
1326+
throws IOException, SlackApiException;
1327+
1328+
AssistantSearchInfoResponse assistantSearchInfo(
1329+
RequestConfigurator<AssistantSearchInfoRequest.AssistantSearchInfoRequestBuilder> req)
1330+
throws IOException, SlackApiException;
1331+
13101332
// ------------------------------
13111333
// assistant.threads
13121334
// ------------------------------

slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimitTier.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ public enum MethodsRateLimitTier {
4141
*/
4242
SpecialTier_auth_test,
4343

44+
/**
45+
* assistant.search.context has special rate limiting conditions.
46+
* It generally allows 10+ requests per minute for most teams.
47+
*/
48+
SpecialTier_assistant_search_context,
49+
4450
/**
4551
* assistant.threads.setStatus has the similar tier with chat.postMessage API.
4652
*/
@@ -69,6 +75,7 @@ public enum MethodsRateLimitTier {
6975
allowedRequestsPerMinute.put(MethodsRateLimitTier.Tier3, 50);
7076
allowedRequestsPerMinute.put(MethodsRateLimitTier.Tier4, 100);
7177
allowedRequestsPerMinute.put(MethodsRateLimitTier.SpecialTier_auth_test, 600);
78+
allowedRequestsPerMinute.put(MethodsRateLimitTier.SpecialTier_assistant_search_context, 10);
7279
allowedRequestsPerMinute.put(MethodsRateLimitTier.SpecialTier_chat_getPermalink, 600);
7380
allowedRequestsPerMinute.put(MethodsRateLimitTier.SpecialTier_chat_postMessage, 60); // per channel
7481
allowedRequestsPerMinute.put(MethodsRateLimitTier.SpecialTier_assistant_threads_setStatus, 60); // per DM

slack-api-client/src/main/java/com/slack/api/methods/MethodsRateLimits.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,9 @@ public static void setRateLimitTier(String methodName, MethodsRateLimitTier tier
229229
setRateLimitTier(APPS_EVENT_AUTHORIZATIONS_LIST, Tier4);
230230
setRateLimitTier(APPS_USER_CONNECTION_UPDATE, Tier2);
231231

232+
setRateLimitTier(ASSISTANT_SEARCH_CONTEXT, SpecialTier_assistant_search_context);
233+
setRateLimitTier(ASSISTANT_SEARCH_INFO, Tier2);
234+
232235
setRateLimitTier(ASSISTANT_THREADS_SET_STATUS, SpecialTier_assistant_threads_setStatus);
233236
setRateLimitTier(ASSISTANT_THREADS_SET_SUGGESTED_PROMPTS, Tier3);
234237
setRateLimitTier(ASSISTANT_THREADS_SET_TITLE, Tier3);

slack-api-client/src/main/java/com/slack/api/methods/RequestFormBuilder.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@
5151
import com.slack.api.methods.request.apps.permissions.scopes.AppsPermissionsScopesListRequest;
5252
import com.slack.api.methods.request.apps.permissions.users.AppsPermissionsUsersListRequest;
5353
import com.slack.api.methods.request.apps.permissions.users.AppsPermissionsUsersRequestRequest;
54+
import com.slack.api.methods.request.assistant.search.AssistantSearchContextRequest;
55+
import com.slack.api.methods.request.assistant.search.AssistantSearchInfoRequest;
5456
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetStatusRequest;
5557
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetSuggestedPromptsRequest;
5658
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetTitleRequest;
@@ -1166,6 +1168,45 @@ public static FormBody.Builder toForm(AppsPermissionsUsersRequestRequest req) {
11661168
return form;
11671169
}
11681170

1171+
public static FormBody.Builder toForm(AssistantSearchContextRequest req) {
1172+
FormBody.Builder form = new FormBody.Builder();
1173+
setIfNotNull("query", req.getQuery(), form);
1174+
setIfNotNull("action_token", req.getActionToken(), form);
1175+
if (req.getChannelTypes() != null) {
1176+
setIfNotNull("channel_types", req.getChannelTypes().stream().collect(joining(",")), form);
1177+
}
1178+
if (req.getContentTypes() != null) {
1179+
setIfNotNull("content_types", req.getContentTypes().stream().collect(joining(",")), form);
1180+
}
1181+
setIfNotNull("include_bots", req.getIncludeBots(), form);
1182+
setIfNotNull("include_deleted_users", req.getIncludeDeletedUsers(), form);
1183+
setIfNotNull("before", req.getBefore(), form);
1184+
setIfNotNull("after", req.getAfter(), form);
1185+
setIfNotNull("include_context_messages", req.getIncludeContextMessages(), form);
1186+
setIfNotNull("context_channel_id", req.getContextChannelId(), form);
1187+
setIfNotNull("cursor", req.getCursor(), form);
1188+
setIfNotNull("limit", req.getLimit(), form);
1189+
setIfNotNull("sort", req.getSort(), form);
1190+
setIfNotNull("sort_dir", req.getSortDir(), form);
1191+
setIfNotNull("include_message_blocks", req.getIncludeMessageBlocks(), form);
1192+
setIfNotNull("highlight", req.getHighlight(), form);
1193+
if (req.getKeywordsClauses() != null) {
1194+
setIfNotNull("keywords_clauses", GSON.toJson(req.getKeywordsClauses()), form);
1195+
}
1196+
if (req.getTermClauses() != null) {
1197+
setIfNotNull("term_clauses", GSON.toJson(req.getTermClauses()), form);
1198+
}
1199+
setIfNotNull("modifiers", req.getModifiers(), form);
1200+
setIfNotNull("include_archived_channels", req.getIncludeArchivedChannels(), form);
1201+
setIfNotNull("disable_semantic_search", req.getDisableSemanticSearch(), form);
1202+
return form;
1203+
}
1204+
1205+
public static FormBody.Builder toForm(AssistantSearchInfoRequest req) {
1206+
FormBody.Builder form = new FormBody.Builder();
1207+
return form;
1208+
}
1209+
11691210
public static FormBody.Builder toForm(AssistantThreadsSetStatusRequest req) {
11701211
FormBody.Builder form = new FormBody.Builder();
11711212
setIfNotNull("channel_id", req.getChannelId(), form);

slack-api-client/src/main/java/com/slack/api/methods/impl/AsyncMethodsClientImpl.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@
4949
import com.slack.api.methods.request.apps.event.authorizations.AppsEventAuthorizationsListRequest;
5050
import com.slack.api.methods.request.apps.manifest.*;
5151
import com.slack.api.methods.request.apps.user.connection.AppsUserConnectionUpdateRequest;
52+
import com.slack.api.methods.request.assistant.search.AssistantSearchContextRequest;
53+
import com.slack.api.methods.request.assistant.search.AssistantSearchInfoRequest;
5254
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetStatusRequest;
5355
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetSuggestedPromptsRequest;
5456
import com.slack.api.methods.request.assistant.threads.AssistantThreadsSetTitleRequest;
@@ -188,6 +190,8 @@
188190
import com.slack.api.methods.response.apps.event.authorizations.AppsEventAuthorizationsListResponse;
189191
import com.slack.api.methods.response.apps.manifest.*;
190192
import com.slack.api.methods.response.apps.user.connection.AppsUserConnectionUpdateResponse;
193+
import com.slack.api.methods.response.asssistant.search.AssistantSearchContextResponse;
194+
import com.slack.api.methods.response.asssistant.search.AssistantSearchInfoResponse;
191195
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetStatusResponse;
192196
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetSuggestedPromptsResponse;
193197
import com.slack.api.methods.response.asssistant.threads.AssistantThreadsSetTitleResponse;
@@ -1417,6 +1421,26 @@ public CompletableFuture<AppsManifestValidateResponse> appsManifestValidate(Requ
14171421
return appsManifestValidate(req.configure(AppsManifestValidateRequest.builder()).build());
14181422
}
14191423

1424+
@Override
1425+
public CompletableFuture<AssistantSearchContextResponse> assistantSearchContext(AssistantSearchContextRequest req) {
1426+
return executor.execute(ASSISTANT_SEARCH_CONTEXT, toMap(req), () -> methods.assistantSearchContext(req));
1427+
}
1428+
1429+
@Override
1430+
public CompletableFuture<AssistantSearchContextResponse> assistantSearchContext(RequestConfigurator<AssistantSearchContextRequest.AssistantSearchContextRequestBuilder> req) {
1431+
return assistantSearchContext(req.configure(AssistantSearchContextRequest.builder()).build());
1432+
}
1433+
1434+
@Override
1435+
public CompletableFuture<AssistantSearchInfoResponse> assistantSearchInfo(AssistantSearchInfoRequest req) {
1436+
return executor.execute(ASSISTANT_SEARCH_INFO, toMap(req), () -> methods.assistantSearchInfo(req));
1437+
}
1438+
1439+
@Override
1440+
public CompletableFuture<AssistantSearchInfoResponse> assistantSearchInfo(RequestConfigurator<AssistantSearchInfoRequest.AssistantSearchInfoRequestBuilder> req) {
1441+
return assistantSearchInfo(req.configure(AssistantSearchInfoRequest.builder()).build());
1442+
}
1443+
14201444
@Override
14211445
public CompletableFuture<AssistantThreadsSetStatusResponse> assistantThreadsSetStatus(AssistantThreadsSetStatusRequest req) {
14221446
Map<String, String> params = new HashMap<>();

0 commit comments

Comments
 (0)