# Introduction

Welcome to the official THub documentation.

**What is THub?**

THub streamlines Generative AI Workflows with Low-Code, Drag-and-Drop Automation, and seamless integration for all data types and Large Language Models

**Features:**&#x20;

🧩 **No Code -Low Code Platform** · Develop production ready GenAI apps at scale with no code-low code platform.

🖱️ **Drag & Drop Features** · Simply drag & drop data loader, LLMs, agents, chains, embedding model etc. to build your custom GenAI app.

🔄 **Automated Data Pipeline** · Build end to end pipeline for structured, semi-structured & Unstructured data all in one platform.

🧬 **Embeddings Unstructured Data** · Use industry best embedding model based on specific use case and data types.

🗄️ **Vector Database** · Use Vector database based on specific requirement from Pinecone, Weaviate, Qdrant etc. to store vector embeddings of unstructured data.

🔗 **Langchain & LlamaIndex Framework** · Develop Gen AI apps using industry leading development framework.

🤖 **Integration with major LLM's** · Use best of LLM's based on specific use case ranging from OpenAI, Gemini, Anthropic, Cohere etc.

💰 **Pay as You use Model** · Pay for what you use to keep your GenAI app cost under control

**1.     Registering or Logging In: -**

&#x20;         ·  Continue with Google

&#x20;        ·  Continuing with Microsoft

**Step 1: - Registering Manually:**

&#x20;           a)  Visit the official website: <https://app.thub.tech/signup>

&#x20;           b)  Scroll down to locate the Registration Form on the homepage.

&#x20;           c)  Fill in the required details:

&#x20;                   ·   First Name

&#x20;                   ·  Last Name

&#x20;                   ·  Email

&#x20;                   ·  Phone Number

&#x20;                  ·   Password

d)     Once all fields are filled, click the Submit button to complete your sign-up, you’ll receive confirmation via email.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FLcw0yNOmQQzos6o6pC3T%2Fimage.png?alt=media&amp;token=35f0fe01-81db-488a-ae72-81af06795ad4" alt=""><figcaption></figcaption></figure>

Step 2: - Log in to the THub platform using your “Continue with Google” or “Microsoft” credentials by selecting the corresponding option.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAXs9DGK7esFMiGxhaKwx%2Fimage.png?alt=media&amp;token=cd70c460-5b0b-4873-ab25-ed66c946327b" alt=""><figcaption></figcaption></figure>

**2.     Home Page Overview – AI Workspace: -**

&#x20;        Once you log in to <https://app.thub.tech/workflows> you’ll land on the AI Workspace Dashboard, which is your central hub to build, manage, and launch AI-powered workflows.

The left-hand navigation gives you access to:

&#x20;     Ø  AI Workspace: Monitor and manage your existing AI apps and workflows.

&#x20;     Ø  Templates: Kickstart your workflow using ready-made templates designed to save time and effort.

&#x20;     Ø  Tools: Add functionality using a library of AI and utility nodes.

&#x20;     Ø  Credentials: Securely store your external API keys, tokens, and login credentials.

&#x20;     Ø  Variables: Define and manage environment or app-specific variables that make your workflows                                                         flexible.

&#x20;     Ø  API Keys: Generate secure API keys to connect and integrate your TextileTradeBuddy apps with external systems.

1\.     Home Page Overview – AI Workspace: -

&#x20;     Once you log in to <https://app.thub.tech/workflows> you’ll land on the AI Workspace Dashboard, which is your central hub to build, manage, and launch AI-powered workflows.

The left-hand navigation gives you access to:

Ø  AI Workspace: Monitor and manage your existing AI apps and workflows.

Ø  Templates: Kickstart your workflow using ready-made templates designed to save time and effort.

Ø  Tools: Add functionality using a library of AI and utility nodes.

Ø  Credentials: Securely store your external API keys, tokens, and login credentials.

Ø  Variables: Define and manage environment or app-specific variables that make your workflows flexible.

Ø  API Keys: Generate secure API keys to connect and integrate your TextileTradeBuddy apps with external systems.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXB2MebkH6ny4rzIIQ9xa%2F17-03-2026%2011_33_10.png?alt=media&amp;token=197e6e9d-2feb-4c4e-a97e-da171046ce82" alt=""><figcaption></figcaption></figure>

**3.     Working with Credentials:**

&#x20;             Credentials allow you to authenticate and integrate external services with your workflows. You can store service-specific credentials securely to avoid hardcoding them into your workflows.

&#x20;   **Example: -** How to create the API key

&#x20;    a.  Click on the OpenAI link <https://platform.openai.com/>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FhOqv6tKpuUQu6tYJg0Jx%2Fimage.png?alt=media&amp;token=51db282c-22c1-4919-b9c3-c41d61c1f461" alt="" width="545"><figcaption></figcaption></figure>

&#x20;   b. Click on settings, in the left side navigation bar click on API Key.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpqQYmwyXHvQGmTRM2Vyp%2Fimage.png?alt=media&amp;token=107be814-b931-447e-9a76-3e9f9e183bb1" alt="" width="545"><figcaption></figcaption></figure>

&#x20;    c.  Click on the 'Create New Secret Key' button, fill in the required information, and then click the    'Create Secret Key' button.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FidXaX8JYjfeOtn8BOQRt%2Fimage.png?alt=media&amp;token=541e9605-825c-4345-8ec3-da8eace31074" alt="" width="524"><figcaption></figcaption></figure>

&#x20;   d. The API key will be generated. Copy the API key.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FQnL5aja3wJt65lVavPwX%2Fimage.png?alt=media&amp;token=f2bc6444-ab3a-41de-be48-a58ba1fd1ad3" alt="" width="536"><figcaption></figcaption></figure>

**Step 1: -** Navigate to the Credentials section to generate new keys.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FWCnVKxNefqUD7KIvff5B%2F17-03-2026%2012_56_11.png?alt=media&amp;token=1a1e2321-5266-47dd-96f1-ebc6681348d8" alt=""><figcaption></figcaption></figure>

**Step 2: -** Use Credentials to store and access external API tokens securely within your workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAtY0KbLbE1dbjhpLl9MR%2F17-03-2026%2013_03_38.png?alt=media&amp;token=abac86b7-f36b-457c-b2f5-0f65981effb3" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdBQV3gnNxOXo1lyo7JYf%2F25-03-2026%2012_03_46.png?alt=media&amp;token=b4025bd0-6006-426d-937c-155c28ba8625" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FykTgz875UzkV02sug3YS%2F25-03-2026%2012_09_58.png?alt=media&amp;token=0b9dbd8f-8d85-40b2-abbd-1c025705400e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FSHAXVj31btpXNPRs9c5y%2F25-03-2026%2012_14_09.png?alt=media&amp;token=b2e72e2f-c87e-4c64-b7c4-c607d50aad8a" alt=""><figcaption></figcaption></figure>

**4.     Using Templates:**

&#x20;       ·  Templates offer ready-made app structures to help you get started quickly without building from scratch.

&#x20;        ·  To use one, simply navigate to the "Templates" section, choose a template that fits your use case, and customize it as needed to suit your specific workflow.

&#x20;               **Step 1: -** Choose any template and click on that template.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FsUBG82zX5LwQ1Tk15FeF%2Fimage.png?alt=media&amp;token=e2b9f50e-59dd-40ca-bb9b-aae8355aeaca" alt=""><figcaption></figcaption></figure>

&#x20;             **Step 2: -** Once the template page opens, click the ‘Use Template’ button in the top-right corner, save the template, and then utilize the toolbar at the bottom-right corner to zoom, align, undo/redo actions etc.….

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fs37i6GtqlLrukbzBSr7G%2F25-03-2026%2013_18_02.png?alt=media&amp;token=0e53fea9-f177-4dd7-acc1-41e6065b69c5" alt=""><figcaption></figcaption></figure>

**5.   Creating Your First GenAI App: -**

&#x20;           The AI Workspace provides an intuitive visual interface to help you design and deploy GenAI applications efficiently.

Follow the steps below to create your first application:

&#x20;        **Step 1:-** Initiate a New App

&#x20;        Click on the “Create workflow” button to start building a new AI-powered workflow.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F5Nv74gpO2aCpORPZPmUu%2Fimage.png?alt=media&amp;token=04cfa5c3-50a4-410b-adee-566a24888b04" alt=""><figcaption></figcaption></figure>

&#x20;        **Step 2:-** Name and Categorize Your App\
&#x20;         Provide a clear name and choose an appropriate category to help organize and identify your app within the workspace.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FOkZfVDthIwex7iWblf5b%2Fimage.png?alt=media&amp;token=23930098-5471-42fa-97f6-2c79f133321a" alt="" width="545"><figcaption></figcaption></figure>

**Step 3:-** Add Nodes from the Toolbox\
&#x20;          Use the toolbox on the left panel to drag and drop functional components (nodes) into the canvas.

**Key categories include:**

&#x20;     ·  Chat Models – Integrate AI conversation capabilities.

&#x20;     ·   Logic Nodes – Implement decision-making or conditional flows.

&#x20;     ·   Memory, Embeddings, Prompts, Tools, and more – Extend your app's capabilities with modular building blocks.&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F8fBejTtnF8hTm2xRlu5a%2F25-03-2026%2012_27_15.png?alt=media&amp;token=d9d14987-7ab1-4b84-8fbf-29b5553355fe" alt=""><figcaption></figcaption></figure>

&#x20;**Step 4:-** Design the Workflow\
&#x20;     Connect the nodes visually to define the logic and data flow of your application. Simply click and drag from one node to another to establish connections.

**Ex 1: - Agentic AI: -**

&#x20;                   An agentic AI is an intelligent system that can reason, make decisions, and perform tasks using tools or APIs based on user input.

**1.     Select the modules.**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F2sHwj2uYkG4pD3klx8xX%2F25-03-2026%2012_24_05.png?alt=media&amp;token=dc568d41-4fb1-4319-9496-846b043ac2b7" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FYgP0hBQ5W3dai0bucf9r%2Fimage.png?alt=media&amp;token=4ea7cf17-02ca-4e97-9dc8-ae20e32aafda" alt=""><figcaption></figcaption></figure>

**Step 5: -** Use Workflow Controls\
&#x20;               Utilize the toolbar at the bottom-right corner to zoom, pan, align, undo/redo actions, and manage the layout of your workflow effectively.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FA9VFaDRukmSgLJIjesWk%2F25-03-2026%2012_30_13.png?alt=media&amp;token=41b1cba0-e32b-4858-840e-1e151e6cafa3" alt=""><figcaption></figcaption></figure>

**Step 6: -** Save Your Progress\
&#x20;              Once your workflow is structured, click “Save” to store your GenAI app. You can later return to edit, deploy, or integrate it with other systems.

**Step 7:-** Managing AI Nodes

&#x20;          In THub, AI Nodes are the building blocks you use to create your GenAI applications. Each node represents a specific function or step in your AI workflow — like getting a user’s input, performing a calculation, calling an API, or generating a response via an LLM (Large Language Model).

&#x20; **Note:**

&#x20;       ·  Nodes = Components or pieces of logic

&#x20;       ·  Managing AI Nodes = Connecting, configuring, and controlling those pieces to build your GenAI app.

&#x20;**What You Can Do While Managing Nodes:**

&#x20;       1\.   Add Nodes: Drag and drop a node into your canvas.

&#x20;       2\.   Configure Nodes: Click a node to set prompts, conditions, input/output formats, etc.

&#x20;       3\.   Connect Nodes: Link one node to another to define flow.

&#x20;       4\.   Test Node Output: Preview how each node behaves during execution.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fz6s8YtDxAhjGdPaWjrxb%2FScreenshot%202026-03-25%20124109.png?alt=media&amp;token=660e326f-60f7-4394-8585-832aed6ac89a" alt=""><figcaption></figcaption></figure>

&#x20;**Step 8: -** Canvas Menu Options in THub

&#x20;                The canvas menu in THub provides a set of advanced options that allow users to manage and configure workflows efficiently. These options are accessible from the top-right corner of the workflow editor interface.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FZe8ghj4rUBp0AQrhvx5Q%2F25-03-2026%2012_45_14.png?alt=media&amp;token=4d1247b1-189a-4275-b03d-55aac191ae1d" alt=""><figcaption></figcaption></figure>

&#x20;**Menu Actions:**

&#x20;    **1)  API Endpoint:-**\
Allows you to view or copy the API endpoint associated with the current workflow. This endpoint can be used to trigger the workflow externally.

• Clicking the API Endpoint button will open the 'Embed in website or use as API' page.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FinAXzODXXBUcRoWDUeSS%2Fimage.png?alt=media&amp;token=c83183aa-8df2-40b0-be2d-c8fef1547f3b" alt="" width="563"><figcaption></figcaption></figure>

&#x20; **A.  Embed: -**&#x20;

&#x20;            The Embed or API feature in THub enables you to integrate your AI workflows directly into external applications or websites using simple embed scripts or REST API calls. This section provides multiple ways to connect your chatbot (or workflow) to your preferred platform.

**Ø  Embed Options:**

Within the Embed tab, you can choose how your chatbot should be displayed in your application:

&#x20;          ·  Popup HTML – This script embeds the chatbot as a popup widget on any webpage. You can copy and paste the \<script> tag inside the \<body> tag of your HTML file.

&#x20;           ·  Popup React – For React.js applications, this option provides a modular embed that allows pop-up style integration using React components.

&#x20;           ·  Full-page React – If you prefer a full-page chatbot layout, this option provides a React-based component that renders the chatbot as a complete page instead of a widget.

&#x20;

**Ø  Authorization Dropdown:**

&#x20;         · No Authorization – Default option, allowing open access to the embed.

&#x20;        ·  You may select other authorization methods (if configured) to restrict or secure access to the workflow.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FBNJAtdLBfRtQ0TiwQYnD%2Fimage.png?alt=media&amp;token=4feaf02e-9fcd-42da-98a5-5ac4d87add32" alt="" width="563"><figcaption></figcaption></figure>

&#x20;   **B.  Python / JavaScript / Curl: -**

&#x20;           Offers ready-to-use code samples to invoke the chatbot programmatically through APIs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FBfYwzzQXMhRxipKPV78f%2Fimage.png?alt=media&amp;token=8fb10e9d-0968-4d27-835a-d5a95844cd34" alt="" width="563"><figcaption></figcaption></figure>

**C. Share Chatbot: -**

&#x20;             Generate a public URL to share the chatbot directly with others.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FHLZnYQmLbGmOOO0mPk8q%2Fimage.png?alt=media&amp;token=352626bb-ba60-4277-95b8-2863ee027f82" alt="" width="563"><figcaption></figcaption></figure>

&#x20;**2)   Configuration: -**\
&#x20;           Opens the configuration panel where you can set properties or parameters relevant to the current workflow setup.

**Ø  Rate limiting: -**

&#x20;        Rate limiting is used to control the frequency of user messages by defining a maximum number of messages that can be sent in a given timeframe. This can protect system resources and ensure fair usage.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F0im8HUqFBF8X5a4nOrsl%2Fimage.png?alt=media&amp;token=195aabe7-da84-4b24-9a21-ba377b02712a" alt="" width="563"><figcaption></figcaption></figure>

**Ø  Starter Prompts: -**

&#x20;                 Starter prompts are predefined messages or suggestions that appear when the chatbot is initiated. These prompts guide users on how to begin the conversation and improve user engagement from the start.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FTTBnDWiSGsTRf4PBflzC%2Fimage.png?alt=media&amp;token=b4ea8b32-76e6-4240-8092-cce1f1f181e8" alt="" width="563"><figcaption></figcaption></figure>

**Ø   Follow-Up Prompts: -**\
&#x20;                 Follow-up prompts are automatic response suggestions that appear after the user's input. They help maintain the conversational flow by guiding users toward the next logical step in the interaction.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fz5F0ETuotY7IVFuxa9XV%2Fimage.png?alt=media&amp;token=3db5c87e-037d-4e06-bccf-2bc667ea8fce" alt="" width="563"><figcaption></figcaption></figure>

**Ø  Speech to Text: -**\
&#x20;                The speech-to-text feature allows users to speak instead of typing their messages. The spoken input is converted into text, enhancing accessibility and ease of use for users across devices.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FNK3VhuHNlowtHB1mRaf6%2Fimage.png?alt=media&amp;token=390cbe62-eb87-4b66-bac0-2ceb22e97fb5" alt="" width="563"><figcaption></figcaption></figure>

&#x20;**Ø Schedule Settings:-**\
&#x20;                    Schedule settings allow you to configure specific days and time ranges during which the chatbot is active. This ensures that the bot only responds to users during defined hours, such as business or support hours.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAJFq7zx6qUiagedJomNC%2Fimage.png?alt=media&amp;token=1bdbd48b-3ca8-4e4b-9f2c-f195b91ccc3d" alt="" width="563"><figcaption></figcaption></figure>

**Ø  Chat Feedback :-**\
&#x20;              Chat feedback enables the collection of user ratings and comments after a chat session. This data helps evaluate chatbot performance and gather insights for improving user satisfaction.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fwb5VQjuBTBOtP2b4eh4Y%2Fimage.png?alt=media&amp;token=c5023027-90f7-4148-8590-4275f85b4b86" alt="" width="563"><figcaption></figcaption></figure>

**Ø  Allowed Domains:-** \
&#x20;              The allowed domains setting restricts where the chatbot can be embedded by specifying approved domain names. This ensures the bot only runs on authorized websites, enhancing security.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FbjJuWNH3tIo77rzx2wcE%2Fimage.png?alt=media&amp;token=74c1f094-528f-4eb1-a557-2d721e3f1791" alt="" width="563"><figcaption></figcaption></figure>

**Ø Analyze Workflow:-**\
&#x20;                 Analyze workflow provides data and insights on how users interact with the chatbot. It helps identify drop-off points, frequently used paths, and areas that may need optimization.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxgAitQCdfypV1lCjAMGy%2Fimage.png?alt=media&amp;token=37c19151-32d2-425a-b4f7-d9c5c63cc4a4" alt="" width="563"><figcaption></figcaption></figure>

**Ø Leads:-**\
&#x20;            The leads section captures and stores user information (e.g., name, email, phone number) submitted during the conversation. This data can be used for follow-ups, CRM integrations, or marketing purposes.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F1ib1nTkoAxAyCAXv0iKb%2Fimage.png?alt=media&amp;token=52e1a1c3-02ae-49c0-95a1-24b535fc508a" alt="" width="562"><figcaption></figcaption></figure>

**Ø  File Upload:-**

&#x20;                The File Upload feature allows users to share documents, images, or other supported file types directly within the chat interface. This enables the chatbot to receive and process additional input for tasks such as identity verification, document submission, or support-related file sharing. The uploaded files can be accessed and reviewed for further workflow automation or human intervention.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FABe9x4c5dYxA9g6pkPZt%2Fimage.png?alt=media&amp;token=6b7b8e71-0441-47b9-b576-09df5e3d8829" alt="" width="563"><figcaption></figcaption></figure>

3. **Upsert History:-**   \
   &#x20;         Displays a record of changes made to the workflow, including updates to tools, nodes, or variable values.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRC4VpGyulFO0nbza5hJt%2Fimage.png?alt=media&amp;token=e2567660-5323-4c58-bca6-2699b9a6cd57" alt="" width="563"><figcaption></figcaption></figure>

4. **View Messages:-**   \
   &#x20;             Lets you access the interaction logs or user messages handled during workflow executions, useful for debugging or audit purposes.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F7PVWTDvalJ6nDcWeccwV%2Fimage.png?alt=media&amp;token=1fdb316b-8d92-47ad-8273-2bcec5f64a3b" alt="" width="563"><figcaption></figcaption></figure>

5. **View Leads:-**   \
   &#x20;          Enables you to track leads or user interactions captured during the execution of this particular workflow.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FrJvil5rUSbnon6BQV8O7%2Fimage.png?alt=media&amp;token=6a0257db-4b17-49ed-b5a1-786885ec302d" alt="" width="563"><figcaption></figcaption></figure>

6. &#x20;   **Save As Template:-**\
   &#x20;           Saves the current workflow as a reusable template so it can be cloned or shared across different projects.
7. &#x20;**Load Workflow:-** \
   &#x20;            Opens an existing saved workflow from your workspace to continue editing or testing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FDFJsXMkgJRRET7vi9Z5v%2Fimage.png?alt=media&amp;token=83803791-8b2e-4d33-8188-73c0b354cdca" alt="" width="563"><figcaption></figcaption></figure>

8. Duplicate Workflow:-\
   &#x20;         Creates a copy of the current workflow with a new ID. Useful for versioning or branching workflows.
9. &#x20;Export Workflow:-\
   &#x20;         Allows you to export the entire workflow as a file (usually JSON), enabling backup or migration to another environment.
10. &#x20;Delete Workflow:-\
    &#x20;          Permanently deletes the current workflow from your workspace. This action is irreversible and should be used with caution.

&#x20;

**Step 9: Managing Your Workflows.**

&#x20;             The AI Workspace provides intuitive tools to help you efficiently organize and maintain your GenAI applications:

* Duplicate or Delete Workflows\
  Easily create a copy of an existing workflow for reuse or remove workflows that are no longer needed.
* Sort by Name or Category\
  Quickly locate specific workflows by sorting them alphabetically or by the assigned category.
* Toggle Between Views\
  Choose between card/grid view or list view based on your preferred way of browsing workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F4TMl5LWpgwImOySwVmcf%2F23-03-2026%2011_10_52.png?alt=media&amp;token=e609331e-f1fb-439a-9e40-cbcd705e09f5" alt=""><figcaption></figcaption></figure>

6. **Settings and Profile:-**&#x20;

**Step 1: -** To access your account settings, click on your profile avatar located at the top-right corner of the interface.

**Step 2: -** This menu allows you to update your profile, choose between light and dark themes, and sign out securely from your account.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FDQmbvJZ1A1A1tLGRpUjw%2Fimage.png?alt=media&amp;token=ca736156-2cd0-4f0a-bef5-74390e8e3d91" alt=""><figcaption></figcaption></figure>

7. **Tools: -**

&#x20;           THub allows users to define and register custom tools that can be reused across workflows. Tools are essentially reusable functional components that accept structured inputs and perform a specific task based on their definition.

**a.  Adding a New Tool: -**

&#x20;           To add a new tool, navigate to the Tools section in the THub interface and click on the “Create” button. You’ll be presented with a form that includes the following fields:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FjiOzN5EsZgu5vIDUJ0WI%2Fimage.png?alt=media&amp;token=1ba49deb-5a9f-4d75-b015-d78762d58881" alt=""><figcaption></figcaption></figure>

**b.   Tool Name:-**

&#x20;              Provide a meaningful and unique name for the tool.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FzkPWXijT8ymds0h9D5Vp%2F25-03-2026%2012_53_15.png?alt=media&amp;token=bbc3287b-dff3-417b-9e86-32d06fd40734" alt=""><figcaption></figcaption></figure>

**c.  Tool Description:**

&#x20;                Briefly describe what the tool does. This description helps THub (and ChatGPT) understand the purpose of the tool and when it should be invoked.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFKu4hqkZV7N5M0GgKAy2%2F25-03-2026%2012_55_30.png?alt=media&amp;token=1ec236bb-70f4-4692-b037-bc4dd57a68ec" alt=""><figcaption></figcaption></figure>

**d.  Tool Icon Source (Optional):-**

&#x20;               You may add a visual identifier for the tool by providing a valid image URL (SVG or PNG), such as one from a GitHub repository or a public image CDN.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F3ofe357jz6WkBL03hMVe%2F25-03-2026%2012_56_57.png?alt=media&amp;token=a69561c7-a563-4928-a067-91e76254db96" alt=""><figcaption></figcaption></figure>

**a.  Input Schema:**

&#x20;     Define the expected input parameters for the tool.

&#x20;     Manually add each property by clicking “Add Item”, specifying:

&#x20;              Ø  Property (name),

&#x20;              Ø  Type (string, number, Boolean, etc.),

&#x20;              Ø  Description,

&#x20;              Ø  and whether it's Required.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAyUvP57i13CfV7ikzoHq%2F25-03-2026%2013_01_22.png?alt=media&amp;token=7eabba0b-50d1-4a4f-b1ea-f6d7d33fe71a" alt=""><figcaption></figcaption></figure>

f. Or click “Paste JSON” to import the full schema in JSON format for quicker setup.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FgAM986WiVvfWptiP4aB1%2Fimage.png?alt=media&amp;token=60befd09-2bee-4adb-b5ba-a46c58e21088" alt=""><figcaption></figcaption></figure>

• Once all fields are completed, click “SAVE” to register the tool. The new tool will now be available to integrate into any node that supports tool execution within workflows.             &#x20;

**9.   Variables: -**

&#x20;              Variables in THub are used to store dynamic or static values that can be referenced and reused across different nodes within a workflow. This feature enhances modularity and simplifies configuration management by centralizing value definitions.

&#x20;  • **Adding a Variable**

&#x20;        To create a new variable, go to the Variables section and click on “Add Variable.” A dialog will appear prompting you to enter the following details:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRXlPu31pKnyPf493yuGr%2Fimage.png?alt=media&amp;token=d3d38db3-15bb-4469-9952-39d5f6781912" alt=""><figcaption></figcaption></figure>

&#x20;• **Variable Name:-**\
&#x20;           Specify a name that uniquely identifies the variable. This name will be used for referencing the variable in nodes.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FF7ODAz8t6I3mW9MSoEAV%2Fimage.png?alt=media&amp;token=f0a8602d-2855-4382-9c6f-0b2e0ba96aab" alt=""><figcaption></figcaption></figure>

**• Value (for static type only):-**\
&#x20;           Provide the actual value to be stored.

• Once the variable is configured, click “Add” to save it. It will now be accessible for use inside supported nodes within your workflow logic.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FqUIK8mft0r7PjSu2y61N%2Fimage.png?alt=media&amp;token=00d70a3f-1415-4b4d-b799-a6c22579a7af" alt=""><figcaption></figcaption></figure>


# 🔗 LangChain

LangChain is an open-source framework designed to simplify the process of building applications powered by Large Language Models (LLMs). Here's a breakdown of what LangChain offers:

🛠️ **Core Functionality:** Streamlined Development: LangChain provides a set of building blocks and tools that make it easier to develop applications that leverage LLMs. This includes pre-built components, integrations with external data sources, and tools for managing the application lifecycle. Improved LLM Interaction: LangChain allows developers to refine prompts and customize how LLMs are used within their applications. This can lead to more accurate, relevant, and informative responses from the LLM.

🏆 **Benefits:** Faster Development: By using LangChain's pre-built components and development tools, programmers can save time and effort compared to building LLM applications from scratch. Enhanced LLM Applications: LangChain helps developers create more robust and effective LLM applications by providing tools for data access, prompt engineering, and application monitoring. Reduced Reliance on LLM Expertise: LangChain can make it easier for developers who are not LLM experts to build applications that leverage this powerful technology.

Here's an analogy to understand LangChain better: Imagine building a house. You could gather all the raw materials (wood, bricks, etc.) and build everything yourself. This would be a very time-consuming and complex process. LangChain is like a prefabricated house kit. It provides pre-built walls, doors, and other components that you can assemble to create a house much faster and easier.

🧩 **Some key components of LangChain include:** LangChain Core: This provides the foundation for building LLM applications, including abstractions for data access and prompt engineering. LangChain Community: This offers integrations with various third-party services and tools that can be used with LangChain applications. LangChain Chains: These are the core building blocks of LangChain applications. They represent the sequence of steps that the LLM will follow to process information and generate a response. LangServe: This allows you to deploy LangChain applications as APIs, making them accessible to other applications and services. LangSmith: This is a developer platform that provides tools for debugging, testing, evaluating, and monitoring LangChain applications

LangChain provides standard, extendable interfaces and external integrations for the following main components:

💬 **Model I/O** Formatting and managing language model input and output

📝 **Prompts** Formatting for LLM inputs that guide generation

🗨️ **Chat models** Interfaces for language models that use chat messages as inputs and returns chat messages as outputs (as opposed to using plain text).

🧠 **LLMs** Interfaces for language models that use plain text as input and output

🔍 **Retrieval** Interface with application-specific data for e.g. RAG

📁 **Document loaders** Load data from a source as Documents for later processing

✂️ **Text splitters** Transform source documents to better suit your application

🧬 **Embedding models** Create vector representations of a piece of text, allowing for natural language search

🗄️ **Vectorstores** Interfaces for specialized databases that can search over unstructured data with natural language

🔎 **Retrievers** More generic interfaces that return documents given an unstructured query

🧩 **Composition** Higher-level components that combine other arbitrary systems and/or or LangChain primitives together

🛠️ **Tools** Interfaces that allow an LLM to interact with external systems

🤖 **Agents** Constructs that choose which tools to use given high-level directives

⛓️ **Chains** Building block-style compositions of other runnables

📌 **Additional**

💾 **Memory** Persist application state between runs of a chain

📢 **Callbacks** Log and stream intermediate steps of any chain

Overall, LangChain is a valuable tool for developers who want to build powerful and effective applications powered by Large Language Models


# 🕵️ Agents

Autonomous AI components that dynamically select and use tools to solve complex tasks based on user inputs.

#### 1)Conversational Agent

Agent used to handle conversations using chat models.

**Setup**&#x20;

* Agents > drag **Conversational Agent** node
* Configure the required parameters in the agent node
* Select the **Chat Model**
* Connect **Allowed Tools** if tool usage is required
* Connect **Memory** if conversation history needs to be stored
* Connect **Input Moderation** for filtering user inputs

