| 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 }; |
| } |
|
|