Skip to main content
useAskContent lets users ask natural language questions and receive AI-generated answers grounded in your project’s actual content. The answer streams token by token via SSE, and once streaming completes, a list of source records is provided.

Usage Example

Parameters (ask function)

query
string
required
The natural language question to answer.
sourceTypes
("entity" | "comment" | "message")[]
Limit the content types searched for context. Defaults to all types.
spaceId
string
Scope the context lookup to a specific space.
includeChildSpaces
boolean
default:"false"
Only applies with spaceId. When true, the context lookup also covers every space nested under it — the whole subtree at any depth — so you can ask across a community and all of its channels at once. Ignored without spaceId.
conversationId
string
Scope the context lookup to a specific conversation.
limit
number
Maximum number of source records to retrieve and use as context.

Returns

answer
string
The AI-generated answer. Grows incrementally as tokens arrive during streaming.
sources
ContentSearchResult[]
The source records that were used as context for the answer. Populated after streaming completes.
streaming
boolean
true while the SSE stream is open and tokens are arriving.
loading
boolean
true from when ask() is called until the first token arrives (or an error occurs).
error
string | null
Error message if the request failed.
ask
(props) => void
Initiates the AI question. Cancels any in-flight stream before starting a new one.
reset
() => void
Aborts any in-flight stream and clears all state.
useAskContent uses the Fetch API with ReadableStream and TextDecoder for SSE. In React Native, install react-native-fetch-api, web-streams-polyfill@^3, react-native-polyfill-globals, and text-encoding, then call the targeted sub-polyfills once at app startup:
Prefer these over the all-in-one polyfillGlobals(), which also pulls in the native react-native-get-random-values and forces a development-client rebuild. Pin web-streams-polyfill to v3 — v4 removed the ponyfill/es6 subpath react-native-polyfill-globals requires.