You can now use the **Conversational Agent node in THub**.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FUj8tMO74vy6pujorIFaI%2FScreenshot%202024-07-04%20112329.png?alt=media&amp;token=3c5441ce-8a65-4424-b1b7-332ef654884a" alt=""><figcaption></figcaption></figure>

• Allowed Tools can be connected with any node under **Tools category**\
• Chat Model can be connected with any node under **Chat model category**\
• Memory can be connected with any node under **Memory category**\
• Input Moderation can be connected with any node under **Moderation category**

The Conversational Agent enables natural language interaction between users and AI systems. It processes user queries, maintains conversation context, and generates meaningful responses using connected chat models.

#### Features

• Natural language conversation handling\
• Context-aware responses\
• Integration with external tools\
• Support for conversational workflows

#### 2)OpenAI Assistant

Agent used to interact with OpenAI assistants for automated task execution.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FwlqqxCjqeqrABXVsT2aZ%2FScreenshot%202024-07-04%20113610.png?alt=media&amp;token=bc6ed2ed-cd28-4ce7-8e56-7b388730bf0d" alt=""><figcaption></figcaption></figure>

• Allowed Tools can be connected with any node under **Tools category**\
• Input Moderation can be connected with any node under **Moderation category**

The OpenAI Assistant enables users to integrate OpenAI-powered assistants into workflows. It helps automate tasks, generate responses, and perform intelligent operations using advanced language models.

#### **Features**

• AI-powered task automation\
• Natural language understanding\
• Seamless assistant integration\
• Efficient response generation

#### 3)React Agent for Chat Models

Agent that uses the React logic to decide what action to take, optimized to be used with Chat Models.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFNzrQNGFrwlT6WTVMTbK%2FScreenshot%202024-07-04%20114319.png?alt=media&amp;token=ce1a5bf4-04fa-4e47-bf9f-775d2887c2d1" alt=""><figcaption></figcaption></figure>

• Allowed Tools can be connected with any node under **Tools category**\
• Chat Model can be connected with any node under **Chat model category**\
• Memory can be connected with any node under **Memory category**\
• Input Moderation can be connected with any node under **Moderation category**

React Agent Chat focuses on interactive and reactive conversations, providing dynamic responses based on user inputs.

#### Features

• Reasoning and action-based execution\
• Tool integration for complex tasks\
• Context handling with memory\
• Improved problem-solving capability

#### 4)React Agent LLM

Agent that uses the React logic to decide what action to take, optimized to be used with LLMs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Ftds7Gq10hgd3iI3KeI2I%2FScreenshot%202024-07-04%20114432.png?alt=media&amp;token=2c72916a-3b9c-4015-b003-a235a40187f5" alt=""><figcaption></figcaption></figure>

• Allowed Tools can be connected with any node under **Tools category**\
• Language Model can be connected with any node under **Language model category**\
• Input Moderation can be connected with any node under **Moderation category**

React Agent LLM leverages large language models for complex and context-aware interactions.

#### Features

• Reasoning and action-based task execution\
• Integration with language models\
• Tool-enabled problem solving\
• Improved workflow automation

#### 5)Tool Agent

Agent that uses Function Calling to pick the tools and args to call.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FksPxIEg2DovF4YvcRX1g%2FScreenshot%202026-03-12%20174224.png?alt=media&amp;token=0dea7eca-aa3c-4ff1-9b42-4f3897a6a1f0" alt=""><figcaption></figcaption></figure>

&#x20;

• Tools can be connected with any node under **Tools category**\
• Memory can be connected with any node under **Memory category**\
• Tool Calling Chat Model can be connected with any node under **Chat model category**\
• Input Moderation can be connected with any node under **Moderation category**

The Tool Agent integrates and automates various tools and services to streamline workflows and enhance productivity.

#### Features

• Tool calling capability\
• Integration with external systems\
• Customizable prompt templates\
• Enhanced task automation


# 🗄️Cache

Caching can save you money by reducing the number of API calls you make to the LLM provider, if you're often requesting the same completion multiple times.

#### 1)InMemory Cache

Caches LLM response in local memory, will be cleared when app is restarted.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FeAHuusHTYPxPHoLxUTGZ%2FScreenshot%202026-03-13%20112431.png?alt=media&amp;token=4057d998-1fd2-434b-be01-44f1a5e5c37e" alt=""><figcaption></figcaption></figure>

The InMemory Cache is designed to store responses from Large Language Models (LLMs) in the local memory of an application. This cache improves performance by reducing the need to repeatedly request the same data. However, the cached data is temporary and will be cleared when the application is restarted.

#### **Features**

• Local Memory Storage: Stores cached data in the local memory of the application.

• Performance Boost: Reduces latency by retrieving data from memory instead of making repeated requests to the LLM.

• Automatic Clearing: The cache is automatically cleared upon application restart, ensuring that it does not persist beyond the session.

#### 2)InMemory Embedding Cache

Cache generated Embeddings in memory to avoid needing to recompute them.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F9kBiXFiS3cUh7CnycqI0%2FScreenshot%202026-03-13%20112539.png?alt=media&amp;token=dce290cf-7d4b-4e07-b1e3-bc896b2684c8" alt=""><figcaption></figcaption></figure>

The InMemory Embedding Cache is designed to store generated embeddings in local memory. This cache eliminates the need to recompute embeddings for the same data, thereby enhancing performance and efficiency in applications that require frequent embedding computations.

#### **Features**

• Local Memory Storage: Stores embeddings in the local memory of the application.

• Performance Enhancement: Reduces computation time by retrieving precomputed embeddings from memory.

• Automatic Clearing: Cached embeddings are cleared when the application is restarted, ensuring that memory usage is managed effectively.

#### 3)Redis Cache

Cache LLM response in Redis, useful for sharing cache across multiple processes or servers.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FubrvUbAXTdHudGQoUKu8%2Fimage.png?alt=media&amp;token=461186c8-7200-43e5-812b-e64b3245927b" alt=""><figcaption></figcaption></figure>

Redis Cache is an in-memory data structure store used for caching LLM (Large Language Model) responses. It is highly efficient for sharing cache across multiple processes or servers, providing quick access to frequently used data and improving application performance.

#### **Features**

• Embedding Storage: Stores embedding vectors in Redis for quick access.

• Fast Retrieval: Enables fast lookup of embeddings during similarity search or retrieval tasks.

• Cost Optimization: Avoids repeated embedding generation, reducing compute and API usage.

• Scalable Architecture: Works across distributed systems and multiple application instances.

• Efficient Vector Reuse: Improves performance in applications using retrieval-augmented generation (RAG) or semantic search.

#### **4)Redis Embeddings Cache**

Cache LLM response in Redis, useful for sharing cache across multiple processes or servers.&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FVuyBIua0igQ6dAnlOiBJ%2Fimage.png?alt=media&amp;token=fe693277-b6f6-4bda-8763-3f6931823d32" alt=""><figcaption></figcaption></figure>

Redis Embeddings Cache is used to store embedding vectors in Redis for faster retrieval and reuse. It helps reduce repeated embedding computations by caching previously generated embeddings. This improves performance and reduces API costs when working with vector searches or similarity-based retrieval systems.

#### Features

• Embedding Storage: Stores embedding vectors in Redis for quick access.

• Fast Retrieval: Enables fast lookup of embeddings during similarity search or retrieval tasks.

• Cost Optimization: Avoids repeated embedding generation, reducing compute and API usage.

• Scalable Architecture: Works across distributed systems and multiple application instances.

• Efficient Vector Reuse: Improves performance in applications using retrieval-augmented generation (RAG) or semantic search.


# ⛓️Chains

In the context of chatbots and large language models, "chains" typically refer to sequences of text or conversation turns. These chains are used to store and manage the conversation history.

Here's how chains work:

**Conversation History:** When a user interacts with a chatbot or language model, the conversation is often represented as a series of text messages or conversation turns. Each message from the user and the model is stored in chronological order to maintain the context of the conversation.

**Input and Output:** Each chain consists of both user input and model output. The user's input is usually referred to as the "input chain," while the model's responses are stored in the "output chain." This allows the model to refer back to previous messages in the conversation.

**Contextual Understanding:** By preserving the entire conversation history in these chains, the model can understand the context and refer to earlier messages to provide coherent and contextually relevant responses. This is crucial for maintaining a natural and meaningful conversation with users.

**Maximum Length:** Chains have a maximum length to manage memory usage and computational resources. When a chain becomes too long, older messages may be removed or truncated to make room for new messages. This can potentially lead to loss of context if important conversation details are removed.

**Continuation of Conversation:** In a real-time chatbot or language model interaction, the input chain is continually updated with the user's new messages, and the output chain is updated with the model's responses. This allows the model to keep track of the ongoing conversation and respond appropriately.

Chains are a fundamental concept in building and maintaining chatbot and language model conversations. They ensure that the model has access to the context it needs to generate meaningful and context-aware responses, making the interaction more engaging and useful for users.

#### 1)Conversation Chain

&#x20;  Chat models specific conversational chain with memory.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxDlKq1dkxzZejnTF7Q2H%2FScreenshot%202024-07-04%20142918.png?alt=media&amp;token=5548574b-57b6-492d-b898-0b4b870f9bae" alt=""><figcaption></figcaption></figure>

• Chat Prompt Template can be connected with any node under Prompt category

• AnyChat model can be connected  under Chat  model category

• memory can be connected with any node under  memory category

• Input Moderation can be connected with any node under Moderation category

A Conversation Chain with Memory is a specialized sequence of operations designed to facilitate conversational interactions using chat models. Unlike traditional chatbot architectures, this chain incorporates a memory component to retain context and history, enabling more engaging and coherent conversations over time.

#### **Features**

· Conversational Flow: Manages the flow of conversation between the user and the chat model.

· Memory Management: Maintains a memory store to retain context, history, and user preferences.

· Response Generation: Utilizes chat models to generate responses based on user inputs and context.

· Contextual Understanding: Enhances conversation quality by considering the context of previous interactions.

· Error Handling: Manages errors and exceptions during conversation processing.

#### 2)Conversational Retrieval QA Chain

A chain for performing question-answering tasks with a retrieval component &#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FG9IGpkeGNO02ob9bZtdI%2FScreenshot%202024-07-04%20142714.png?alt=media&amp;token=743aa81d-d599-4db3-bb12-2f627bc305f3" alt=""><figcaption></figcaption></figure>

• Vectore store Retriever can be connected with any node under Retriever category

• AnyChat model can be connected  under Chat  model category

• memory can be connected with any node under  memory category

• Input Moderation can be connected with any node under Moderation category

&#x20;

The Conversational Retrieval QA Chain is a specialized sequence of operations designed for performing question-answering tasks with a retrieval component. This chain combines the capabilities of a question-answering model with a retrieval mechanism to provide accurate and relevant responses to user queries in conversational settings.

#### Features

· Question Answering Model: Utilizes a question-answering model to generate responses to user queries.

· Retrieval Component: Incorporates a retrieval mechanism to retrieve relevant information from a knowledge base or corpus.

· Contextual Understanding: Enhances response generation by considering the context of the conversation and previous interactions.

· Error Handling: Manages errors and exceptions during question-answering and retrieval processes.

· Feedback Loop: Optionally includes a feedback loop to improve response accuracy over time based on user feedback.

#### 3) Graph Cypher QA Chain

A chain used for answering questions by querying a Neo4j graph database using Cypher queries.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FJUSmRXjx9HvFuXOmed9O%2FScreenshot%202026-03-13%20114745.png?alt=media&amp;token=cc82bbd9-c39d-44e0-8bc2-c498b0a8465c" alt=""><figcaption></figcaption></figure>

• Language Model can be connected with any node under Language model category

• Neo4j Graph can be connected with any node under Graph category

• Cypher Generation Prompt can be connected with any node under Prompts category

• Cypher Generation Model can be connected with any node under Language model category

• QA Prompt can be connected with any node under Prompts category

• QA Model can be connected with any node under Language model category

• Input Moderation can be connected with any node under Moderation category

The Graph Cypher QA Chain enables users to query graph databases using natural language. It converts user questions into Cypher queries, executes them on a Neo4j graph database, and then processes the results to generate meaningful answers. This chain is particularly useful for applications that rely on graph-based knowledge structures and relationship-driven data.

#### Features

· Natural Language Querying: Allows users to ask questions in natural language which are converted into Cypher queries.

· Graph Database Integration: Connects directly with Neo4j graph databases to retrieve structured relationship data.

· Cypher Query Generation: Automatically generates Cypher queries using language models.

· Contextual Answer Generation: Uses retrieved graph data to generate accurate and meaningful answers.

· Flexible Prompt Customization: Supports custom prompts for both Cypher query generation and question-answering tasks.

**4)LLM Chain**

&#x20;Chain to run queries against LLMs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpqB6kHFZrotPoA9oi3BR%2FScreenshot%202024-07-04%20142930.png?alt=media&amp;token=b50a4bc0-ef7a-47e9-b672-19b115633e00" alt=""><figcaption></figcaption></figure>

&#x20;                          &#x20;

• Tool can be connected with any node under Tools model category

• Any Prompt node  can be connected  under Prompt   category

• Any Output Parser can be connected with  node under  Output Parser category

• Input Moderation can be connected with any node under Moderation category

&#x20;

The LLM Chain is a specialized sequence of operations designed to run queries against Large Language Models (LLMs). This chain enables users to interact with LLMs to generate responses, perform tasks, or retrieve information by providing queries in natural language.

#### **Features**

· Query Execution: Executes queries against LLMs to generate responses or perform tasks.

· Natural Language Understanding: Interprets user queries in natural language format.

· Response Generation: Utilizes LLMs to generate contextually relevant responses based on user queries.

· Contextual Understanding: Considers the context of previous interactions to provide more relevant and coherent responses.

· Error Handling: Manages errors and exceptions during query execution to ensure smooth interactions.

#### 5)Multi Prompt Chain

Chain automatically picks an appropriate prompt from multiple prompt templates.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FkYbK037AJ68i0zNUPPL5%2FScreenshot%202024-07-04%20142941.png?alt=media&amp;token=ac03048b-d74c-449a-a502-6f505d7fb2fa" alt=""><figcaption></figcaption></figure>

• Vector store Retriever  can be connected with any node under Retriever category

• AnyChat model can be connected  under Chat  model category

• Input Moderation can be connected with any node under Embeddings category

&#x20;\
The Multi-Prompt Chain is a specialized sequence of operations designed to automatically select an appropriate prompt from multiple prompt templates. This chain facilitates the generation of diverse outputs by leveraging different prompt variations tailored to specific tasks or scenarios.

#### **Features**

· Prompt Selection: Automatically selects an appropriate prompt from a collection of prompt templates based on the task or scenario.

·  Diverse Output: Generates diverse outputs by using different prompt variations to elicit varied responses from language models.

· Task-specific Prompts: Tailors prompt templates to specific tasks or scenarios to improve response relevance and quality.

· Contextual Understanding: Considers the context of the conversation or task to select the most relevant prompt.

· Error Handling: Manages errors and exceptions during prompt selection to ensure smooth operation.

#### 6)Multi Retrieval QA Chain&#x20;

QA Chain that automatically picks an appropriate vector store from multiple retrievers.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FPtYmmAlZb2hnjq0Htmws%2FScreenshot%202024-07-04%20142951.png?alt=media&amp;token=57d399f1-ade7-443d-89c2-07c802bbc880" alt=""><figcaption></figcaption></figure>

&#x20;                                   &#x20;

• Vector store Retriever  can be connected with any node under Retriever category

• AnyChat model can be connected  under Chat  model category

• Input Moderation can be connected with any node under Embeddings category

&#x20;

The Multi Retrieval QA Chain is a specialized sequence of operations designed to perform question-answering tasks by automatically selecting an appropriate vector store from multiple retrievers. This chain combines the capabilities of retrieval-based question-answering systems with the flexibility of choosing from different vector stores to retrieve relevant information for answering user queries.

#### **Features**

· Vector Store Selection: Automatically selects an appropriate vector store from a collection of retrievers based on the query and context.

· Question Answering: Utilizes the selected vector store to retrieve relevant information for generating responses to user queries.

· Contextual Understanding: Considers the context of the conversation or query to select the most relevant vector store.

· Error Handling: Manages errors and exceptions during retrieval to ensure accurate and reliable question-answering.

#### 7)Retrieval QA Chain

QA chain to answer a question based on the retrieved documents.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FiHP24uzynVmGqBAchC31%2FScreenshot%202024-07-04%20143009.png?alt=media&amp;token=09fc7d56-0de9-4ba9-a385-c6d2e5b51a47" alt=""><figcaption></figcaption></figure>

&#x20;                                      &#x20;

• Vector store Retriever  can be connected with any node under Retriever category

• AnyChat model can be connected  under Chat  model category

• Input Moderation can be connected with any node under Embeddings category

&#x20;

The Retrieval QA Chain is a specialized sequence of operations designed to answer a question based on the retrieved documents from a knowledge base or corpus. This chain combines retrieval-based techniques with question-answering models to accurately answer user queries by first retrieving relevant documents and then extracting answers from them.

#### **Features**

· Document Retrieval: Retrieves relevant documents from a knowledge base or corpus based on the user query.

· Question Answering: Utilizes question-answering models to extract answers from the retrieved documents.

· Contextual Understanding: Considers the context of the user query and retrieved documents to generate accurate answers.

· Error Handling: Manages errors and exceptions during retrieval and question-answering processes to ensure reliable performance.


# 🗨️Chat Models

Chat models take a list of messages as input and return a model-generated message as output.

#### 1) Azure ChatOpenAI

**Prerequisite**

