feat: add auto submit for recipes that have been accepted (#6325)
Signed-off-by: Abhijay007 <Abhijay007j@gmail.com>
This commit is contained in:
@@ -105,6 +105,8 @@ export default function BaseChat({
|
|||||||
onStreamFinish,
|
onStreamFinish,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const recipe = session?.recipe;
|
||||||
|
|
||||||
useAutoSubmit({
|
useAutoSubmit({
|
||||||
sessionId,
|
sessionId,
|
||||||
session,
|
session,
|
||||||
@@ -169,7 +171,6 @@ export default function BaseChat({
|
|||||||
session,
|
session,
|
||||||
});
|
});
|
||||||
|
|
||||||
const recipe = session?.recipe;
|
|
||||||
const { setProviderAndModel } = useModelAndProvider();
|
const { setProviderAndModel } = useModelAndProvider();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@@ -156,6 +156,7 @@ export default function RecipesView() {
|
|||||||
setView('pair', {
|
setView('pair', {
|
||||||
disableAnimation: true,
|
disableAnimation: true,
|
||||||
resumeSessionId: session.id,
|
resumeSessionId: session.id,
|
||||||
|
initialMessage: recipe.prompt ? { msg: recipe.prompt, images: [] } : undefined,
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Failed to load recipe:', error);
|
console.error('Failed to load recipe:', error);
|
||||||
|
|||||||
@@ -50,6 +50,11 @@ export function useAutoSubmit({
|
|||||||
);
|
);
|
||||||
}, [sessionId]);
|
}, [sessionId]);
|
||||||
|
|
||||||
|
const hasUnfilledParameters = useCallback((session: Session) => {
|
||||||
|
const recipe = session.recipe;
|
||||||
|
return recipe?.parameters && recipe.parameters.length > 0 && !session.user_recipe_values;
|
||||||
|
}, []);
|
||||||
|
|
||||||
// Auto-submit logic
|
// Auto-submit logic
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const currentSessionId = searchParams.get('resumeSessionId');
|
const currentSessionId = searchParams.get('resumeSessionId');
|
||||||
@@ -60,7 +65,6 @@ export function useAutoSubmit({
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't submit if already streaming or loading
|
|
||||||
if (chatState !== ChatState.Idle) {
|
if (chatState !== ChatState.Idle) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -68,9 +72,11 @@ export function useAutoSubmit({
|
|||||||
// Scenario 1: New session with initial message from Hub
|
// Scenario 1: New session with initial message from Hub
|
||||||
// Hub always creates new sessions, so message_count will be 0
|
// Hub always creates new sessions, so message_count will be 0
|
||||||
if (initialMessage && session.message_count === 0 && messages.length === 0) {
|
if (initialMessage && session.message_count === 0 && messages.length === 0) {
|
||||||
hasAutoSubmittedRef.current = true;
|
if (!hasUnfilledParameters(session)) {
|
||||||
handleSubmit(initialMessage);
|
hasAutoSubmittedRef.current = true;
|
||||||
clearInitialMessage();
|
handleSubmit(initialMessage);
|
||||||
|
clearInitialMessage();
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,8 +93,11 @@ export function useAutoSubmit({
|
|||||||
|
|
||||||
// Scenario 3: Resume with shouldStartAgent (continue existing conversation)
|
// Scenario 3: Resume with shouldStartAgent (continue existing conversation)
|
||||||
if (shouldStartAgent) {
|
if (shouldStartAgent) {
|
||||||
hasAutoSubmittedRef.current = true;
|
if (!hasUnfilledParameters(session)) {
|
||||||
handleSubmit({ msg: '', images: [] });
|
hasAutoSubmittedRef.current = true;
|
||||||
|
handleSubmit({ msg: '', images: [] });
|
||||||
|
}
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
}, [
|
}, [
|
||||||
session,
|
session,
|
||||||
@@ -99,6 +108,7 @@ export function useAutoSubmit({
|
|||||||
messages.length,
|
messages.length,
|
||||||
chatState,
|
chatState,
|
||||||
clearInitialMessage,
|
clearInitialMessage,
|
||||||
|
hasUnfilledParameters,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user