mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
feat(Perplexity Node): New node (#13604)
This commit is contained in:
41
packages/nodes-base/nodes/Perplexity/GenericFunctions.ts
Normal file
41
packages/nodes-base/nodes/Perplexity/GenericFunctions.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import type {
|
||||
IExecuteSingleFunctions,
|
||||
IN8nHttpFullResponse,
|
||||
INodeExecutionData,
|
||||
JsonObject,
|
||||
} from 'n8n-workflow';
|
||||
import { NodeApiError } from 'n8n-workflow';
|
||||
|
||||
export async function sendErrorPostReceive(
|
||||
this: IExecuteSingleFunctions,
|
||||
data: INodeExecutionData[],
|
||||
response: IN8nHttpFullResponse,
|
||||
): Promise<INodeExecutionData[]> {
|
||||
if (String(response.statusCode).startsWith('4') || String(response.statusCode).startsWith('5')) {
|
||||
const errorBody = response.body as JsonObject;
|
||||
const error = (errorBody?.error ?? {}) as JsonObject;
|
||||
|
||||
const errorMessage =
|
||||
typeof error.message === 'string'
|
||||
? error.message
|
||||
: (response.statusMessage ?? 'An unexpected issue occurred');
|
||||
const errorType = typeof error.type === 'string' ? error.type : 'UnknownError';
|
||||
const itemIndex = typeof error.itemIndex === 'number' ? `[Item ${error.itemIndex}]` : '';
|
||||
|
||||
if (errorType === 'invalid_model') {
|
||||
throw new NodeApiError(this.getNode(), errorBody, {
|
||||
message: 'Invalid model',
|
||||
description:
|
||||
'The model is not valid. Permitted models can be found in the documentation at https://docs.perplexity.ai/guides/model-cards.',
|
||||
});
|
||||
}
|
||||
|
||||
// Fallback for other errors
|
||||
throw new NodeApiError(this.getNode(), response as unknown as JsonObject, {
|
||||
message: `${errorMessage}${itemIndex ? ' ' + itemIndex : ''}.`,
|
||||
description:
|
||||
'Any optional system messages must be sent first, followed by alternating user and assistant messages. For more details, refer to the API documentation: https://docs.perplexity.ai/api-reference/chat-completions',
|
||||
});
|
||||
}
|
||||
return data;
|
||||
}
|
||||
Reference in New Issue
Block a user