1\.     [Log in](https://portal.azure.com/) or [sign up](https://azure.microsoft.com/en-us/free/) to Azure

2\.     [Create](https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI) your Azure OpenAI and wait for approval approximately 10 business days

3\.     Your API key will be available at **Azure OpenAI** > click **name\_azure\_openai** > click **Click here to manage keys**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCwYCHJR4W7mLBh4oDrah%2Fimage.png?alt=media&amp;token=2bab4d1e-78a4-4fa5-9e77-925f89e3b239" alt=""><figcaption></figcaption></figure>

Setup

1\.     Click **Go to Azure OpenaAI Studio** &#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FDeKZqMgtBAbR3RRJ0bCJ%2Fimage.png?alt=media&amp;token=db312f85-f49d-4c91-b2be-fdaad9a2577b" alt=""><figcaption></figcaption></figure>

2\.     Click **Deployments**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FeoVETDXHz43J1J4OvLQF%2Fimage.png?alt=media&amp;token=ab5dafa2-b26b-4691-9465-604c9ad16ba8" alt=""><figcaption></figcaption></figure>

**3.**     Click **Create new deployment**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FhgvAOVdLpETCni0K06Nw%2Fimage.png?alt=media&amp;token=9c5cc8f9-0320-4523-81de-4d32272a368b" alt=""><figcaption></figcaption></figure>

4\.     Select as shown below and click **Create**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FuYacDU2oje0u67yvSlzR%2Fimage.png?alt=media&amp;token=5d7531a1-f1ee-4fbc-9a48-6734ee8efe41" alt=""><figcaption></figcaption></figure>

5\.     Successfully created **Azure ChatOpenAI**

·       Deployment name: `gpt-35-turbo`

`·`  Instance name: `top right conner`

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCrMbRCPHjF36K2GhMIEp%2Fimage.png?alt=media&amp;token=74ff8ccc-14da-4a36-8782-5d1e82043041" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FYwaZaUDUlirBrkZTWLYr%2Fimage.png?alt=media&amp;token=700c40e1-cea7-46db-bf56-5a76c3c73284" alt=""><figcaption></figcaption></figure>

&#x20;

1.Chat Models in Thub > drag Azure ChatOpenAI node

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FC2Jk6B50oK9rSGU8iv7W%2FScreenshot%202024-07-04%20145503.png?alt=media&amp;token=41cca5eb-29a6-41d4-9012-81496f100efa" alt="" width="183"><figcaption></figcaption></figure>

2\.     Copy & Paste each details (API Key, Instance & Deployment name, [API Version](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)) into Azure ChatOpenAI credential

#### 2)ChatAnthropic

**Prerequisite**

1. [Log in](https://console.anthropic.com/) or [sign up](https://claude.com/) to Anthropic Console&#x20;
2. [Create](https://platform.claude.com/settings/keys) an API key from the Anthropic dashboard
3. Copy the generated API key which will be used to connect the ChatAnthropic model in THub

Setup

1. Login to Anthropic and go to Claude Console and click Get API Key

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fi2P5imToMklC98DTGBou%2FWhatsApp%20Image%202026-03-13%20at%203.44.17%20PM.jpeg?alt=media&amp;token=9bf0a857-d511-4ff5-b515-e4cf1c562e3f" alt=""><figcaption></figcaption></figure>

2. Then click on + Create Key

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Ft6i41DZL4SyXXu0U0Nut%2FWhatsApp%20Image%202026-03-13%20at%203.44.18%20PM.jpeg?alt=media&amp;token=fd4b9b87-257d-438e-b464-c1aefb499164" alt=""><figcaption></figcaption></figure>

3. Then name your API key and ADD

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRVaMjlEV7HoaJ9BM86Wz%2FWhatsApp%20Image%202026-03-13%20at%203.44.18%20PM%20(1).jpeg?alt=media&amp;token=2a9e70fa-8ba1-4e8f-8d7d-285b061418db" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FVAYyYM2xIkFHUziuCab6%2FScreenshot%202024-07-04%20145528.png?alt=media&amp;token=11991652-a377-4508-b79f-20ef054b07dc" alt="" width="173"><figcaption></figcaption></figure>

1. Chat Models in THub > drag ChatAnthropic node
2. Click Connect Credential > click Create New
3. Provide the required Anthropic API Key
4. Select the Model Name (for example: claude-3-haiku, claude-3-sonnet, or claude-3-opus)
5. Configure parameters such as Temperature or other optional settings if required
6. Click Save and the ChatAnthropic model will be ready to use

Successfully created ChatAnthropic

• Model name: claude-3-sonnet (example)

• Instance name: top right corner

#### 3)ChatGoogleGenerativeAI

&#x20; Prerequisite

1\.     Register a [Google](https://accounts.google.com/InteractiveLogin) account

2\.     Create an [API key](https://aistudio.google.com/app/apikey)

Chat Models > drag ChatGoogleGenerativeAI node

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FUY9tj0uwyyVjMZeYwini%2FScreenshot%202024-07-04%20145654.png?alt=media&amp;token=d65a7372-3a63-4921-8387-35a11449f0d1" alt="" width="156"><figcaption></figcaption></figure>

1\)    Connect Credential > click Create New

2\)    Fill in the Google AI credential

3\)    You can now use ChatGoogleGenerativeAI node in Thub

**Safety Attributes Configuration**

·       Click Additonal Parameters

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FiAiSANqa517NkKJfWjgJ%2Fimage.png?alt=media&amp;token=fcce9fda-141a-4f6f-97d7-a26f8b934dc6" alt=""><figcaption></figcaption></figure>

·       When configuring Safety Attributes, the amount of selection in Harm Category & Harm Block Threshold should be the same amount. If not it will throw an error Harm Category & Harm Block Threshold are not the same length

·       The combination of Safety Attributes below will result in Dangerous is set to Low and Above and Harassment is set to Medium and Above

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fzujj93Mv4TNcKtkweVrY%2Fimage.png?alt=media&amp;token=7b50b407-b9a2-4d7d-8009-e24475d56c7e" alt=""><figcaption></figcaption></figure>

#### 4)ChatOpenAI

**Prerequisite**

•  An OpenAI account

•  Create an API key     &#x20;

**Setup**

•  Chat Models > drag ChatOpenAI node

•   Connect Credential > click Create New

•   Fill in the ChatOpenAI credential

•   you can now use ChatOpenAI node in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FvwTZIjAtUexxfc6XQOaX%2FScreenshot%202026-03-13%20160522.png?alt=media&amp;token=bd910af3-364f-4423-8c0b-1889fd062701" alt=""><figcaption></figcaption></figure>

**Custom base URL and headers**

THub supports using custom base URL and headers for Chat OpenAI. Users can easily use      integrations like OpenRouter, TogetherAI and others that support OpenAI API compatibility.

**TogetherAI**

•     Refer to official docs from TogetherAI

•     Create a new credential with TogetherAI API key

•     Click Additional Parameters on ChatOpenAI node.

•     Change the Base Path.

**Open Router**

•     Refer to official docs from OpenRouter

•     Create a new credential with OpenRouter API key

•     Click Additional Parameters on ChatOpenAI node

•     Change the Base Path and Base Options.

&#x20;**Custom Model**

&#x20;For models that are not supported on ChatOpenAI node, you can use ChatOpenAI Custom for that. This allow users to fill in model name such as mistralai/Mixtral-8x7B-Instruct-v0.1

**Image Upload**

•  You can also allow images to be uploaded and analyzed by LLM. Under the hood, Flowise will use OpenAI Vison model to process the image.

•   From the chat interface, you will now see a new image upload button

#### &#x20;5) Chat **DeepSeek**&#x20;

**Prerequisite**

1. [Log in](https://platform.deepseek.com/) or sign up to DeepSeek
2. Create an API key from the DeepSeek dashboard
3. Copy the generated API key which will be used to connect the ChatDeepseek model in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F42PJlwSkrr79L8y6lERq%2FScreenshot%202026-03-13%20160917.png?alt=media&amp;token=37dd3edb-7557-434a-9edc-72ad3265a96e" alt=""><figcaption></figcaption></figure>

1. Chat Models in THub > drag ChatDeepseek node
2. Click Connect Credential > click Create New
3. Select DeepseekAI API and provide the API Key
4. Select the Model Name (for example: deepseek-chat)
5. Configure parameters such as Temperature if required
6. Click Save and the ChatDeepseek model will be ready to use

Successfully created ChatDeepseek

• Model name: deepseek-chat

• Instance name: top right corner

#### **6)GroqChat**

Wrapper around Groq API with LPU Inference Engine.

**Prerequisite**

•            An Groqchat account

•            Create an API key

**Setup**

•             Chat Models > drag GroqChat node

•             Connect Credential > click Create New

•             Fill in the Groqchat credential, Model name and temperature details.

•             you can now use Groqchat node in THub.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FH4RwF6F73p8TI3a0CSji%2Fimage.png?alt=media&amp;token=3d62856d-2e5c-4631-a17f-3a893e274008" alt=""><figcaption></figcaption></figure>

&#x20;Successfully created GroqChat

• Model name: Groq-chat

• Instance name: top right corner


# 📁Document Loaders

Document loaders allow you to load documents from different sources like PDF, TXT, CSV, Notion, Confluence etc. They are often used together with Vector Stores to be upserted as embeddings.

#### 1)API Loader

Loads data from an external API endpoint and converts the response into documents that can be processed by downstream components.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FNT2pg3xsqa5QBlZQY2g3%2FScreenshot%202026-03-16%20104915.png?alt=media&amp;token=5952bdcd-a8f2-4d54-9453-f6e986841c46" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag API Loader node\
• Select the HTTP Method required to call the API (GET, POST)\
• Enter the API URL from which the data needs to be fetched\
• Configure Additional Parameters if needed\
• Execute the loader to retrieve API data

You can now use the API Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The API Loader allows users to fetch data from external APIs and convert the retrieved response into structured documents. These documents can then be used for further processing such as embedding generation, indexing, or retrieval-based question answering. It is useful when working with dynamic data sources such as REST APIs, web services, or internal backend services.

#### Features

· API Data Retrieval: Fetches data directly from external APIs using supported HTTP methods.

· Structured Document Conversion: Converts API responses into documents that can be processed by AI pipelines.

· Flexible Integration: Supports integration with different APIs and backend services.

· Text Processing Support: Works with text splitters to break large API responses into smaller chunks.

· Automation Friendly: Enables automated workflows by continuously fetching and processing API data.

#### 2)Airtable

Loads records from an Airtable base and converts them into documents that can be used in AI workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FlFogs4BcUSMuFms0m3pv%2FScreenshot%202026-03-16%20110055.png?alt=media&amp;token=2879c8f3-8f5d-4fd8-97ff-c73abb8401b8" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Airtable Loader node\
• Connect Credential > click Create New\
• Provide the Airtable API Key\
• Enter the Base ID of the Airtable base\
• Enter the Table ID from which records need to be fetched\
• Optionally provide the View ID to filter records\
• Configure Additional Parameters if required

You can now use the Airtable Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Airtable Loader allows users to retrieve structured data stored in Airtable bases and convert it into documents for further processing. It connects to Airtable using API credentials and fetches records from a specified base, table, and optional view. The retrieved data can then be used in pipelines such as document processing, embedding generation, retrieval systems, or knowledge base creation.

#### Features

· Airtable Integration: Connects directly to Airtable using secure API credentials.

· Structured Data Retrieval: Fetches records from specified bases and tables.

· View Filtering: Supports retrieving records from a specific Airtable view.

· Document Conversion: Converts Airtable records into documents usable in AI pipelines.

· Text Processing Support: Can integrate with text splitters to process large datasets efficiently.

#### 3)Apify Website Content Crawler

Loads and crawls website content using Apify and converts the extracted data into documents that can be used in AI pipelines.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FuAigYbs3faLACUC52b38%2FScreenshot%202026-03-16%20110809.png?alt=media&amp;token=43aa3cc6-f709-4549-b782-10e3538cd79f" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Apify Website Content Crawler node\
• Connect Apify API > click Create New\
• Provide the Apify API Key\
• Enter the Start URLs from where crawling should begin\
• Select the Crawler Type depending on the crawling method\
• Configure Additional Parameters if required

You can now use the Apify Website Content Crawler node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Apify Website Content Crawler allows users to crawl websites and extract structured text content using Apify’s web crawling infrastructure. It starts from the provided URLs and automatically navigates through pages to collect relevant content. The extracted data is converted into documents that can be used for further processing such as embeddings, indexing, or retrieval-based applications.

#### Features

· Website Crawling: Automatically crawls web pages starting from the specified URLs.

· Apify Integration: Connects to the Apify platform using API credentials to run web crawling tasks.

· Multiple Crawler Modes: Supports different crawler types such as headless browser crawling and HTTP-based crawling.

· Content Extraction: Extracts page content and converts it into structured documents.

· Text Processing Support: Works with text splitters to break large website content into smaller chunks for efficient processing.

#### 4) BraveSearch API Document Loader

Loader used to fetch search results from the Brave Search API and convert them into documents that can be processed in AI workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FEg7iBMpV9UfBdJctxkKA%2FScreenshot%202026-03-16%20112051.png?alt=media&amp;token=9b191a62-1200-4e46-8a9b-1b244cf93634" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag BraveSearch API Document Loader node\
• Connect Credential > click Create New\
• Provide the Brave Search API Key\
• Enter the search Query for which results need to be retrieved\
• Configure Additional Parameters if required

You can now use the BraveSearch API Document Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The BraveSearch API Document Loader retrieves search results directly from the Brave Search API based on a user-provided query. The returned results are converted into structured documents that can be used for further processing such as embeddings, indexing, or retrieval-based question answering. This loader is useful when integrating real-time web search data into AI pipelines.

#### Features

· Web Search Integration: Retrieves search results using the Brave Search API.

· Query-Based Retrieval: Allows users to fetch information based on custom search queries.

· Document Conversion: Converts search results into structured documents suitable for AI workflows.

· Real-Time Data Access: Enables AI applications to use up-to-date information from web search results.

· Pipeline Compatibility: Works with text splitters and downstream components for further processing.

#### 5)Cheerio Web Scraper

Loader used to scrape content from web pages using the Cheerio library and convert the extracted data into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFAbxgOfWc3s45fVgLxYz%2FScreenshot%202026-03-16%20112621.png?alt=media&amp;token=03cd092d-da45-41ab-a576-52f867239dfb" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Cheerio Web Scraper node\
• Enter the URL of the website from which content needs to be extracted\
• Use Manage Links if multiple pages or links need to be scraped\
• Configure Additional Parameters if required

You can now use the Cheerio Web Scraper node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Cheerio Web Scraper allows users to extract content from web pages using the Cheerio HTML parsing library. It retrieves the HTML content from the specified URL and parses the page to extract readable text. The extracted content is then converted into documents that can be used in AI pipelines such as embedding generation, indexing, or knowledge base creation.

#### Features

· Web Page Scraping: Extracts content directly from website pages using the provided URL.

· HTML Parsing: Uses the Cheerio library to efficiently parse and process HTML content.

· Multi-Page Support: Allows scraping of multiple links using the Manage Links option.

· Document Conversion: Converts scraped web content into structured documents for AI processing.

· Pipeline Compatibility: Works with text splitters and downstream components in AI workflows.

#### 6) Confluence Loader

Loader used to retrieve content from Confluence spaces and convert the retrieved pages into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIbTDbZaxprRMphohCUkv%2FScreenshot%202026-03-16%20112838.png?alt=media&amp;token=f6e5a198-8276-4623-b771-daada4716bb8" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Confluence node\
• Connect Credential > click Create New\
• Provide the Confluence API credentials\
• Enter the Base URL of the Confluence workspace (for example <https://example.atlassian.net/wiki>)\
• Enter the Space Key from which pages need to be retrieved\
• Set the Limit to define the number of pages to fetch\
• Configure Additional Parameters if required

You can now use the Confluence Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Confluence Loader allows users to retrieve documentation and content stored in Confluence spaces. It connects to the Confluence workspace using API credentials and fetches pages from a specified space. The retrieved pages are converted into structured documents that can be used in AI pipelines such as embeddings, indexing, or retrieval-based question answering systems.

#### Features

· Confluence Integration: Connects directly to Confluence using secure API credentials.

· Space-Based Retrieval: Retrieves pages from a specific Confluence space using the space key.

· Configurable Page Limit: Allows users to define how many pages should be fetched.

· Document Conversion: Converts Confluence pages into structured documents for AI workflows.

· Pipeline Compatibility: Works with text splitters and other downstream AI processing components.

#### 7)CSV File

Loader used to read data from CSV files and convert the content into documents that can be processed in AI workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FYMksZWuGoD2UrmavuEVu%2FScreenshot%202026-03-16%20113305.png?alt=media&amp;token=f799688c-b987-49db-8cbb-7760d3f9239c" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag CSV File node\
• Upload the CSV file using the Upload File option\
• Optionally enter the column name under Single Column Extraction if only a specific column needs to be processed\
• Configure Additional Parameters if required

You can now use the CSV File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The CSV File Loader allows users to import structured data stored in CSV files and convert the contents into documents. Each row or selected column from the CSV file can be processed and transformed into text documents. These documents can then be used in AI pipelines such as embeddings generation, indexing, and retrieval-based question answering.

#### Features

· CSV File Import: Allows users to upload and process CSV files directly.

· Structured Data Processing: Converts tabular data into document format for AI workflows.

· Column-Based Extraction: Supports extracting data from a specific column when needed.

· Document Conversion: Transforms CSV content into structured documents.

· Pipeline Compatibility: Works with text splitters and downstream AI processing components.

#### 8)Document Store

Loader used to retrieve documents from an existing document store and make them available for processing in AI workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FfjEI21I9rUMmkdMDl1u4%2FScreenshot%202026-03-16%20113559.png?alt=media&amp;token=e66ac8ae-16ed-4a31-8b2c-c90fd76f062b" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Document Store node\
• Select the required store from the Select Store dropdown\
• Ensure the selected store already contains stored documents\
• Configure additional parameters if required

You can now use the Document Store Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Document Store Loader allows users to access documents that are already stored in a document storage system. Instead of uploading or fetching data from external sources, this loader retrieves previously stored documents and makes them available for further processing in AI pipelines such as embeddings, indexing, or retrieval-based applications.

#### Features

· Existing Document Access: Retrieves documents already stored in the document store.

· Store Selection: Allows users to choose from available document stores.

· Document Reuse: Enables reuse of previously processed or stored data.

· Workflow Integration: Integrates retrieved documents into AI processing pipelines.

· Efficient Data Management: Helps manage and reuse document datasets efficiently.

#### 9)Custom Document Loader

Loader used to create documents dynamically using custom input variables and a JavaScript function.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fsya6bm3C4rL0vbALnvPm%2FScreenshot%202026-03-16%20114007.png?alt=media&amp;token=6186540b-4817-4924-877c-2b5fdea2919e" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Custom Document Loader node\
• Click Input Variables to define the variables that will be used as input\
• Write the required JavaScript logic in the Javascript Function section\
• The function should return document objects containing pageContent and optional metadata\
• Configure additional parameters if required

You can now use the Custom Document Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Custom Document Loader allows users to create documents programmatically using custom input variables and JavaScript logic. Instead of loading data from external sources, this loader lets users define how documents should be generated by writing a function that returns document objects. Each document typically contains pageContent and optional metadata fields such as title or tags. This loader is useful when data needs to be dynamically constructed before entering the AI processing pipeline.

#### Features

· Custom Document Creation: Allows users to generate documents using custom logic.

· Input Variable Support: Supports dynamic inputs that can be used inside the JavaScript function.

· Flexible Data Processing: Enables transformation and structuring of data before creating documents.

· Metadata Support: Allows adding metadata fields such as titles or tags to documents.

· Workflow Integration: Generated documents can be used in downstream pipelines such as embeddings, indexing, or retrieval systems.

#### 9)Docx File

Loader used to read content from DOCX files and convert the extracted text into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FTs1NRG9BN94nCpHF4TCQ%2FScreenshot%202026-03-16%20114351.png?alt=media&amp;token=45af7a78-d0af-4d8d-aed2-af553d83af89" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Docx File node\
• Upload the DOCX file using the Upload File option\
• Configure Additional Parameters if required

You can now use the Docx File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Docx File Loader allows users to upload Microsoft Word documents and extract their textual content. The loader reads the DOCX file and converts the extracted content into structured documents that can be processed by AI pipelines. These documents can then be used for tasks such as embeddings generation, indexing, or retrieval-based question answering.

#### Features

· DOCX File Import: Allows users to upload and process Microsoft Word documents.

· Text Extraction: Extracts readable text from DOCX files.

· Document Conversion: Converts DOCX content into structured documents for AI workflows.

· Pipeline Compatibility: Works with text splitters and downstream AI components.

#### 11) Epub File Loader

Loader used to read content from EPUB files and convert the extracted text into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FlQhmCPHPFTtcVPc16qjf%2Fimage.png?alt=media&amp;token=966f46a1-2a9d-4980-8da8-053235c6a654" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Epub File node\
• Upload the EPUB file using the Upload File option\
• Select the Usage option to determine how the content should be divided (for example one document per chapter)\
• Configure Additional Parameters if required

You can now use the Epub File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Epub File Loader allows users to upload EPUB files and extract the content contained within them. The loader processes the structure of the EPUB file and converts chapters or sections into documents depending on the selected usage configuration. These documents can then be used in AI workflows such as knowledge base creation, embeddings generation, and retrieval systems.

#### Features

· EPUB File Import: Supports uploading and processing EPUB documents.

· Chapter-Based Processing: Allows splitting content into documents per chapter or section.

· Text Extraction: Extracts readable content from EPUB files.

· Document Conversion: Converts EPUB content into structured documents for AI pipelines.

· Workflow Integration: Works with text splitters and other downstream components.

#### 12) Figma Loader

Loader used to retrieve content from Figma files and convert design data into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpzxMQSXbTRlFnSuJjm7E%2Fimage.png?alt=media&amp;token=081d92e1-46a4-40fb-a0f0-42bafa472b50" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Figma node\
• Connect Credential > click Create New\
• Provide the Figma API credentials\
• Enter the File Key of the Figma file\
• Optionally provide Node IDs to retrieve specific components from the design\
• Enable Recursive if nested nodes need to be included\
• Configure Additional Parameters if required

You can now use the Figma Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Figma Loader allows users to retrieve content and metadata from Figma design files using the Figma API. It extracts information such as text elements and design structure from the specified file or nodes. The retrieved content is converted into structured documents which can then be used in AI workflows such as documentation generation, knowledge base creation, or retrieval-based systems.

#### Features

· Figma Integration: Connects directly to Figma using API credentials.

· Design Content Extraction: Retrieves text and structure from Figma design files.

· Node-Based Retrieval: Allows fetching specific nodes or components from the design.

· Recursive Extraction: Supports retrieving nested design elements.

· Document Conversion: Converts design content into structured documents for AI pipelines.

![Uploaded image](https://chatgpt.com/backend-api/estuary/content?id=file_0000000061587208b392ec573bfcc20f\&ts=492678\&p=fs\&cid=1\&sig=41fef81de86eed63606fd375cf37eed489bb9e40e728ae37c78d394e62948b1f\&v=0)

Here are the next three **Document Loader** entries written exactly in the **same style as your GitBook page** (Setup → Connections → Explanation → Features).\
You can **copy-paste directly**.

***

#### 13) File Loader

Loader used to upload and read file content and convert it into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F9ggkDDfvEl3cMGGswa0t%2Fimage.png?alt=media&amp;token=86a7896a-7d61-47b3-b338-89e2664e9bf1" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag File Loader node\
• Upload the required file using the Upload File option\
• Configure Additional Parameters if required

You can now use the File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The File Loader allows users to upload files directly into the workflow and extract their content. The loader reads the uploaded file and converts its content into structured documents that can be processed in AI pipelines. These documents can then be used for embeddings generation, indexing, or retrieval-based question answering systems.

#### Features

· File Upload Support: Allows users to upload files directly into the workflow.\
· Content Extraction: Extracts readable text from uploaded files.\
· Document Conversion: Converts file content into structured documents.\
· Pipeline Compatibility: Works with text splitters and downstream AI components.

#### 14) FireCrawl Loader

Loader used to crawl web content using the FireCrawl API and convert the extracted content into documents.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6WKZMw3XPs463ug2pOzw%2Fimage.png?alt=media&amp;token=742dee63-06c7-42d2-9c2d-d60f7c575c65" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag FireCrawl node\
• Connect FireCrawl API > click Create New\
• Provide the FireCrawl API Key\
• Select the Type of operation such as Crawl\
• Enter the URLs from which content should be retrieved\
• Optionally provide a Query to refine the data extraction\
• Configure Additional Parameters if required

You can now use the FireCrawl Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The FireCrawl Loader enables users to retrieve website content using the FireCrawl crawling service. It connects to the FireCrawl API and extracts content from the specified URLs. The retrieved content is then converted into structured documents that can be processed by AI pipelines for tasks such as embeddings, indexing, or knowledge base creation.

#### Features

· Web Crawling: Extracts content from specified URLs.\
· FireCrawl Integration: Connects to FireCrawl using API credentials.\
· Query-Based Filtering: Allows refining content extraction using queries.\
· Document Conversion: Converts crawled content into structured documents.\
· Workflow Integration: Works with text splitters and downstream AI components.

#### 15) Folder with Files Loader

Loader used to read multiple files from a folder and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fmi1CAub94tTOUCqm6j56%2Fimage.png?alt=media&amp;token=7ff00027-cb6b-488b-85a9-ed72f6543d1f" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Folder with Files node\
• Enter the Folder Path containing the files to be processed\
• Enable Recursive if files inside subfolders should also be included\
• Configure Additional Parameters if required

You can now use the Folder with Files Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Folder with Files Loader allows users to load multiple files from a specified folder and convert them into documents. Instead of uploading files individually, the loader scans the folder path and processes all files found within it. This is useful when working with large document collections stored locally.

#### Features

· Bulk File Processing: Loads and processes multiple files from a folder.\
· Recursive Loading: Supports loading files from subfolders when enabled.\
· Automated Document Creation: Converts file contents into structured documents.\
· Efficient Data Handling: Simplifies processing of large local datasets.\
· Pipeline Compatibility: Works with text splitters and downstream AI components.

Here are the next three loaders written **exactly in the same documentation pattern** you are using in GitBook (Setup → Connections → Explanation → Features).\
You can **copy-paste directly**.

#### 16) GitBook Loader

Loader used to retrieve content from GitBook documentation pages and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fixa5sqiBLpqGpcinYyJ8%2Fimage.png?alt=media&amp;token=45778f6f-88e4-4a03-b78b-dfc1d3a5771d" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag GitBook node\
• Enter the Web Path of the GitBook documentation site\
• Enable Should Load All Paths if all pages under the documentation should be retrieved\
• Configure Additional Parameters if required

You can now use the GitBook Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The GitBook Loader allows users to retrieve documentation content directly from GitBook sites. It reads the provided GitBook path and extracts the text content from documentation pages. The extracted content is converted into structured documents that can be processed by AI workflows such as knowledge base creation, embeddings generation, or retrieval-based question answering.

#### Features

· GitBook Integration: Retrieves documentation directly from GitBook sites.\
· Documentation Crawling: Extracts text content from documentation pages.\
· Multi-Page Retrieval: Can load all pages from the provided GitBook path.\
· Document Conversion: Converts documentation into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 17) GitHub Loader

Loader used to retrieve files and repository content from GitHub and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FPsnoWUkAMVfMODNW4FMV%2Fimage.png?alt=media&amp;token=4d079aa3-2a94-49f0-9ca9-9181cfcda674" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag GitHub node\
• Connect Credential > click Create New\
• Provide the GitHub access credentials\
• Enter the Repository Link of the GitHub project\
• Specify the Branch from which files should be retrieved\
• Enable Recursive if files in subdirectories should also be loaded\
• Configure Additional Parameters if required

You can now use the GitHub Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The GitHub Loader allows users to retrieve files and documentation stored in GitHub repositories. It connects to the specified repository and loads files from the selected branch. The retrieved content is converted into structured documents which can be used in AI pipelines such as code analysis, documentation indexing, or retrieval-based applications.

#### Features

· GitHub Repository Integration: Retrieves files directly from GitHub repositories.\
· Branch-Based Retrieval: Allows loading files from a specific branch.\
· Recursive Loading: Supports retrieving files from nested folders.\
· Document Conversion: Converts repository files into structured documents.\
· Workflow Integration: Works with text splitters and AI processing pipelines.

#### 18) Google Drive Loader

Loader used to retrieve files from Google Drive and convert their content into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FBLLdm2WSPCb8ebs6VWjb%2Fimage.png?alt=media&amp;token=fa1be9f1-0cb7-4a94-8b20-7500a58a6b58" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Google Drive node\
• Connect Credential > click Create New\
• Provide the Google Drive API credentials\
• Select the files or provide the Folder ID from which files should be retrieved\
• Choose the required File Types such as Google Docs, PDF files, or text files\
• Enable Include Subfolders if files inside nested folders should also be processed\
• Enable Include Shared Drives if shared drive files should be included\
• Set the Max Files limit if required\
• Configure Additional Parameters if required

You can now use the Google Drive Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Google Drive Loader allows users to retrieve documents stored in Google Drive. It connects to the Google Drive API and loads files from the selected folder or files list. The loader supports multiple file types and converts the retrieved content into structured documents that can be used in AI workflows such as embeddings generation, indexing, or knowledge base creation.

#### Features

· Google Drive Integration: Retrieves files directly from Google Drive.\
· Multi-Format Support: Supports Google Docs, PDFs, text files, spreadsheets, and presentations.\
· Folder-Based Retrieval: Allows loading files from specific folders.\
· Subfolder Support: Can include files inside nested folders.\
· Document Conversion: Converts file content into structured documents for AI pipelines.

Here are the next three loaders written **exactly in the same format you are using in GitBook** so you can **copy-paste directly**.

#### 19) Google Sheets Loader

Loader used to retrieve spreadsheet data from Google Sheets and convert it into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FHVu6SZvDPtJFJLZUCWye%2Fimage.png?alt=media&amp;token=faf82357-cc49-4bfa-8526-2d3c28a812b1" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Google Sheets node\
• Connect Credential > click Create New\
• Provide the Google Sheets API credentials\
• Select the Spreadsheet from the Select Spreadsheet dropdown\
• Enter Sheet Names if specific sheets need to be retrieved\
• Optionally define the Range of cells to load\
• Enable Include Headers if column headers should be included\
• Select the Value Render Option if required\
• Configure Additional Parameters if required

You can now use the Google Sheets Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Google Sheets Loader allows users to retrieve tabular data stored in Google Sheets. It connects to the Google Sheets API and loads spreadsheet data from selected sheets and ranges. The retrieved spreadsheet content is then converted into structured documents that can be used in AI pipelines such as embeddings generation, indexing, or retrieval-based applications.

#### Features

· Google Sheets Integration: Retrieves spreadsheet data directly from Google Sheets.\
· Sheet-Level Retrieval: Allows loading data from specific sheets.\
· Range-Based Extraction: Supports retrieving data from defined cell ranges.\
· Header Support: Optionally includes column headers when loading data.\
· Document Conversion: Converts spreadsheet content into structured documents for AI workflows.

#### 20) Image File Loader

Loader used to upload image files and convert extracted content into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdOmLVb2ZXF9YqTAs55a9%2Fimage.png?alt=media&amp;token=791a9fc8-a27a-479b-b686-7228cb340398" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Image File node\
• Upload the image using the Upload File option\
• Configure Additional Parameters if required

You can now use the Image File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Image File Loader allows users to upload image files and process them as documents. The loader reads the image and extracts available textual or descriptive content from it, converting the information into structured documents that can be used in AI pipelines such as indexing, embeddings generation, or retrieval workflows.

#### Features

· Image Upload Support: Allows users to upload image files directly.\
· Content Extraction: Processes image data to extract relevant information.\
· Document Conversion: Converts extracted image information into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI processing components.

#### 21) Jira Loader

Loader used to retrieve issues and project data from Jira and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FClz3yOUUCj943tiNxEws%2Fimage.png?alt=media&amp;token=82f9e4dc-b982-419d-8b98-a3f2c1bf913f" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Jira node\
• Connect Credential > click Create New\
• Provide the Jira API credentials\
• Enter the Jira Host URL\
• Enter the Project Key of the Jira project\
• Define the Limit per request if required\
• Optionally specify Created After to retrieve recent issues\
• Configure Additional Parameters if required

You can now use the Jira Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Jira Loader allows users to retrieve issues and project information from Jira. It connects to the Jira API and loads issues from the specified project. The retrieved issue data is converted into structured documents which can be used in AI workflows such as project analytics, knowledge base generation, or retrieval-based applications.

#### Features

· Jira Integration: Connects directly to Jira using API credentials.\
· Project-Based Retrieval: Retrieves issues from specific Jira projects.\
· Issue Filtering: Supports filtering issues using parameters such as creation date.\
· Document Conversion: Converts Jira issue data into structured documents.\
· Workflow Integration: Works with text splitters and AI processing pipelines.

#### 22) Json File Loader

Loader used to read data from JSON files and convert the extracted content into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FoQqncXZOg8BPtGp7vHMW%2Fimage.png?alt=media&amp;token=0d6903a7-9f3b-40cd-9124-37908b5770b5" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Json File node\
• Upload the JSON file using the Upload File option\
• Optionally specify Pointers Extraction to retrieve specific fields from the JSON structure\
• Configure Additional Parameters if required

You can now use the Json File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Json File Loader allows users to upload JSON files and extract structured data from them. It reads the JSON structure and converts the selected fields or the entire content into documents. These documents can then be used in AI workflows such as embeddings generation, indexing, or retrieval-based applications.

#### Features

· JSON File Import: Allows users to upload and process JSON files.\
· Structured Data Extraction: Extracts data from JSON structures.\
· Pointer-Based Retrieval: Supports extracting specific keys or nested fields.\
· Document Conversion: Converts JSON data into structured documents.\
· Workflow Integration: Works with text splitters and AI processing pipelines.

#### 23) Json Lines File Loader

Loader used to read JSON Lines (.jsonl) files and convert each JSON entry into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F9Ku8gWhKdEuFl8cJ63St%2Fimage.png?alt=media&amp;token=9280e04f-a111-42b7-984e-232a1df04fe1" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Json Lines File node\
• Upload the JSON Lines file using the Upload File option\
• Provide the Pointer Extraction key to identify which field should be extracted\
• Configure Additional Parameters if required

You can now use the Json Lines File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Json Lines File Loader processes JSON Lines files where each line contains a separate JSON object. It extracts the specified field using pointer extraction and converts each entry into structured documents. These documents can then be used in AI workflows such as indexing, embeddings generation, or retrieval-based systems.

#### Features

· JSON Lines Support: Processes files where each line is a separate JSON object.\
· Pointer Extraction: Allows extracting specific fields from each JSON entry.\
· Document Generation: Converts each JSON entry into a document.\
· Structured Data Processing: Handles large datasets efficiently.\
· Pipeline Compatibility: Works with text splitters and downstream AI components.

#### 24) Microsoft Excel Loader

Loader used to read spreadsheet data from Excel files and convert it into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FGSrOUmywLiBakT1AYb1k%2Fimage.png?alt=media&amp;token=503c1679-446f-4c00-9a6f-f2a3db1c508d" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Microsoft Excel node\
• Upload the Excel file using the Upload File option\
• Configure Additional Parameters if required

You can now use the Microsoft Excel Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Microsoft Excel Loader allows users to upload Excel spreadsheets and extract their tabular data. The loader reads the spreadsheet content and converts rows or cell data into structured documents. These documents can then be used in AI pipelines such as embeddings generation, indexing, or retrieval-based workflows.

#### Features

· Excel File Import: Allows users to upload Excel spreadsheets.\
· Tabular Data Extraction: Extracts rows and cell data from Excel sheets.\
· Document Conversion: Converts spreadsheet content into structured documents.\
· Workflow Integration: Works with text splitters and AI processing pipelines.\
· Data Processing Support: Handles structured spreadsheet datasets efficiently.

Here are the next three loaders written in the **same format as your GitBook documentation**, so you can **copy-paste directly**.

#### 25) Microsoft PowerPoint Loader

Loader used to read content from PowerPoint presentations and convert the extracted slide content into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FHiJ07mWOzNqMpJ2RZ0Mk%2Fimage.png?alt=media&amp;token=ffb01e90-1433-45bb-a3ce-56da80e800e7" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Microsoft PowerPoint node\
• Upload the PowerPoint file using the Upload File option\
• Configure Additional Parameters if required

You can now use the Microsoft PowerPoint Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Microsoft PowerPoint Loader allows users to upload PowerPoint presentations and extract text from slides. The loader processes the uploaded presentation and converts slide content into structured documents. These documents can then be used in AI workflows such as embeddings generation, indexing, or retrieval-based question answering.

#### Features

· PowerPoint File Import: Allows users to upload PowerPoint presentations.\
· Slide Content Extraction: Extracts text content from presentation slides.\
· Document Conversion: Converts slide data into structured documents for AI workflows.\
· Pipeline Compatibility: Works with text splitters and downstream AI components.

#### 26) Microsoft Word Loader

Loader used to read content from Microsoft Word documents and convert the extracted text into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FKW1iQAAp3zyaAOPAvIA8%2Fimage.png?alt=media&amp;token=86589fe3-0f1d-41a6-a0cf-6103570a27b8" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Microsoft Word node\
• Upload the Word file using the Upload File option\
• Configure Additional Parameters if required

You can now use the Microsoft Word Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Microsoft Word Loader allows users to upload Word documents and extract their textual content. The loader reads the uploaded file and converts the extracted content into structured documents that can be processed in AI pipelines such as embeddings generation, indexing, or retrieval-based systems.

#### Features

· Word Document Import: Allows users to upload Microsoft Word files.\
· Text Extraction: Extracts readable text from Word documents.\
· Document Conversion: Converts Word document content into structured documents.\
· Workflow Integration: Works with text splitters and AI processing pipelines.

#### 27) Notion Database Loader

Loader used to retrieve content from Notion databases and convert the retrieved data into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fn4hq1ykksw3getWdccmi%2Fimage.png?alt=media&amp;token=47acb15b-4da4-47d6-8b1a-0500e4a2c7ac" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Notion Database node\
• Connect Credential > click Create New\
• Provide the Notion API credentials\
• Enter the Notion Database ID from which records should be retrieved\
• Configure Additional Parameters if required

You can now use the Notion Database Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Notion Database Loader allows users to retrieve structured content from Notion databases. It connects to the Notion API and extracts records from the specified database. The retrieved data is converted into structured documents that can be used in AI workflows such as knowledge base creation, embeddings generation, and retrieval-based applications.

#### Features

· Notion Integration: Connects directly to Notion using API credentials.\
· Database Retrieval: Retrieves records from specified Notion databases.\
· Structured Data Extraction: Extracts content stored in database fields.\
· Document Conversion: Converts Notion database records into structured documents.\
· Pipeline Compatibility: Works with text splitters and downstream AI components.

Here are the next three written in the **same GitBook documentation style** you have been using so you can **copy-paste directly**.

#### 28) Notion Folder Loader

Loader used to retrieve content from a Notion folder and convert the pages inside it into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FiNs10E6jQ3u2UzdOWzrC%2Fimage.png?alt=media&amp;token=570508ac-ca04-4db5-ac84-c01fa8fc2c5b" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Notion Folder node\
• Enter the Notion Folder path containing the pages to be retrieved\
• Configure Additional Parameters if required

You can now use the Notion Folder Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Notion Folder Loader allows users to load multiple pages stored inside a Notion folder. It retrieves the content of each page within the specified folder and converts the extracted data into structured documents. These documents can then be used in AI pipelines such as embeddings generation, indexing, or retrieval-based applications.

#### Features

· Folder-Based Retrieval: Loads multiple pages stored inside a Notion folder.\
· Structured Content Extraction: Extracts text content from Notion pages.\
· Bulk Document Loading: Processes multiple pages from a single folder path.\
· Document Conversion: Converts Notion content into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 29) Notion Page Loader

Loader used to retrieve content from a specific Notion page and convert it into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F4hYzj84wftAICvTw7ekq%2Fimage.png?alt=media&amp;token=53339ade-e033-45f4-af8e-b361037b257a" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Notion Page node\
• Connect Credential > click Create New\
• Provide the Notion API credentials\
• Enter the Notion Page ID from which the content should be retrieved\
• Configure Additional Parameters if required

You can now use the Notion Page Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Notion Page Loader allows users to retrieve content from a specific Notion page. It connects to the Notion API and extracts the page content, converting it into structured documents. These documents can then be used in AI workflows such as knowledge base creation, embeddings generation, and retrieval-based question answering.

#### Features

· Notion API Integration: Connects directly to Notion using API credentials.\
· Page-Level Retrieval: Retrieves content from a specific Notion page.\
· Structured Content Extraction: Extracts text and structured data from Notion pages.\
· Document Conversion: Converts Notion page content into structured documents.\
· Workflow Integration: Works with text splitters and AI processing pipelines.

#### 30) PDF File Loader

Loader used to read content from PDF files and convert the extracted text into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FKgc0HK6iq5nXrXkjShd8%2Fimage.png?alt=media&amp;token=13cf5b06-560c-494b-8177-1ac05644b837" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag PDF File node\
• Upload the PDF file using the Upload File option\
• Select the Usage option such as one document per page\
• Configure Additional Parameters if required

You can now use the PDF File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The PDF File Loader allows users to upload PDF documents and extract the text contained within them. The loader processes the uploaded file and converts its content into structured documents. Depending on the selected usage option, the content can be divided by page or processed as a single document. These documents can then be used in AI pipelines such as embeddings generation, indexing, or retrieval-based systems.

#### Features

· PDF File Import: Allows users to upload and process PDF documents.\
· Page-Based Processing: Supports splitting content into documents per page.\
· Text Extraction: Extracts readable text from PDF files.\
· Document Conversion: Converts PDF content into structured documents.\
· Pipeline Compatibility: Works with text splitters and downstream AI components.

#### 31) Plain Text Loader

Loader used to input plain text content and convert it into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FqByse9Wn90cdMXiWuOpR%2Fimage.png?alt=media&amp;token=d4e6f905-c836-4d33-998c-09e7f197c9b9" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Plain Text node\
• Enter the text content in the Text field\
• Configure Additional Parameters if required

You can now use the Plain Text Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Plain Text Loader allows users to manually input text directly into the workflow. The entered content is converted into structured documents that can be processed in AI pipelines. This loader is useful when users want to quickly test workflows or provide small text inputs without uploading files.

#### Features

· Direct Text Input: Allows users to manually enter text content.\
· Instant Document Creation: Converts the entered text into documents.\
· Quick Testing: Useful for testing AI workflows without external files.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 32) Playwright Web Scraper

Loader used to scrape website content using the Playwright browser automation framework and convert the extracted data into documents.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FK5hPdMgIHcmBBicqEtMt%2Fimage.png?alt=media&amp;token=528677ae-d60b-4344-a12f-ccecfc6c99fd" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Playwright Web Scraper node\
• Enter the URL of the website to be scraped\
• Use Manage Links if multiple pages need to be scraped\
• Configure Additional Parameters if required

You can now use the Playwright Web Scraper node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Playwright Web Scraper allows users to extract website content using the Playwright browser automation framework. It loads the specified webpage, renders dynamic content if required, and retrieves the text from the page. The extracted content is converted into structured documents that can be processed in AI workflows such as embeddings generation or knowledge base creation.

#### Features

· Browser-Based Crawling: Uses Playwright to load and process web pages.\
· Dynamic Content Support: Can retrieve content from websites that use JavaScript rendering.\
· Multi-Page Scraping: Supports scraping multiple URLs through the Manage Links option.\
· Document Conversion: Converts scraped content into structured documents.\
· Workflow Integration: Works with text splitters and downstream AI components.

#### 33) Puppeteer Web Scraper

Loader used to scrape website content using the Puppeteer browser automation library and convert the extracted data into documents.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpIdsBblFih0LpjHVFOKA%2Fimage.png?alt=media&amp;token=053e1066-c093-4550-9a7b-13af00a6ab68" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Puppeteer Web Scraper node\
• Enter the URL of the website to be scraped\
• Use Manage Links if multiple pages need to be scraped\
• Configure Additional Parameters if required

You can now use the Puppeteer Web Scraper node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Puppeteer Web Scraper allows users to extract website content using the Puppeteer headless browser automation library. It loads the specified webpage, processes the HTML structure, and extracts text content from the page. The retrieved content is converted into structured documents that can be used in AI pipelines such as indexing, embeddings generation, and retrieval-based systems.

#### Features

· Headless Browser Scraping: Uses Puppeteer to scrape website content.\
· Dynamic Page Rendering: Supports websites that load content dynamically.\
· Multi-Page Scraping: Allows scraping multiple pages using the Manage Links option.\
· Document Conversion: Converts webpage content into structured documents.\
· Pipeline Compatibility: Works with text splitters and downstream AI processing components.

#### 34) S3 Directory Loader

Loader used to retrieve multiple files from an Amazon S3 bucket directory and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FLq3iEchomCmayVRBajg5%2Fimage.png?alt=media&amp;token=54905e7c-3678-47e8-b747-418a29070480" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag S3 Directory node\
• Provide the AWS Credential required to access the S3 bucket\
• Enter the Bucket name from which files should be retrieved\
• Select the Region where the S3 bucket is hosted\
• Optionally specify the Server URL if using a custom S3 endpoint\
• Optionally define a Prefix to load files from a specific folder inside the bucket\
• Configure Additional Parameters if required

You can now use the S3 Directory Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The S3 Directory Loader allows users to retrieve multiple files stored inside a directory of an Amazon S3 bucket. It connects to AWS using the provided credentials and loads files from the specified bucket and prefix. The retrieved files are converted into structured documents which can then be used in AI workflows such as embeddings generation, indexing, or knowledge base creation.

#### Features

· AWS S3 Integration: Connects to Amazon S3 using AWS credentials.\
· Directory-Based Retrieval: Loads files from a specified folder inside the bucket.\
· Bulk File Processing: Supports processing multiple files stored in the bucket.\
· Document Conversion: Converts file content into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 35) S3 Loader

