nsarrazin HF Staff commited on
Commit
256631f
·
unverified ·
1 Parent(s): 61a00ab

fix: show file upload button when assistant has tool with file support (#1532)

Browse files
src/lib/components/chat/ChatWindow.svelte CHANGED
@@ -206,13 +206,14 @@
206
  const settings = useSettingsStore();
207
 
208
  // active tools are all the checked tools, either from settings or on by default
209
- $: activeTools = $page.data.tools.filter((tool: ToolFront) =>
210
- $settings?.tools?.includes(tool._id)
211
- );
 
 
 
212
  $: activeMimeTypes = [
213
- ...(!$page.data?.assistant && currentModel.tools
214
- ? activeTools.flatMap((tool: ToolFront) => tool.mimeTypes ?? [])
215
- : []),
216
  ...(currentModel.multimodal ? currentModel.multimodalAcceptedMimetypes ?? ["image/*"] : []),
217
  ];
218
 
 
206
  const settings = useSettingsStore();
207
 
208
  // active tools are all the checked tools, either from settings or on by default
209
+ $: activeTools = $page.data.tools.filter((tool: ToolFront) => {
210
+ if ($page.data?.assistant) {
211
+ return $page.data.assistant.tools?.includes(tool._id);
212
+ }
213
+ return $settings?.tools?.includes(tool._id) ?? tool.isOnByDefault;
214
+ });
215
  $: activeMimeTypes = [
216
+ ...(currentModel.tools ? activeTools.flatMap((tool: ToolFront) => tool.mimeTypes ?? []) : []),
 
 
217
  ...(currentModel.multimodal ? currentModel.multimodalAcceptedMimetypes ?? ["image/*"] : []),
218
  ];
219
 
src/routes/+layout.server.ts CHANGED
@@ -46,13 +46,9 @@ export const load: LayoutServerLoad = async ({ locals, depends }) => {
46
  const assistantActive = !models.map(({ id }) => id).includes(settings?.activeModel ?? "");
47
 
48
  const assistant = assistantActive
49
- ? JSON.parse(
50
- JSON.stringify(
51
- await collections.assistants.findOne({
52
- _id: new ObjectId(settings?.activeModel),
53
- })
54
- )
55
- )
56
  : null;
57
 
58
  const conversations = await collections.conversations
@@ -112,10 +108,14 @@ export const load: LayoutServerLoad = async ({ locals, depends }) => {
112
 
113
  const configToolIds = toolFromConfigs.map((el) => el._id.toString());
114
 
115
- const activeCommunityToolIds = (settings?.tools ?? []).filter(
116
  (key) => !configToolIds.includes(key)
117
  );
118
 
 
 
 
 
119
  const communityTools = await collections.tools
120
  .find({ _id: { $in: activeCommunityToolIds.map((el) => new ObjectId(el)) } })
121
  .toArray()
@@ -240,7 +240,7 @@ export const load: LayoutServerLoad = async ({ locals, depends }) => {
240
  isAdmin: locals.user.isAdmin ?? false,
241
  isEarlyAccess: locals.user.isEarlyAccess ?? false,
242
  },
243
- assistant,
244
  enableAssistants,
245
  enableAssistantsRAG: env.ENABLE_ASSISTANTS_RAG === "true",
246
  enableCommunityTools: env.COMMUNITY_TOOLS === "true",
 
46
  const assistantActive = !models.map(({ id }) => id).includes(settings?.activeModel ?? "");
47
 
48
  const assistant = assistantActive
49
+ ? await collections.assistants.findOne({
50
+ _id: new ObjectId(settings?.activeModel),
51
+ })
 
 
 
 
52
  : null;
53
 
54
  const conversations = await collections.conversations
 
108
 
109
  const configToolIds = toolFromConfigs.map((el) => el._id.toString());
110
 
111
+ let activeCommunityToolIds = (settings?.tools ?? []).filter(
112
  (key) => !configToolIds.includes(key)
113
  );
114
 
115
+ if (assistant) {
116
+ activeCommunityToolIds = [...activeCommunityToolIds, ...(assistant.tools ?? [])];
117
+ }
118
+
119
  const communityTools = await collections.tools
120
  .find({ _id: { $in: activeCommunityToolIds.map((el) => new ObjectId(el)) } })
121
  .toArray()
 
240
  isAdmin: locals.user.isAdmin ?? false,
241
  isEarlyAccess: locals.user.isEarlyAccess ?? false,
242
  },
243
+ assistant: assistant ? JSON.parse(JSON.stringify(assistant)) : null,
244
  enableAssistants,
245
  enableAssistantsRAG: env.ENABLE_ASSISTANTS_RAG === "true",
246
  enableCommunityTools: env.COMMUNITY_TOOLS === "true",