Fix tool choice (#4596)

* Fix tool choice

* fix
This commit is contained in:
Chris Weaver
2025-04-24 21:51:14 -07:00
committed by GitHub
parent 672f3a1c34
commit 115cfb6ae9
2 changed files with 32 additions and 35 deletions

View File

@@ -45,6 +45,7 @@ import {
processRawChatHistory, processRawChatHistory,
removeMessage, removeMessage,
sendMessage, sendMessage,
SendMessageParams,
setMessageAsLatest, setMessageAsLatest,
updateLlmOverrideForChatSession, updateLlmOverrideForChatSession,
updateParentChildren, updateParentChildren,
@@ -1080,7 +1081,7 @@ export function ChatPage({
async function updateCurrentMessageFIFO( async function updateCurrentMessageFIFO(
stack: CurrentMessageFIFO, stack: CurrentMessageFIFO,
params: any params: SendMessageParams
) { ) {
try { try {
for await (const packet of sendMessage(params)) { for await (const packet of sendMessage(params)) {
@@ -1374,7 +1375,6 @@ export function ChatPage({
regenerationRequest?.parentMessage.messageId || regenerationRequest?.parentMessage.messageId ||
lastSuccessfulMessageId, lastSuccessfulMessageId,
chatSessionId: currChatSessionId, chatSessionId: currChatSessionId,
promptId: null,
filters: buildFilters( filters: buildFilters(
filterManager.selectedSources, filterManager.selectedSources,
filterManager.selectedDocumentSets, filterManager.selectedDocumentSets,

View File

@@ -160,35 +160,12 @@ export type PacketType =
| AgenticMessageResponseIDInfo | AgenticMessageResponseIDInfo
| UserKnowledgeFilePacket; | UserKnowledgeFilePacket;
export async function* sendMessage({ export interface SendMessageParams {
regenerate,
message,
fileDescriptors,
userFileIds,
userFolderIds,
parentMessageId,
chatSessionId,
promptId,
filters,
selectedDocumentIds,
queryOverride,
forceSearch,
modelProvider,
modelVersion,
temperature,
systemPromptOverride,
useExistingUserMessage,
alternateAssistantId,
signal,
forceUserFileSearch,
useLanggraph,
}: {
regenerate: boolean; regenerate: boolean;
message: string; message: string;
fileDescriptors: FileDescriptor[]; fileDescriptors: FileDescriptor[];
parentMessageId: number | null; parentMessageId: number | null;
chatSessionId: string; chatSessionId: string;
promptId: number | null | undefined;
filters: Filters | null; filters: Filters | null;
selectedDocumentIds: number[] | null; selectedDocumentIds: number[] | null;
queryOverride?: string; queryOverride?: string;
@@ -204,7 +181,30 @@ export async function* sendMessage({
userFolderIds?: number[]; userFolderIds?: number[];
forceUserFileSearch?: boolean; forceUserFileSearch?: boolean;
useLanggraph?: boolean; useLanggraph?: boolean;
}): AsyncGenerator<PacketType, void, unknown> { }
export async function* sendMessage({
regenerate,
message,
fileDescriptors,
userFileIds,
userFolderIds,
parentMessageId,
chatSessionId,
filters,
selectedDocumentIds,
queryOverride,
forceSearch,
modelProvider,
modelVersion,
temperature,
systemPromptOverride,
useExistingUserMessage,
alternateAssistantId,
signal,
forceUserFileSearch,
useLanggraph,
}: SendMessageParams): AsyncGenerator<PacketType, void, unknown> {
const documentsAreSelected = const documentsAreSelected =
selectedDocumentIds && selectedDocumentIds.length > 0; selectedDocumentIds && selectedDocumentIds.length > 0;
const body = JSON.stringify({ const body = JSON.stringify({
@@ -212,7 +212,10 @@ export async function* sendMessage({
chat_session_id: chatSessionId, chat_session_id: chatSessionId,
parent_message_id: parentMessageId, parent_message_id: parentMessageId,
message: message, message: message,
prompt_id: promptId, // just use the default prompt for the assistant.
// should remove this in the future, as we don't support multiple prompts for a
// single assistant anyways
prompt_id: null,
search_doc_ids: documentsAreSelected ? selectedDocumentIds : null, search_doc_ids: documentsAreSelected ? selectedDocumentIds : null,
force_user_file_search: forceUserFileSearch, force_user_file_search: forceUserFileSearch,
file_descriptors: fileDescriptors, file_descriptors: fileDescriptors,
@@ -221,13 +224,7 @@ export async function* sendMessage({
regenerate, regenerate,
retrieval_options: !documentsAreSelected retrieval_options: !documentsAreSelected
? { ? {
run_search: run_search: queryOverride || forceSearch ? "always" : "auto",
promptId === null ||
promptId === undefined ||
queryOverride ||
forceSearch
? "always"
: "auto",
real_time: true, real_time: true,
filters: filters, filters: filters,
} }