Loader used to retrieve a specific file from an Amazon S3 bucket and convert its content into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FeaK9IVT2Hok6FN6vSlHv%2Fimage.png?alt=media&amp;token=af0eac20-96e5-424e-a669-038ba0ee0e31" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag S3 node\
• Provide the AWS Credential required to access the S3 bucket\
• Enter the Bucket name containing the file\
• Provide the Object Key of the file to be retrieved\
• Select the Region where the S3 bucket is hosted\
• Select the File Processing Method for how the file should be processed\
• Configure Additional Parameters if required

You can now use the S3 Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The S3 Loader allows users to retrieve individual files stored in Amazon S3 buckets. It connects to the AWS S3 service and downloads the specified file using the object key. The file content is then processed and converted into structured documents that can be used in AI pipelines such as embeddings generation, indexing, or retrieval-based systems.

#### Features

· AWS S3 Integration: Connects directly to Amazon S3 using AWS credentials.\
· File-Level Retrieval: Retrieves specific files using the object key.\
· Flexible File Processing: Supports different file processing methods.\
· Document Conversion: Converts file content into structured documents.\
· Workflow Integration: Works with text splitters and downstream AI components.

#### 36) SearchApi Web Search Loader

Loader used to retrieve web search results using SearchApi and convert the results into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FC1X37CXouDVIfkHZLwZh%2Fimage.png?alt=media&amp;token=900d7fe8-c095-4733-a5bb-2b89838c4613" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag SearchApi for Web Search node\
• Connect Credential > click Create New\
• Provide the SearchApi API credentials\
• Enter the search Query to retrieve web results\
• Configure Additional Parameters if required

You can now use the SearchApi Web Search Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The SearchApi Web Search Loader allows users to retrieve web search results using the SearchApi service. It sends the specified query to the search API and retrieves relevant web results. The returned data is converted into structured documents that can be used in AI workflows such as knowledge retrieval, research automation, or question answering systems.

#### Features

· Web Search Integration: Retrieves web results using SearchApi.\
· Query-Based Retrieval: Allows users to search for information using custom queries.\
· Real-Time Information Access: Provides up-to-date web search results.\
· Document Conversion: Converts search results into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 37) SerpApi Web Search Loader

Loader used to retrieve web search results using SerpApi and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdrI8BeNcm4PLPEEqvngD%2Fimage.png?alt=media&amp;token=01f5d056-84b4-4108-af6c-aefdebc3f574" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag SerpApi for Web Search node\
• Connect Credential > click Create New\
• Provide the SerpApi API credentials\
• Enter the search Query to retrieve web results\
• Configure Additional Parameters if required

You can now use the SerpApi Web Search Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The SerpApi Web Search Loader allows users to retrieve search results from various search engines using the SerpApi service. It sends the provided query to the API and retrieves relevant search results. The retrieved data is converted into structured documents which can be used in AI workflows such as research, indexing, or retrieval-based applications.

#### Features

· Search Engine Integration: Retrieves results from search engines through SerpApi.\
· Query-Based Retrieval: Allows searching information using custom queries.\
· Real-Time Web Data: Provides up-to-date web search results.\
· Document Conversion: Converts search results into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 38) Spider Document Loader

Loader used to scrape website content using the Spider API and convert the extracted data into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F1mF2gu9wLYkK8pyGfwUi%2Fimage.png?alt=media&amp;token=1e5ba1d0-fc6f-4754-82be-1e2710a13841" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Spider Document Loader node\
• Connect Credential > click Create New\
• Provide the Spider API credentials\
• Select the Mode such as Scrape\
• Enter the Web Page URL from which content should be retrieved\
• Set the Limit to define how many pages or results should be retrieved\
• Configure Additional Parameters if required

You can now use the Spider Document Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Spider Document Loader allows users to retrieve web content using the Spider crawling service. It connects to the Spider API and extracts content from the specified webpage or site. The retrieved content is then converted into structured documents that can be processed by AI pipelines such as embeddings generation, indexing, or knowledge base creation.

#### Features

· Web Scraping Support: Extracts content from specified web pages.\
· Spider API Integration: Connects to the Spider service using API credentials.\
· Configurable Crawling Mode: Supports scraping modes such as page scraping.\
· Document Conversion: Converts scraped content into structured documents.\
· Pipeline Integration: Works with text splitters and downstream AI workflows.

#### 39) Text File Loader

Loader used to read content from text files and convert the extracted text into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxMCRQD9IcIda39G0XkyX%2Fimage.png?alt=media&amp;token=178ff8f5-e9f6-4a4c-8adb-19f3c93d42a2" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Text File node\
• Upload the text file using the Upload File option\
• Configure Additional Parameters if required

You can now use the Text File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Text File Loader allows users to upload plain text files and extract their content. The loader reads the uploaded file and converts the text into structured documents. These documents can then be used in AI workflows such as embeddings generation, indexing, or retrieval-based question answering.

#### Features

· Text File Import: Allows users to upload and process plain text files.\
· Content Extraction: Extracts readable text from text files.\
· Document Conversion: Converts text file content into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

Here are the final three written in the **same documentation format you have used for all previous loaders**, so you can **copy-paste directly into GitBook**.

#### 40) Unstructured File Loader

Loader used to process files using the Unstructured API and convert the extracted content into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FUaMQxKLNCEywd9CbVQCT%2Fimage.png?alt=media&amp;token=1c646143-d659-4b07-8bec-ad433f121194" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Unstructured File Loader node\
• Connect Credential > click Create New\
• Provide the credentials required to access the Unstructured API\
• Upload the file using the Upload File option\
• Enter the Unstructured API URL if required\
• Configure Additional Parameters if needed

You can now use the Unstructured File Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Unstructured File Loader allows users to upload files and process them using the Unstructured document processing service. The loader sends the file to the configured Unstructured API endpoint, extracts structured text and metadata, and converts the processed output into documents. These documents can then be used in AI workflows such as embeddings generation, indexing, or retrieval-based systems.

#### Features

· Unstructured API Integration: Processes files using the Unstructured document processing service.\
· Multi-Format Support: Supports processing of different document formats.\
· Structured Content Extraction: Extracts readable text and metadata from uploaded files.\
· Document Conversion: Converts processed data into structured documents.\
· Workflow Compatibility: Works with text splitters and downstream AI components.

#### 41) Unstructured Folder Loader

Loader used to process multiple files from a folder using the Unstructured API and convert them into documents for AI processing.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FGikxADjGDrmveR8gHm9W%2Fimage.png?alt=media&amp;token=bb11a498-e55d-42b9-ac3b-0e7249317248" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag Unstructured Folder Loader node\
• Connect Credential > click Create New\
• Provide the credentials required to access the Unstructured API\
• Enter the Folder Path containing the files to be processed\
• Enter the Unstructured API URL if required\
• Configure Additional Parameters if needed

You can now use the Unstructured Folder Loader node in THub.

#### Connections

• Text Splitter can be connected with any node under Text Splitter category

#### Explanation

The Unstructured Folder Loader allows users to process multiple files stored inside a folder using the Unstructured API. It scans the specified folder path, sends each file to the Unstructured processing service, and converts the extracted content into structured documents. These documents can then be used in AI pipelines such as knowledge base creation, embeddings generation, or document indexing.

#### Features

· Bulk File Processing: Processes multiple files stored inside a folder.\
· Unstructured API Integration: Uses the Unstructured service for document processing.\
· Structured Content Extraction: Extracts text and metadata from files.\
· Document Conversion: Converts processed file content into structured documents.\
· Pipeline Compatibility: Works with text splitters and downstream AI workflows.

#### 42) VectorStore to Document Loader

Loader used to retrieve stored data from a vector store and convert the retrieved results into documents.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCC59AAJdgqsL3yY598u3%2Fimage.png?alt=media&amp;token=8fe624f6-f88e-4772-bb23-fc89fee1ac26" alt=""><figcaption></figcaption></figure>

#### Setup

• Document Loaders > drag VectorStore To Document node\
• Select the Vector Store from which documents should be retrieved\
• Enter the Query used to search the vector store\
• Define the Minimum Score (%) to filter relevant results\
• Configure Additional Parameters if required

You can now use the VectorStore to Document Loader node in THub.

#### Connections

• Vector Store can be connected with any node under Vector Store category

#### Explanation

The VectorStore to Document Loader retrieves stored entries from a vector store based on a query and converts the retrieved results into documents. It performs similarity search using the query and returns documents that meet the defined minimum score threshold. These documents can then be used in downstream AI workflows such as retrieval-augmented generation or contextual question answering.

#### Features

· Vector Store Retrieval: Retrieves documents stored in a vector database.\
· Query-Based Search: Uses similarity search to find relevant entries.\
· Score Filtering: Filters results based on a minimum similarity score.\
· Document Conversion: Converts retrieved vector store results into structured documents.\
· AI Workflow Integration: Supports retrieval-augmented generation and knowledge retrieval systems.


# 🧬Embeddings

Embeddings can be used to create a numerical representation of textual data. This numerical representation is useful because it can be used to find similar documents.

An embedding is a vector (list) of floating-point numbers. The distance between two vectors measures their relatedness. Small distances suggest high relatedness and large distances suggest low relatedness.

They are commonly used for:

·       Search (where results are ranked by relevance to a query string)

·       Clustering (where text strings are grouped by similarity)

·       Recommendations (where items with related text strings are recommended)

·       Anomaly detection (where outliers with little relatedness are identified)

·       Diversity measurement (where similarity distributions are analyzed)

·       Classification (where text strings are classified by their most similar label)

#### 1)AWS Bedrock Embeddings

AWSBedrock embedding models to generate embeddings for a given text.

#### Setup

AWS Console

