-
- Step 2: Configure Vector Store
-
- Choose the provider and optionally provide a name and description for your vector store.
+ Step 1: Upload Documents
+
+ Upload one or more documents (PDF, TXT, DOCX, MD). Maximum file size: 50MB per file.
+
+
+
+
+ Click or drag files to this area to upload
+ Support for single or bulk upload. Supported formats: PDF, TXT, DOCX, MD
+
+
-
- Vector Store Name{" "}
-
-
-
-
- }
- >
- setVectorStoreName(e.target.value)}
- placeholder="e.g., Product Documentation, Customer Support KB"
- size="large"
- className="rounded-md"
- />
-
+ {/* Documents Table */}
+ {documents.length > 0 && (
+
+
+ Uploaded Documents ({documents.length})
+
+
+
+ )}
-
- Description{" "}
-
-
-
-
- }
- >
- setVectorStoreDescription(e.target.value)}
- placeholder="e.g., Contains all product documentation and user guides"
- rows={2}
- size="large"
- className="rounded-md"
- />
-
+ {/* Provider Selection and Vector Store Details */}
+
+
+
+ Step 2: Configure Vector Store
+
+ Choose the provider and optionally provide a name and description for your vector store.
+
+
-
- Provider{" "}
-
-
-
-
- }
- required
- >
-
- {Object.entries(VectorStoreProviders).map(([providerEnum, providerDisplayName]) => {
- return (
-
-
+
+
+
+ {labelWithHint("Vector Store Name", "Optional: Give your vector store a meaningful name")}
+
+ setVectorStoreName(e.target.value)}
+ placeholder="e.g., Product Documentation, Customer Support KB"
+ />
+
+
+
+
+ {labelWithHint("Description", "Optional: Describe what this vector store contains")}
+
+
+
+
+
+ {labelWithHint("Provider", "Select the provider for embedding and vector store operations")}
+
+ value !== null && setSelectedProvider(value)}
+ >
+
+
+
+
+ {Object.entries(VectorStoreProviders).map(([providerEnum, providerDisplayName]) => (
+
{providerDisplayName}
-
-
- );
- })}
-
-
+
+ ))}
+
+
+
- {/* S3 Vectors Configuration */}
- {selectedProvider === "s3_vectors" && (
-
- )}
+ {/* S3 Vectors Configuration */}
+ {selectedProvider === "s3_vectors" && (
+
+ )}
- {/* Other Provider-specific fields */}
- {selectedProvider !== "s3_vectors" &&
- getProviderSpecificFields(selectedProvider).map((field: VectorStoreFieldConfig) => {
- if (field.type === "select") {
- // For embedding model selection, we'd need to fetch available models
- // For now, provide a text input as fallback
- return (
-
- {field.label}{" "}
-
-
-
-
- }
- required={field.required}
- >
- setProviderParams((prev) => ({ ...prev, [field.name]: e.target.value }))}
- placeholder={field.placeholder}
- size="large"
- className="rounded-md"
- />
-
- );
- }
-
- return (
-
- {field.label}{" "}
-
-
-
-
- }
- required={field.required}
- >
+ {/* Other Provider-specific fields */}
+ {selectedProvider !== "s3_vectors" &&
+ getProviderSpecificFields(selectedProvider).map((field: VectorStoreFieldConfig) => (
+
+
+ {labelWithHint(field.label, field.tooltip)}
+
setProviderParams((prev) => ({ ...prev, [field.name]: e.target.value }))}
placeholder={field.placeholder}
- size="large"
- className="rounded-md"
/>
-
- );
- })}
-
+
+ ))}
+
-
-
- {isCreating ? "Creating Vector Store..." : "Create Vector Store"}
-
-
-
-
-
- {/* Success Message */}
- {ingestResults.length > 0 && (
-
-
- Vector Store ID: {ingestResults[0]?.vector_store_id}
-
-
- Documents Ingested: {ingestResults.length}
-
+
+
+ {isCreating && }
+ {isCreating ? "Creating Vector Store..." : "Create Vector Store"}
+
- }
- type="success"
- showIcon
- closable
- />
- )}
-
+