@shoprag/rag-dir v1.0.5
@shoprag/rag-dir
@shoprag/rag-dir is a RAG plugin for the ShopRAG ecosystem. It enables you to store normalized data fetched by ShopRAG's Shops as plain text (.txt) files in a specified local directory. This plugin is perfect for users seeking a straightforward, file-based storage solution for their ShopRAG projects.
Installation
The @shoprag/rag-dir plugin is automatically installed by ShopRAG when you run the shoprag command, provided it’s specified in your shoprag.json and not already installed. Alternatively, you can install it manually using npm:
npm install -g @shoprag/rag-dirManual installation ensures the plugin is available globally, but ShopRAG’s automatic installation should suffice for most use cases.
Usage
To integrate @shoprag/rag-dir into your ShopRAG project, add it to the RAGs array in your shoprag.json configuration file.
Configuration
Add the following to your shoprag.json:
{
"RAGs": [
{
"to": "dir",
"config": {
"outputDir": "./data"
}
}
]
}to: Set this to"dir"to specify the@shoprag/rag-dirplugin.config.outputDir: Defines the local directory where.txtfiles will be stored. The path is relative to the current working directory.
Example
Here’s a complete shoprag.json example that pairs a Shop with the @shoprag/rag-dir RAG:
{
"Project_Name": "MyProject",
"ShopRAG": "1.0",
"Shops": [
{
"from": "github-repo",
"config": {
"repoUrl": "https://github.com/user/repo",
"branch": "main"
}
}
],
"RAGs": [
{
"to": "dir",
"config": {
"outputDir": "./data"
}
}
]
}Running shoprag with this configuration will fetch data from the specified GitHub repository and save it as .txt files in the ./data directory.
Features
- Local Directory Storage: Saves data to a user-defined local directory.
- File Naming: Generates safe file names using sanitized
fileIds, preventing directory traversal and maintaining a flat structure. - Operations Supported: Manages file addition, updates, and deletion as directed by ShopRAG.
- No Credentials Required: Operates directly on the local file system, eliminating the need for authentication.
Testing
To verify the plugin works as expected:
- Set up a new or existing ShopRAG project.
- Configure the
@shoprag/rag-dirRAG in yourshoprag.json(see the Usage section). - Add at least one Shop to fetch data (e.g., from a GitHub repository).
- Execute the
shopragcommand. - Inspect the
outputDirspecified in your configuration for.txtfiles containing the fetched data.
For instance, if your Shop retrieves files from a GitHub repository, each file will appear as a separate .txt file in the output directory.
Contributing
Found a bug or have an idea to improve the plugin? Please open an issue on the GitHub repository. We welcome contributions via pull requests—feel free to submit enhancements or fixes!
License
This project is licensed under the MIT License.