feat: Enhance agent selection and conversation handling

- Added functionality to select agents in the Navigation component, allowing users to reset conversations and set the selected agent.
- Updated the MessageInput component to conditionally show source and tool buttons based on the selected agent.
- Modified the Conversation component to handle agent-specific queries and manage file uploads.
- Improved conversation fetching logic to include agent IDs and handle attachments.
- Introduced new types for conversation summaries and results to streamline API responses.
- Refactored Redux slices to manage selected agent state and improve overall state management.
- Enhanced error handling and loading states across components for better user experience.
This commit is contained in:
Siddhant Rai
2025-04-15 11:53:53 +05:30
parent fa1f9d7009
commit 7c69e99914
16 changed files with 445 additions and 237 deletions

View File

@@ -13,6 +13,7 @@ export function handleFetchAnswer(
promptId: string | null,
chunks: string,
token_limit: number,
agentId?: string,
attachments?: string[],
): Promise<
| {
@@ -50,13 +51,14 @@ export function handleFetchAnswer(
chunks: chunks,
token_limit: token_limit,
isNoneDoc: selectedDocs === null,
agent_id: agentId,
};
// Add attachments to payload if they exist
if (attachments && attachments.length > 0) {
payload.attachments = attachments;
}
if (selectedDocs && 'id' in selectedDocs) {
payload.active_docs = selectedDocs.id as string;
}
@@ -97,6 +99,7 @@ export function handleFetchAnswerSteaming(
token_limit: number,
onEvent: (event: MessageEvent) => void,
indx?: number,
agentId?: string,
attachments?: string[],
): Promise<Answer> {
history = history.map((item) => {
@@ -116,13 +119,14 @@ export function handleFetchAnswerSteaming(
token_limit: token_limit,
isNoneDoc: selectedDocs === null,
index: indx,
agent_id: agentId,
};
// Add attachments to payload if they exist
if (attachments && attachments.length > 0) {
payload.attachments = attachments;
}
if (selectedDocs && 'id' in selectedDocs) {
payload.active_docs = selectedDocs.id as string;
}