1. [Log in](https://aws.amazon.com/console/) to AWS Console
2. In the search bar, search for **Bedrock** and open [**Amazon Bedrock**](https://console.aws.amazon.com/bedrock/)

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FV0Oc1XC4wJs2AYBIUdOK%2Fimage.png?alt=media&amp;token=4893e4bc-255c-4094-bc89-d6109fe63744" alt=""><figcaption></figcaption></figure>

3. Click [**Model access**](https://console.aws.amazon.com/bedrock/home#/modelaccess) from the left panel
4. Request access to embedding models such as

· amazon.titan-embed-text-v1\
· amazon.titan-embed-text-v2\
· cohere.embed-english-v3

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FtkddBavvykSlSMJQSl3Q%2F16-03-2026%2014_35_17.png?alt=media&amp;token=102511f0-ffaa-4566-aa4a-7be87614c4ca" alt=""><figcaption></figcaption></figure>

5. Go to **AWS IAM** to generate credentials

Link: <https://console.aws.amazon.com/iam/>

6. Create AWS Access Credentials

IAM → Users → Create User → Create Access Key

Copy the following details

· Access Key\
· Secret Access Key

7. Open THub Canvas
8. Go to Embeddings > drag **AWS Bedrock Embeddings** node
9. Click **Connect Credential → Create New**

Enter the credentials

· AWS Access Key\
· AWS Secret Access Key

10. Select **Region**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXjMsuXF8fsAZG5saDSjP%2F16-03-2026%2015_03_59.png?alt=media&amp;token=9b8f4d45-382c-48b2-9f4b-1ea1e0f930fc" alt=""><figcaption></figcaption></figure>

11. Select **Model Name**
12. Select **Cohere Input Type** (only if Cohere model is used)
13. Voila 🎉, you have successfully created **AWS Bedrock Embeddings node in THub**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fv6mSIb53KV0U6dOZZv6k%2FScreenshot%202024-07-04%20164852.png?alt=media&amp;token=492171bb-e549-4d28-a2bf-ef3ad18a6850" alt=""><figcaption></figcaption></figure>

#### 2)Azure OpenAI Embeddings

&#x20;  **Prerequisite**

1\.     [Log in](https://portal.azure.com/) or [sign up](https://azure.microsoft.com/en-us/free/) to Azure

2\.     [Create](https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI) your Azure OpenAI and wait for approval approximately 10 business days

3\.     Your API key will be available at **Azure OpenAI** > click **name\_azure\_openai** > click **Click here to manage keys**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FbtcuIbctNtF20dk9UTW8%2Fimage.png?alt=media&amp;token=ee330f62-3951-4c19-996a-f18697efc502" alt=""><figcaption></figcaption></figure>

Setup

Azure OpenAI Embeddings

1\.     Click **Go to Azure OpenaAI Studio**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRLBCM5kDrag0AW9kxNrm%2Fimage.png?alt=media&amp;token=d54759fd-0372-4373-9d37-77d98b103da3" alt=""><figcaption></figcaption></figure>

2\.     Click **Deployments**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FjdRcWC2cB2th4BXnmX4A%2Fimage.png?alt=media&amp;token=033df409-039d-4dba-b99b-12c605b40d4c" alt=""><figcaption></figcaption></figure>

**3.**     Click **Create new deployment**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxI69NinQjQY4WRxjxDP6%2Fimage.png?alt=media&amp;token=f6d1abd8-f403-4599-99fb-8719b01cdfb8" alt=""><figcaption></figcaption></figure>

**4.**     Select as shown below and click **Create**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAA8AVI8zy2zgOxim72Ck%2Fimage.png?alt=media&amp;token=fb6df239-c596-47d9-966f-a07dad5131ce" alt=""><figcaption></figcaption></figure>

5\.     Successfully created **Azure OpenAI Embeddings**

·       Deployment name: `text-embedding-ada-002`

·       Instance name: `top right conner`

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FugFeqnbnnwVfQSqomc9f%2Fimage.png?alt=media&amp;token=689217a5-bf5f-4b8f-b327-5671fefe4278" alt=""><figcaption></figcaption></figure>

**THub**

1\.     **Embeddings** > drag **Azure OpenAI Embeddings** node

2\.     **Connect Credential** > click **Create New**

3\.     Copy & Paste each details (API Key, Instance & Deployment name, [API Version](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)) into **Azure OpenAI Embeddings** credential

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FgE2gPhCnUSsLeaQJ6h7E%2FScreenshot%202024-07-04%20164909.png?alt=media&amp;token=8c5f3c1c-faa6-43e2-a744-3c916d642a7e" alt=""><figcaption></figcaption></figure>

4\.     Voila [🎉](https://emojipedia.org/party-popper/), you have created **Azure OpenAI Embeddings node** in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FQt2by1pBjUUefGpDoiJF%2Fimage.png?alt=media&amp;token=1c390755-d8ea-4006-8121-4e0a7df909b3" alt=""><figcaption></figcaption></figure>

#### 3)Google GenerativeAI Embeddings

Google Generative API to generate embeddings for a given text.

Google Generative AI Embeddings

Prerequisite

1. Go to [Google AI Studio](https://aistudio.google.com/app/apikey)
2. Sign in with your Google account
3. Click Create API Key and copy the generated API Key

Setup

THub

1. Embeddings > drag Google Generative AI Embeddings node
2. Connect Credential > click Create New
3. Paste the Google Generative AI API Key in the credential
4. Select Model Name
5. Select Task Type

Example:\
· RETRIEVAL\_DOCUMENT\
· RETRIEVAL\_QUERY

6. Voila 🎉, you have created Google Generative AI Embeddings node in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFxA5Udv7uRpq3oOSOODC%2Fimage.png?alt=media&amp;token=a64e309d-db67-4d04-ad90-52d45b108bcd" alt=""><figcaption></figcaption></figure>

#### 4)Google VertexAI Embeddings

Google vertexAI API to generate embeddings for a given text.

Prerequisite

1. Go to[ Google Cloud Console](https://console.cloud.google.com/)
2. Create or select a Project
3. Enable [Vertex AI API](https://console.cloud.google.com/apis/library/aiplatform.googleapis.com)
4. Create [Service Account credentials](https://console.cloud.google.com/iam-admin/serviceaccounts)

Go to IAM & Admin → Service Accounts

5. Create a Service Account and generate a JSON Key

Setup

THub

1. Embeddings > drag Google Vertex AI Embeddings node
2. Connect Credential > click Create New
3. Upload or paste the Service Account JSON credentials
4. Select Model Name
5. Select Region
6. Voila 🎉, you have created Google Vertex AI Embeddings node in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F7QwtJPxolGQMAS9ckqsS%2Fimage.png?alt=media&amp;token=16da8c98-73c2-4018-9014-e80d099c7ba1" alt=""><figcaption></figcaption></figure>

#### 5)Ollama Embeddings

Generate embeddings for a given text using opensource model on Ollama.

Prerequisite

1. Install [Ollama](https://ollama.com/download)
2. Start [Ollama on your system](http://localhost:11434/)
3. Pull an embedding supported model

Setup

THub

1. Embeddings > drag Ollama Embeddings node
2. Enter Base URL
3. Enter Model Name
4. Voila 🎉, you have created Ollama Embeddings node in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXBOmxNCcyOjQ7dHIql3N%2FScreenshot%202024-07-04%20165014.png?alt=media&amp;token=b04e1368-ae5b-4ec9-ae23-e7b4bc09b737" alt=""><figcaption></figcaption></figure>

#### 6)OpenAI Embeddings

OpenAI API to generate embeddings for a given text.

OpenAI Embeddings

Prerequisite

1. Go to [OpenAI Platform](https://platform.openai.com/)
2. Sign in or create an account
3. Generate an[ API Key](https://platform.openai.com/api-keys)

Setup

THub

1. Embeddings > drag OpenAI Embeddings node
2. Connect Credential > click Create New
3. Paste the OpenAI API Key in the credential
4. Select Model Name\
   Example: text-embedding-ada-002
5. Voila 🎉, you have created OpenAI Embeddings node in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FbfRFi615QbJURkT026zS%2FScreenshot%202024-07-04%20165145.png?alt=media&amp;token=aed66ff9-8518-4087-9156-e01339029908" alt=""><figcaption></figcaption></figure>

#### 11)OpenAI Embeddings Custom

OpenAI API to generate embeddings for a given text.

Prerequisite

1. Go to OpenAI Platform\
   Link: <https://platform.openai.com/>
2. Sign in or create an account
3. Generate an API Key\
   Link: <https://platform.openai.com/api-keys>

Setup

THub

1. Embeddings > drag OpenAI Embeddings Custom node
2. Connect Credential > click Create New
3. Paste the OpenAI API Key in the credential
4. Enter Model Name\
   Example: custom embedding model name
5. Voila 🎉, you have created OpenAI Embeddings Custom node in THub

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FLoy79qSR9iGMJssxszdz%2FScreenshot%202024-07-04%20164801.png?alt=media&amp;token=bb443732-4554-472d-99ff-9a7cbcca0339" alt=""><figcaption></figcaption></figure>


# Graph

A Graph is a canvas where you can assemble various nodes to define the flow of data and operations. Each node represents a distinct operation, such as data input, processing,decision-making,or output.

**1)Neo4j**

The Neo4j node allows THub to interact with Neo4j, a leading graph database that stores data as nodes and relationships. This integration is particularly beneficial for applications requiring understanding of complex relationships, such as recommendation systems, fraud detection, and semantic search.[GitHub](https://github.com/FlowiseAI/Flowise/issues/1237?utm_source=chatgpt.com)

***

#### Key Features

* **Graph-Based Retrieval**: Utilizes Cypher queries to fetch data based on intricate relationships, enabling more nuanced data retrieval compared to traditional databases.[GitHub](https://github.com/FlowiseAI/Flowise/issues/1237?utm_source=chatgpt.com)
* **Vector Search Capabilities**: Neo4j can function as a vector store, allowing similarity searches alongside traditional graph queries.
* **Integration with LangChain**: Aligns with LangChain's support for Neo4j, facilitating seamless incorporation into existing AI pipelines.[GitHub](https://github.com/FlowiseAI/Flowise/issues/1237?utm_source=chatgpt.com)
* **Support for Retrieval-Augmented Generation (RAG)**: Combines graph data retrieval with language models to generate contextually rich responses.

***

#### Configuration Requirements

To set up the Neo4j node in THub, you'll need:

* **Neo4j Connection Details**: Database URI, username, and password.
* **Cypher Queries**: Custom queries to retrieve the desired data from your graph database.
* **Optional**: Vector index configurations if leveraging vector search capabilities.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6wwhThoGAS4bwITcmoge%2Fimage.png?alt=media&amp;token=692eef68-e4d6-4922-b066-3b5cf4b1c4d3" alt="" width="213"><figcaption></figcaption></figure>


# 🧠Large Language Models(LLM)

LLMs are advanced AI systems designed to understand and generate human language. They are trained on vast amount of data and can perform a variety of language-related tasks with impressive accuracy.

#### **Features**

•   Natural Language Processing (NLP): LLMs can understand, interpret, and generate human language.

•   Contextual Understanding: They can grasp the context of conversations or text, providing relevant responses.

•   Multilingual Capabilities: Many LLMs support multiple languages, broadening their applicability.

•   Scalability: These models can handle a wide range of applications, from chatbots to complex data analysis.

#### **Applications**

•  Chatbots and Virtual Assistants: Enhance customer service by providing accurate and timely responses.

•   Content Creation: Assist in generating articles, reports, and other written content.

•   Translation Services: Improve the accuracy and efficiency of translating text between languages.

•    Data Analysis: Aid in interpreting and summarizing large datasets.

#### 1)AWS Bedrock

The **AWS Bedrock** LLM node integrates Amazon's fully managed foundation model service into THub, allowing users to leverage a wide range of AI models — including Amazon Titan, Anthropic Claude, and Meta Llama — within their workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FEfQhErDqaypJ4L4ggeMp%2Fimage.png?alt=media&amp;token=fc5c2c4a-788b-4d8a-9a1e-ad8d54cae4cf" alt=""><figcaption></figcaption></figure>

#### **Setup Requirements:**

To configure this node, you'll need the following:

* **AWS Credential**: An IAM user or role with `bedrock:InvokeModel` permission.
* **Region**: The AWS region where Bedrock is enabled on your account.
* **Model Name**: The foundation model you want to invoke (e.g. `amazon.titan-tg1-large`).
* **Custom Model Name** *(optional)*: The ARN of a fine-tuned or custom model if you've provisioned one in Bedrock.

#### **Key Features:**

* Access multiple foundation model providers (Amazon, Anthropic, Meta, AI21) from a single node.
* Native AWS IAM authentication — no separate API key management required.
* Supports custom and fine-tuned models via model ARN.
* Cache toggle to reduce repeated API calls for identical prompts.

#### **Use Cases:**

* Summarising documents and reports
* Answering questions over enterprise data
* Calling child flows with AI-generated output
* SQL Q\&A and data analysis
* Web scraping Q\&A

#### 2)Azure OpenAI

The **Azure OpenAI** LLM node integrates Microsoft Azure's hosted OpenAI service into THub, allowing users to leverage GPT-4, GPT-3.5, and other OpenAI models within their workflows — with enterprise-grade compliance and data residency.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FhYiWOYeHfBFHYHDijYEb%2Fimage.png?alt=media&amp;token=542fe795-976d-402d-8b43-42bf114e9a51" alt=""><figcaption></figcaption></figure>

#### **Setup Requirements:**

To configure this node, you'll need the following:

* **Connect Credential**: An Azure OpenAI credential containing your Azure endpoint URL and API key.
* **Model Name**: Your Azure **deployment name** — the name you gave the model when deploying it in the Azure portal (e.g. `text-davinci-003`).
* **Temperature** *(optional)*: Controls response randomness. Range `0.0` to `2.0`. Default is `0.9`.

#### **Key Features:**

* Uses OpenAI's GPT models hosted entirely within your Azure subscription.
* Data stays within your chosen Azure region — meets enterprise compliance and data residency requirements.
* Billed through your existing Azure account.
* Cache toggle to reuse responses for repeated prompts.

#### **Use Cases:**

* Interacting with APIs
* Multiple document Q\&A
* Calling child flows
* Data summarisation and transformation
* SQL Q\&A

#### 3)Cohere

The **Cohere** LLM node integrates Cohere's enterprise language models into THub, allowing users to leverage Cohere's suite of instruction-following and NLP models within their workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6Bmj0mG0lh6yJiMQAaBZ%2Fimage.png?alt=media&amp;token=87c2caf4-3259-4013-9eb7-bfb9f6f4e657" alt=""><figcaption></figcaption></figure>

#### **Setup Requirements:**

To configure this node, you'll need the following:

* **Connect Credential**: A Cohere API key from your Cohere dashboard.
* **Model Name**: The Cohere model to use (e.g. `command`, `command-r`, `command-r-plus`).
* **Temperature** *(optional)*: Controls response randomness. Range `0.0` to `1.0`. Default is `0.7`.
* **Max Tokens** *(optional)*: Maximum length of the generated response. Leave blank to use the model's default.

#### **Key Features:**

* Purpose-built models for enterprise NLP tasks — summarisation, classification, and generation.
* `command-r-plus` supports complex multi-step reasoning and long documents.
* Lightweight `command-light` model for fast, cost-efficient tasks.
* Cache toggle to reuse responses for repeated prompts.

#### **Use Cases:**

* Document summarisation
* Text classification and tagging
* Multiple document Q\&A
* Data upsertion
* Web scraping Q\&A

#### 4)GoogleVertex AI

The **Google Vertex AI** LLM node integrates Google Cloud's managed AI platform into THub, allowing users to leverage Google's PaLM 2 and Gemini foundation models within their workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FDEZUuHYfw4Suu9iGERla%2Fimage.png?alt=media&amp;token=7e4a97b4-e060-4e75-92c8-1d6229f5da4a" alt=""><figcaption></figcaption></figure>

#### Setup Requirements:

To configure this node, you'll need the following:

* **Connect Credential**: A Google Cloud service account JSON key with the **Vertex AI User** role (`roles/aiplatform.user`).
* **Model Name**: The Vertex AI model to invoke (e.g. `text-bison`, `gemini-pro`).
* **Temperature** *(optional)*: Controls response randomness. Range `0.0` to `1.0`. Default is `0.7`.

#### **Key Features:**

* Access Google's PaLM 2 and Gemini model families from a single node.
* Runs within your GCP project — billed through Google Cloud.
* `gemini-pro` supports extended context and stronger reasoning tasks.
* Cache toggle to reuse responses for repeated prompts.

#### **Use Cases:**

* Calling child flows
* Interacting with APIs
* SQL Q\&A
* Multiple document Q\&A
* Data upsertion

#### 5)Ollama

The **Ollama** LLM node integrates a locally hosted Ollama instance into THub, allowing users to run open-source foundation models entirely within their own infrastructure — with no data sent to external APIs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXDX6su8e4y3blWFNHxUo%2Fimage.png?alt=media&amp;token=70ae4a5b-bfaf-44f1-b83f-6e4b48ac5c81" alt=""><figcaption></figcaption></figure>

#### **Setup Requirements:**

To configure this node, you'll need the following:

* **Base URL**: The address where your Ollama server is running (default: `http://localhost:11434`).
* **Model Name**: The name of the model you have pulled locally (e.g. `llama3`, `mistral`, `phi3`). Run `ollama list` in your terminal to see available models.
* **Temperature** *(optional)*: Controls response randomness. Range `0.0` to `1.0`. Default is `0.9`.

#### **Key Features:**

* Fully self-hosted — no data leaves your infrastructure.
* No per-token API costs; runs on your own hardware.
* Supports a wide range of open-source models: Llama 3, Mistral, Phi-3, Gemma, Code Llama, and more.
* Cache toggle to reduce local inference overhead for repeated prompts.

#### **Use Cases:**

* Privacy-sensitive document Q\&A
* Offline and air-gapped workflow automation
* Web scraping Q\&A
* SQL Q\&A
* Data upsertion

#### 6)OpenAI

The **OpenAI** LLM node integrates OpenAI's API directly into THub, allowing users to leverage GPT-4, GPT-4o, GPT-3.5, and other flagship models within their workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F9MNmljjZDnaFO4ujOs1R%2Fimage.png?alt=media&amp;token=f4d296c1-c44f-4cd7-a76d-84ea701026ef" alt=""><figcaption></figcaption></figure>

#### **Setup Requirements:**

To configure this node, you'll need the following:

* **Connect Credential**: An OpenAI API key from your OpenAI account.
* **Model Name**: The OpenAI model to use (e.g. `gpt-4o`, `gpt-3.5-turbo`, `gpt-3.5-turbo-instruct`).
* **Temperature** *(optional)*: Controls response randomness. Range `0.0` to `2.0`. Default is `0.7`.

#### **Key Features:**

* Direct access to OpenAI's full model lineup — GPT-4o, GPT-4 Turbo, GPT-3.5, and legacy completion models.
* Simplest setup among all LLM nodes — just an API key and model name.
* Supports both chat models (`gpt-4o`, `gpt-3.5-turbo`) and legacy completion models (`gpt-3.5-turbo-instruct`).
* Cache toggle to reuse responses for repeated prompts.

#### **Use Cases:**

* Calling child flows
* Interacting with APIs
* Multiple document Q\&A
* SQL Q\&A
* Data upsertion
* Web scraping Q\&A


# 💾Memory

Memory allows you to chat with AI as if AI has the memory of previous conversations.

Human: hi I am bob

AI: Hello Bob! It's nice to meet you. How can I assist you today?

Human: what's my name?

AI: Your name is Bob, as you mentioned earlier.

Under the hood, these conversations are stored in arrays or databases, and provided as context

to LLM. For example:

You are an assistant to a human, powered by a large language model trained by OpenAI.

Whether the human needs help with a specific question or just wants to have a conversation about a particular topic, you are here to assist.

Current conversation:

{history}

&#x20;

**Separate conversations for multiple users**

**UI & Embedded Chat**

By default, UI and Embedded Chat will automatically separate different users conversations. This is done by generating a unique **chatId** for each new interaction. That logic is handled under the hood by THub.

**Prediction API**

You can separate the conversations for multiple users by specifying a unique **sessionId**

1\.     For every memory node, you should be able to see a input parameter **Session ID**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRvG1FB75mj29gL1Cyxnh%2Fimage.png?alt=media&amp;token=a8373222-3e89-4fe9-85b1-08be1fb3e427" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRokQcmtSMo5W6h65qoSo%2Fimage.png?alt=media&amp;token=1269f085-d3ab-4ae6-944d-9746bcf1e00d" alt=""><figcaption></figcaption></figure>

In the `/api/v1/prediction/{your-chatflowid}` POST body request, specify the **sessionId** in **overrideConfig**<br>

{

&#x20;   "question": "hello!",

&#x20;   "overrideConfig": {

&#x20;       "sessionId": "user1"

&#x20;   }

}

&#x20;\
**Message API**

`·`       GET `/api/v1/chatmessage/{your-chatflowid}`

&#x20;

·       DELETE `/api/v1/chatmessage/{your-chatflowid}`

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F7DyweO6rYOKVaBhfJxHm%2Fimage.png?alt=media&amp;token=82af4271-7848-4c29-91dd-31c10aaadeca" alt=""><figcaption></figcaption></figure>

All conversations can be visualized and managed from UI as well:

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FbOAlXLG69vBQbgoH8LEc%2Fimage.png?alt=media&amp;token=eb7ffdda-55a4-435f-8c62-53a3acc7d545" alt=""><figcaption></figcaption></figure>

For OpenAI Assistant, [Threads](https://docs.flowiseai.com/integrations/langchain/memory/threads) will be used to store conversations.

#### 1)Buffer Memory

The Buffer Memory node stores the entire conversation history in memory and makes it available for the model during interactions.

#### Key Features:

• Complete Conversation Storage: Stores all messages from the conversation without trimming.\
• Context Preservation: Helps the model maintain full context across the interaction.\
• Simple Integration: Easy to use with chat models and agents.\
• Real-Time Updates: Continuously updates memory as the conversation progresses.

#### Setup Requirements:

1. Add the Buffer Memory node to the canvas.
2. No mandatory configuration is required.
3. Optionally configure Additional Parameters if needed.
4. Connect the memory node to a chat model or agent.

#### Use Cases:

• Applications requiring full conversation history.\
• Chatbots that depend on complete context understanding.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F8ZKNUQmnSNZAilKOhZlv%2Fimage.png?alt=media&amp;token=0eaa6142-9400-44a7-a5ef-efed09e5ecc2" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6I2Ya614pJUaj2v5hw22%2Fimage.png?alt=media&amp;token=ac664751-a7c5-4b6d-9d09-641646867c9b" alt=""><figcaption></figcaption></figure>

#### 2)Buffer Window Memory

The Buffer Window Memory node stores only a fixed number of recent messages instead of the entire conversation.

#### Key Features:

• Limited Context Storage: Stores only the latest messages based on defined window size.\
• Memory Control: Prevents excessive memory usage.\
• Improved Performance: Reduces token usage by limiting context.\
• Configurable Window Size: Allows control over how many messages are retained.

#### Setup Requirements:

1. Add the Buffer Window Memory node to the canvas.
2. Set the Size parameter (number of messages to retain).
3. Configure Additional Parameters if required.
4. Connect the node to a chat model or agent.

#### Use Cases:

• Applications needing only recent context.\
• Systems where token optimization is important.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FUPVWIqTw3Fioso3cStls%2Fimage.png?alt=media&amp;token=d7e8cc74-c716-4a26-a02c-55f8671118c9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6YbprcPKLpp2cXSqEBVD%2Fimage.png?alt=media&amp;token=8c926695-6ed9-4176-86ac-7ad09533ded4" alt=""><figcaption></figcaption></figure>

#### 3)Conversation Summary Buffer Memory

The Conversation Summary Buffer Memory node summarizes past conversations and maintains a compressed version of the interaction.

#### Key Features:

• Summarized Memory Storage: Stores condensed summaries instead of full conversation.\
• Token Optimization: Reduces token usage significantly.\
• Context Retention: Maintains important information through summaries.\
• Dynamic Updates: Continuously updates summaries as conversation evolves.

#### Setup Requirements:

1. Add the Conversation Summary Buffer Memory node to the canvas.
2. Connect a Chat Model for generating summaries.
3. Set the Max Token Limit for summary size.
4. Configure Additional Parameters if required.
5. Connect the node to a chat model or agent.

#### Use Cases:

• Long conversations requiring memory efficiency.\
• Applications needing balance between context and performance.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F975dCSGvpNSsDXfF7VgT%2Fimage.png?alt=media&amp;token=453fdd24-cf62-4832-ae2c-016cc824a847" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpYBUc37kcgCOHEigRVUX%2Fimage.png?alt=media&amp;token=2af7d1fc-820b-4b2a-b355-3c9ffbb7f34a" alt=""><figcaption></figcaption></figure>

#### 4)Conversation Summary Memory

The Conversation Summary Memory node maintains a summarized version of the conversation to efficiently manage long interactions.

#### Key Features:

• Summarized Context: Stores compressed summaries instead of full conversations.\
• Token Efficiency: Reduces token usage while retaining key information.\
• Continuous Updating: Updates summaries dynamically as the conversation grows.\
• Improved Performance: Enables handling of long conversations efficiently.

#### Setup Requirements:

1. Add the Conversation Summary Memory node to the canvas.
2. Connect a Chat Model for generating summaries.
3. Configure Additional Parameters if required.
4. Connect the node to a chat model or agent.

#### Use Cases:

• Long-running conversations with limited token usage.\
• Applications requiring summarized context instead of full history.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FY7349xwBeCgNhd9BkeQh%2Fimage.png?alt=media&amp;token=9e8adeb6-69cf-4f27-9241-3b2cedde7e4e" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F8HoCXzPrT2IuMrKPV0cn%2Fimage.png?alt=media&amp;token=cf96b715-9989-450e-9cf4-4482f16f42df" alt=""><figcaption></figcaption></figure>

#### 5)DynamoDB Chat Memory

The DynamoDB Chat Memory node stores conversation history in AWS DynamoDB for persistent and scalable memory.

#### Key Features:

• Persistent Storage: Stores chat history in DynamoDB across sessions.\
• Scalable Architecture: Supports large-scale applications.\
• Cloud Integration: Seamlessly integrates with AWS services.\
• Reliable Data Storage: Ensures durability and availability of conversation data.

#### Setup Requirements:

1. Create a DynamoDB table in AWS.
2. Note the Table Name, Partition Key, and Region.
3. Add the DynamoDB Chat Memory node to the canvas.
4. Connect Credential > provide AWS credentials.
5. Enter Table Name and Partition Key.
6. Select Region.
7. Configure Additional Parameters if required.

#### Use Cases:

• Applications requiring persistent chat history.\
• Cloud-based scalable chatbot systems.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FKznSyamCkrvDgDMOIE64%2FScreenshot%202024-07-08%20115940.png?alt=media&amp;token=8f9f3b9e-4d4a-4c31-9517-bd089d21652f" alt=""><figcaption></figcaption></figure>

#### **6)Mem0 Memory Node**

The **Mem0** node integrates THub with Mem0, a memory system designed to provide persistent memory capabilities for AI chatflows.

#### **Key Features:**

* **Persistent Memory Storage**: Mem0 offers persistent memory storage for THub chatflows, ensuring that conversation history is retained across sessions.
* **Seamless Integration**: It integrates seamlessly with existing THub templates and is compatible with various LLM nodes.
* **Custom Configurations**: Supports custom memory configurations, allowing developers to tailor memory settings to specific needs
* **Performance Advantages**: According to Mem0, their system achieves 26% higher accuracy than OpenAI Memory, 91% lower latency, and 90% token savings.&#x20;

#### **Setup Requirements:**

1. **Flowise Installation**: Ensure Flowise is installed (NodeJS >= 18.15.0 required).
2. **Access Flowise UI**: Navigate to the THub UI at `http://localhost:3000`.
3. **Mem0 API Key**: Obtain your Mem0 API key from the Mem0 dashboard.
4. **Integration**: Replace the default Buffer Memory with Mem0 Memory in your Flowise chatflow.

#### **Use Cases:**

* Applications requiring long-term memory retention across user sessions.
* Scenarios where efficient memory usage and low latency are critical.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCLaKdhQSTGLD2a3NSmVt%2Fimage.png?alt=media&amp;token=2c624e7a-da75-4c1d-a58d-037daf85cbaa" alt=""><figcaption></figcaption></figure>

#### 7)MongoDB Atlas Chat Memory

&#x20; The MongoDB Atlas Chat Memory node stores conversation data in MongoDB Atlas for persistent and flexible memory management.

#### Key Features:

• Persistent Storage: Stores chat data in MongoDB Atlas.\
• Flexible Schema: Supports dynamic data structures.\
• Cloud Database Integration: Works with MongoDB Atlas clusters.\
• Scalable and Reliable: Handles large volumes of conversation data.

#### Setup Requirements:

1. Create a MongoDB Atlas cluster.
2. Create a Database and Collection.
3. Obtain connection credentials.
4. Add the MongoDB Atlas Chat Memory node to the canvas.
5. Connect Credential > provide MongoDB connection details.
6. Enter Database Name and Collection Name.
7. Configure Additional Parameters if required.

#### Use Cases:

• Applications needing persistent and flexible storage.\
• Chatbots requiring scalable database-backed memory.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxKAjJWy8fyBDtoHuM7Ol%2FScreenshot%202024-07-08%20115953.png?alt=media&amp;token=4be9d895-4325-4ba5-89e3-0a0080fe9427" alt=""><figcaption></figcaption></figure>

#### 8)Redis-Backed Chat Memory

The Redis-Backed Chat Memory node stores conversation history in Redis for fast and efficient memory access.

#### Key Features:

• In-Memory Storage: Uses Redis for fast data access.\
• Persistent Option: Can persist data depending on Redis configuration.\
• Low Latency: Provides quick read and write operations.\
• Scalable Usage: Suitable for high-performance applications.

#### Setup Requirements:

1. Set up a Redis instance.
2. Add the Redis-Backed Chat Memory node to the canvas.
3. Connect Credential > provide Redis connection details.
4. Configure Additional Parameters if required.

#### Use Cases:

• Real-time chat applications.\
• Systems requiring fast memory access.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FGYrqCGnkgOT2jyhZI2b5%2FScreenshot%202024-07-08%20120102.png?alt=media&amp;token=e60ec6d2-c5a2-4458-a8dc-294d5b71deb8" alt=""><figcaption></figcaption></figure>

#### 9)Upstash Redis-Backed Chat Memory

The Upstash Redis-Backed Chat Memory node uses Upstash Redis (serverless) to store and manage chat memory.

#### Key Features:

• Serverless Redis: Uses Upstash for managed Redis services.\
• High Availability: Reliable cloud-based memory storage.\
• Fast Retrieval: Optimized for quick data access.\
• Easy Integration: Simple setup with REST URL.

#### Setup Requirements:

1. Create an Upstash Redis database.\
   Link: <https://console.upstash.com/>
2. Copy the Upstash Redis REST URL.
3. Add the Upstash Redis-Backed Chat Memory node to the canvas.
4. Connect Credential if required.
5. Paste the Upstash Redis REST URL.
6. Configure Additional Parameters if needed.

#### Use Cases:

• Serverless chat applications.\
• Cloud-based memory storage solutions.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXLWjZyXudJDZvVC7eFdB%2Fimage.png?alt=media&amp;token=1f21e396-f4aa-4830-afbd-780c75981cda" alt=""><figcaption></figcaption></figure>

#### **10)Zep Memory**

[Zep](https://github.com/getzep/zep) is long-term memory store for LLM applications. It stores, summarizes, embeds, indexes, and enriches LLM app / chatbot histories, and exposes them via simple, low-latency APIs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fxq1IK9Kd9tv9bQXpjs9o%2FScreenshot%202024-07-08%20120127.png?alt=media&amp;token=dfc050ae-abbf-4ce7-a95d-8212e637c321" alt=""><figcaption></figcaption></figure>

**Guide to Deploy Zep to Render**

You can easily deploy Zep to cloud services like [Render](https://render.com/), [Flyio](https://fly.io/). If you prefer to test it locally, you can also spin up a docker container by following their [quick guide](https://github.com/getzep/zep#quick-start).

In this example, we are going to deploy to Render.

1\.     Head over to [Zep Repo](https://github.com/getzep/zep#quick-start) and click **Deploy to Render**

**2.**     This will bring you to Render's Blueprint page and simply click **Create New Resources**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FMsiGFHYpsnHpsTb1rGOY%2Fimage.png?alt=media&amp;token=4ad14711-9168-41c5-8be5-90afa79811ec" alt=""><figcaption></figcaption></figure>

&#x20;3.When the deployment is done, you should see 3 applications created on your dashboard.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRCHfsv0l5syVkxQoIBWf%2Fimage.png?alt=media&amp;token=3aac5f5d-4826-438e-99fa-ea48dcefb5d9" alt=""><figcaption></figcaption></figure>

4.Simply click the first one called **zep** and copy the deployed URL

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FTms9AHXEf7QT2rReiAGv%2Fimage.png?alt=media&amp;token=6aeafa34-6274-4f62-abbc-116448f5872b" alt=""><figcaption></figcaption></figure>

**Guide to Deploy Zep to Digital Ocean (via Docker)**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FrW0O8A8jjYoE3tm4uuap%2Fimage.png?alt=media&amp;token=bffad98b-77d7-4983-b5da-0900b97e3458" alt=""><figcaption></figcaption></figure>

**Use in THub UI**

1\.     Back to THub application, simply create a new canvas or use one of the templates from marketplace. In this example, we are going to use **Simple Conversational Chain**

2\.     Replace **Buffer Memory** with **Zep Memory**. Then replace the **Base URL** with the Zep URL you have copied above

3\.     Save the chatflow and test it out to see if conversations are remembered.

4\.     Now try clearing the chat history, you should see that it is now unable to remember the previous conversations.

&#x20;

**Zep Authentication**

Zep allows you to secure your instance using JWT authentication. We'll be using the `zepcli` command line utility [here](https://github.com/getzep/zepcli/releases).

1\. Generate a secret and the JWT token

After downloaded the ZepCLI:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FM3dP0N4Hp8YIxYbHGSQ5%2Fimage.png?alt=media&amp;token=e583c372-b5d2-44b0-b537-beaa41e2c946" alt=""><figcaption></figcaption></figure>

&#x20;You will first get your SECRET Token:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FHgfDENWLIUcdGJNPeDpt%2Fimage.png?alt=media&amp;token=474ff2dd-c7fa-45e1-835e-9021621258e4" alt=""><figcaption></figcaption></figure>

Then you will get JWT Token:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FLtMY1RunacrYbUvzj5k4%2Fimage.png?alt=media&amp;token=7756649e-1060-4cc1-bd31-540ceebe3300" alt=""><figcaption></figcaption></figure>

2\. Configure Auth environment variables

Set the following environment variables in your Zep server environment:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIMy0pPW454PCV4dIRa8v%2Fimage.png?alt=media&amp;token=ff51d230-5b84-40a0-bba8-2655db30dba1" alt=""><figcaption></figcaption></figure>

1\.     Configure Credential on THub

Add a new credential for Zep, and put in the JWT Token in the API Key field:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXdWsbfow78WxkwmD9sM4%2Fimage.png?alt=media&amp;token=08b997fa-df86-4928-82da-cc0e8ca00b17" alt=""><figcaption></figcaption></figure>

3\.     Use the created credential on Zep node

In the Zep node Connect Credential, select the credential you have just created. And that's it!

**Threads**

Threds is only used when an OpenAI Assistant is being used. It is a conversation session between an Assistant and a user.Threads store messages and automatically handle truncation to fit content into a model’s context.

**Separate conversations for multiple users**

**UI & Embedded Chat**

By default, UI and Embedded Chat will automatically separate threads for multiple users conversations. This is done by generating a unique **chatId** for each new interaction.That logic is handled under the hood by THub.

**Prediction API**

POST /`api/v1/prediction/{your-chatflowid}`, specify the **chatId** . Same thread will be used for

the same chatId

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FHQ3cZVsvzPCIrlJ3EpW6%2Fimage.png?alt=media&amp;token=6a7d929d-f9a6-4a29-9905-339e76163278" alt=""><figcaption></figcaption></figure>

Message API

·       GET `/api/v1/chatmessage/{your-chatflowid}`

`·`       DELETE `/api/v1/chatmessage/{your-chatflowid}`

&#x20;

You can also filter via **chatId -** `/api/v1/chatmessage/{your-chatflowid}?chatId={your-chatid}`

All conversations can be visualized and managed from UI as well:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FUZrXgnWResiPgTwI6ZHm%2Fimage.png?alt=media&amp;token=481fd6f7-d466-4343-8112-4372fe929500" alt=""><figcaption></figcaption></figure>

#### 10) Zep Memory - Cloud Node

The Zep Memory (Cloud) node uses Zep’s managed cloud service to store and manage chat memory.

Key Features:

• Managed Service: No need to maintain infrastructure.\
• Persistent Memory: Stores conversations across sessions.\
• Scalable Storage: Handles large-scale applications.\
• Easy Integration: Quick setup using credentials.

Setup Requirements:

1. Sign up for Zep Cloud.\
   Link: <https://www.getzep.com/>
2. Obtain API credentials.
3. Add the Zep Memory - Cloud node to the canvas.
4. Connect Credential > provide API key/details.
5. Configure Additional Parameters if required.

Use Cases:

• Production-grade applications.\
• Scalable AI chat systems.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F9YWRf2bdwyYP07FVKGRT%2Fimage.png?alt=media&amp;token=b743c241-6ed3-4fb8-944b-08976cb0abd3" alt=""><figcaption></figcaption></figure>


# 🛡️Moderation

Moderation nodes are used to check whether the input or output consists of harmful or inappropriate content.

#### 1)OpenAI Moderation

The OpenAI Moderation node checks whether input content complies with OpenAI safety policies before sending it to the model.

#### Setup Requirements:

1. Go to [OpenAI Platform](https://platform.openai.com/)
2. Generate [API Key](https://platform.openai.com/api-keys)
3. Add OpenAI Moderation node to the canvas
4. Connect Credential > paste OpenAI API Key
5. Configure Error Message if required

#### Use Cases:

• Filtering unsafe or restricted content\
• Ensuring compliance with AI safety policies

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FaSguruslThowqD6k6HXd%2Fimage.png?alt=media&amp;token=4bd15249-f3cb-4cf4-aef8-02e6e49fd7f9" alt=""><figcaption></figcaption></figure>

#### 2)Simple Prompt Moderation

The Simple Prompt Moderation node checks input against a deny list and blocks restricted content before sending it to the model.

#### Setup Requirements:

1. Add Simple Prompt Moderation node to the canvas
2. Enter Deny List (restricted words or phrases)
3. Connect Chat Model if required
4. Configure Error Message

#### Use Cases:

• Blocking specific keywords or instructions\
• Preventing prompt injection or misuse

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FwDBppIQWKZRFoRQGD6aH%2Fimage.png?alt=media&amp;token=1c7544e8-fb60-492c-9912-b3e64abfd899" alt=""><figcaption></figcaption></figure>


# 👥Multi Agents

multiple independent actors powered by language models connected in a specific way.

Each agent can have its own prompt, LLM, tools, and other custom code to best collaborate with the other agents.

That means there are two main considerations when thinking about different multi-agent workflows:

1. What are the multiple independent agents?
2. How are those agents connected?

This thinking lends itself incredibly well to a graph representation, such as that provided by `langgraph`. In this approach, each agent is a node in the graph, and their connections are represented as an edge. The control flow is managed by edges, and they communicate by adding to the graph's state.

Note: a very related concept here is the concept of *state machines,* which we explicitly called out as a category of cognitive architectures. When viewed in this way, the independent agent nodes become the states, and how those agents are connected is the transition matrices. [Since a state machine can be viewed as a labeled, directed graph](https://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L26-MoreGraphs/state_mach.html?ref=blog.langchain.dev#:~:text=State%20machine%20as%20a%20graph,labeled%20with%20the%20corresponding%20events.), we will think of these things in the same way.

### Benefits of multi-agent designs <a href="#benefits-of-multi-agent-designs" id="benefits-of-multi-agent-designs"></a>

"If one agent can't work well, then why is multi-agent useful?"

* Grouping tools/responsibilities can give better results. An agent is more likely to succeed on a focused task than if it has to select from dozens of tools.
* Separate prompts can give better results. Each prompt can have its own instructions and few-shot examples. Each agent could even be powered by a separate fine-tuned LLM!
* Helpful conceptual model to develop. You can evaluate and improve each agent individually without breaking the larger application.

Multi-agent designs allow you to divide complicated problems into tractable units of work that can be targeted by specialized agents and LLM programs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFCyE1KKRTKE9vrw1juRq%2Fimage.png?alt=media&amp;token=2b710e91-5a8d-435c-a77a-13f9f936008e" alt=""><figcaption></figcaption></figure>

#### 1) Principal Agent Node

The Principal Agent node acts as the main controller that coordinates and manages multiple specialist agents.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FBZjC6erbnHsPhbVFB5YU%2Fimage.png?alt=media&amp;token=4c258013-5b11-4740-9143-3472a39badd6" alt=""><figcaption></figcaption></figure>

#### Key Features:

• Central Coordination: Controls the flow between multiple agents.\
• Tool Integration: Can use tools through connected chat models.\
• Memory Support: Maintains context using agent memory.\
• Input Moderation: Filters inputs before processing.

#### Setup Requirements:

1. Add the Principal Agent node to the canvas.
2. Connect Tool Calling Chat Model.
3. Connect Agent Memory if required.
4. Connect Input Moderation if needed.
5. Enter Supervisor Name.
6. Configure Additional Parameters if required.

#### Use Cases:

• Multi-agent workflows.\
• Complex task orchestration using multiple agents.

#### 2) Specialist Agent Node

The Specialist Agent node performs specific tasks assigned by the Principal Agent using tools and prompts.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FYqeA2TFM5dJBTmAzHVTc%2Fimage.png?alt=media&amp;token=4d5adbc3-b0f6-4097-84f8-19f8183d6acf" alt=""><figcaption></figcaption></figure>

#### Key Features:

• Task-Specific Execution: Handles specialized tasks.\
• Tool Usage: Can use connected tools for task completion.\
• Prompt-Based Behavior: Works based on defined worker prompt.\
• Iterative Processing: Supports multiple iterations for better results.

#### Setup Requirements:

1. Add the Specialist Agent node to the canvas.
2. Connect required Tools.
3. Connect Supervisor (Principal Agent).
4. Connect Tool Calling Chat Model.
5. Enter Worker Name.
6. Define Worker Prompt.
7. Configure Format Prompt Values if required.
8. Set Max Iterations.

#### Use Cases:

• Research assistants.\
• Task-specific automation agents.\
• Multi-agent collaboration systems.


# 🔀Output Parsers

An output parser acts as a translator between LLMs and your application. It takes the raw, unformatted text generated by an LLM and transforms it into a more usable format suited for your needs.

#### 1)CSV Output Parser

Parse the output of an LLM call as a comma-separated list of values.&#x20;

#### Key Features:

• CSV Formatting: Converts responses into comma-separated values\
• Structured Output: Ensures consistent tabular data format\
• Autofix Option: Automatically fixes minor formatting issues

#### Setup Requirements:

1. Add CSV Output Parser node to the canvas
2. Enable Autofix if required
3. Connect the parser to a chat model output

#### Use Cases:

• Exporting data in CSV format\
• Tabular data generation

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FtpJpUwm92n9Lhy8ZeOpt%2FScreenshot%202024-07-08%20121840.png?alt=media&amp;token=3622add7-5943-4300-a5cd-85c120ad1f43" alt=""><figcaption></figcaption></figure>

#### **2)Custom List Output Parser**

Parse the output of an LLM call as a list of values.&#x20;

#### Key Features:

• Custom Formatting: Define list length and separator\
• Flexible Output: Supports different list structures\
• Autofix Option: Handles formatting inconsistencies

#### Setup Requirements:

1. Add Custom List Output Parser node to the canvas
2. Set Length (number of items)
3. Define Separator (example: comma, newline)
4. Enable Autofix if required
5. Connect to model output

#### Use Cases:

• Generating lists from responses\
• Structured text formatting

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Faque7dIY7SYumyA14stv%2FScreenshot%202024-07-08%20121846.png?alt=media&amp;token=e69c8158-7764-473f-a694-c317c5653bfb" alt=""><figcaption></figcaption></figure>

#### 3)Structured Output Parser

Parse the output of an LLM call into a given (JSON) structure.

#### Key Features:

• Structured Data: Converts output into defined schema\
• Autofix Support: Fixes minor formatting issues\
• Consistent Responses: Ensures predictable output

#### Setup Requirements:

1. Add Structured Output Parser node to the canvas
2. Enable Autofix if required
3. Connect parser with model output

#### Use Cases:

• Structured response generation\
• API-ready outputs

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIjEpHXhWU3ttUtLWighR%2Fimage.png?alt=media&amp;token=627d2259-f0a2-4363-bd7b-94a11dc7071f" alt=""><figcaption></figcaption></figure>

#### 4)Advanced Structured Output Parser

Parse the output of an LLM call into a given structure by providing a Zod schema.

#### Key Features:

• JSON Schema Support: Uses schema for structured output\
• High Accuracy: Ensures correct format strictly\
• Autofix Option: Handles minor formatting errors

#### Setup Requirements:

1. Add Advanced Structured Output Parser node to the canvas
2. Enable Autofix if required
3. Provide Example JSON schema
4. Connect parser to model output

#### Use Cases:

• JSON-based applications\
• Data validation and structured responses

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FQXwnHwkbtKav7KAPd50z%2FScreenshot%202024-07-08%20121906.png?alt=media&amp;token=412d8c5e-17f2-47bc-b015-006abe1fc26a" alt=""><figcaption></figcaption></figure>


# 📝Prompts

A text input or instruction given to an AI model to guide its response. It serves as the context and directive for the AI, shaping the output by providing specific information, questions or tasks.

#### 1)Chat Prompt Template

The Chat Prompt Template is used to structure prompts using system and human messages for chat-based models.

#### Key Features:

• Role-Based Prompting: Supports system and human messages\
• Structured Input: Separates instructions and user input\
• Dynamic Values: Allows variable placeholders\
• LangChain Hub Support: Import predefined templates

#### Setup Requirements:

1. Add Chat Prompt Template node to the canvas
2. Enter System Message (instructions for model)
3. Enter Human Message (user input format)
4. Configure Format Prompt Values if required
5. Connect to chat model

#### Use Cases:

• Chatbot development\
• Role-based AI conversations

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FNyfYBhdsIiXUedRtMq1y%2Fimage.png?alt=media&amp;token=94528627-59e2-4a8c-a2b5-06e566949f47" alt=""><figcaption></figcaption></figure>

#### 2)Few Shot Prompt Template

Prompt template you can build with examples.

#### Key Features:

• Example-Based Learning: Uses input-output examples\
• Better Accuracy: Improves response quality\
• Flexible Formatting: Supports prefix and suffix\
• Custom Separators: Controls example formatting

#### Setup Requirements:

1. Add Few Shot Prompt Template node to the canvas
2. Enter Example Prompt
3. Add Examples (input-output pairs)
4. Define Prefix and Suffix
5. Set Example Separator
6. Select Template Format
7. Connect to model

#### Use Cases:

• Training-like prompting\
• Improving response consistency

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FJblZMVowzCVTQniiTuit%2Fimage.png?alt=media&amp;token=c825e833-6960-414a-aad9-8909a47614e2" alt=""><figcaption></figcaption></figure>

#### 3)Prompt Template

Schema to represent a basic prompt for an LLM.

#### Key Features:

• Dynamic Variables: Supports placeholders like {input}\
• Simple Prompting: Easy to configure\
• Reusable Templates: Can be reused across workflows\
• LangChain Hub Support: Import templates

#### Setup Requirements:

1. Add Prompt Template node to the canvas
2. Enter Template (with variables)
3. Configure Format Prompt Values
4. Connect to model

#### Use Cases:

• Basic prompt generation\
• Reusable AI workflows

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fxc63Qmd5h2XoNGizJ4i3%2Fimage.png?alt=media&amp;token=460dceff-381f-4e69-b956-7d557932aa40" alt=""><figcaption></figcaption></figure>


# 📊Record Managers

Record Managers keep track of your indexed documents, preventing duplicated vector embeddings in Vector Store.

When document chunks are upserting, each chunk will be hashed using [SHA-1](https://github.com/emn178/js-sha1) algorithm. These hashes will get stored in Record Manager. If there is an existing hash, the embedding and upserting process will be skipped.

In some cases, you might want to delete existing documents that are derived from the same sources as the new documents being indexed. For that, there are 3 cleanup modes for Record Manager:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpF2lrgB4I1p4OFUHgKsh%2Fimage.png?alt=media&amp;token=d397dc4b-02bf-4faa-8ab8-884915bc2da5" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpkvfkExrnjYLJRDuBFOm%2Fimage.png?alt=media&amp;token=1de3816b-6e24-4756-96a2-5cfa2e217448" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FriaP4458NSWVm1dKZCy6%2Fimage.png?alt=media&amp;token=0fec2b3a-ab7f-4f46-af08-e2b892d07a7c" alt=""><figcaption></figcaption></figure>

2. And have the following 2 documents:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F65iafha1RWvhLukhLkq5%2Fimage.png?alt=media&amp;token=4cfb1292-e0b9-4a58-8989-e84ac766f4dd" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FzWbnZqf7C4uV5bpwfJgB%2Fimage.png?alt=media&amp;token=f25906c0-e4f2-4236-88b2-9ed9875d5d46" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fy0jezedbLkTrBwBQxGig%2Fimage.png?alt=media&amp;token=2d275b76-e935-44a9-b6ab-af3e7beea920" alt=""><figcaption></figcaption></figure>

3. After an upsert, we will see 2 documents that are upserted:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdwoZ7Hm9nlGfk2xxETaj%2Fimage.png?alt=media&amp;token=6198f338-d52e-47ba-b8c6-30ae50149f34" alt=""><figcaption></figcaption></figure>

4.Now, if we delete the **Dog** document, and update **Cat** to **Cats**, we will now see the following:

![](https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F5A2moNMuvIFCFb0OBG6x%2Fimage.png?alt=media\&token=0aaeabb6-4b78-4f15-81a1-2ebfc73495c1)

·       The original **Cat** document is deleted

·       A new document with **Cats** is added

·       **Dog** document is left untouched

·       The remaining vector embeddings in Vector Store are **Cats** and **Dog**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FE7EDWqNThtHpBXFXrD8v%2Fimage.png?alt=media&amp;token=a53475dc-cdd7-44e2-be82-6415a827dabe" alt=""><figcaption></figcaption></figure>

Current available Record Managers are:

·       SQLite Record manager

·       MySQL Record manager

·       PostgresQL Record manager

&#x20;

#### 1)SQLite Record manager

The SQLite Record Manager stores records locally using SQLite database.

#### Key Features:

• Local Storage: Stores data on local system\
• Lightweight: No server required\
• Easy Setup: Minimal configuration needed\
• Fast Access: Suitable for small applications

#### Setup Requirements:

1. Add SQLite Record Manager node to the canvas
2. Configure Additional Parameters if required

#### Use Cases:

• Local development\
• Small-scale applications

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fe5nE9HQ9HC5mVtrO2SGI%2Fimage.png?alt=media&amp;token=b51f83b1-2397-4932-a4a5-36dec833ca7e" alt=""><figcaption></figcaption></figure>

#### 2)MySQL Record manager

The MySQL Record Manager stores and manages records using a MySQL database.

#### Key Features:

• Database Storage: Stores records in MySQL\
• Persistent Data: Retains data across sessions\
• Structured Storage: Uses relational database format\
• Scalable: Suitable for production applications

#### Setup Requirements:

1. Set up a MySQL database
2. Add MySQL Record Manager node to the canvas
3. Connect Credential > provide MySQL credentials
4. Enter Host, Database, and Port (default: 3306)
5. Configure Additional Parameters if required

#### Use Cases:

• Storing application data\
• Managing structured records in workflows

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FgVPtbjxEMQlbIfFB3sE1%2FScreenshot%202024-07-09%20104811.png?alt=media&amp;token=3d699cf3-074c-42e7-a327-2995cf918de2" alt=""><figcaption></figcaption></figure>

#### 3)PostgresQL Record manage

The Postgres Record Manager stores and manages records using a PostgreSQL database.

#### Key Features:

• Reliable Storage: Uses PostgreSQL database\
• Persistent Records: Maintains data across sessions\
• High Performance: Efficient for large datasets\
• Flexible Queries: Supports advanced querying

#### Setup Requirements:

1. Set up a PostgreSQL database
2. Add Postgres Record Manager node to the canvas
3. Connect Credential > provide PostgreSQL credentials
4. Enter Host, Database, and Port (default: 5432)
5. Configure Additional Parameters if required

#### Use Cases:

• Backend data storage\
• Large-scale applications

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FEs8yyXwWdvUSYQbTUNyZ%2FScreenshot%202024-07-09%20104825.png?alt=media&amp;token=b2a9e754-54ea-4675-804f-e0c5ea49ebfc" alt=""><figcaption></figcaption></figure>


# Retrieval-Augmented Generation

The Ultimate Guide to Retrieval-Augmented Generation (RAG)

**Introduction to RAG**

Retrieval-Augmented Generation (RAG) is revolutionizing artificial intelligence by enabling models to retrieve and incorporate external information in real time, ensuring responses that are coherent, factually accurate, and highly context-aware. By blending robust retrieval mechanisms with advanced generative capabilities, RAG enhances the quality and reliability of AI outputs across diverse applications.

RAG works by bridging the gap between static knowledge and dynamic data retrieval, empowering systems to respond to complex queries, address real-world challenges, and provide solutions grounded in the latest information. From customer support to research, decision-making, and beyond, RAG serves as a cornerstone for AI advancements.

**Classifications of RAG**

RAG can be classified into 18 techniques, each tailored to address specific challenges in information retrieval and response generation. These classifications highlight the versatility and adaptability of RAG systems, making them suitable for applications ranging from real-time support to knowledge-intensive decision-making.

**Below are the 18 RAG classifications, presented with their original descriptions.**

**1. Standard RAG**

Standard RAG is the foundation of retrieval-augmented generation. This method combines retrieval and generation by breaking down documents into manageable chunks for efficient information retrieval. Standard RAG aims to deliver quick response times, ideally around 1–2 seconds, which is suitable for real-time applications. By accessing external data sources, it can generate answers with enhanced quality, ensuring they are grounded in accurate and relevant information.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FD2dIPWWcsUf51hT9FJfo%2Fimage.png?alt=media&amp;token=dd1faf5d-ca0d-44d7-ad23-b1878fc6df7d" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Efficient information retrieval by chunking documents.
* Real-time response capability.
* Enhanced answer quality using external data.

**Best for:** Real-time customer support or FAQ bots.

**2. Corrective RAG**

Corrective RAG is designed to improve upon initial model outputs by identifying and correcting errors. This type of RAG operates through multiple passes, refining the response based on user feedback or additional verification steps. The iterative approach makes corrective RAG more precise and ensures that the generated responses meet higher accuracy and quality standards.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FKTOtc361s8VSmprz9ZAU%2Fimage.png?alt=media&amp;token=33b7b1c3-3451-4bb4-9ec7-78198108e6c1" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Multi-pass correction mechanism for error reduction.
* User feedback loop to enhance accuracy.
* Higher precision compared to standard RAG

**Best for:** Medical, legal, and other precision-focused applications.

3\. Speculative RAG

Speculative RAG takes a unique approach by utilizing a smaller, specialist model to draft responses, while a larger, generalist model verifies them for accuracy. This parallel drafting strategy enables fast response times, as multiple drafts are generated simultaneously, allowing the system to select the most accurate response. Speculative RAG is efficient in processing and reduces computational load by assigning complex tasks to specialized models.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FmhTeqTHOZZ6NgpsMIuND%2Fimage.png?alt=media&amp;token=ff92ab8e-6bef-4ad9-9fe1-a82d88a23111" alt=""><figcaption></figcaption></figure>

Key Features:

* Dual-model approach for drafting and verification.
* Parallel drafting for faster responses.
* Efficient processing through task specialization.

**Best for:** Rapid-response tools where speed and accuracy are paramount.

&#x20;

**4. Fusion RAG**

Fusion RAG integrates multiple retrieval methods and data sources to produce well-rounded responses. By leveraging a diverse set of information inputs, it provides comprehensive answers that are resilient to information gaps. Fusion RAG dynamically adjusts its retrieval strategies based on the context of each query, making it particularly adaptable to various information needs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAGmn1RRTKo3e3p4AlTM6%2Fimage.png?alt=media&amp;token=5b6fe9ff-1eee-4c95-aad9-3d1347a9cd64" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Integration of diverse data sources.
* Resilient response generation.
* Dynamic retrieval strategy adjustments.

**Best for:** Business intelligence and decision support tools.

&#x20;

**5. Agentic RAG**

Agentic RAG employs adaptive agents to make real-time adjustments in information retrieval, allowing for nuanced responses that accurately reflect user intent. Its modular design allows for easy integration of new data sources and features, making it a flexible choice for complex tasks. Agentic RAG is optimized for parallel processing, enabling agents to work concurrently to enhance performance on demanding queries.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FPpMi2hxKh1wCk1T9v3Ra%2Fimage.png?alt=media&amp;token=2aa409c2-4b1c-44b5-89f3-efbfebc9c588" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Adaptive agents for real-time adjustments.
* Modular design for integration and flexibility.
* Enhanced parallel processing capabilities.

**Best for:** Financial markets or any setting requiring quick adaptability.

&#x20;

**6. Self RAG**

Self RAG leverages the model's previous outputs as retrieval candidates, creating responses that are coherent and contextually consistent. By grounding answers in prior outputs, Self RAG improves contextual relevance and accuracy. It continuously refines its responses, adapting its retrieval approach to the evolving conversation, making it ideal for conversational AI applications.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fhoe8nAqGhKp2oVpQCurv%2Fimage.png?alt=media&amp;token=8f4ecc63-ab07-4bb3-8da3-7dc57cf57479" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Self-retrieval from prior outputs for consistency.
* Iterative refinement for improved coherence.
* Adaptive retrieval strategy in conversational contexts.

**Best for:** Conversational AI applications where context continuity is crucial.

&#x20;

**7. Graph RAG**

Graph RAG combines knowledge graphs with retrieval-augmented generation to enable structured information retrieval. This technique constructs a knowledge graph on-the-fly during retrieval, linking relevant entities and relationships. By providing language models with these structured subgraphs, Graph RAG enhances response accuracy and context relevance, making it particularly useful for applications in fields with complex data, such as healthcare and finance.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFS6NjanbqEL1Iyd92YLr%2Fimage.png?alt=media&amp;token=86b05f2a-ab32-41b3-addf-c2e2cfe73107" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Dynamic knowledge graph construction during retrieval.
* Entity linking for structured responses.
* Enhanced accuracy and relevance through graph-based grounding.

**Best for:** Intelligent chatbots in healthcare or finance that need to handle complex, structured data accurately.

&#x20;

**8. Adaptive RAG**

Adaptive RAG is designed to make real-time decisions about when to rely on internal model knowledge versus retrieving external data. This technique uses confidence scores to assess the necessity of retrieval and includes an “honesty probe” to reduce hallucinations, ensuring responses are grounded in the model’s actual knowledge. Adaptive RAG’s dynamic balancing reduces unnecessary retrievals, improving both efficiency and accuracy.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdwRPTrnHFbnRGLCq22om%2Fimage.png?alt=media&amp;token=21578a11-e8ac-40ef-a356-de368867e5be" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Dynamic balancing of internal and external knowledge retrieval.
* Confidence scoring and honesty probing for accuracy.
* Efficiency-focused by minimizing redundant retrievals.

**Best for:** Applications like real-time support systems where maintaining factual reliability is key.

&#x20;

**9. REALM (Retrieval-Augmented Language Model)**

REALM is a retrieval-augmented language model that retrieves relevant documents from large datasets, such as Wikipedia, to support model predictions. It uses masked language modeling for training, optimizing retrieval for better prediction accuracy. REALM employs Maximum Inner Product Search to efficiently find relevant documents among millions of candidates, making it highly effective for open-domain question-answering tasks.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FSPUQRnwnsw8dRuAgKouw%2Fimage.png?alt=media&amp;token=c34999f3-4fc6-4918-83c2-ab69ac4ff18e" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Document retrieval from extensive data sources.
* Trained with masked language modeling for improved accuracy.
* Efficient document search through Maximum Inner Product Search.

**Best for:** Open-domain question answering where accuracy from extensive datasets is critical.

&#x20;

**10. RAPTOR (Recursive Abstractive Processing for Tree-Organized Retrieval)**

RAPTOR organizes information into a hierarchical tree structure by clustering and summarizing text at multiple levels. This approach enables RAPTOR to retrieve responses at varying degrees of abstraction, allowing for both broad overviews and specific details. RAPTOR’s tree structure is ideal for handling complex question-answering tasks that require layered, in-depth responses.

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FWawCsUyD8RG0j08i6kRd%2Fimage.png?alt=media&amp;token=c68b74cd-6fed-40c0-b432-fd04e754a1e6" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Hierarchical tree structure for multi-level information retrieval.
* Broad-to-specific retrieval, combining high-level themes with detailed data.
* Flexible navigation through tree traversal and collapsed views.

**Best for:** Advanced research tools needing in-depth, layered responses.

&#x20;

**11. REFEED (Retrieval Feedback)**

REFEED enhances model responses by iteratively refining initial outputs based on retrieved feedback, without needing to fine-tune the model. This approach retrieves additional relevant documents to improve response quality and generates multiple answers, which are then ranked to select the most accurate. REFEED’s feedback mechanism provides continuous improvement, adapting responses to new information.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FtNKpjRRBJk5xLzSvXXS5%2Fimage.png?alt=media&amp;token=a20c362f-068d-41c8-8e93-09ed9bb4fa74" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Feedback-driven refinement without model fine-tuning.
* Multiple answer generation for improved retrieval accuracy.
* Ranking system that selects the best response based on feedback.

**Best for:** Applications that benefit from evolving responses, like news summarization or content recommendation systems.

&#x20;

**12. Iterative RAG**

Iterative RAG refines its retrieval process through multiple retrieval steps, adjusting each search based on feedback from previously selected documents. This multi-step approach uses a Markov decision process and reinforcement learning to improve retrieval accuracy over time. By maintaining an internal state, Iterative RAG optimizes future retrieval steps based on accumulated knowledge from prior iterations.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FJEjyvdKujieeWwnuhLHH%2Fimage.png?alt=media&amp;token=9239cdd4-4aec-45aa-aae5-57cd265bf6f0" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Multi-step retrieval process based on feedback.
* Reinforcement learning for improved retrieval decision-making.
* Internal state tracking for ongoing retrieval optimization.

**Best for:** Highly dynamic environments like real-time data analysis, where ongoing adjustments are crucial.

&#x20;

**13. REVEAL (Retrieval-Augmented Visual-Language Model)**

REVEAL enhances AI models by combining retrieval with reasoning and task-specific actions. This technique grounds its responses in real-world data to reduce errors and hallucinations, resulting in clear, human-like steps for task-solving. Its efficiency allows it to deliver high-quality results across various tasks, even with limited training examples. Additionally, REVEAL’s flexible design allows interactive adjustments, making models more controllable and responsive.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FPGEvb984zjQIhpDbN78e%2Fimage.png?alt=media&amp;token=04b7023f-69b4-4634-bb9a-8338230b9781" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Combines retrieval, reasoning, and task-specific actions.
* Minimizes hallucinations by grounding in real-world facts.
* Interactive adjustments enhance model control and responsiveness.

**Best for:** Real-world applications requiring transparent and controllable AI decision-making

&#x20;

**14. ReAct (Retrieval-Enhanced Action Generation)**

ReAct integrates reasoning with action generation, guiding the model through a sequence of observations, thoughts, and actions. Each step refines the model’s situational awareness, allowing it to adapt to real-time changes. By generating a “thought” that informs each action, ReAct enhances decision-making accuracy, ensuring that outputs align with logical, task-oriented goals.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fl01kL80G7LQplgvE86eS%2Fimage.png?alt=media&amp;token=4196f3e2-98f0-4d2a-8141-4eb8295e2b19" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Blends reasoning and action for dynamic responses.
* Situational awareness through context updates.
* Real-time adaptability to refine understanding and reduce errors.

**Best for:** Situational applications where logical decision-making and adaptability are essential.

&#x20;

&#x20;

**15. REPLUG (Retrieval Plugin)**

REPLUG is a flexible retrieval plugin that improves model predictions by retrieving relevant external information. It treats the language model as a “black box,” adding retrieved data to the input without altering the model itself. This approach reduces hallucinations and expands the model’s grasp of niche topics. The retrieval component can also be fine-tuned based on model feedback, further aligning with the language model’s needs.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FizAK00NfrTYBiLxWokNL%2Fimage.png?alt=media&amp;token=7d915c5f-0389-4082-8d67-03c3b9630bfd" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Flexible plugin design works with existing models without modification.
* Reduces hallucinations by integrating external knowledge.
* Fine-tunable retrieval for enhanced alignment with model outputs.

**Best for:** Expanding a model’s understanding of niche topics without retraining.

&#x20;

**16. Memo RAG (Memory-Augmented RAG)**

Memo RAG combines memory with retrieval to address complex queries effectively. A memory model generates an initial draft answer, which guides the search for additional data from external sources. This data is then refined by a powerful language model, which creates a comprehensive, final response. Memo RAG’s memory feature helps it manage ambiguous questions and efficiently process large datasets across varied tasks

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fy5ljCnBQEHKvE0VqhKJG%2Fimage.png?alt=media&amp;token=f0840b56-e3eb-445a-b627-d0a48d7b0fee" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Integrates memory with retrieval for enhanced context handling.
* Draft answer generation guides targeted retrieval.
* Efficiently manages large, complex datasets.

**Best for:** Handling ambiguous queries that require a blend of memory and retrieval.

&#x20;

**17. ATLAS (Attention-Based Retrieval-Augmented Sequence Generation)**

ATLAS enhances language models by retrieving external documents to improve task accuracy, especially in question-answering. It uses a dual-encoder retriever to locate top-relevant documents, which are processed by a Fusion-in-Decoder model. By relying on dynamic retrieval rather than memorization, ATLAS maintains effectiveness across knowledge-intensive tasks, and its document index can be updated without retraining.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FBi3kEZ6j6AELBbBoEEwz%2Fimage.png?alt=media&amp;token=1d4ff6a3-74b9-42e0-b8b6-071836c905ef" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Dual-encoder retriever finds top documents for queries.
* Fusion-in-Decoder model integrates query and document data.
* Supports knowledge updates without requiring retraining.

**Best for:** Knowledge-intensive tasks that benefit from dynamic and current data retrieval.

&#x20;

**18. RETRO (Retrieval-Enhanced Transformer)**

RETRO splits text inputs into smaller chunks and retrieves matching information from a large text database using pre-trained BERT embeddings. These retrieved chunks enrich the context of the input, enabling better predictions without increasing the model’s size significantly. RETRO’s efficient cross-attention integration with external knowledge makes it highly effective for large-scale tasks, such as question-answering and text generation.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FVjFj52LatCtQmuDZlKpX%2Fimage.png?alt=media&amp;token=711fff55-9eb4-4d72-a681-3a9a2e269188" alt=""><figcaption></figcaption></figure>

**Key Features:**

* Retrieves similar chunks using BERT embeddings for enhanced context.
* Efficient chunked cross-attention integration.
* Scales efficiently without heavy computational demands.

**Best for:** Large-scale applications that require efficient, enriched context without significant resource increases.


# 🔍Retrivers

AI components that efficiently fetch relevant data from knowledge bases in response to queries, supporting natural language tasks like question-answering and information retrieval.

#### **1)AWS Bedrock Knowledge Base Retriever**

Purpose: Retrieves relevant documents or chunks from a Knowledge Base created and managed in Amazon Bedrock.

**How It Works:**

* Uses the Bedrock service's native vector store and retrieval tools.
* Typically paired with a Bedrock-supported embedding model (like Titan or Cohere).

**Use Case:** Enterprise RAG applications hosted entirely on AWS infrastructure for scalability and security.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FZpMQiGTAEMYbSfowUDM1%2Fimage.png?alt=media&amp;token=0c2baf42-ebbf-4de9-946a-e6662cff38c5" alt="" width="175"><figcaption></figcaption></figure>

#### &#x32;**)Custom Retriever**

Purpose: Allows you to define your own logic for retrieving documents from a vector database or custom source.

**How It Works:**

* You can implement custom search logic (e.g., specific filters, hybrid retrieval, advanced ranking).
* Often used when built-in retrievers (like Pinecone or Qdrant) don't meet specific needs.

**Use Case:** When you need fine-grained control over how data is retrieved—e.g., combining metadata filtering, hybrid ranking, or integrating proprietary databases.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FM3iefFTDrYJT4LjtczgD%2Fimage.png?alt=media&amp;token=90180e84-8a7d-4f7d-8afd-bd2959ebdc7f" alt="" width="235"><figcaption></figcaption></figure>

#### 3)Embeddings Filter Retriever

A document compressor that uses embeddings to drop documents unrelated to the query.

Purpose: Allows filtering of retrieved documents based on embedding similarity threshold from a vector store.

**How it Works:**

• Uses embeddings to compare query similarity with stored documents.\
• Applies a similarity threshold to filter out less relevant results.\
• Returns only documents that meet the defined similarity score.

**Use Cases:**

• Improving search accuracy by removing low-relevance results.\
• Fine-tuning retrieval quality in RAG systems.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FgSDlagj8T61SQ1mqRq3h%2FScreenshot%202024-07-09%20105437.png?alt=media&amp;token=f30fc874-af1e-444c-8b37-209c28331ca0" alt=""><figcaption></figcaption></figure>

#### 4)HyDE Retriever

Use HyDE retriever to retrieve from a vector store.

Purpose: Enhances retrieval by generating a hypothetical document using an LLM before performing the search.

**How it Works:**

• Takes the user query and generates a hypothetical answer using a language model.\
• Converts this generated text into embeddings.\
• Uses these embeddings to retrieve more relevant documents from the vector store.

**Use Cases:**

• Improving retrieval for vague or short queries.\
• Boosting performance in semantic search and RAG pipelines.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FN63p3FLud1XKftyxq79E%2FScreenshot%202024-07-09%20105448.png?alt=media&amp;token=8cc29cae-c10d-421c-bb7d-881141da752d" alt=""><figcaption></figcaption></figure>

#### 5)LLM Filter Retriever

Iterate over the initially returned documents and extract, from each, only the content that is relevant to the query.

Purpose: Filters retrieved documents using a language model to ensure only relevant results are returned.

**How it Works:**

• Retrieves documents from a vector store.\
• Uses an LLM to evaluate and filter the results.\
• Keeps only documents that are contextually relevant to the query.

**Use Cases:**

• Removing irrelevant or noisy results.\
• Improving answer quality in AI applications.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FORZ5Fg8Y1QLdLszW8NAI%2FScreenshot%202024-07-09%20105501.png?alt=media&amp;token=c12247f0-c602-4794-a268-4da4e3230644" alt=""><figcaption></figcaption></figure>

#### 6) Multi Query Retriever

Purpose: Improves retrieval by generating multiple variations of a query to fetch more comprehensive results.

**How it Works:**

• Uses an LLM to generate multiple query variations from a single input.\
• Executes each query against the vector store.\
• Combines results to provide a broader and more accurate context.

**Use Cases:**

• Handling ambiguous or complex queries.\
• Increasing recall in retrieval-based systems.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FuWptD1Lt5ijdeOYvo7Xr%2Fimage.png?alt=media&amp;token=6ee2847e-6908-4819-ba4d-59556b506e12" alt=""><figcaption></figcaption></figure>

#### 7)Prompt Retriever

Store prompt template with name & description to be later queried by MultiPromptChain.

Purpose: Retrieves predefined prompts to guide the model in generating structured and domain-specific responses.

**How it Works:**

• Uses stored prompt templates based on a given prompt name.\
• Applies system message and description to guide the model.\
• Provides structured instructions for consistent output generation.

**Use Cases:**

• Domain-specific assistants (e.g., physics, medical, legal).\
• Reusing predefined prompts across workflows.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FOhSfsitpqwfmlLsdXBAn%2FScreenshot%202024-07-09%20105514.png?alt=media&amp;token=84660205-e232-4ee1-99b2-05228839cfef" alt=""><figcaption></figcaption></figure>

#### 8)Reciprocal Rank Fusion Retriever

Reciprocal Rank Fusion to re-rank search results by multiple query generation.

Purpose: Combines results from multiple retrieval methods to improve overall ranking and relevance.

**How it Works:**

• Retrieves results using a vector store retriever.\
• Uses multiple ranking strategies.\
• Applies Reciprocal Rank Fusion (RRF) to merge and re-rank results.\
• Returns the most relevant combined results.

**Use Cases:**

• Improving retrieval accuracy.\
• Combining multiple retrieval strategies.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FvkFxHuffzO2I54dveXMG%2FScreenshot%202024-07-09%20105530.png?alt=media&amp;token=b8a27384-2de9-4256-b4f6-2c5a04afbede" alt=""><figcaption></figcaption></figure>

&#x20;

#### **9)Similarity Score Threshold Retriever**

Return results based on the minimum similarity percentage.

Purpose: Filters retrieved documents based on a minimum similarity score to ensure only relevant results are returned.

**How it Works:**

• Performs similarity search on a vector store.\
• Calculates similarity scores for retrieved documents.\
• Filters out results below the defined threshold.\
• Returns only high-relevance documents.

**Use Cases:**

• Removing low-quality or irrelevant results.\
• Fine-tuning retrieval precision in RAG systems.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FrXzOLQJzedaptc5bJDFr%2FScreenshot%202024-07-09%20105542.png?alt=media&amp;token=4de40982-48f7-4c1f-bef8-2d0cb1856c14" alt=""><figcaption></figcaption></figure>

#### 10)Vector Store Retriever

Store vector store as retriever to be later queried by Multi Retrieval QA Chain.

Purpose: Retrieves relevant documents directly from a vector store based on similarity search.

**How it Works:**

• Takes a query and converts it into embeddings.\
• Searches the vector store for similar embeddings.\
• Retrieves the most relevant documents.\
• Uses retriever name and description for identification.

**Use Cases:**

• Basic semantic search.\
• Retrieving documents for RAG pipelines.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCJdiMv3y7s7HhgEJeCOY%2FScreenshot%202024-07-09%20105552.png?alt=media&amp;token=38ad2b4f-fbfc-4a4c-8715-12c86b1ab6d7" alt=""><figcaption></figcaption></figure>

#### 11)Voyage AI Rerank Retriever

Voyage AI Rerank indexes the documents from most to least semantically relevant to the query.

Purpose: Improves retrieval quality by re-ranking documents using Voyage AI models.

**How it Works:**

• Retrieves initial results from a vector store.\
• Sends results along with the query to Voyage AI rerank model.\
• Reorders documents based on relevance.\
• Returns the most relevant ranked results.

**Use Cases:**

• Improving search result accuracy.\
• Enhancing ranking in retrieval pipelines.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FYckARqyEhP9AAS7r8I33%2FScreenshot%202024-07-09%20105603.png?alt=media&amp;token=a8f1408f-af63-4ff2-ade6-894872e3d0cb" alt=""><figcaption></figcaption></figure>


# Sequential Agent

The **Sequential Agent** in THub is a component within the AgentFlow V1 architecture designed to execute a series of tasks in a predetermined order. This setup is particularly useful for workflows that require a structured sequence of operations, such as data collection, processing, and response generation.

#### 1) **Agent Node**

The **Agent Node** serves as the central decision-making component within a workflow. It leverages a Large Language Model (LLM) to process inputs, access tools, and retrieve information from knowledge bases to generate context-aware responses.

**Key Features:**

* **Tool Integration**: Configure which tools the agent can utilize.
* **Knowledge Access**: Connect to document stores or vector databases for information retrieval.
* **Memory Management**: Enable or disable memory to consider past interactions.
* **Flow State Updates**: Modify the workflow's runtime state (`$flow.state`) during execution.

**Inputs**: Data from prior nodes or initial triggers.

**Outputs**: Agent-generated responses, either as plain text or structured JSON.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F64mFS8Q96veR9aiXGkqj%2Fimage.png?alt=media&amp;token=1250a958-b798-49d6-b982-e40cccce5999" alt=""><figcaption></figcaption></figure>

#### **2)Condition Node**

The **Condition Node** introduces deterministic branching logic, allowing the workflow to diverge based on specified conditions.

**Key Features:**

* **Conditional Evaluation**: Assess input values using logical operators (e.g., equals, contains).
* **Branching Paths**: Direct the workflow along different routes based on evaluation results.

**Inputs**: Data to be evaluated.

**Outputs**: Branches corresponding to condition outcomes (e.g., true or false).

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FoNaIhUILdVsR0EjsqTFJ%2Fimage.png?alt=media&amp;token=88f83d4a-00a7-4037-b608-4b9b1f93b603" alt=""><figcaption></figcaption></figure>

#### **3)Condition  Agent**

The Condition agent  is an agent that uses a large language model (LLM) to decide which actions to take based on specific conditions or criteria. This means the agent's behavior isn't solely determined by a predefined workflow, but it uses its reasoning capabilities to select the most appropriate course of action based on the current state and input.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRrYox6PjVU1IlqCpuZcy%2Fimage.png?alt=media&amp;token=7caf00c2-9939-4688-a03b-a9e7d325e350" alt=""><figcaption></figcaption></figure>

#### **4)Custom JS Function Node**

The **Custom JS Function Node** allows the execution of bespoke JavaScript code within the workflow, enabling complex data transformations or integrations.

**Key Features:**

* **Custom Logic**: Implement specific operations not covered by standard nodes.
* **Access to Flow Context**: Utilize variables like `$flow.state`, `$flow.input`, and custom-defined variables.
* **Flow State Updates**: Modify the workflow's runtime state based on function outcomes.

**Inputs**: Defined input variables and access to flow context.

**Outputs**: String value returned by the executed JavaScript function.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FoqOZxlm4rWo21ngQzag8%2Fimage.png?alt=media&amp;token=5148aff6-8909-4373-b43a-30cdd80d9e71" alt=""><figcaption></figcaption></figure>

#### **5)END Node**

The **END Node** signifies the termination point of a workflow or a specific branch within it.

**Key Features:**

* **Final Output**: Deliver a concluding message to the user, which can be static or dynamically generated.
* **Workflow Termination**: No further nodes are processed beyond this point.

**Inputs**: Message content from previous nodes or flow state.

**Outputs**: None; this node concludes the execution path.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fxp3wcg9F4u5OUcfYE5nn%2Fimage.png?alt=media&amp;token=71e54a31-c9cf-4e9b-a2cb-1ce10c348bef" alt="" width="158"><figcaption></figcaption></figure>

#### 6) **Execute Flow Node**

The **Execute Flow Node** enables the invocation of another complete THub Chatflow or AgentFlow from within the current workflow, promoting modular design.

**Key Features:**

* **Sub-Workflow Execution**: Trigger separate, pre-existing workflows.
* **Input Passing**: Provide initial inputs to the invoked workflow.
* **Flow State Updates**: Incorporate outputs from the executed sub-flow into the current workflow's state.

**Inputs**: Execution signal and input data for the sub-flow.

**Outputs**: Results returned by the executed sub-flow.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FNqzqL1AXnqRO8NjgiIEN%2Fimage.png?alt=media&amp;token=0a311c8a-a7a4-4c0a-b449-0877af50c2ef" alt="" width="161"><figcaption></figcaption></figure>

#### 7)**LLM Node**

The **LLM Node** provides direct access to a configured Large Language Model for executing AI tasks, such as data extraction or content generation.

**Key Features:**

* **Structured Output**: Configure the LLM to return responses in a specific JSON schema.
* **Flow State Updates**: Store LLM outputs in the workflow's runtime state for downstream use.

**Inputs**: Data from the workflow's initial trigger or preceding nodes.

**Outputs**: LLM-generated responses, either as plain text or structured data.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FC2PqdOGLNLCpGEHSSJLz%2Fimage.png?alt=media&amp;token=a6925b93-0228-425b-9137-503566e0650c" alt="" width="161"><figcaption></figcaption></figure>

#### **8)Loop Node**

The **Loop Node** introduces controlled cycles within the workflow, enabling iterative processes where a sequence of nodes is executed multiple times based on defined conditions.

**Key Features:**

* **Iteration Control**: Define the maximum number of loop iterations to prevent infinite cycles.
* **Loop Back Target**: Specify the node to which the workflow should return after each iteration.

**Inputs**: Execution signal to activate the loop.

**Outputs**: Redirects execution flow back to the specified node.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FN52mdmEk4qYNlTopAyHl%2Fimage.png?alt=media&amp;token=a31ea6c5-032f-4e52-abd2-2a49a8bc8820" alt="" width="158"><figcaption></figcaption></figure>

#### **9)Start Node**

The **Start Node** is the designated entry point for initiating any AgentFlow V2 workflow execution.

**Key Features:**

* **Input Configuration**: Determine how the workflow is triggered, either by chat input or a submitted form.
* **Flow State Initialization**: Define the initial key-value pairs for the workflow's runtime state.
* **Memory Settings**: Configure whether to consider past messages from the conversation thread.

**Inputs**: Initial data that triggers the workflow.

**Outputs**: Passes along the initial input data and the initialized Flow State to the first operational node.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Faa5wV6G7SWpNr5OEAJre%2Fimage.png?alt=media&amp;token=7db6e316-dade-4f04-aae6-d626a2df6e1f" alt="" width="236"><figcaption></figcaption></figure>

#### 10) State Node

The **State Node** provides a mechanism for storing and managing intermediate data within the workflow, allowing information to be shared across different nodes.

**Key Features:**

• **Data Storage**: Stores intermediate values during workflow execution.\
• **State Persistence:** Maintains data across multiple steps in the flow.\
• **Flexible Usage:** Can store different types of data as required.\
• **Workflow Integration:** Enables smooth data sharing between nodes.

**Inputs:** Necessary data or values to be stored, usually coming from previous node outputs.

**Outputs:** Stored state data that can be accessed and used by subsequent nodes in the workflow.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FrKaKX4PiWCReySxXhyeX%2Fimage.png?alt=media&amp;token=e391863f-575f-4226-a48f-3d4b37bdb124" alt=""><figcaption></figcaption></figure>

#### 11) **Tool Node**

The **Tool Node** provides a mechanism for directly and deterministically executing a specific, pre-defined Flowise Tool within the workflow sequence.

**Key Features:**

* **Deterministic Execution**: Executes the selected tool without involving LLM reasoning for tool selection.
* **Input Argument Mapping**: Define how data from your workflow is supplied to the selected tool.
* **Flow State Updates**: Store the tool's output in the workflow's runtime state for use in subsequent nodes.

**Inputs**: Necessary data for the tool's arguments, sourced from previous node outputs or flow state.

**Outputs**: Raw output generated by the executed tool.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F5SUJSX2q23UzKyMrTt92%2Fimage.png?alt=media&amp;token=899c80d2-5c03-4a2d-9cba-f172ee3483bb" alt="" width="225"><figcaption></figcaption></figure>


# ✂️Text Splitters

When you want to deal with long pieces of text, it is necessary to split up that text into chunks.

&#x20;As simple as this sounds, there is a lot of potential complexity here. Ideally, you want to keep the semantically related pieces of text together. What "semantically related" means could depend on the type of text. This notebook showcases several ways to do that.

**At a high level, text splitters work as following:**

1\.     Split the text up into small, semantically meaningful chunks (often sentences).

2\.     Start combining these small chunks into a larger chunk until you reach a certain size (as measured by some function).

3\.     Once you reach that size, make that chunk its own piece of text and then start creating a new chunk of text with some overlap (to keep context between chunks).

**That means there are two different axes along which you can customize your text splitter:**

1\.     How the text is split

2\.     How the chunk size is measured

#### 1)Character Text Splitter

Splits only on one type of character (defaults to "\n\n").

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FfE2U5RKdkubo5TVrWF49%2FScreenshot%202024-07-09%20110455.png?alt=media&amp;token=5c7b41f7-53d0-434e-98ae-5e40cbad0a87" alt=""><figcaption></figcaption></figure>

#### 2)Code Text Splitter

Split documents based on language-specific syntax.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F2EuEKeuBt8UEfDltdB6k%2FScreenshot%202024-07-09%20110508.png?alt=media&amp;token=333c1a4d-b7e7-4a2d-9036-1a636f08484d" alt=""><figcaption></figcaption></figure>

#### 3)Html-To-Markdown Text Splitter

Converts Html to Markdown and then split your content into documents based on the Markdown headers.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FYWZrGl7nRjURtObN3W2j%2FScreenshot%202024-07-09%20110519.png?alt=media&amp;token=9dfdf034-6f0f-4221-93d7-53b78c688400" alt=""><figcaption></figcaption></figure>

#### 4)Markdown Text Splitter

Split your content into documents based on the Markdown headers.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FuMRNsuQTxaBQVIiffh3t%2FScreenshot%202024-07-09%20110533.png?alt=media&amp;token=70d1d4cc-ac14-4a91-a160-2fd04cea279c" alt=""><figcaption></figcaption></figure>

#### 5)Recursive Character Text Splitter

Split documents recursively by different characters - starting with "\n\n", then "\n", then " ".

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FZYc62yawcwJjIcXAK3K0%2FScreenshot%202024-07-09%20110542.png?alt=media&amp;token=9df4f31b-a9aa-4ee8-b6e3-8996435bf14e" alt=""><figcaption></figcaption></figure>

#### 6)Token Text Splitter

Splits a raw text string by first converting the text into BPE tokens, then split these tokens into chunks and convert the tokens within a single chunk back into text.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FuwqdCjSMMeLwtlzCN2zS%2FScreenshot%202024-07-09%20110549.png?alt=media&amp;token=8e3085b7-5981-424b-a5e7-8cebc2353007" alt=""><figcaption></figcaption></figure>

#### **7)Recursive JSON Text Splitter**

The Recursive JSON Text Splitter operates by traversing the JSON data recursively, ensuring that each chunk adheres to specified size constraints. It maintains the hierarchical structure of the JSON, which is crucial for preserving the context and relationships within the data.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIWKrytqWiWE5wbqqMHPq%2Fimage.png?alt=media&amp;token=63686c38-9e3a-4c7c-8ac5-63b61cbef8fa" alt="" width="158"><figcaption></figcaption></figure>


# 🛠️Tools

Tools are functions that agents can use to interact with the world. These tools can be generic utilities (e.g. search), other chains, or even other agents.

#### 1)BraveSearch API

Wrapper around BraveSearch API - a real-time API to access Brave search results.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F3nZ6q4ZyjTNx2KOH9BPg%2FScreenshot%202024-07-09%20111018.png?alt=media&amp;token=656b41d0-5c01-44ff-9b53-4f28770f9e69" alt=""><figcaption></figcaption></figure>

#### 2)Calculator

Perform calculations on response.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FE8IeDRpRMcCfFgCJxueA%2FScreenshot%202024-07-09%20111028.png?alt=media&amp;token=8b17aca4-033c-4f45-9356-ae7f2196d614" alt=""><figcaption></figcaption></figure>

#### 3)Chain Tool

Use a chain as allowed tool for agent.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCgRxfnLW10XUkG4d0lu7%2FScreenshot%202024-07-09%20111040.png?alt=media&amp;token=d9a5f393-160e-4883-831a-fe1a453357eb" alt=""><figcaption></figcaption></figure>

**4)Custom Tools**

&#x20;Function usually takes in structured input data. Let's say you want the LLM to be able to call Airtable Create Record [API](https://airtable.com/developers/web/api/create-records), the body parameters has to be structured in a specific way.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxeEiTmfyNnLLfBNHcALO%2FScreenshot%202024-07-09%20111100.png?alt=media&amp;token=553b4b65-bdcc-4fee-b8b8-bf8aa8cb2425" alt=""><figcaption></figcaption></figure>

#### 5)Google Custom Search

Wrapper around Google Custom Search API - a real-time API to access Google search results.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FskroZtaOb7OnaA0SO3yp%2FScreenshot%202024-07-09%20111108.png?alt=media&amp;token=a4ab790a-63af-4c0b-9768-160502ef01b5" alt=""><figcaption></figcaption></figure>

#### 6)OpenAPI Toolkit

Load OpenAPI specification.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FEo1KXZTF0GHSXJomNDJW%2FScreenshot%202024-07-09%20111118.png?alt=media&amp;token=64da5a13-2d60-44cf-95f2-921fbf4bd8c2" alt=""><figcaption></figcaption></figure>

#### 7)Read File

Read file from disk.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIBbqwM9AYLFEP4lE3fAG%2FScreenshot%202024-07-09%20111136.png?alt=media&amp;token=bf5fb279-1a7a-4f53-8691-1608bf1ca358" alt=""><figcaption></figcaption></figure>

#### 8)Retriever Tool

Use a retriever as allowed tool for agent.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRp2qE4pA56HrNzwhWNTV%2FScreenshot%202024-07-09%20111155.png?alt=media&amp;token=218e51d8-18d1-440b-add9-0bd4f087cd03" alt=""><figcaption></figcaption></figure>

#### 9)SearchApi

Real-time API for accessing Google Search data.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FWFQELFn8mnMH6zAS9OqA%2FScreenshot%202024-07-09%20111205.png?alt=media&amp;token=48816d91-cc22-4b24-b28c-9259ebfbedad" alt=""><figcaption></figcaption></figure>

#### 10)Serp API

Wrapper around SerpAPI - a real-time API to access Google search results.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FRzquIbKCC0z1yHxNvDNf%2FScreenshot%202024-07-09%20111213.png?alt=media&amp;token=2c4e40f6-9b44-4155-8eab-9cadc5319e12" alt=""><figcaption></figcaption></figure>

#### 11)Serper

Wrapper around Serper.dev - Google Search API.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FTdysOyWimS7VHMWqaLnK%2FScreenshot%202024-07-09%20111220.png?alt=media&amp;token=f1ba1b31-5a88-4798-988d-7afaaa8cda3c" alt=""><figcaption></figcaption></figure>

#### 12)Web Browser

Gives agent the ability to visit a website and extract information.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FhoQ9qWNv9tjL3G7MS46A%2FScreenshot%202024-07-09%20111227.png?alt=media&amp;token=cb858136-38b5-4d43-b019-cb76a6534c7a" alt=""><figcaption></figcaption></figure>

#### 13)Write File

Write file to disk.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F5X9SoIPVsfdDLWmKGowH%2FScreenshot%202024-07-09%20111237.png?alt=media&amp;token=0b3b19c7-19be-4d18-bc32-ed0fef0d34ca" alt=""><figcaption></figcaption></figure>

**14)Code Interpreter by E2B**

The Code Interpreter by E2B node integrates an open-source runtime for executing AI-generated code in secure cloud sandboxes. For instance, when a user requests a bar graph of data, the LLM generates the necessary Python code, which is then executed by E2B. The output, including images, code, and text, is returned to the LLM for final processing before display.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FSIEu2GNHuDLloEx99YXH%2Fimage.png?alt=media&amp;token=1d1a67e7-041d-49cf-8703-0316660667a8" alt="" width="225"><figcaption></figcaption></figure>

**15)Chatflow Tool**

Execute another chatflow and get the response.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FhxpeQMBwBmIxbio3idK4%2Fimage.png?alt=media&amp;token=1363ed20-d171-476c-8859-b97e0b6a9d4b" alt=""><figcaption></figcaption></figure>

**16)Request Get**

Execute HTTP GET requests.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FA6FapkQMmjj7uKvOzaV5%2Fimage.png?alt=media&amp;token=027207d4-c58f-4f98-b4a5-76849cf868a3" alt=""><figcaption></figcaption></figure>

**17)Request Post**

Execute HTTP POST requests.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F0q1mmhx6HbjjTwJe63W2%2Fimage.png?alt=media&amp;token=1b2fc449-d771-45ef-9611-8e495ad1ab84" alt=""><figcaption></figcaption></figure>

**18)Chain Tool**

The **Chain Tool** node allows you to incorporate existing chains as tools within your agent workflows. This enables modular design by reusing predefined sequences of operations.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FjsIHsOzNHIXVNEaNqlqz%2Fimage.png?alt=media&amp;token=83f66373-c262-4c4b-9e2d-bdc15df88799" alt="" width="265"><figcaption></figcaption></figure>

**19)Composio**

The **Composio** node facilitates integration with over 200 applications, enhancing the capabilities of your AI agents by allowing them to interact with various external tools and services.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAKZanWdHFKmlHJgihwIx%2Fimage.png?alt=media&amp;token=0360660a-c18d-46b2-ab66-f73f6b21718e" alt="" width="263"><figcaption></figcaption></figure>

**20)Exa Search**

The **Exa Search** node serves as a wrapper around the Exa Search API, a search engine fully designed for use by LLMs. This integration enables your agents to perform searches and retrieve relevant information efficiently.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FQ26VPTOrfsj2SwOu4UOq%2Fimage.png?alt=media&amp;token=74bcaa21-ee29-413e-a8e5-c7678510ec92" alt="" width="263"><figcaption></figcaption></figure>

**21)SearXNG**

The **SearXNG** node integrates the SearXNG metasearch engine, allowing your agents to perform searches across multiple sources. To use this node, drag and drop it onto the canvas, fill in the Base URL (e.g., <http://localhost:8080>), and specify other search parameters as needed.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FZaGlSh4WcgKvLxwbABrj%2Fimage.png?alt=media&amp;token=5820a47d-94c5-45a4-a0a9-70fac802d32d" alt="" width="276"><figcaption></figcaption></figure>

**22)Tavily API**

The **Tavily API** node is a wrapper around the TavilyAI API, providing real-time, accurate search results tailored for LLMs and Retrieval-Augmented Generation (RAG) applications. To set it up, add the Tavily API node from the LangChain > Tools section and create credentials for Tavily.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F0NiATvqKMs7eOFor9zXy%2Fimage.png?alt=media&amp;token=31477e58-7d67-4377-89b9-b244e773ea96" alt="" width="241"><figcaption></figcaption></figure>

**23)** **Wolfram Alpha**

The **Wolfram Alpha** node connects your agents to Wolfram Alpha's computational intelligence engine, enabling them to perform complex calculations and access a vast repository of knowledge.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FehRi445ZGbrUxmpkOuZp%2Fimage.png?alt=media&amp;token=f18f063f-0543-4fee-b58b-cca4e153f2b2" alt=""><figcaption></figcaption></figure>


# 🔌Tools (MCP)

The **Tools (MCP)** node in THub enables seamless integration of external tools and services into your AI workflows via the Model Context Protocol (MCP). This functionality allows AI agents to dynamically access and utilize a wide range of capabilities, enhancing their performance and adaptability.

\
**1)Brave Search MCP**

This node integrates the Brave Search API, enabling your AI agent to perform real-time web searches and retrieve up-to-date information from the internet.

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fsr1RZHfu9VCxi0iHYPh9%2Fimage.png?alt=media&amp;token=20c0f99b-af4f-4a21-83a7-8210a559bfcf" alt="" width="221"><figcaption></figcaption></figure>

&#x20;

**2)Custom MCP**

Allows you to connect to any custom MCP server, facilitating integration with bespoke tools or services tailored to your specific needs. This provides flexibility in extending your agent's functionalities beyond predefined integrations.

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FDyQaAhMKnj5ZyTd8Dej3%2Fimage.png?alt=media&amp;token=f1b649f1-338c-47df-b191-5ac4df7b54a9" alt="" width="223"><figcaption></figcaption></figure>

&#x20;

**3)GitHub MCP**

Connects your AI agent to GitHub, enabling interactions such as retrieving repository information, managing issues, or analyzing codebases. This is particularly useful for development-related workflows.

<br>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FGdkzC3aoVwzJgoMTLaWs%2Fimage.png?alt=media&amp;token=a9a68bfa-7e3b-4b23-ba50-403f434526ea" alt="" width="226"><figcaption></figcaption></figure>

**4)PostgreSQL MCP**

&#x20;Integrates with a PostgreSQL database using the pgvector extension, allowing your agent to perform operations like upserting embedded data and executing similarity searches. This is beneficial for applications requiring structured data storage and retrieval.

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FJvOYqZpYLAFyLYNqQgGY%2Fimage.png?alt=media&amp;token=818f3005-c479-472d-84b5-4a8ff5903707" alt="" width="219"><figcaption></figcaption></figure>

&#x20;

**5)Sequential Thinking MCP**

Implements a structured approach to problem-solving by breaking down complex tasks into manageable steps. This node enhances your agent's reasoning capabilities, making it suitable for scenarios that require step-by-step analysis.

<br>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FVf5q3qrOaNHykGCJUqTc%2Fimage.png?alt=media&amp;token=bd9c89dd-ae32-4da5-b213-100c7952df73" alt="" width="222"><figcaption></figcaption></figure>

**6)Slack**

Integrates your AI agent with Slack, allowing it to send and receive messages within Slack channels. This facilitates real-time communication and automation within team collaboration environments

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FVjYfTzEjTHZdWebzWJlq%2Fimage.png?alt=media&amp;token=2a8d53c2-4cd2-4686-bcc0-1bad44bbcf6c" alt="" width="222"><figcaption></figcaption></figure>


# 🗃️Vector Stores

A vector store is a specialized database for storing and retrieving high-dimensional numerical vectors. It efficiently manages and indexes these vectors for fast similarity searches.

#### 1)AstraDB

Setup

1\.     Register an account on [AstraDB](https://astra.datastax.com/)

2\.     Login to portal. Create a Database

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FwEDRGWYCAdZNOMfsiyIS%2Fimage.png?alt=media&amp;token=7c3191d7-16a2-4a63-bb43-92e72dac6fb2" alt=""><figcaption></figcaption></figure>

3. Choose Serverless (Vector), fill in the Database name, Provider, and Region

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F8mV4NVDASajoiyiL05hI%2Fimage.png?alt=media&amp;token=9f66c376-d330-4b8d-9a5f-380abde1ab34" alt=""><figcaption></figcaption></figure>

4. After database has been setup, grab the API Endpoint, and generate Application Token

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FpWYbOJo8U4RFfIsvbv9P%2Fimage.png?alt=media&amp;token=1e3f9b27-eda5-421d-89ce-450a71ed3765" alt=""><figcaption></figcaption></figure>

5. Create a new collection, select the desired dimenstion and similarity metric:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6uAAZGbhVPTmfV3NuPSa%2Fimage.png?alt=media&amp;token=b9ab1fac-a436-418c-946b-defeec8b2137" alt=""><figcaption></figcaption></figure>

6\.     Back to THub canvas, drag and drop Astra node. Click **Create New** from the Credentials dropdown:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FiLmdBEjGN8P1ZZr4oECP%2FScreenshot%202024-07-09%20112552.png?alt=media&amp;token=8e8d7148-4023-4d36-97b7-51060f581ddf" alt=""><figcaption></figcaption></figure>

7. Specify the API Endpoint and Application Token:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FTbnYGZY9mayIWup5qbNx%2Fimage.png?alt=media&amp;token=d9c01104-a722-4ae3-ae80-e1e6a0fad40b" alt=""><figcaption></figcaption></figure>

8. You can now upsert data to AstraDB

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FJqodldtk3Zb4cUHnQ6Ne%2Fimage.png?alt=media&amp;token=294d6170-90cd-4b45-98f1-656b9a9be069" alt=""><figcaption></figcaption></figure>

Navigate back to Astra portal, and to your collection, you will be able to see all the data that has been upserted:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fdfc7e70BNmNB8V78fTrU%2Fimage.png?alt=media&amp;token=59eabbd6-acd7-4539-92a0-ab07ac04351f" alt=""><figcaption></figcaption></figure>

10. Start querying!

#### 2)Chroma

Prereuisite

1\.     Download & install [Docker ](https://www.docker.com/)and [Git](https://git-scm.com/)

2\.     Clone [Chroma's repository](https://github.com/chroma-core/chroma) with your terminal

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FJHTlHN05v9tk1dUAdvGR%2Fimage.png?alt=media&amp;token=c89d94b7-aa14-4da3-92d1-854d9aece720" alt=""><figcaption></figcaption></figure>

3\.     Change directory path to your cloned Chroma   &#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFX7U4Im4W48QeCILx8W4%2Fimage.png?alt=media&amp;token=faee7cd4-606c-4ef4-b078-d86c138e1f56" alt=""><figcaption></figcaption></figure>

Run docker compose to build up Chroma image and container  &#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FeHeCa9VCIfNCCzwC8g6K%2Fimage.png?alt=media&amp;token=e4563301-81c3-452c-bffb-92e643df7465" alt=""><figcaption></figcaption></figure>

If success, you will be able to see the docker images spun up:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FBYqDeTxBtcntTOimW9Qi%2Fimage.png?alt=media&amp;token=32192b41-da2b-4905-b479-57afc61ccc47" alt=""><figcaption></figcaption></figure>

**Setup**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FtGrGozfjuZsvWuhJ3T3P%2Fimage.png?alt=media&amp;token=edb8af9a-9e23-42c3-8929-b1cf1e99b92b" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FLfkmNDyenp4wfMo8irMz%2FScreenshot%202024-07-09%20112611.png?alt=media&amp;token=14857cfb-87d0-4bda-80ce-bf2b756cb888" alt=""><figcaption></figcaption></figure>

Additional

1.If you are running both THub and Chroma on Docker, there are additional steps involved.\
2.Open `docker-compose.yml` in THub

Cd THub && cd Docker

3.Modify the file to:

4.Spin up THub docker image

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fgqe8cffUubDQ8dSK5U8f%2Fimage.png?alt=media&amp;token=db431e85-c633-4003-8fbd-ae95845038ac" alt=""><figcaption></figcaption></figure>

5.On the Chroma URL, for Windows and MacOS Operating Systems specify [http://host.docker.internal:8000](http://host.docker.internal:8000/). For Linux based systems the default docker gateway should be used since host.docker.internal is not available: [http://172.17.0.1:8000](http://172.17.0.1:8000/)

#### 3)Elastic **Prerequisite**

1\.     You can use the [official Docker image](https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html) to get started, or you can use [Elastic Cloud](https://www.elastic.co/cloud/), Elastic's official cloud service. In this guide, we will be using cloud version.

2\.     [Register](https://cloud.elastic.co/registration) an account or [login](https://cloud.elastic.co/login) with existing account on Elastic cloud.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FPfk4jJM60WMAWAqxWlPX%2Fimage.png?alt=media&amp;token=b744db43-dbbf-4a5d-ae73-5b5169a75649" alt=""><figcaption></figcaption></figure>

3\. Click **Create deployment**. Then, name your deployment, and choose the provider.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F1MR8bF9DLd3SrFrgkMXu%2Fimage.png?alt=media&amp;token=f1b69aa8-3643-4639-a01c-7f447dff09e0" alt=""><figcaption></figcaption></figure>

4.After deployment is finished, you should be able to see the setup guides as shown below. Click the **Set up vector search** option.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FtMuFCSC5ih47gx9aZRq7%2Fimage.png?alt=media&amp;token=fb5e4db7-343a-449e-8b25-bfc9a670af23" alt=""><figcaption></figcaption></figure>

5.You should now see the **Getting started** page for **Vector Search**.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F5e8bxWnJ9zBXVhP0mElK%2Fimage.png?alt=media&amp;token=edd68b2d-add7-43ea-8c65-7a119980661e" alt=""><figcaption></figcaption></figure>

6.On the left hand side bar, click **Indices**. Then, **Create a new index**.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FUwxFMEy08wXCVygUlXeT%2Fimage.png?alt=media&amp;token=14a08a23-0433-418e-bcd0-1d939fbeca9b" alt=""><figcaption></figcaption></figure>

7\. Select **API** ingestion method

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fmr5tqEcKNllf03P5KMQl%2Fimage.png?alt=media&amp;token=f0b5640a-f823-4d1c-8ce9-c41729fd2c5d" alt=""><figcaption></figcaption></figure>

8 .Name your search index name, then **Create Index**

9\. After the index has been created, generate a new API key, take note of both generated API key and the URL

&#x20;Setup

1\. Add a new **Elasticsearch** node on canvas and fill in the **Index Name**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FL9kTWArr8DxhM6vyuZO0%2FScreenshot%202024-07-09%20112620.png?alt=media&amp;token=0f4698bf-6af8-44a8-b091-ccad76b119b1" alt=""><figcaption></figcaption></figure>

2\. Add new credential via **Elasticsearch API**

3.Take the URL and API Key from Elasticsearch, fill in the fields

4.After credential has been created successfully, you can start upserting the data

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAL5VcAjvDJA8iOmaMIBM%2Fimage.png?alt=media&amp;token=fc5a2373-e2b7-4242-9002-c485c4151e3f" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FNYUlnjqLlt59MWHL98MY%2Fimage.png?alt=media&amp;token=195383a0-f3c1-4136-bc3a-ddf011815efa" alt=""><figcaption></figcaption></figure>

3. After data has been upserted successfully, you can verify it from Elastic dashboard:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6WfQ6FiapkyV9EW3QBHq%2Fimage.png?alt=media&amp;token=54625ae3-a033-474c-a9a8-be2eeac001e6" alt=""><figcaption></figcaption></figure>

4. Voila! You can now start asking question in the chat

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIsbdjoAXEzwkjulmKm7R%2Fimage.png?alt=media&amp;token=69359716-ad39-4fd3-bf07-140c826a5eb4" alt=""><figcaption></figcaption></figure>

#### 4)Faiss

Upsert embedded data and perform similarity search upon query using Faiss library from Meta.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fv9FdhsChqLGIhVXPpYOH%2FScreenshot%202024-07-09%20112629.png?alt=media&amp;token=69686cc2-d4a7-4a50-b188-a2e548800ca3" alt=""><figcaption></figcaption></figure>

#### 5)In-Memory Vector Store

In-memory vectorstore that stores embeddings and does an exact, linear search for the most similar embeddings.

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FPjHO0lMO3wPnfjzV4sF5%2FScreenshot%202024-07-09%20112639.png?alt=media&amp;token=def1a8e0-3f42-4dc3-89b3-56394619fc17" alt=""><figcaption></figcaption></figure>

#### 6)Milvus

Upsert embedded data and perform similarity search upon query using Milvus, world's most advanced open-source vector database.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fj8qSYpppXceXZIlJT2By%2FScreenshot%202024-07-09%20112649.png?alt=media&amp;token=c2d4b875-7e1d-4c70-b5d9-3ecc5b775c9c" alt=""><figcaption></figcaption></figure>

#### 7)MongoDB Atlas

Upsert embedded data and perform similarity or mmr search upon query using MongoDB Atlas, a managed cloud mongodb database.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fufm40rKTqxLaTQbjKdsO%2FScreenshot%202024-07-09%20112703.png?alt=media&amp;token=eff9a05f-f9d0-4c19-8a0b-d49f23e4aa03" alt=""><figcaption></figcaption></figure>

#### 8)OpenSearch

Upsert embedded data and perform similarity search upon query using OpenSearch, an open-source, all-in-one vector database.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FeoehGBPxeUJd6hY9DoTZ%2FScreenshot%202024-07-09%20112711.png?alt=media&amp;token=ffa389ce-8e94-444d-858a-81a6d948b23c" alt=""><figcaption></figcaption></figure>

#### 9)Pinecone

Prerequisite

1\.     Register an account for [Pinecone](https://app.pinecone.io/)

2\.     Click **Create index**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FgFm0qVeKNIvJKwYZsieb%2Fimage.png?alt=media&amp;token=4dbb44ce-a6ed-47d3-b975-1896c022a5bc" alt=""><figcaption></figcaption></figure>

1\.     Fill in required fields:

•                    **Index Name**, name of the index to be created. (e.g. "THub-demo")

•                    **Dimensions**, size of the vectors to be inserted in the index. (e.g. 1536)

&#x20;

2\.     Click **Create Index**

**Setup**

1.Get/Create your API Key

2\. Add a new **Pinecone** node to canvas and fill in the parameters:

o   Pinecone Index

o   Pinecone namespace (optional)

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxN8CcqEuupoxxRSN7Nun%2FScreenshot%202024-07-09%20112721.png?alt=media&amp;token=265a2220-7173-4dd4-b8b2-1e96e044ac60" alt=""><figcaption></figcaption></figure>

1\.     Create new Pinecone credential -> Fill in **API Key**

&#x20;

4 Add additional nodes to canvas and start the upsert process

·       **Document** can be connected with any node under [**Document Loader**](https://docs.flowiseai.com/integrations/langchain/document-loaders) category

·       **Embeddings** can be connected with any node under [**Embeddings** ](https://docs.flowiseai.com/integrations/langchain/embeddings)category

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FmciIOfyDlV2kCWuOwYcX%2Fimage.png?alt=media&amp;token=8241a369-b03c-4c60-89f0-976f47acb85b" alt=""><figcaption></figcaption></figure>

5.Verify from [Pinecone dashboard](https://app.pinecone.io/) to see if data has been successfully upserted:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F0NxhOxh5CWUE5OLy4UTO%2Fimage.png?alt=media&amp;token=1d52553d-4d17-4f8c-b361-770996cdf23f" alt=""><figcaption></figcaption></figure>

#### 10)Postgres

Upsert embedded data and perform similarity search upon query using pgvector on Postgres.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdvlDOV7wiPOXOzCHGR4w%2FScreenshot%202024-07-09%20112733.png?alt=media&amp;token=2e44f692-e262-4789-ab7d-e10177f1eb76" alt=""><figcaption></figcaption></figure>

#### 11)Qdrant

**Prerequisites**

A [locally running instance of Qdrant](https://qdrant.tech/documentation/quick-start/) or a Qdrant cloud instance.

To get a Qdrant cloud instance:

1\.     Head to the Clusters section of the [Cloud Dashboard](https://cloud.qdrant.io/overview).

2\.     Select **Clusters** and then click **+ Create**.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FxjbBunzLCXleHOQJ24jI%2Fimage.png?alt=media&amp;token=42687628-fb29-48a2-8dc6-8c60ffdd6233" alt=""><figcaption></figcaption></figure>

3\.     Choose your cluster configurations and region.

4\.     Hit **Create** to provision your cluster.

**Setup**

1\.     Get/Create your **API Key** from the **Data Access Control** section of the [Cloud Dashboard](https://cloud.qdrant.io/overview).

2\.     Add a new **Qdrant** node on canvas.

3\.     Create new Qdrant credential using the API Key

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fa2ZALk4bDMNLoFk2a29E%2Fimage.png?alt=media&amp;token=d1733359-a9fd-4239-ba8a-c550e9af5f48" alt=""><figcaption></figcaption></figure>

4\.     Enter the required info into the **Qdrant** node:

·       Qdrant server URL

·       Collection name

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F4UBR3jOw9EfoIbmTClYC%2FScreenshot%202024-07-09%20112746.png?alt=media&amp;token=9f5eef13-e2b1-4d39-ae08-baa32dd86581" alt=""><figcaption></figcaption></figure>

**5. Document** input can be connected with any node under [**Document Loader**](https://docs.flowiseai.com/integrations/langchain/document-loaders) category.

**6.Embeddings** input can be connected with any node under [**Embeddings**](https://docs.flowiseai.com/integrations/langchain/embeddings) category.

**Filtering**

Let's say you have different documents upserted, each specified with a unique value under the metadata key `{source}`

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F2XMacJs1Faif6wd26KWG%2Fimage.png?alt=media&amp;token=22002455-1146-4f8d-a882-de6fcccfb7dc" alt=""><figcaption></figcaption></figure>

&#x20;

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FXsIEgUpqNhAmBHVdk4B0%2Fimage.png?alt=media&amp;token=0b2c9485-dd08-406e-9930-ac06a4e0b872" alt=""><figcaption></figcaption></figure>

Then, you want to filter by it. Qdrant supports following [syntax](https://qdrant.tech/documentation/concepts/filtering/#nested-key) when it comes to filtering:

**UI**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FyNXWIXOznfY490ADSCg5%2Fimage.png?alt=media&amp;token=fd27110c-9e31-4b60-a768-0bb39ac02cec" alt=""><figcaption></figcaption></figure>

**API**

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FY8Csmlo2ILjMy4KLQStn%2Fimage.png?alt=media&amp;token=3475a293-7331-402c-ad34-99a0fb25ff2d" alt=""><figcaption></figcaption></figure>

#### 12)Redis

Prerequisite

&#x20;    Spin up a Redis-Stack Server using Docker

&#x20;     docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

Setup

1\.     Add a new **Redis** node on canvas.

2\.     Create new Redis credential.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FN4EfDMhxxBQ8bihhj0C8%2FScreenshot%202024-07-09%20112754.png?alt=media&amp;token=3f2b9f90-d88c-4254-a1fd-5a34aae696c8" alt=""><figcaption></figcaption></figure>

3. Select type of Redis Credential. Choose Redis API if you have username and password, otherwise Redis URL:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F98urqZvfkZTokBbTAqnj%2Fimage.png?alt=media&amp;token=f89b0540-2044-417a-9877-0f14f321e84c" alt=""><figcaption></figcaption></figure>

4. Fill in the url:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FKCSykjK04fT6bx8JEXIT%2Fimage.png?alt=media&amp;token=466b0be0-ee1e-4fdf-a4de-2a4a791c5a53" alt=""><figcaption></figcaption></figure>

5. Now you can start upserting data with Redis:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FoSG0Jx3Tzfp2l7c4xEDS%2Fimage.png?alt=media&amp;token=ebf2197f-838e-4cf6-b260-38de205d9606" alt=""><figcaption></figcaption></figure>

6. Navigate to Redis Insight portal, and to your database, you will be able to see all the data that has been upserted:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6x8oP47nuJQgSxvInfeK%2Fimage.png?alt=media&amp;token=868aa341-3d11-40f4-853f-034d166ba19f" alt=""><figcaption></figcaption></figure>

#### 13)SingleStore

Setup

1\.     Register an account on [SingleStore](https://www.singlestore.com/)

2\.     Login to portal. On the left side panel, click **CLOUD** -> **Create new workspace group.** Then click **Create Workspace** button.

3\.     Select cloud provider and data region, then click **Next**:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FzPxq5fgYPIO4Mg80aJdF%2Fimage.png?alt=media&amp;token=55bbcbd5-92d1-4531-8b9f-f2c4f74f6ba9" alt=""><figcaption></figcaption></figure>

4\.     Review and click **Create Workspace**:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FVsnE79fodDuqBhLSUYnf%2Fimage.png?alt=media&amp;token=3c689338-83a9-4cfb-af0c-24e01ca632ea" alt=""><figcaption></figcaption></figure>

5\.     You should now see your workspace created:

6\.      Proceed to create a database

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FQAIFZ9nLN5d2EVX39184%2Fimage.png?alt=media&amp;token=9bd9b4a3-a97a-4ba2-934e-8e5282f18a17" alt=""><figcaption></figcaption></figure>

7. You should be able to see your database created and attached to the workspace:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FDHPOOP4WxVn9vQPrFja3%2Fimage.png?alt=media&amp;token=a146a291-871d-4f1e-a165-2ab32bf3adce" alt=""><figcaption></figcaption></figure>

8. Click Connect from the workspace dropdown -> Connect Directly:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fij3aZsJQlrK09eWt2P4y%2Fimage.png?alt=media&amp;token=e53788c5-d8db-4985-a72d-dde9c1f744ed" alt=""><figcaption></figcaption></figure>

9. You can specify a new password or use the default generated one. Then click Continue:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FsiknLt2idIdJmeK1jwlc%2Fimage.png?alt=media&amp;token=8f0c394f-a2e9-4a54-a0da-9f870eefad50" alt=""><figcaption></figcaption></figure>

10\.     On the tabs, switch to **Your App**, and select **Node.js** from the dropdown. Take note/save the `Username`, `Host`, `Password` as you will need these in THub later.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fe7RiPOMSbhsV8aQrz8u9%2Fimage.png?alt=media&amp;token=b8691c41-1d55-4cef-841a-a5d7735eb085" alt=""><figcaption></figcaption></figure>

11\.     Back to THub canvas, drag and drop SingleStore nodes. Click **Create New** from the Credentials dropdown:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FFv66z7a2DNUOw5rjRCXp%2FScreenshot%202024-07-09%20112802.png?alt=media&amp;token=d898358a-853a-43e4-9de9-c3fd15298f2d" alt=""><figcaption></figcaption></figure>

12\.     Put in the Username and Password

&#x20;

13\.     Then specify the Host and Database Name:

&#x20;

14\.     Now you can start upserting data with SingleStore:

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FNheQ3zRFQBnNGMoiXSOG%2Fimage.png?alt=media&amp;token=9bbda819-7b3d-48cd-aa1f-bffaa0e12ff5" alt=""><figcaption></figcaption></figure>

15. Navigate back to SingleStore portal, and to your database, you will be able to see all the data that has been upserted:

#### 14)Supabase

**Prerequisite**

1.Register an account for Supabase

•                    Click New project

2.Input required fields

| Field Name        | Description                                    |
| ----------------- | ---------------------------------------------- |
| Name              | name of the project to be created. (e.g. THub) |
| Database Password | password to your postgres database             |

&#x20;

3\.     Click Create new project and wait for the project to finish setting up

4\.     Click SQL Editor

5\.     Click New query

6\.     Copy and Paste the below SQL query and run it by Ctrl + Enter or click RUN. Take note of the table name and function name.

&#x20;     Table name: documents

&#x20;     Query name: match\_documents

&#x20;

**Setup**

·       Click Project Settings

·       Get your Project URL & API Key

·       Copy and Paste each details (API Key, URL, Table Name, Query Name) into Supabase node

·       Document can be connected with any node under Document Loader category

·       Embeddings can be connected with any node under Embeddings category

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F6t8Pto4GQcphqukzhdEc%2FScreenshot%202024-07-09%20112811.png?alt=media&amp;token=553199c2-4436-473c-a91f-a9f45f869e7a" alt=""><figcaption></figcaption></figure>

#### 15)Upstash Vector

Upsert data as embedding or string and perform similarity search with Upstash, the leading serverless data platform.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F83phmGp5ZU5Ecd46vRQ1%2FScreenshot%202024-07-09%20112920.png?alt=media&amp;token=d309e086-a2fe-4862-9172-a788c5eca321" alt=""><figcaption></figcaption></figure>

·       Document can be connected with any node under Document Loader category

·       Embeddings can be connected with any node under Embeddings category

·       Record manager can be conneted with the node under Record manager

#### 16)Vectara

**Prerequisite**

·       Register an account for Vectara

·       Click Create Corpus

·       Name the corpus to be created and click Create Corpus then wait for the corpus to finish setting up.

&#x20;

**Setup**

·       Click on the "Access Control" tab in the corpus view

·       Click on the "Create API Key" button, choose a name for the API key and pick the QueryService & IndexService option

·       Click Create to create the API key

·       Get your Corpus ID, API Key, and Customer ID by clicking the down-arrow under "copy" for your new API key:

·       Back to THub canvas, and create your chatflow. Click Create New from the Credentials dropdown and enter your Vectara credentials.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FmW07KXuU3XC5fnR5XsPt%2FScreenshot%202024-07-09%20112933.png?alt=media&amp;token=2fcdcbc4-83d5-4d5f-bb67-4ca99c9c6d5b" alt=""><figcaption></figcaption></figure>

·       Document can be connected with any node under Document Loader category

&#x20;

**Vectara Query Parameters**

·       For finer control over the Vectara query parameters, click on "Additional Parameters" and then you can update the following parameters from their default:

·       Metadata Filter: Vectara supports meta-data filtering. To use filtering, ensure that metadata fields you want to filter by are defined in your Vectara corpus.

·       "Sentences before" and "Sentences after": these control how many sentences before/after the matching text are returned as results from the Vectara retrieval engine

·       Lambda: defines the behavior of hybrid search in Vectara

·       Top-K: how many results to return from Vectara for the query

·       MMR-K: number of results to use for MMR (max marginal relvance)

#### 17)Weaviate

Upsert embedded data and perform similarity or mmr search using Weaviate, a scalable open-source vector database.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FghIQS6ELc529LfLzYh2l%2FScreenshot%202024-07-09%20112943.png?alt=media&amp;token=8496e48a-c8bd-4fd4-a76f-289d2f80d2ed" alt=""><figcaption></figcaption></figure>

·       Document can be connected with any node under Document Loader category

·       Embeddings can be connected with any node under Embeddings category

·       Record manager can be conneted with the node under Record manager

#### 18)Zep Collection - Open Source

Upsert embedded data and perform similarity or mmr search upon query using Zep, a fast and scalable building block for LLM apps.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FW3iXjee8Yqpbps74OXWw%2FScreenshot%202024-07-09%20112952.png?alt=media&amp;token=bc68e9e5-9106-427e-860f-334ec80deafb" alt=""><figcaption></figcaption></figure>

·       Document can be connected with any node under Document Loader category

·       Embedding node can be connected with any node under Embedding  category

Upsert embedded data and perform similarity or mmr search upon query using Zep, a fast and scalable building block for LLM apps.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2F3YQQfE6b3jkWN4NWBzkT%2FScreenshot%202024-07-09%20112959.png?alt=media&amp;token=758637e9-6333-49ff-b849-986760d03437" alt=""><figcaption></figcaption></figure>

&#x20; • Document can be connected with any node under Document Loader category

**19)Couchbase Vector Store**

Couchbase integrates seamlessly with THub as a high-performance vector store, enabling efficient storage and retrieval of vector embeddings.

**Key Features:**

* **Data Upsertion**: Allows upserting of embedded data into Couchbase buckets, scopes, and collections.
* **Vector Search**: Supports vector similarity searches using approximate nearest neighbor (ANN) algorithms.[Couchbase](https://www.couchbase.com/blog/rag-applications-with-vector-search-and-couchbase/?utm_source=chatgpt.com)
* **Integration with Flowise**: Facilitates the creation of Retrieval-Augmented Generation (RAG) pipelines by combining document loaders, embedding models, and retrievers.

**Use Case Example:**

* **Workflow Setup**: A typical THub setup includes nodes for uploading documents (e.g., PDFs), splitting text into chunks, generating embeddings (e.g., using OpenAI models), and storing them in Couchbase. Retrieval nodes can then fetch relevant documents based on user queries.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FgIV630JjfCASunZaeACs%2Fimage.png?alt=media&amp;token=a38af214-21fc-4934-a202-48123c679060" alt="" width="313"><figcaption></figcaption></figure>

**20) Document Store (Vector)**

The Document Store (Vector) node in THub offers a centralized approach to managing and retrieving vectorized documents.

**Key Features:**

* **Data Management**: Enables uploading, splitting, and preparing datasets for upsertion in a single location.
* **Versatility**: Supports various data formats, simplifying data handling within THub.
* **API Operations**: Provides endpoints for creating, retrieving, updating, and deleting document stores and their contents.&#x20;

**Use Case Example:**

* **Insurance Policy Retrieval**: Setting up a system to retrieve information about specific insurance policies by uploading relevant documents, processing them into vector embeddings, and enabling semantic search capabilities.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FCwPvuaXGie1TJZFlbK1B%2Fimage.png?alt=media&amp;token=fa1d43d0-20c9-4f06-baf3-662447698854" alt="" width="272"><figcaption></figcaption></figure>

**21) Meilisearch Vector Store**

Meilisearch, known for its lightweight and fast search capabilities, has introduced vector search functionalities, making it suitable for semantic and hybrid search applications.

**Key Features:**

* **AI-Powered Search**: Utilizes large language models (LLMs) to retrieve search results based on the meaning and context of queries.
* **Embedding Integration**: Supports configuring embedders (e.g., OpenAI) to translate documents into embeddings for semantic search.
* **Hybrid Search**: Combines traditional keyword-based search with vector search for enhanced relevance.

**Use Case Example:**

* **E-commerce Search**: Implementing a search system that understands user intent and context, providing more accurate product recommendations and search results.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fk4upEqEQ460DI6AG0MKV%2Fimage.png?alt=media&amp;token=16ec1302-bc9c-4415-a26b-3a2236f30fd1" alt="" width="264"><figcaption></figcaption></figure>


# 🦙LLama Index

LlamaIndex is a data framework designed to work with large language models (LLMs)

Focus on LLM Applications: It helps you turn your enterprise data into applications that leverage LLMs.

Data Wrangling for LLMs: LlamaIndex bridges the gap by preparing data for LLMs in a format they can understand and work with.

Building Blocks for LLM Workflows: It provides tools to build custom functions and integrate with external data sources, allowing you to create complex workflows for your LLM applications.

Open Source and Enterprise Options: LlamaIndex is available as an open-source project, but also offers enterprise solutions for businesses.

In essence, LlamaIndex empowers you to build powerful LLM applications by taking care of the data wrangling and integration aspects, so you can focus on the core functionalities of your application.


# 🕵️ Agents

Autonomous AI components that dynamically select and use tools to solve complex tasks based on user inputs.

For more details click on below Agents:

[Agents](/langchain/agents)


# 🗨️Chat Models

Chat models take a list of messages as input and return a model-generated message as output.

For more details click on below  Chat Model :

#### [Chat Model](/langchain/chat-models)


# 🧬Embeddings

Embeddings can be used to create a numerical representation of textual data. This numerical representation is useful because it can be used to find similar documents.

For more details click on below Embedding:

[Embeddings](/langchain/embeddings)


# 🚀Engine's

#### 1)Query Engine:-

In LlamaIndex, a query engine acts as a bridge between you and your data. It allows you to ask questions in natural language and get informative responses.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FAMQXDvvhUVrKVnfbuSns%2FScreenshot%202024-07-10%20154830.png?alt=media&amp;token=252da8ce-0658-4a39-a757-0b03a90603da" alt=""><figcaption></figcaption></figure>

·       Any Vector Store can be connected  under Vector Store category

·       Any Response node can be conneted under Responsible Synthezier

**Here's a breakdown of its key features:**

Function:

The query engine takes a natural language question as input.

It then retrieves and processes relevant data from the indexes built within LlamaIndex.

Finally, it returns a rich response that can include text, summaries, or other formats depending on the query.

Functionality:

Simple vs. Advanced Queries: LlamaIndex offers options for both basic and complex queries. Basic queries might involve asking a single question and getting a straightforward answer. Advanced queries could involve multiple back-and-forth interactions or even reasoning loops to analyze data across different indexes.

Underlying Mechanism: The query engine typically relies on retrievers to find the most relevant data points within the indexes. These retrievers can be based on various techniques depending on the type of data being indexed.

Benefits:

Intuitive Interaction: The ability to ask questions in natural language makes interacting with your data more user-friendly.

Data Exploration: Query engines empower you to explore and analyze your data efficiently.

Customization: LlamaIndex allows composing multiple query engines together for more advanced capabilities tailored to your specific needs.

In essence, the query engine acts as the interface for you to ask questions and get insights from your data stored in LlamaIndex.

#### 2)Context Chat Engine:

While LlamaIndex documentation doesn't explicitly mention a "Context Chat Engine," there's strong evidence it refers to the standard Chat Engine with a specific configuration focused on utilizing the content within your indexes.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FnJ1MCab7lcpDDlOql7ZT%2FScreenshot%202024-07-10%20154812.png?alt=media&amp;token=d33e91f0-0d03-4e0c-948e-4a06b988108d" alt=""><figcaption></figcaption></figure>

·       Any Chat Model node can be connected  under Chat Model category

·       Any Vector Store can be connected  under Vector Store category

·       Any memory node can be conneted under Memory

**Here's why:**

Context in Documentation: Discussions about Chat Engines in LlamaIndex highlight their use for conversational data exploration. This aligns with the purpose of interacting with "content" within the indexes.

Functionality Overlap: The core functionalities described for the Chat Engine (conversation history, context-aware responses, querying indexes) perfectly match what a Content Chat Engine would entail.

**Possible Configuration:**

Focus on Content Retrieval: The system prompt used during Chat Engine setup might be designed to prioritize retrieving information directly from the content within the indexes. This would steer the conversation towards content exploration.

Limited Reasoning: Content Chat Engines might limit the use of complex reasoning or external knowledge sources to focus purely on the content itself.

Overall, the Content Chat Engine in LlamaIndex likely represents a configuration of the standard Chat Engine specifically tailored for interacting with and exploring the information stored within your indexes.

#### 3)Simple Chat Engine:-

The Simple Chat Engine in LlamaIndex is a foundational tool for building interactive chatbots and conversational interfaces. It offers a streamlined approach to getting started with chat functionalities.

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FIokTGmOdCkde9qsUm0YG%2FScreenshot%202024-07-10%20154819.png?alt=media&amp;token=589e2cd1-daae-4a06-9283-70833bb2cf85" alt=""><figcaption></figcaption></figure>

·       Any Chat Model node can be connected  under Chat Model category

·       Any memory node can be conneted under Memory

&#x20;

&#x20;Here's a breakdown of its key aspects:

·       Focus on Simplicity:

·       The Simple Chat Engine prioritizes ease of use. It requires minimal configuration, making it ideal for beginners or those wanting to quickly prototype a conversational interface.

·       It often comes with pre-defined settings for response generation and retrieval, streamlining the process.

Core Functionalities:

Basic Conversation Flow: It facilitates basic back-and-forth interactions between the user and the system.

Context Awareness (Limited): While the engine may maintain some level of conversation history, its ability to understand complex context might be limited compared to more advanced chat engines.

Data Access: It interacts with your LlamaIndex data indexes to retrieve relevant information for response generation.

LLM Integration: The Simple Chat Engine works seamlessly with Large Language Models (LLMs) like GPT-3 to generate human-like responses based on the retrieved information.

Benefits:

·       Quick Start: The simplicity allows you to set up a basic chatbot or conversational interface with minimal effort.

·       Easy Experimentation: It's a great tool for experimenting with different conversation flows and LLM configurations.

Limitations:

·       Limited Complexity: The Simple Chat Engine might not be suitable for complex conversational scenarios that require deep context understanding or advanced reasoning.

·       Customization Options Might Be Limited: Compared to more advanced chat engines, customization options for tailoring responses and behavior might be restricted.

In essence, the Simple Chat Engine is a great starting point for building basic chatbots or conversational interfaces in LlamaIndex. It offers a user-friendly way to explore the power of chat functionalities without extensive configuration.

&#x20;

Here are some additional points to consider:

·       The Simple Chat Engine often comes with a pre-configured Response Synthesizer, which determines how responses are delivered (text, voice, etc.).

·       While the context awareness might be limited, it can still maintain a basic history of the conversation to provide somewhat connected responses.


# 🧪Response Synthesizer

Response Synthesizer nodes are responsible for sending the query, nodes, and prompt templates to the LLM to generate a response. There are 4 modes for generating a response:

#### 1)Refine

Create and refine an answer by sequentially going through each retrieved text chunk.

**Pros**: Good for more detailed answers

**Cons**: Separate LLM call per Node (can be expensive)

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2FdOlX2oIDmRUVaPqyfNhJ%2Fimage.png?alt=media&amp;token=14080292-84bf-4d5c-bd90-178efee342d2" alt=""><figcaption></figcaption></figure>

#### 2)Tree Summarize

When provided with text chunks and a query, recursively build a tree structure and return the root node as the result.

**Pros**: Beneficial for summarization tasks

**Cons**: Accuracy of answer might be lost during traversal of tree structure

<figure><img src="https://1720595571-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxWXmt1Z68dgle5JORrEw%2Fuploads%2Fuy9biYEKm1fRE0BSmjfy%2Fimage.png?alt=media&amp;token=61f26023-2953-40dd-9fe8-31d793a1f5e9" alt=""><figcaption></figcaption></figure>


# 🛠️Tools

Tools are functions that agents can use to interact with the world. These tools can be generic utilities (e.g. search), other chains, or even other agents.

For more details click on below Tools:

[Tools](/langchain/tools)


# 🗃️Vector Stores

A vector store is a specialized database for storing and retrieving high-dimensional numerical vectors. It efficiently manages and indexes these vectors for fast similarity searches.

For more details click on below Vector Stores:

[Vector Stores](/langchain/vector-stores)


