Optimistic handling of messages
This commit is contained in:
@@ -51,6 +51,8 @@ export function Thread() {
|
|||||||
const isLoading = stream.isLoading;
|
const isLoading = stream.isLoading;
|
||||||
|
|
||||||
const prevMessageLength = useRef(0);
|
const prevMessageLength = useRef(0);
|
||||||
|
|
||||||
|
// TODO: this should be part of the useStream hook
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (
|
if (
|
||||||
messages.length !== prevMessageLength.current &&
|
messages.length !== prevMessageLength.current &&
|
||||||
@@ -76,7 +78,17 @@ export function Thread() {
|
|||||||
const toolMessages = ensureToolCallsHaveResponses(stream.messages);
|
const toolMessages = ensureToolCallsHaveResponses(stream.messages);
|
||||||
stream.submit(
|
stream.submit(
|
||||||
{ messages: [...toolMessages, newHumanMessage] },
|
{ messages: [...toolMessages, newHumanMessage] },
|
||||||
{ streamMode: ["values"] },
|
{
|
||||||
|
streamMode: ["values"],
|
||||||
|
optimisticValues: (prev) => ({
|
||||||
|
...prev,
|
||||||
|
messages: [
|
||||||
|
...(prev.messages ?? []),
|
||||||
|
...toolMessages,
|
||||||
|
newHumanMessage,
|
||||||
|
],
|
||||||
|
}),
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
setInput("");
|
setInput("");
|
||||||
|
|||||||
Reference in New Issue
Block a user