| import type * as t from './types'; | |
| import { EndpointURLs } from './config'; | |
| import * as s from './schemas'; | |
| export default function createPayload(submission: t.TSubmission) { | |
| const { | |
| isEdited, | |
| userMessage, | |
| isContinued, | |
| isTemporary, | |
| isRegenerate, | |
| conversation, | |
| editedContent, | |
| ephemeralAgent, | |
| endpointOption, | |
| } = submission; | |
| const { conversationId } = s.tConvoUpdateSchema.parse(conversation); | |
| const { endpoint: _e, endpointType } = endpointOption as { | |
| endpoint: s.EModelEndpoint; | |
| endpointType?: s.EModelEndpoint; | |
| }; | |
| const endpoint = _e as s.EModelEndpoint; | |
| let server = `${EndpointURLs[s.EModelEndpoint.agents]}/${endpoint}`; | |
| if (s.isAssistantsEndpoint(endpoint)) { | |
| server = | |
| EndpointURLs[(endpointType ?? endpoint) as 'assistants' | 'azureAssistants'] + | |
| (isEdited ? '/modify' : ''); | |
| } | |
| const payload: t.TPayload = { | |
| ...userMessage, | |
| ...endpointOption, | |
| endpoint, | |
| isTemporary, | |
| isRegenerate, | |
| editedContent, | |
| conversationId, | |
| isContinued: !!(isEdited && isContinued), | |
| ephemeralAgent: s.isAssistantsEndpoint(endpoint) ? undefined : ephemeralAgent, | |
| }; | |
| return { server, payload }; | |
| } | |