You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/english/concepts/ai-apps.md
+16-4Lines changed: 16 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: AI Apps
2
+
title: Using AI in Apps
3
3
lang: en
4
4
slug: /concepts/ai-apps
5
5
---
@@ -8,7 +8,7 @@ slug: /concepts/ai-apps
8
8
If you don't have a paid workspace for development, you can join the [Developer Program](https://api.slack.com/developer-program) and provision a sandbox with access to all Slack features for free.
9
9
:::
10
10
11
-
AI apps comprise a new messaging experience for Slack. If you're unfamiliar with using AI apps within Slack, you'll want to read the [API documentation on the subject](/ai/). Then come back here to implement them with Bolt!
11
+
The Agents & AI Apps feature comprises a unique messaging experience for Slack. If you're unfamiliar with using the Agents & AI Apps feature within Slack, you'll want to read the [API documentation on the subject](/ai/). Then come back here to implement them with Bolt!
12
12
13
13
## Configuring your app to support AI features {#configuring-your-app}
14
14
@@ -28,11 +28,16 @@ AI apps comprise a new messaging experience for Slack. If you're unfamiliar with
28
28
29
29
That being said, using the `Assistant` class will streamline the process. And we already wrote this nice guide for you!
30
30
31
+
<<<<<<< HEAD:docs/english/concepts/ai-apps.md
32
+
=======
33
+
:::info
34
+
You _could_ go it alone and [listen](event-listening) for the `assistant_thread_started`, `assistant_thread_context_changed`, and `message.im` events (see implementation details below) in order to implement the AI features in your app. That being said, using the `Assistant` class will streamline the process. And we already wrote this nice guide for you!
35
+
>>>>>>> origin:docs/content/concepts/ai-apps.md
31
36
:::
32
37
33
38
## The `Assistant` class instance {#assistant-class}
34
39
35
-
The `Assistant` class can be used to handle the incoming events expected from a user interacting with an AI app in Slack. A typical flow would look like:
40
+
The `Assistant` class can be used to handle the incoming events expected from a user interacting with an app in Slack that has the Agents & AI Apps feature enabled. A typical flow would look like:
36
41
37
42
1.[The user starts a thread](#handling-a-new-thread). The `Assistant` class handles the incoming [`assistant_thread_started`](/reference/events/assistant_thread_started) event.
38
43
2.[The thread context may change at any point](#handling-thread-context-changes). The `Assistant` class can handle any incoming [`assistant_thread_context_changed`](/reference/events/assistant_thread_context_changed) events. The class also provides a default context store to keep track of thread context changes as the user moves through Slack.
@@ -108,12 +113,19 @@ If you do provide your own `threadContextStore` property, it must feature `get`
108
113
109
114
## Handling a new thread {#handling-a-new-thread}
110
115
116
+
<<<<<<< HEAD:docs/english/concepts/ai-apps.md
111
117
When the user opens a new thread with your AI app, the [`assistant_thread_started`](/reference/events/assistant_thread_started) event will be sent to your app.
112
118
113
119
:::tip[When a user opens an AI app thread while in a channel, the channel info is stored as the thread's `AssistantThreadContext` data. You can grab that info by using the `get_thread_context` utility, as subsequent user message event payloads won't include the channel info.]
120
+
=======
121
+
When the user opens a new thread with your AI-enabled app, the [`assistant_thread_started`](https://docs.slack.dev/reference/events/assistant_thread_started) event will be sent to your app.
122
+
123
+
:::tip
124
+
When a user opens an app thread while in a channel, the channel info is stored as the thread's `AssistantThreadContext` data. You can grab that info by using the `get_thread_context` utility, as subsequent user message event payloads won't include the channel info.
125
+
>>>>>>> origin:docs/content/concepts/ai-apps.md
114
126
:::
115
127
116
-
### Block Kit interactions in the AI app thread {#block-kit-interactions}
128
+
### Block Kit interactions in the app thread {#block-kit-interactions}
117
129
118
130
For advanced use cases, Block Kit buttons may be used instead of suggested prompts, as well as the sending of messages with structured [metadata](/messaging/message-metadata/) to trigger subsequent interactions with the user.
Copy file name to clipboardExpand all lines: docs/english/concepts/listener-middleware.md
+5-6Lines changed: 5 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,11 +11,10 @@ If your listener middleware is a quite simple one, you can use a listener matche
11
11
Refer to [the module document](https://docs.slack.dev/bolt-python/api-docs/slack_bolt/kwargs_injection/args.html) to learn the available listener arguments.
12
12
13
13
```python
14
-
# Listener middleware which filters out messages with "bot_message" subtype
14
+
# Listener middleware which filters out messages from a bot
15
15
defno_bot_messages(message, next):
16
-
subtype = message.get("subtype")
17
-
if subtype !="bot_message":
18
-
next()
16
+
if"bot_id"notin message:
17
+
next()
19
18
20
19
# This listener only receives messages from humans
0 commit comments