Tasks
Overview
Tasks are the smallest unit of work that can be executed by the platform. Tasks are grouped into flows. They can be either basic or composite.
Every task runs with the following:
input
: a set of input parameters such as a text for llm completion, the llm model parameters, etc.task_config
: configuration for the run, such as the task name, retries and caching strategies, etc.context
: environment variables, previous task outputs
and produces:
output
: the output of the task
Core Task Categories
Content Loaders
Load data into Document
objects. Examples include:
WebLoader
: load a document from a urlRemoteFilesLoader
: load a document from uploaded filesCombinedLoader
: load a document from a directory- More to be added
Text Splitters
Split texts into chunks that meet token limits of LLMs. Examples include:
CharacterTextSplitter
: split text based on separator charactersRecursiveTextSplitter
: split text recursively based on a set of separatorsTokenSplitter
: split text based on a set token size per chunk- More to be added
Embedding
Convert chunks into embeddings. Examples include:
EmbeddingsModel
: Use OpenAI embedding models to convert chunks into embeddings- More to be added
Vector Store Builder
Store embeddings in a vector store. Examples include:
QdrantBuilder
: Use Qdrant to store embeddings in a local instance- More to be added
Retriever
Retrieve documents from a vector store given an input vector. Examples include:
QdrantRetriever
: Use Qdrant to retrieve documents- More to be added
LLM
Use an LLM for text-based completion such as generating answer, summarizing, classification. Examples include:
LLM
: An LLM with non-chat-based completionChatLLM
: An LLM with chat-based completionSummarizeLLM
: An LLM for summarization