mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-02-22 18:34:08 +01:00
📤 fix: Show Proper Upload Options for Azure and Agent Endpoints (#11081)
* fix: only show upload to provider for azureOpenAi when use responses api is true * fix: model_parameters not available on first load so Upload Image incorrectly shown - now we query if not populated * test: update tests for new azureOpenAI Responses API logic * chore: correct order of headers in OAuth request to ensure proper content type is set * fix: add useResponsesApi prop to AttachFileMenu and DragDropModal components --------- Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
parent
4fe223eedd
commit
7183223e59
9 changed files with 131 additions and 11 deletions
|
|
@ -1,7 +1,8 @@
|
|||
import React, { createContext, useContext, useMemo } from 'react';
|
||||
import { getEndpointField } from 'librechat-data-provider';
|
||||
import { getEndpointField, isAgentsEndpoint } from 'librechat-data-provider';
|
||||
import type { EModelEndpoint } from 'librechat-data-provider';
|
||||
import { useGetEndpointsQuery } from '~/data-provider';
|
||||
import { useGetEndpointsQuery, useGetAgentByIdQuery } from '~/data-provider';
|
||||
import { useAgentsMapContext } from './AgentsMapContext';
|
||||
import { useChatContext } from './ChatContext';
|
||||
|
||||
interface DragDropContextValue {
|
||||
|
|
@ -9,6 +10,7 @@ interface DragDropContextValue {
|
|||
agentId: string | null | undefined;
|
||||
endpoint: string | null | undefined;
|
||||
endpointType?: EModelEndpoint | undefined;
|
||||
useResponsesApi?: boolean;
|
||||
}
|
||||
|
||||
const DragDropContext = createContext<DragDropContextValue | undefined>(undefined);
|
||||
|
|
@ -16,6 +18,7 @@ const DragDropContext = createContext<DragDropContextValue | undefined>(undefine
|
|||
export function DragDropProvider({ children }: { children: React.ReactNode }) {
|
||||
const { conversation } = useChatContext();
|
||||
const { data: endpointsConfig } = useGetEndpointsQuery();
|
||||
const agentsMap = useAgentsMapContext();
|
||||
|
||||
const endpointType = useMemo(() => {
|
||||
return (
|
||||
|
|
@ -24,6 +27,34 @@ export function DragDropProvider({ children }: { children: React.ReactNode }) {
|
|||
);
|
||||
}, [conversation?.endpoint, endpointsConfig]);
|
||||
|
||||
const needsAgentFetch = useMemo(() => {
|
||||
const isAgents = isAgentsEndpoint(conversation?.endpoint);
|
||||
if (!isAgents || !conversation?.agent_id) {
|
||||
return false;
|
||||
}
|
||||
const agent = agentsMap?.[conversation.agent_id];
|
||||
return !agent?.model_parameters;
|
||||
}, [conversation?.endpoint, conversation?.agent_id, agentsMap]);
|
||||
|
||||
const { data: agentData } = useGetAgentByIdQuery(conversation?.agent_id, {
|
||||
enabled: needsAgentFetch,
|
||||
});
|
||||
|
||||
const useResponsesApi = useMemo(() => {
|
||||
const isAgents = isAgentsEndpoint(conversation?.endpoint);
|
||||
if (!isAgents || !conversation?.agent_id || conversation?.useResponsesApi) {
|
||||
return conversation?.useResponsesApi;
|
||||
}
|
||||
const agent = agentData || agentsMap?.[conversation.agent_id];
|
||||
return agent?.model_parameters?.useResponsesApi;
|
||||
}, [
|
||||
conversation?.endpoint,
|
||||
conversation?.agent_id,
|
||||
conversation?.useResponsesApi,
|
||||
agentData,
|
||||
agentsMap,
|
||||
]);
|
||||
|
||||
/** Context value only created when conversation fields change */
|
||||
const contextValue = useMemo<DragDropContextValue>(
|
||||
() => ({
|
||||
|
|
@ -31,8 +62,15 @@ export function DragDropProvider({ children }: { children: React.ReactNode }) {
|
|||
agentId: conversation?.agent_id,
|
||||
endpoint: conversation?.endpoint,
|
||||
endpointType: endpointType,
|
||||
useResponsesApi: useResponsesApi,
|
||||
}),
|
||||
[conversation?.conversationId, conversation?.agent_id, conversation?.endpoint, endpointType],
|
||||
[
|
||||
conversation?.conversationId,
|
||||
conversation?.agent_id,
|
||||
conversation?.endpoint,
|
||||
useResponsesApi,
|
||||
endpointType,
|
||||
],
|
||||
);
|
||||
|
||||
return <DragDropContext.Provider value={contextValue}>{children}</DragDropContext.Provider>;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue