Flowise
798 строк · 34.4 Кб
1{
2"description": "Answer question based on retrieved documents (context) with built-in memory to remember conversation using LlamaIndex",
3"categories": "Text File,Prompt Template,ChatOpenAI,Conversation Chain,Pinecone,LlamaIndex,Redis",
4"framework": "LlamaIndex",
5"badge": "NEW",
6"nodes": [
7{
8"width": 300,
9"height": 438,
10"id": "textFile_0",
11"position": {
12"x": 221.215421786192,
13"y": 94.91489477412404
14},
15"type": "customNode",
16"data": {
17"id": "textFile_0",
18"label": "Text File",
19"version": 3,
20"name": "textFile",
21"type": "Document",
22"baseClasses": ["Document"],
23"category": "Document Loaders",
24"description": "Load data from text files",
25"inputParams": [
26{
27"label": "Txt File",
28"name": "txtFile",
29"type": "file",
30"fileType": ".txt, .html, .aspx, .asp, .cpp, .c, .cs, .css, .go, .h, .java, .js, .less, .ts, .php, .proto, .python, .py, .rst, .ruby, .rb, .rs, .scala, .sc, .scss, .sol, .sql, .swift, .markdown, .md, .tex, .ltx, .vb, .xml",
31"id": "textFile_0-input-txtFile-file"
32},
33{
34"label": "Metadata",
35"name": "metadata",
36"type": "json",
37"optional": true,
38"additionalParams": true,
39"id": "textFile_0-input-metadata-json"
40}
41],
42"inputAnchors": [
43{
44"label": "Text Splitter",
45"name": "textSplitter",
46"type": "TextSplitter",
47"optional": true,
48"id": "textFile_0-input-textSplitter-TextSplitter"
49}
50],
51"inputs": {
52"textSplitter": "{{recursiveCharacterTextSplitter_0.data.instance}}",
53"metadata": ""
54},
55"outputAnchors": [
56{
57"name": "output",
58"label": "Output",
59"type": "options",
60"options": [
61{
62"id": "textFile_0-output-document-Document|json",
63"name": "document",
64"label": "Document",
65"type": "Document | json"
66},
67{
68"id": "textFile_0-output-text-string|json",
69"name": "text",
70"label": "Text",
71"type": "string | json"
72}
73],
74"default": "document"
75}
76],
77"outputs": {
78"output": "document"
79},
80"selected": false
81},
82"selected": false,
83"positionAbsolute": {
84"x": 221.215421786192,
85"y": 94.91489477412404
86},
87"dragging": false
88},
89{
90"width": 300,
91"height": 429,
92"id": "recursiveCharacterTextSplitter_0",
93"position": {
94"x": -203.4868320229876,
95"y": 101.32475976329766
96},
97"type": "customNode",
98"data": {
99"id": "recursiveCharacterTextSplitter_0",
100"label": "Recursive Character Text Splitter",
101"version": 2,
102"name": "recursiveCharacterTextSplitter",
103"type": "RecursiveCharacterTextSplitter",
104"baseClasses": ["RecursiveCharacterTextSplitter", "TextSplitter", "BaseDocumentTransformer", "Runnable"],
105"category": "Text Splitters",
106"description": "Split documents recursively by different characters - starting with \"\\n\\n\", then \"\\n\", then \" \"",
107"inputParams": [
108{
109"label": "Chunk Size",
110"name": "chunkSize",
111"type": "number",
112"default": 1000,
113"optional": true,
114"id": "recursiveCharacterTextSplitter_0-input-chunkSize-number"
115},
116{
117"label": "Chunk Overlap",
118"name": "chunkOverlap",
119"type": "number",
120"optional": true,
121"id": "recursiveCharacterTextSplitter_0-input-chunkOverlap-number"
122},
123{
124"label": "Custom Separators",
125"name": "separators",
126"type": "string",
127"rows": 4,
128"description": "Array of custom separators to determine when to split the text, will override the default separators",
129"placeholder": "[\"|\", \"##\", \">\", \"-\"]",
130"additionalParams": true,
131"optional": true,
132"id": "recursiveCharacterTextSplitter_0-input-separators-string"
133}
134],
135"inputAnchors": [],
136"inputs": {
137"chunkSize": 1000,
138"chunkOverlap": "",
139"separators": ""
140},
141"outputAnchors": [
142{
143"id": "recursiveCharacterTextSplitter_0-output-recursiveCharacterTextSplitter-RecursiveCharacterTextSplitter|TextSplitter|BaseDocumentTransformer|Runnable",
144"name": "recursiveCharacterTextSplitter",
145"label": "RecursiveCharacterTextSplitter",
146"type": "RecursiveCharacterTextSplitter | TextSplitter | BaseDocumentTransformer | Runnable"
147}
148],
149"outputs": {},
150"selected": false
151},
152"selected": false,
153"positionAbsolute": {
154"x": -203.4868320229876,
155"y": 101.32475976329766
156},
157"dragging": false
158},
159{
160"width": 300,
161"height": 334,
162"id": "openAIEmbedding_LlamaIndex_0",
163"position": {
164"x": 176.27434578083106,
165"y": 953.3664298122493
166},
167"type": "customNode",
168"data": {
169"id": "openAIEmbedding_LlamaIndex_0",
170"label": "OpenAI Embedding",
171"version": 2,
172"name": "openAIEmbedding_LlamaIndex",
173"type": "OpenAIEmbedding",
174"baseClasses": ["OpenAIEmbedding", "BaseEmbedding_LlamaIndex", "BaseEmbedding"],
175"tags": ["LlamaIndex"],
176"category": "Embeddings",
177"description": "OpenAI Embedding specific for LlamaIndex",
178"inputParams": [
179{
180"label": "Connect Credential",
181"name": "credential",
182"type": "credential",
183"credentialNames": ["openAIApi"],
184"id": "openAIEmbedding_LlamaIndex_0-input-credential-credential"
185},
186{
187"label": "Model Name",
188"name": "modelName",
189"type": "asyncOptions",
190"loadMethod": "listModels",
191"default": "text-embedding-ada-002",
192"id": "openAIEmbedding_LlamaIndex_0-input-modelName-options"
193},
194{
195"label": "Timeout",
196"name": "timeout",
197"type": "number",
198"optional": true,
199"additionalParams": true,
200"id": "openAIEmbedding_LlamaIndex_0-input-timeout-number"
201},
202{
203"label": "BasePath",
204"name": "basepath",
205"type": "string",
206"optional": true,
207"additionalParams": true,
208"id": "openAIEmbedding_LlamaIndex_0-input-basepath-string"
209}
210],
211"inputAnchors": [],
212"inputs": {
213"timeout": "",
214"basepath": "",
215"modelName": "text-embedding-ada-002"
216},
217"outputAnchors": [
218{
219"id": "openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding",
220"name": "openAIEmbedding_LlamaIndex",
221"label": "OpenAIEmbedding",
222"type": "OpenAIEmbedding | BaseEmbedding_LlamaIndex | BaseEmbedding"
223}
224],
225"outputs": {},
226"selected": false
227},
228"selected": false,
229"positionAbsolute": {
230"x": 176.27434578083106,
231"y": 953.3664298122493
232},
233"dragging": false
234},
235{
236"width": 300,
237"height": 585,
238"id": "pineconeLlamaIndex_0",
239"position": {
240"x": 609.3087433345761,
241"y": 488.2141798951578
242},
243"type": "customNode",
244"data": {
245"id": "pineconeLlamaIndex_0",
246"label": "Pinecone",
247"version": 1,
248"name": "pineconeLlamaIndex",
249"type": "Pinecone",
250"baseClasses": ["Pinecone", "VectorIndexRetriever"],
251"tags": ["LlamaIndex"],
252"category": "Vector Stores",
253"description": "Upsert embedded data and perform similarity search upon query using Pinecone, a leading fully managed hosted vector database",
254"inputParams": [
255{
256"label": "Connect Credential",
257"name": "credential",
258"type": "credential",
259"credentialNames": ["pineconeApi"],
260"id": "pineconeLlamaIndex_0-input-credential-credential"
261},
262{
263"label": "Pinecone Index",
264"name": "pineconeIndex",
265"type": "string",
266"id": "pineconeLlamaIndex_0-input-pineconeIndex-string"
267},
268{
269"label": "Pinecone Namespace",
270"name": "pineconeNamespace",
271"type": "string",
272"placeholder": "my-first-namespace",
273"additionalParams": true,
274"optional": true,
275"id": "pineconeLlamaIndex_0-input-pineconeNamespace-string"
276},
277{
278"label": "Pinecone Metadata Filter",
279"name": "pineconeMetadataFilter",
280"type": "json",
281"optional": true,
282"additionalParams": true,
283"id": "pineconeLlamaIndex_0-input-pineconeMetadataFilter-json"
284},
285{
286"label": "Top K",
287"name": "topK",
288"description": "Number of top results to fetch. Default to 4",
289"placeholder": "4",
290"type": "number",
291"additionalParams": true,
292"optional": true,
293"id": "pineconeLlamaIndex_0-input-topK-number"
294}
295],
296"inputAnchors": [
297{
298"label": "Document",
299"name": "document",
300"type": "Document",
301"list": true,
302"optional": true,
303"id": "pineconeLlamaIndex_0-input-document-Document"
304},
305{
306"label": "Chat Model",
307"name": "model",
308"type": "BaseChatModel_LlamaIndex",
309"id": "pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex"
310},
311{
312"label": "Embeddings",
313"name": "embeddings",
314"type": "BaseEmbedding_LlamaIndex",
315"id": "pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex"
316}
317],
318"inputs": {
319"document": ["{{textFile_0.data.instance}}"],
320"model": "{{chatOpenAI_LlamaIndex_1.data.instance}}",
321"embeddings": "{{openAIEmbedding_LlamaIndex_0.data.instance}}",
322"pineconeIndex": "",
323"pineconeNamespace": "",
324"pineconeMetadataFilter": "",
325"topK": ""
326},
327"outputAnchors": [
328{
329"name": "output",
330"label": "Output",
331"type": "options",
332"options": [
333{
334"id": "pineconeLlamaIndex_0-output-retriever-Pinecone|VectorIndexRetriever",
335"name": "retriever",
336"label": "Pinecone Retriever",
337"type": "Pinecone | VectorIndexRetriever"
338},
339{
340"id": "pineconeLlamaIndex_0-output-retriever-Pinecone|VectorStoreIndex",
341"name": "vectorStore",
342"label": "Pinecone Vector Store Index",
343"type": "Pinecone | VectorStoreIndex"
344}
345],
346"default": "retriever"
347}
348],
349"outputs": {
350"output": "retriever"
351},
352"selected": false
353},
354"selected": false,
355"positionAbsolute": {
356"x": 609.3087433345761,
357"y": 488.2141798951578
358},
359"dragging": false
360},
361{
362"width": 300,
363"height": 529,
364"id": "chatOpenAI_LlamaIndex_1",
365"position": {
366"x": -195.15244974578656,
367"y": 584.9467028201428
368},
369"type": "customNode",
370"data": {
371"id": "chatOpenAI_LlamaIndex_1",
372"label": "ChatOpenAI",
373"version": 2.0,
374"name": "chatOpenAI_LlamaIndex",
375"type": "ChatOpenAI",
376"baseClasses": ["ChatOpenAI", "BaseChatModel_LlamaIndex"],
377"tags": ["LlamaIndex"],
378"category": "Chat Models",
379"description": "Wrapper around OpenAI Chat LLM specific for LlamaIndex",
380"inputParams": [
381{
382"label": "Connect Credential",
383"name": "credential",
384"type": "credential",
385"credentialNames": ["openAIApi"],
386"id": "chatOpenAI_LlamaIndex_1-input-credential-credential"
387},
388{
389"label": "Model Name",
390"name": "modelName",
391"type": "asyncOptions",
392"loadMethod": "listModels",
393"default": "gpt-3.5-turbo",
394"id": "chatOpenAI_LlamaIndex_1-input-modelName-options"
395},
396{
397"label": "Temperature",
398"name": "temperature",
399"type": "number",
400"step": 0.1,
401"default": 0.9,
402"optional": true,
403"id": "chatOpenAI_LlamaIndex_1-input-temperature-number"
404},
405{
406"label": "Max Tokens",
407"name": "maxTokens",
408"type": "number",
409"step": 1,
410"optional": true,
411"additionalParams": true,
412"id": "chatOpenAI_LlamaIndex_1-input-maxTokens-number"
413},
414{
415"label": "Top Probability",
416"name": "topP",
417"type": "number",
418"step": 0.1,
419"optional": true,
420"additionalParams": true,
421"id": "chatOpenAI_LlamaIndex_1-input-topP-number"
422},
423{
424"label": "Timeout",
425"name": "timeout",
426"type": "number",
427"step": 1,
428"optional": true,
429"additionalParams": true,
430"id": "chatOpenAI_LlamaIndex_1-input-timeout-number"
431}
432],
433"inputAnchors": [],
434"inputs": {
435"modelName": "gpt-3.5-turbo-16k",
436"temperature": 0.9,
437"maxTokens": "",
438"topP": "",
439"timeout": ""
440},
441"outputAnchors": [
442{
443"id": "chatOpenAI_LlamaIndex_1-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex",
444"name": "chatOpenAI_LlamaIndex",
445"label": "ChatOpenAI",
446"type": "ChatOpenAI | BaseChatModel_LlamaIndex"
447}
448],
449"outputs": {},
450"selected": false
451},
452"selected": false,
453"positionAbsolute": {
454"x": -195.15244974578656,
455"y": 584.9467028201428
456},
457"dragging": false
458},
459{
460"width": 300,
461"height": 513,
462"id": "contextChatEngine_0",
463"position": {
464"x": 1550.2553933740128,
465"y": 270.7914631777829
466},
467"type": "customNode",
468"data": {
469"id": "contextChatEngine_0",
470"label": "Context Chat Engine",
471"version": 1,
472"name": "contextChatEngine",
473"type": "ContextChatEngine",
474"baseClasses": ["ContextChatEngine"],
475"tags": ["LlamaIndex"],
476"category": "Engine",
477"description": "Answer question based on retrieved documents (context) with built-in memory to remember conversation",
478"inputParams": [
479{
480"label": "Return Source Documents",
481"name": "returnSourceDocuments",
482"type": "boolean",
483"optional": true,
484"id": "contextChatEngine_0-input-returnSourceDocuments-boolean"
485},
486{
487"label": "System Message",
488"name": "systemMessagePrompt",
489"type": "string",
490"rows": 4,
491"optional": true,
492"placeholder": "I want you to act as a document that I am having a conversation with. Your name is \"AI Assistant\". You will provide me with answers from the given info. If the answer is not included, say exactly \"Hmm, I am not sure.\" and stop after that. Refuse to answer any question not about the info. Never break character.",
493"id": "contextChatEngine_0-input-systemMessagePrompt-string"
494}
495],
496"inputAnchors": [
497{
498"label": "Chat Model",
499"name": "model",
500"type": "BaseChatModel_LlamaIndex",
501"id": "contextChatEngine_0-input-model-BaseChatModel_LlamaIndex"
502},
503{
504"label": "Vector Store Retriever",
505"name": "vectorStoreRetriever",
506"type": "VectorIndexRetriever",
507"id": "contextChatEngine_0-input-vectorStoreRetriever-VectorIndexRetriever"
508},
509{
510"label": "Memory",
511"name": "memory",
512"type": "BaseChatMemory",
513"id": "contextChatEngine_0-input-memory-BaseChatMemory"
514}
515],
516"inputs": {
517"model": "{{chatOpenAI_LlamaIndex_2.data.instance}}",
518"vectorStoreRetriever": "{{pineconeLlamaIndex_0.data.instance}}",
519"memory": "{{RedisBackedChatMemory_0.data.instance}}",
520"systemMessagePrompt": "",
521"returnSourceDocuments": true
522},
523"outputAnchors": [
524{
525"id": "contextChatEngine_0-output-contextChatEngine-ContextChatEngine",
526"name": "contextChatEngine",
527"label": "ContextChatEngine",
528"type": "ContextChatEngine"
529}
530],
531"outputs": {},
532"selected": false
533},
534"selected": false,
535"positionAbsolute": {
536"x": 1550.2553933740128,
537"y": 270.7914631777829
538},
539"dragging": false
540},
541{
542"width": 300,
543"height": 329,
544"id": "RedisBackedChatMemory_0",
545"position": {
546"x": 1081.252815805786,
547"y": 990.1701092562037
548},
549"type": "customNode",
550"data": {
551"id": "RedisBackedChatMemory_0",
552"label": "Redis-Backed Chat Memory",
553"version": 2,
554"name": "RedisBackedChatMemory",
555"type": "RedisBackedChatMemory",
556"baseClasses": ["RedisBackedChatMemory", "BaseChatMemory", "BaseMemory"],
557"category": "Memory",
558"description": "Summarizes the conversation and stores the memory in Redis server",
559"inputParams": [
560{
561"label": "Connect Credential",
562"name": "credential",
563"type": "credential",
564"optional": true,
565"credentialNames": ["redisCacheApi", "redisCacheUrlApi"],
566"id": "RedisBackedChatMemory_0-input-credential-credential"
567},
568{
569"label": "Session Id",
570"name": "sessionId",
571"type": "string",
572"description": "If not specified, a random id will be used. Learn <a target=\"_blank\" href=\"https://docs.flowiseai.com/memory/long-term-memory#ui-and-embedded-chat\">more</a>",
573"default": "",
574"additionalParams": true,
575"optional": true,
576"id": "RedisBackedChatMemory_0-input-sessionId-string"
577},
578{
579"label": "Session Timeouts",
580"name": "sessionTTL",
581"type": "number",
582"description": "Omit this parameter to make sessions never expire",
583"additionalParams": true,
584"optional": true,
585"id": "RedisBackedChatMemory_0-input-sessionTTL-number"
586},
587{
588"label": "Memory Key",
589"name": "memoryKey",
590"type": "string",
591"default": "chat_history",
592"additionalParams": true,
593"id": "RedisBackedChatMemory_0-input-memoryKey-string"
594}
595],
596"inputAnchors": [],
597"inputs": {
598"sessionId": "",
599"sessionTTL": "",
600"memoryKey": "chat_history"
601},
602"outputAnchors": [
603{
604"id": "RedisBackedChatMemory_0-output-RedisBackedChatMemory-RedisBackedChatMemory|BaseChatMemory|BaseMemory",
605"name": "RedisBackedChatMemory",
606"label": "RedisBackedChatMemory",
607"type": "RedisBackedChatMemory | BaseChatMemory | BaseMemory"
608}
609],
610"outputs": {},
611"selected": false
612},
613"selected": false,
614"dragging": false,
615"positionAbsolute": {
616"x": 1081.252815805786,
617"y": 990.1701092562037
618}
619},
620{
621"width": 300,
622"height": 529,
623"id": "chatOpenAI_LlamaIndex_2",
624"position": {
625"x": 1015.1605888108386,
626"y": -38.31143117572401
627},
628"type": "customNode",
629"data": {
630"id": "chatOpenAI_LlamaIndex_2",
631"label": "ChatOpenAI",
632"version": 2.0,
633"name": "chatOpenAI_LlamaIndex",
634"type": "ChatOpenAI",
635"baseClasses": ["ChatOpenAI", "BaseChatModel_LlamaIndex"],
636"tags": ["LlamaIndex"],
637"category": "Chat Models",
638"description": "Wrapper around OpenAI Chat LLM specific for LlamaIndex",
639"inputParams": [
640{
641"label": "Connect Credential",
642"name": "credential",
643"type": "credential",
644"credentialNames": ["openAIApi"],
645"id": "chatOpenAI_LlamaIndex_2-input-credential-credential"
646},
647{
648"label": "Model Name",
649"name": "modelName",
650"type": "asyncOptions",
651"loadMethod": "listModels",
652"default": "gpt-3.5-turbo",
653"id": "chatOpenAI_LlamaIndex_2-input-modelName-options"
654},
655{
656"label": "Temperature",
657"name": "temperature",
658"type": "number",
659"step": 0.1,
660"default": 0.9,
661"optional": true,
662"id": "chatOpenAI_LlamaIndex_2-input-temperature-number"
663},
664{
665"label": "Max Tokens",
666"name": "maxTokens",
667"type": "number",
668"step": 1,
669"optional": true,
670"additionalParams": true,
671"id": "chatOpenAI_LlamaIndex_2-input-maxTokens-number"
672},
673{
674"label": "Top Probability",
675"name": "topP",
676"type": "number",
677"step": 0.1,
678"optional": true,
679"additionalParams": true,
680"id": "chatOpenAI_LlamaIndex_2-input-topP-number"
681},
682{
683"label": "Timeout",
684"name": "timeout",
685"type": "number",
686"step": 1,
687"optional": true,
688"additionalParams": true,
689"id": "chatOpenAI_LlamaIndex_2-input-timeout-number"
690}
691],
692"inputAnchors": [],
693"inputs": {
694"modelName": "gpt-3.5-turbo",
695"temperature": 0.9,
696"maxTokens": "",
697"topP": "",
698"timeout": ""
699},
700"outputAnchors": [
701{
702"id": "chatOpenAI_LlamaIndex_2-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex",
703"name": "chatOpenAI_LlamaIndex",
704"label": "ChatOpenAI",
705"type": "ChatOpenAI | BaseChatModel_LlamaIndex"
706}
707],
708"outputs": {},
709"selected": false
710},
711"selected": false,
712"positionAbsolute": {
713"x": 1015.1605888108386,
714"y": -38.31143117572401
715},
716"dragging": false
717}
718],
719"edges": [
720{
721"source": "recursiveCharacterTextSplitter_0",
722"sourceHandle": "recursiveCharacterTextSplitter_0-output-recursiveCharacterTextSplitter-RecursiveCharacterTextSplitter|TextSplitter|BaseDocumentTransformer|Runnable",
723"target": "textFile_0",
724"targetHandle": "textFile_0-input-textSplitter-TextSplitter",
725"type": "buttonedge",
726"id": "recursiveCharacterTextSplitter_0-recursiveCharacterTextSplitter_0-output-recursiveCharacterTextSplitter-RecursiveCharacterTextSplitter|TextSplitter|BaseDocumentTransformer|Runnable-textFile_0-textFile_0-input-textSplitter-TextSplitter",
727"data": {
728"label": ""
729}
730},
731{
732"source": "textFile_0",
733"sourceHandle": "textFile_0-output-document-Document|json",
734"target": "pineconeLlamaIndex_0",
735"targetHandle": "pineconeLlamaIndex_0-input-document-Document",
736"type": "buttonedge",
737"id": "textFile_0-textFile_0-output-document-Document|json-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-document-Document",
738"data": {
739"label": ""
740}
741},
742{
743"source": "chatOpenAI_LlamaIndex_1",
744"sourceHandle": "chatOpenAI_LlamaIndex_1-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex",
745"target": "pineconeLlamaIndex_0",
746"targetHandle": "pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex",
747"type": "buttonedge",
748"id": "chatOpenAI_LlamaIndex_1-chatOpenAI_LlamaIndex_1-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-model-BaseChatModel_LlamaIndex",
749"data": {
750"label": ""
751}
752},
753{
754"source": "openAIEmbedding_LlamaIndex_0",
755"sourceHandle": "openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding",
756"target": "pineconeLlamaIndex_0",
757"targetHandle": "pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex",
758"type": "buttonedge",
759"id": "openAIEmbedding_LlamaIndex_0-openAIEmbedding_LlamaIndex_0-output-openAIEmbedding_LlamaIndex-OpenAIEmbedding|BaseEmbedding_LlamaIndex|BaseEmbedding-pineconeLlamaIndex_0-pineconeLlamaIndex_0-input-embeddings-BaseEmbedding_LlamaIndex",
760"data": {
761"label": ""
762}
763},
764{
765"source": "pineconeLlamaIndex_0",
766"sourceHandle": "pineconeLlamaIndex_0-output-pineconeLlamaIndex-Pinecone|VectorIndexRetriever",
767"target": "contextChatEngine_0",
768"targetHandle": "contextChatEngine_0-input-vectorStoreRetriever-VectorIndexRetriever",
769"type": "buttonedge",
770"id": "pineconeLlamaIndex_0-pineconeLlamaIndex_0-output-pineconeLlamaIndex-Pinecone|VectorIndexRetriever-contextChatEngine_0-contextChatEngine_0-input-vectorStoreRetriever-VectorIndexRetriever",
771"data": {
772"label": ""
773}
774},
775{
776"source": "RedisBackedChatMemory_0",
777"sourceHandle": "RedisBackedChatMemory_0-output-RedisBackedChatMemory-RedisBackedChatMemory|BaseChatMemory|BaseMemory",
778"target": "contextChatEngine_0",
779"targetHandle": "contextChatEngine_0-input-memory-BaseChatMemory",
780"type": "buttonedge",
781"id": "RedisBackedChatMemory_0-RedisBackedChatMemory_0-output-RedisBackedChatMemory-RedisBackedChatMemory|BaseChatMemory|BaseMemory-contextChatEngine_0-contextChatEngine_0-input-memory-BaseChatMemory",
782"data": {
783"label": ""
784}
785},
786{
787"source": "chatOpenAI_LlamaIndex_2",
788"sourceHandle": "chatOpenAI_LlamaIndex_2-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex",
789"target": "contextChatEngine_0",
790"targetHandle": "contextChatEngine_0-input-model-BaseChatModel_LlamaIndex",
791"type": "buttonedge",
792"id": "chatOpenAI_LlamaIndex_2-chatOpenAI_LlamaIndex_2-output-chatOpenAI_LlamaIndex-ChatOpenAI|BaseChatModel_LlamaIndex-contextChatEngine_0-contextChatEngine_0-input-model-BaseChatModel_LlamaIndex",
793"data": {
794"label": ""
795}
796}
797]
798}
799