The Artifact component is a data component that allows users to manipulate and smart search files and data in the artifact store.
It can carry out the following tasks:
To use Artifact Component, you will need to set up the OpenAI API key for self-hosted deployment of Instill Core.
You can do this by setting the OPENAI_API_KEY
environment variable.
Please refer to configuring-the-embedding-feature
p.s. In Instill Cloud case, you do not need to set up the OpenAI API key.
#Release Stage
Alpha
#Configuration
The component configuration is defined and maintained here.
#Supported Tasks
#Upload File
Upload and process the files into chunks into Catalog
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_UPLOAD_FILE |
Options (required) | options | object | Choose to upload the files to existing catalog or create a new catalog |
Output | ID | Type | Description |
---|
File | file | object | Result of uploading file into catalog |
Status | status | boolean | The status of trigger file processing, if succeeded, return true |
#Upload Files
Upload and process the files into chunks into Catalog
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_UPLOAD_FILES |
Options (required) | options | object | Choose to upload the files to existing catalog or create a new catalog |
Output | ID | Type | Description |
---|
Files | files | array[object] | Files metadata in catalog |
Status | status | boolean | The status of trigger file processing, if ALL succeeded, return true |
get the metadata of the files in the catalog
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_FILES_METADATA |
Namespace (required) | namespace | string | Fill in your namespace, you can get namespace through the tab of switching namespace |
Catalog ID (required) | catalog-id | string | Catalog ID that you input to search files in the Catalog |
Output | ID | Type | Description |
---|
Files | files | array[object] | Files metadata in catalog |
get the metadata of the chunks from a file in the catalog
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_CHUNKS_METADATA |
Catalog ID (required) | catalog-id | string | Catalog ID that you input to search files in the Catalog |
Namespace (required) | namespace | string | Fill in your namespace, you can get namespace through the tab of switching namespace |
File UID (required) | file-uid | string | The unique identifier of the file |
Output | ID | Type | Description |
---|
Chunks | chunks | array[object] | Chunks metadata of the file in catalog |
#Get File In Markdown
get the file content in markdown format
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_GET_FILE_IN_MARKDOWN |
Catalog ID (required) | catalog-id | string | Catalog ID that you input to search files in the Catalog |
Namespace (required) | namespace | string | Fill in your namespace, you can get namespace through the tab of switching namespace |
File UID (required) | file-uid | string | The unique identifier of the file |
Output | ID | Type | Description |
---|
File UID | original-file-uid | string | The unique identifier of the file |
Content | content | string | The content of the file in markdown format |
Create Time | create-time | string | TThe creation time of the source file in ISO 8601 format |
Update Time | update-time | string | The update time of the source file in ISO 8601 format |
#Match File Status
Check if the specified file's processing status is done
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_MATCH_FILE_STATUS |
Catalog ID (required) | catalog-id | string | Catalog ID that you input to check files' processing status in the Catalog |
Namespace (required) | namespace | string | Fill in your namespace, you can get namespace through the tab of switching namespace |
File UID (required) | file-uid | string | The unique identifier of the file |
Output | ID | Type | Description |
---|
Status | succeeded | boolean | The status of the file processing, if succeeded, return true |
#Retrieve
search the chunks in the catalog
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_RETRIEVE |
Catalog ID (required) | catalog-id | string | Catalog ID that you input to search files in the Catalog |
Namespace (required) | namespace | string | Fill in your namespace, you can get namespace through the tab of switching namespace |
Text Prompt (required) | text-prompt | string | The prompt string to search the chunks |
Top K | top-k | integer | The number of top chunks to return. The range is from 1~20, and default is 5 |
Output | ID | Type | Description |
---|
Chunks | chunks | array[object] | Chunks data from smart search |
#Ask
Reply the questions based on the files in the catalog
Input | ID | Type | Description |
---|
Task ID (required) | task | string | TASK_ASK |
Catalog ID (required) | catalog-id | string | Catalog ID that you input to search files in the Catalog |
Namespace (required) | namespace | string | Fill in your namespace, you can get namespace through the tab of switching namespace |
Question (required) | question | string | The question to reply |
Top K | top-k | integer | The number of top answers to return. The range is from 1~20, and default is 5 |
Output | ID | Type | Description |
---|
Answer | answer | string | Answers data from smart search |
Chunks (optional) | chunks | array[object] | Chunks data to answer question |
#Example Recipes
Recipe for the Ask your Catalog pipeline.
catalog-id: ${variable.catalog_name}
namespace: ${variable.namespace}
question: ${variable.question}
description: The name of your catalog i.e. "instill-ai"
description: The namespace of your catalog i.e. "instill-ai"
description: The question to ask your catalog i.e. "What is Instill AI doing?", "What is Artifact?"
value: ${artifact-0.output.answer}