mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-16 17:46:45 +00:00
feat(Jina AI Node): Add Jina AI node (#15094)
This commit is contained in:
43
packages/nodes-base/credentials/JinaAiApi.credentials.ts
Normal file
43
packages/nodes-base/credentials/JinaAiApi.credentials.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import type {
|
||||
IAuthenticateGeneric,
|
||||
ICredentialTestRequest,
|
||||
ICredentialType,
|
||||
INodeProperties,
|
||||
} from 'n8n-workflow';
|
||||
|
||||
export class JinaAiApi implements ICredentialType {
|
||||
name = 'jinaAiApi';
|
||||
|
||||
displayName = 'Jina AI API';
|
||||
|
||||
documentationUrl = 'jinaAi';
|
||||
|
||||
properties: INodeProperties[] = [
|
||||
{
|
||||
displayName: 'API Key',
|
||||
name: 'apiKey',
|
||||
type: 'string',
|
||||
typeOptions: { password: true },
|
||||
default: '',
|
||||
},
|
||||
];
|
||||
|
||||
authenticate: IAuthenticateGeneric = {
|
||||
type: 'generic',
|
||||
properties: {
|
||||
headers: {
|
||||
Authorization: '=Bearer {{ $credentials?.apiKey }}',
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
test: ICredentialTestRequest = {
|
||||
request: {
|
||||
method: 'GET',
|
||||
url: 'https://embeddings-dashboard-api.jina.ai/api/v1/api_key/fe_user',
|
||||
qs: {
|
||||
api_key: '={{$credentials.apiKey}}',
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
18
packages/nodes-base/nodes/JinaAI/JinaAi.node.json
Normal file
18
packages/nodes-base/nodes/JinaAI/JinaAi.node.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"node": "n8n-nodes-base.jinaAi",
|
||||
"nodeVersion": "1.0",
|
||||
"codexVersion": "1.0",
|
||||
"categories": ["Miscellaneous"],
|
||||
"resources": {
|
||||
"credentialDocumentation": [
|
||||
{
|
||||
"url": "https://docs.n8n.io/integrations/builtin/credentials/jinaai/"
|
||||
}
|
||||
],
|
||||
"primaryDocumentation": [
|
||||
{
|
||||
"url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.jinaai/"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
465
packages/nodes-base/nodes/JinaAI/JinaAi.node.ts
Normal file
465
packages/nodes-base/nodes/JinaAI/JinaAi.node.ts
Normal file
@@ -0,0 +1,465 @@
|
||||
import { NodeConnectionTypes, type INodeType, type INodeTypeDescription } from 'n8n-workflow';
|
||||
|
||||
export class JinaAi implements INodeType {
|
||||
description: INodeTypeDescription = {
|
||||
displayName: 'Jina AI',
|
||||
name: 'jinaAi',
|
||||
icon: {
|
||||
light: 'file:jinaAi.svg',
|
||||
dark: 'file:jinaAi.dark.svg',
|
||||
},
|
||||
group: ['transform'],
|
||||
version: 1,
|
||||
subtitle: '={{ $parameter["operation"] + ": " + $parameter["resource"] }}',
|
||||
description: 'Interact with Jina AI API',
|
||||
defaults: {
|
||||
name: 'Jina AI',
|
||||
},
|
||||
inputs: [NodeConnectionTypes.Main],
|
||||
outputs: [NodeConnectionTypes.Main],
|
||||
usableAsTool: true,
|
||||
credentials: [
|
||||
{
|
||||
name: 'jinaAiApi',
|
||||
required: true,
|
||||
},
|
||||
],
|
||||
requestDefaults: {
|
||||
headers: {
|
||||
Accept: 'application/json',
|
||||
},
|
||||
},
|
||||
properties: [
|
||||
{
|
||||
displayName: 'Resource',
|
||||
name: 'resource',
|
||||
type: 'options',
|
||||
noDataExpression: true,
|
||||
options: [
|
||||
{
|
||||
name: 'Reader',
|
||||
value: 'reader',
|
||||
},
|
||||
{
|
||||
name: 'Research',
|
||||
value: 'research',
|
||||
},
|
||||
],
|
||||
default: 'reader',
|
||||
},
|
||||
// Operations
|
||||
{
|
||||
displayName: 'Operation',
|
||||
name: 'operation',
|
||||
type: 'options',
|
||||
noDataExpression: true,
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
},
|
||||
},
|
||||
options: [
|
||||
{
|
||||
name: 'Read',
|
||||
value: 'read',
|
||||
action: 'Read URL content',
|
||||
description:
|
||||
'Fetches content from a URL and converts it to clean, LLM-friendly formats',
|
||||
routing: {
|
||||
request: {
|
||||
method: 'GET',
|
||||
url: '=https://r.jina.ai/{{ $parameter["url"] }}',
|
||||
headers: {
|
||||
'X-Return-Format': '={{ $parameter["options"]["outputFormat"] }}',
|
||||
'X-Target-Selector': '={{ $parameter["options"]["targetSelector"] }}',
|
||||
'X-Remove-Selector': '={{ $parameter["options"]["excludeSelector"] }}',
|
||||
'X-With-Generated-Alt': '={{ $parameter["options"]["enableImageCaptioning"] }}',
|
||||
'X-Wait-For-Selector': '={{ $parameter["options"]["waitForSelector"] }}',
|
||||
},
|
||||
},
|
||||
output: {
|
||||
postReceive: [
|
||||
{
|
||||
type: 'rootProperty',
|
||||
enabled: '={{ $parameter["simplify"] }}',
|
||||
properties: {
|
||||
property: 'data',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'Search',
|
||||
value: 'search',
|
||||
action: 'Search web',
|
||||
description:
|
||||
'Performs a web search via Jina AI and returns top results as clean, LLM-friendly formats',
|
||||
routing: {
|
||||
request: {
|
||||
method: 'GET',
|
||||
url: 'https://s.jina.ai/',
|
||||
headers: {
|
||||
'X-Return-Format': '={{ $parameter["options"]["outputFormat"] }}',
|
||||
'X-Site': '={{ $parameter["options"]["siteFilter"] }}',
|
||||
},
|
||||
qs: {
|
||||
q: '={{ $parameter["searchQuery"] }}',
|
||||
page: '={{ $parameter["options"]["pageNumber"] }}',
|
||||
},
|
||||
},
|
||||
output: {
|
||||
postReceive: [
|
||||
{
|
||||
type: 'rootProperty',
|
||||
enabled: '={{ $parameter["simplify"] }}',
|
||||
properties: {
|
||||
property: 'data',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
default: 'read',
|
||||
},
|
||||
{
|
||||
displayName: 'Operation',
|
||||
name: 'operation',
|
||||
type: 'options',
|
||||
noDataExpression: true,
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['research'],
|
||||
},
|
||||
},
|
||||
options: [
|
||||
{
|
||||
name: 'Deep Research',
|
||||
value: 'deepResearch',
|
||||
action: 'Perform deep research',
|
||||
description: 'Research a topic and generate a structured research report',
|
||||
routing: {
|
||||
request: {
|
||||
method: 'POST',
|
||||
url: 'https://deepsearch.jina.ai/v1/chat/completions',
|
||||
body: {
|
||||
messages: [
|
||||
{
|
||||
role: 'user',
|
||||
content: '={{ $parameter["researchQuery"] }}',
|
||||
},
|
||||
],
|
||||
max_returned_urls: '={{ $parameter["options"]["maxReturnedSources"] }}',
|
||||
boost_hostnames:
|
||||
'={{ $parameter["options"]["prioritizeSources"].split(/,\\s*/) }}',
|
||||
bad_hostnames: '={{ $parameter["options"]["excludeSources"].split(/,\\s*/) }}',
|
||||
only_hostnames: '={{ $parameter["options"]["siteFilter"].split(/,\\s*/) }}',
|
||||
},
|
||||
},
|
||||
output: {
|
||||
postReceive: [
|
||||
{
|
||||
type: 'setKeyValue',
|
||||
enabled: '={{ $parameter["simplify"] }}',
|
||||
properties: {
|
||||
content: '={{ $responseItem["choices"][0]["message"]["content"] }}',
|
||||
annotations: '={{ $responseItem["choices"][0]["message"]["annotations"] }}',
|
||||
usage: '={{ $responseItem["usage"] }}',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
default: 'deepResearch',
|
||||
},
|
||||
// Options for Reader
|
||||
{
|
||||
displayName: 'URL',
|
||||
name: 'url',
|
||||
type: 'string',
|
||||
required: true,
|
||||
default: '',
|
||||
placeholder: 'https://jina.ai/',
|
||||
description: 'The URL to fetch content from',
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
operation: ['read'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Simplify',
|
||||
name: 'simplify',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
description:
|
||||
'Whether to return a simplified version of the response instead of the raw data',
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
operation: ['read'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Options',
|
||||
name: 'options',
|
||||
type: 'collection',
|
||||
placeholder: 'Add Option',
|
||||
default: {},
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
operation: ['read'],
|
||||
},
|
||||
},
|
||||
options: [
|
||||
{
|
||||
displayName: 'Output Format',
|
||||
name: 'outputFormat',
|
||||
description: 'Specify desired output format',
|
||||
type: 'options',
|
||||
options: [
|
||||
{
|
||||
name: 'HTML',
|
||||
value: 'html',
|
||||
},
|
||||
{
|
||||
name: 'JSON',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: 'Markdown',
|
||||
value: 'markdown',
|
||||
},
|
||||
{
|
||||
name: 'Screenshot',
|
||||
value: 'screenshot',
|
||||
},
|
||||
{
|
||||
name: 'Text',
|
||||
value: 'text',
|
||||
},
|
||||
],
|
||||
default: '',
|
||||
},
|
||||
{
|
||||
displayName: 'Target CSS Selector',
|
||||
name: 'targetSelector',
|
||||
type: 'string',
|
||||
description: 'CSS selector to focus on specific page elements',
|
||||
default: '',
|
||||
placeholder: 'e.g. #main-content .article',
|
||||
},
|
||||
{
|
||||
displayName: 'Exclude CSS Selector',
|
||||
name: 'excludeSelector',
|
||||
type: 'string',
|
||||
description: 'CSS selector for elements to exclude',
|
||||
default: '',
|
||||
placeholder: 'e.g. header, footer, .ads',
|
||||
},
|
||||
{
|
||||
displayName: 'Enable Image Captioning',
|
||||
name: 'enableImageCaptioning',
|
||||
type: 'boolean',
|
||||
default: false,
|
||||
description: 'Whether to generate captions for images within the content',
|
||||
},
|
||||
{
|
||||
displayName: 'Wait for CSS Selector',
|
||||
name: 'waitForSelector',
|
||||
type: 'string',
|
||||
description:
|
||||
'Wait for a specific element to appear before extracting content (for dynamic pages)',
|
||||
default: '',
|
||||
placeholder: 'e.g. #results-loaded',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
displayName: 'Search Query',
|
||||
name: 'searchQuery',
|
||||
type: 'string',
|
||||
required: true,
|
||||
default: '',
|
||||
placeholder: 'e.g. Jina AI',
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Simplify',
|
||||
name: 'simplify',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
description:
|
||||
'Whether to return a simplified version of the response instead of the raw data',
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Options',
|
||||
name: 'options',
|
||||
type: 'collection',
|
||||
placeholder: 'Add Option',
|
||||
default: {},
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['reader'],
|
||||
operation: ['search'],
|
||||
},
|
||||
},
|
||||
options: [
|
||||
{
|
||||
displayName: 'Output Format',
|
||||
name: 'outputFormat',
|
||||
description: 'Specify desired output format',
|
||||
type: 'options',
|
||||
options: [
|
||||
{
|
||||
name: 'HTML',
|
||||
value: 'html',
|
||||
},
|
||||
{
|
||||
name: 'JSON',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: 'Markdown',
|
||||
value: 'markdown',
|
||||
},
|
||||
{
|
||||
name: 'Screenshot',
|
||||
value: 'screenshot',
|
||||
},
|
||||
{
|
||||
name: 'Text',
|
||||
value: 'text',
|
||||
},
|
||||
],
|
||||
default: 'json',
|
||||
},
|
||||
{
|
||||
displayName: 'Site Filter',
|
||||
name: 'siteFilter',
|
||||
type: 'string',
|
||||
description: 'Restrict search to specific websites',
|
||||
default: '',
|
||||
placeholder: 'e.g. jina.ai, github.com',
|
||||
},
|
||||
{
|
||||
displayName: 'Page Number',
|
||||
name: 'pageNumber',
|
||||
type: 'number',
|
||||
typeOptions: {
|
||||
minValue: 1,
|
||||
numberPrecision: 0,
|
||||
},
|
||||
description: 'The page number of the search results to retrieve',
|
||||
default: '',
|
||||
placeholder: '1',
|
||||
},
|
||||
],
|
||||
},
|
||||
// Options for Research
|
||||
{
|
||||
displayName: 'Research Query',
|
||||
name: 'researchQuery',
|
||||
type: 'string',
|
||||
required: true,
|
||||
default: '',
|
||||
description: 'The topic or question for the AI to research',
|
||||
placeholder:
|
||||
'e.g. Analyze the impact of renewable energy sources on climate change mitigation',
|
||||
typeOptions: {
|
||||
rows: 2,
|
||||
},
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['research'],
|
||||
operation: ['deepResearch'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Simplify',
|
||||
name: 'simplify',
|
||||
type: 'boolean',
|
||||
default: true,
|
||||
description:
|
||||
'Whether to return a simplified version of the response instead of the raw data',
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['research'],
|
||||
operation: ['deepResearch'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
displayName: 'Options',
|
||||
name: 'options',
|
||||
type: 'collection',
|
||||
placeholder: 'Add Option',
|
||||
default: {},
|
||||
displayOptions: {
|
||||
show: {
|
||||
resource: ['research'],
|
||||
operation: ['deepResearch'],
|
||||
},
|
||||
},
|
||||
options: [
|
||||
{
|
||||
displayName: 'Max Returned Sources',
|
||||
name: 'maxReturnedSources',
|
||||
description: 'The maximum number of URLs to include in the final answer',
|
||||
type: 'number',
|
||||
typeOptions: {
|
||||
minValue: 1,
|
||||
numberPrecision: 0,
|
||||
},
|
||||
default: '',
|
||||
placeholder: 'e.g. 5',
|
||||
},
|
||||
{
|
||||
displayName: 'Prioritize Sources',
|
||||
name: 'prioritizeSources',
|
||||
type: 'string',
|
||||
description: 'A list of domains that are given a higher priority for content retrieval',
|
||||
default: '',
|
||||
placeholder: 'e.g. jina.ai, github.com',
|
||||
},
|
||||
{
|
||||
displayName: 'Exclude Sources',
|
||||
name: 'excludeSources',
|
||||
type: 'string',
|
||||
description: 'A list of domains to be strictly excluded from content retrieval',
|
||||
default: '',
|
||||
placeholder: 'e.g. jina.ai, github.com',
|
||||
},
|
||||
{
|
||||
displayName: 'Site Filter',
|
||||
name: 'siteFilter',
|
||||
type: 'string',
|
||||
description: 'Restrict search to specific websites',
|
||||
default: '',
|
||||
placeholder: 'e.g. jina.ai, github.com',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,109 @@
|
||||
import { NodeTestHarness } from '@nodes-testing/node-test-harness';
|
||||
import nock from 'nock';
|
||||
|
||||
import deepResearchResult from './fixtures/deepResearch.json';
|
||||
import readResult from './fixtures/read.json';
|
||||
import searchResult from './fixtures/search.json';
|
||||
|
||||
describe('JinaAI Node', () => {
|
||||
const credentials = {
|
||||
jinaAiApi: {
|
||||
apiKey: 'API-KEY',
|
||||
},
|
||||
};
|
||||
|
||||
describe('Reader -> Read', () => {
|
||||
const jinaAiNock = nock('https://r.jina.ai');
|
||||
|
||||
beforeAll(() => {
|
||||
jinaAiNock.get('/https://first.com/some/path').times(2).reply(200, readResult);
|
||||
jinaAiNock
|
||||
.get('/https://second.com/other')
|
||||
.query({
|
||||
foo: 'bar',
|
||||
})
|
||||
.matchHeader('X-Return-Format', 'markdown')
|
||||
.matchHeader('X-Target-Selector', 'article')
|
||||
.matchHeader('X-Remove-Selector', '.ad')
|
||||
.matchHeader('X-With-Generated-Alt', 'true')
|
||||
.matchHeader('X-Wait-For-Selector', '#posts')
|
||||
.reply(200, readResult);
|
||||
});
|
||||
|
||||
afterAll(() => jinaAiNock.done());
|
||||
|
||||
new NodeTestHarness().setupTests({
|
||||
credentials,
|
||||
workflowFiles: ['read.workflow.json'],
|
||||
});
|
||||
});
|
||||
|
||||
describe('Reader -> Search', () => {
|
||||
const jinaAiNock = nock('https://s.jina.ai');
|
||||
|
||||
beforeAll(() => {
|
||||
jinaAiNock
|
||||
.get('/')
|
||||
.query({
|
||||
q: 'Jina AI',
|
||||
})
|
||||
.times(2)
|
||||
.reply(200, searchResult);
|
||||
jinaAiNock
|
||||
.get('/')
|
||||
.query({
|
||||
q: 'Jina AI',
|
||||
page: 2,
|
||||
})
|
||||
.matchHeader('X-Return-Format', 'markdown')
|
||||
.matchHeader('X-Site', 'jina.ai')
|
||||
.reply(200, searchResult);
|
||||
});
|
||||
|
||||
afterAll(() => jinaAiNock.done());
|
||||
|
||||
new NodeTestHarness().setupTests({
|
||||
credentials,
|
||||
workflowFiles: ['search.workflow.json'],
|
||||
});
|
||||
});
|
||||
|
||||
describe('Research -> Deep Research', () => {
|
||||
const jinaAiNock = nock('https://deepsearch.jina.ai');
|
||||
|
||||
beforeAll(() => {
|
||||
jinaAiNock
|
||||
.post('/v1/chat/completions', {
|
||||
messages: [
|
||||
{
|
||||
role: 'user',
|
||||
content: 'Describe the latest features in Jina AI',
|
||||
},
|
||||
],
|
||||
})
|
||||
.times(2)
|
||||
.reply(200, deepResearchResult);
|
||||
jinaAiNock
|
||||
.post('/v1/chat/completions', {
|
||||
messages: [
|
||||
{
|
||||
role: 'user',
|
||||
content: 'Describe the latest features in Jina AI',
|
||||
},
|
||||
],
|
||||
max_returned_urls: 5,
|
||||
boost_hostnames: ['jina.ai'],
|
||||
bad_hostnames: ['medium.com'],
|
||||
only_hostnames: ['jina.ai', 'github.com'],
|
||||
})
|
||||
.reply(200, deepResearchResult);
|
||||
});
|
||||
|
||||
afterAll(() => jinaAiNock.done());
|
||||
|
||||
new NodeTestHarness().setupTests({
|
||||
credentials,
|
||||
workflowFiles: ['deepResearch.workflow.json'],
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,226 @@
|
||||
{
|
||||
"name": "Jina AI -> Research -> Deep Research",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {},
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"typeVersion": 1,
|
||||
"position": [-240, 260],
|
||||
"id": "8a73e8c0-c2b8-4933-98e1-a2577b9f4902",
|
||||
"name": "When clicking ‘Test workflow’"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"resource": "research",
|
||||
"researchQuery": "Describe the latest features in Jina AI",
|
||||
"simplify": false,
|
||||
"options": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [-20, 60],
|
||||
"id": "cf8f337f-841c-4715-9ecd-d1b877d5b098",
|
||||
"name": "No options",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"resource": "research",
|
||||
"researchQuery": "Describe the latest features in Jina AI",
|
||||
"simplify": false,
|
||||
"options": {
|
||||
"maxReturnedSources": 5,
|
||||
"prioritizeSources": "jina.ai",
|
||||
"excludeSources": "medium.com",
|
||||
"siteFilter": "jina.ai, github.com"
|
||||
},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [-20, 260],
|
||||
"id": "c353f860-0bc4-453f-a620-2f054721f52a",
|
||||
"name": "With options",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"resource": "research",
|
||||
"researchQuery": "Describe the latest features in Jina AI",
|
||||
"options": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [-20, 460],
|
||||
"id": "91269e77-35b1-4bf5-b0b6-8876e0126b36",
|
||||
"name": "Simplified",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"pinData": {
|
||||
"No options": [
|
||||
{
|
||||
"json": {
|
||||
"id": "123",
|
||||
"object": "chat.completion",
|
||||
"created": 1746186539,
|
||||
"system_fingerprint": "fp_123",
|
||||
"choices": [
|
||||
{
|
||||
"index": 0,
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"type": "text",
|
||||
"annotations": [
|
||||
{
|
||||
"type": "url_citation",
|
||||
"url_citation": {
|
||||
"title": "Lorem ipsum dolor sit amet",
|
||||
"exactQuote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
||||
"url": "https://some.referenced.site.com/article",
|
||||
"dateTime": "Aug 30, 2024"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"logprobs": null,
|
||||
"finish_reason": "stop"
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"prompt_tokens": 123,
|
||||
"completion_tokens": 456,
|
||||
"total_tokens": 579
|
||||
},
|
||||
"visitedURLs": ["https://first.com/some/path", "https://second.com/?foo=bar"],
|
||||
"readURLs": [
|
||||
"https://example.com",
|
||||
"https://example.com/2",
|
||||
"https://some.other.site.com/path"
|
||||
],
|
||||
"numURLs": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"With options": [
|
||||
{
|
||||
"json": {
|
||||
"id": "123",
|
||||
"object": "chat.completion",
|
||||
"created": 1746186539,
|
||||
"system_fingerprint": "fp_123",
|
||||
"choices": [
|
||||
{
|
||||
"index": 0,
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"type": "text",
|
||||
"annotations": [
|
||||
{
|
||||
"type": "url_citation",
|
||||
"url_citation": {
|
||||
"title": "Lorem ipsum dolor sit amet",
|
||||
"exactQuote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
||||
"url": "https://some.referenced.site.com/article",
|
||||
"dateTime": "Aug 30, 2024"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"logprobs": null,
|
||||
"finish_reason": "stop"
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"prompt_tokens": 123,
|
||||
"completion_tokens": 456,
|
||||
"total_tokens": 579
|
||||
},
|
||||
"visitedURLs": ["https://first.com/some/path", "https://second.com/?foo=bar"],
|
||||
"readURLs": [
|
||||
"https://example.com",
|
||||
"https://example.com/2",
|
||||
"https://some.other.site.com/path"
|
||||
],
|
||||
"numURLs": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"Simplified": [
|
||||
{
|
||||
"json": {
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"annotations": [
|
||||
{
|
||||
"type": "url_citation",
|
||||
"url_citation": {
|
||||
"title": "Lorem ipsum dolor sit amet",
|
||||
"exactQuote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
||||
"url": "https://some.referenced.site.com/article",
|
||||
"dateTime": "Aug 30, 2024"
|
||||
}
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"prompt_tokens": 123,
|
||||
"completion_tokens": 456,
|
||||
"total_tokens": 579
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"connections": {
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "No options",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "With options",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Simplified",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"active": false,
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "b822e0dc-3c01-43d5-ad56-419814a40af7",
|
||||
"meta": {
|
||||
"templateCredsSetupCompleted": true,
|
||||
"instanceId": "e115be144a6a5547dbfca93e774dfffa178aa94a181854c13e2ce5e14d195b2e"
|
||||
},
|
||||
"id": "Qttu9wESqI9vHYBA",
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"id": "123",
|
||||
"object": "chat.completion",
|
||||
"created": 1746186539,
|
||||
"system_fingerprint": "fp_123",
|
||||
"choices": [
|
||||
{
|
||||
"index": 0,
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"type": "text",
|
||||
"annotations": [
|
||||
{
|
||||
"type": "url_citation",
|
||||
"url_citation": {
|
||||
"title": "Lorem ipsum dolor sit amet",
|
||||
"exactQuote": "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
|
||||
"url": "https://some.referenced.site.com/article",
|
||||
"dateTime": "Aug 30, 2024"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"logprobs": null,
|
||||
"finish_reason": "stop"
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"prompt_tokens": 123,
|
||||
"completion_tokens": 456,
|
||||
"total_tokens": 579
|
||||
},
|
||||
"visitedURLs": ["https://first.com/some/path", "https://second.com/?foo=bar"],
|
||||
"readURLs": ["https://example.com", "https://example.com/2", "https://some.other.site.com/path"],
|
||||
"numURLs": 5
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"code": 200,
|
||||
"status": 20000,
|
||||
"data": {
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"code": 200,
|
||||
"status": 20000,
|
||||
"data": [
|
||||
{
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Jina AI",
|
||||
"url": "https://github.com/jina-ai",
|
||||
"description": "Your Search Foundation, Supercharged! Jina AI has 243 repositories available. Follow their code on GitHub.",
|
||||
"date": "Mar 24, 2025",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"usage": {
|
||||
"tokens": 246
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,168 @@
|
||||
{
|
||||
"name": "Jina AI -> Reader -> Read",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {},
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"typeVersion": 1,
|
||||
"position": [0, 100],
|
||||
"id": "75a081a7-14e6-4f63-a0b6-86f54937d59d",
|
||||
"name": "When clicking ‘Test workflow’"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "https://first.com/some/path",
|
||||
"simplify": false,
|
||||
"options": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [220, -100],
|
||||
"id": "92e091b7-42dd-4751-8432-58a211840b35",
|
||||
"name": "No options",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "https://second.com/other?foo=bar",
|
||||
"simplify": false,
|
||||
"options": {
|
||||
"outputFormat": "markdown",
|
||||
"targetSelector": "article",
|
||||
"excludeSelector": ".ad",
|
||||
"enableImageCaptioning": true,
|
||||
"waitForSelector": "#posts"
|
||||
},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [220, 100],
|
||||
"id": "f598a0ee-794e-4c31-8833-327768f7eecb",
|
||||
"name": "With options",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"url": "https://first.com/some/path",
|
||||
"options": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [220, 300],
|
||||
"id": "79d27978-20af-494d-b9bd-32f68883ac54",
|
||||
"name": "Simplified",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"pinData": {
|
||||
"No options": [
|
||||
{
|
||||
"json": {
|
||||
"code": 200,
|
||||
"status": 20000,
|
||||
"data": {
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"With options": [
|
||||
{
|
||||
"json": {
|
||||
"code": 200,
|
||||
"status": 20000,
|
||||
"data": {
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
},
|
||||
"meta": {
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"Simplified": [
|
||||
{
|
||||
"json": {
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"connections": {
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "No options",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "With options",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Simplified",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"active": false,
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "41f0e679-7754-4b3c-a86c-e130a18d4378",
|
||||
"meta": {
|
||||
"templateCredsSetupCompleted": true,
|
||||
"instanceId": "e115be144a6a5547dbfca93e774dfffa178aa94a181854c13e2ce5e14d195b2e"
|
||||
},
|
||||
"id": "MFBoiglfRhCu9HgF",
|
||||
"tags": []
|
||||
}
|
||||
@@ -0,0 +1,205 @@
|
||||
{
|
||||
"name": "Jina AI -> Reader -> Search",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {},
|
||||
"type": "n8n-nodes-base.manualTrigger",
|
||||
"typeVersion": 1,
|
||||
"position": [-360, 40],
|
||||
"id": "b7e0a085-eb10-48a7-a25e-853b36aef252",
|
||||
"name": "When clicking ‘Test workflow’"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "search",
|
||||
"searchQuery": "Jina AI",
|
||||
"simplify": false,
|
||||
"options": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [-140, -160],
|
||||
"id": "ea197991-8539-4221-9798-842f4026f31b",
|
||||
"name": "No options",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "search",
|
||||
"searchQuery": "Jina AI",
|
||||
"simplify": false,
|
||||
"options": {
|
||||
"outputFormat": "markdown",
|
||||
"siteFilter": "jina.ai",
|
||||
"pageNumber": 2
|
||||
},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [-140, 40],
|
||||
"id": "dbfbbf4a-caa1-4922-b200-723748636773",
|
||||
"name": "With options",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "search",
|
||||
"searchQuery": "Jina AI",
|
||||
"options": {},
|
||||
"requestOptions": {}
|
||||
},
|
||||
"type": "n8n-nodes-base.jinaAi",
|
||||
"typeVersion": 1,
|
||||
"position": [-140, 240],
|
||||
"id": "91ca27b2-eab4-4131-a544-5ae4794ac0b3",
|
||||
"name": "Simplified",
|
||||
"credentials": {
|
||||
"jinaAiApi": {
|
||||
"id": "8ph5AE62dQFfqkLx",
|
||||
"name": "Jina AI account"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"pinData": {
|
||||
"No options": [
|
||||
{
|
||||
"json": {
|
||||
"code": 200,
|
||||
"status": 20000,
|
||||
"data": [
|
||||
{
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Jina AI",
|
||||
"url": "https://github.com/jina-ai",
|
||||
"description": "Your Search Foundation, Supercharged! Jina AI has 243 repositories available. Follow their code on GitHub.",
|
||||
"date": "Mar 24, 2025",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"usage": {
|
||||
"tokens": 246
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"With options": [
|
||||
{
|
||||
"json": {
|
||||
"code": 200,
|
||||
"status": 20000,
|
||||
"data": [
|
||||
{
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
},
|
||||
{
|
||||
"title": "Jina AI",
|
||||
"url": "https://github.com/jina-ai",
|
||||
"description": "Your Search Foundation, Supercharged! Jina AI has 243 repositories available. Follow their code on GitHub.",
|
||||
"date": "Mar 24, 2025",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"usage": {
|
||||
"tokens": 246
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"Simplified": [
|
||||
{
|
||||
"json": {
|
||||
"title": "Jina AI - Your Search Foundation, Supercharged.",
|
||||
"url": "https://jina.ai/",
|
||||
"description": "Best-in-class embeddings, rerankers, web crawler scraper, deepsearch, small LMs. The search AI for multilingual and multimodal data.",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"json": {
|
||||
"title": "Jina AI",
|
||||
"url": "https://github.com/jina-ai",
|
||||
"description": "Your Search Foundation, Supercharged! Jina AI has 243 repositories available. Follow their code on GitHub.",
|
||||
"date": "Mar 24, 2025",
|
||||
"content": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
|
||||
"usage": {
|
||||
"tokens": 123
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"connections": {
|
||||
"When clicking ‘Test workflow’": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "No options",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "With options",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
},
|
||||
{
|
||||
"node": "Simplified",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"active": false,
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "b425b5ec-f0b1-4f81-a83b-ca6a787d7a1d",
|
||||
"meta": {
|
||||
"templateCredsSetupCompleted": true,
|
||||
"instanceId": "e115be144a6a5547dbfca93e774dfffa178aa94a181854c13e2ce5e14d195b2e"
|
||||
},
|
||||
"id": "QVbuEahHyMKrgfFc",
|
||||
"tags": []
|
||||
}
|
||||
6
packages/nodes-base/nodes/JinaAI/jinaAi.dark.svg
Normal file
6
packages/nodes-base/nodes/JinaAI/jinaAi.dark.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;" d="M 35.242188 114.21875 C 48.816406 114.21875 59.820312 103.214844 59.820312 89.640625 C 59.820312 76.066406 48.816406 65.0625 35.242188 65.0625 C 21.667969 65.0625 10.664062 76.066406 10.664062 89.640625 C 10.664062 103.214844 21.667969 114.21875 35.242188 114.21875 Z M 111.433594 10.746094 C 114.710938 10.746094 117.332031 13.371094 117.332031 16.644531 L 117.332031 64.65625 C 117.332031 92.015625 95.210938 114.304688 68.175781 114.628906 L 68.175781 64.734375 L 68.015625 16.566406 C 68.015625 13.289062 70.632812 10.667969 73.914062 10.667969 L 112.089844 10.667969 Z M 111.433594 10.746094 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 908 B |
6
packages/nodes-base/nodes/JinaAI/jinaAi.svg
Normal file
6
packages/nodes-base/nodes/JinaAI/jinaAi.svg
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128px" height="128px" viewBox="0 0 128 128" version="1.1">
|
||||
<g id="surface1">
|
||||
<path style=" stroke:none;fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;" d="M 35.242188 114.21875 C 48.816406 114.21875 59.820312 103.214844 59.820312 89.640625 C 59.820312 76.066406 48.816406 65.0625 35.242188 65.0625 C 21.667969 65.0625 10.664062 76.066406 10.664062 89.640625 C 10.664062 103.214844 21.667969 114.21875 35.242188 114.21875 Z M 111.433594 10.746094 C 114.710938 10.746094 117.332031 13.371094 117.332031 16.644531 L 117.332031 64.65625 C 117.332031 92.015625 95.210938 114.304688 68.175781 114.628906 L 68.175781 64.734375 L 68.015625 16.566406 C 68.015625 13.289062 70.632812 10.667969 73.914062 10.667969 L 112.089844 10.667969 Z M 111.433594 10.746094 "/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 902 B |
@@ -186,6 +186,7 @@
|
||||
"dist/credentials/InvoiceNinjaApi.credentials.js",
|
||||
"dist/credentials/IterableApi.credentials.js",
|
||||
"dist/credentials/JenkinsApi.credentials.js",
|
||||
"dist/credentials/JinaAiApi.credentials.js",
|
||||
"dist/credentials/JiraSoftwareCloudApi.credentials.js",
|
||||
"dist/credentials/JiraSoftwareServerApi.credentials.js",
|
||||
"dist/credentials/JiraSoftwareServerPatApi.credentials.js",
|
||||
@@ -597,6 +598,7 @@
|
||||
"dist/nodes/ItemLists/ItemLists.node.js",
|
||||
"dist/nodes/Iterable/Iterable.node.js",
|
||||
"dist/nodes/Jenkins/Jenkins.node.js",
|
||||
"dist/nodes/JinaAI/JinaAi.node.js",
|
||||
"dist/nodes/Jira/Jira.node.js",
|
||||
"dist/nodes/Jira/JiraTrigger.node.js",
|
||||
"dist/nodes/JotForm/JotFormTrigger.node.js",
|
||||
|
||||
Reference in New Issue
Block a user