From 286b80770edca1b17d0f50597e1f50f09c0dbfd1 Mon Sep 17 00:00:00 2001 From: Josh Knapp Date: Fri, 14 Feb 2025 11:43:58 -0800 Subject: [PATCH] Add LICENSE and README and .gitignore files --- .gitignore | 57 +++++++++++++++++++++++++++++++++++ LICENSE.md | 21 +++++++++++++ README.md | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.md create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..59f5ff5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,57 @@ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +dist/ +build/ +*.egg-info/ + +# Virtual environments +venv/ +env/ +ENV/ +.env + +# IDE specific files +.idea/ +.vscode/ +*.swp +*.swo + +# Unit test / coverage reports +htmlcov/ +.tox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +.hypothesis/ + +# Jupyter Notebook +.ipynb_checkpoints + +# pyenv +.python-version + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pytest +.pytest_cache/ + +# Local development settings +*.env +.env.local +.env.*.local + +# Log files +*.log diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..b77bf2a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..877ebb7 --- /dev/null +++ b/README.md @@ -0,0 +1,87 @@ +# git-to-kb + +A Python utility to create a knowledge base from a Git repository by importing files into OpenWebUI. + +## Description + +`git-to-kb` is a command-line tool that helps you create a knowledge base from your local Git repository by: + +1. Creating a new knowledge base in OpenWebUI +2. Scanning your repository for supported file types +3. Uploading relevant files to OpenWebUI +4. Adding the uploaded files to the knowledge base + +## Supported File Types + +The utility processes the following file types: +- Text files (`.txt`) +- Markdown files (`.md`) +- Python files (`.py`) +- JavaScript files (`.js`) +- HTML files (`.html`) +- CSS files (`.css`) +- JSON files (`.json`) +- YAML files (`.yaml`, `.yml`) +- Shell scripts (`.sh`) +- Batch files (`.bat`) +- Dockerfiles +- LICENSE files + +## Prerequisites + +- Python 3.x +- `requests` library (`pip install requests`) +- Access to an OpenWebUI instance +- OpenWebUI API token + +## Installation + +1. Clone this repository +2. Install required dependencies: +```bash +pip install requests +``` + +## Usage + +```bash +python git-to-kb.py --token YOUR_API_TOKEN \ + --base-url OPENWEB_URL \ + --repo-path /path/to/repo \ + --kb-name "Knowledge Base Name" \ + [--kb-purpose "Optional description"] +``` + +### Arguments + +- `--token, -t`: Your OpenWebUI API token (required) +- `--base-url, -u`: Base URL of your OpenWebUI instance (e.g., http://localhost:3000) (required) +- `--repo-path, -r`: Path to the local git repository (required) +- `--kb-name, -n`: Name for the knowledge base (required) +- `--kb-purpose, -p`: Purpose description for the knowledge base (optional) + +## Example + +```bash +python git-to-kb.py -t "api_token_123" \ + -u "http://localhost:3000" \ + -r "/path/to/my/repo" \ + -n "My Project KB" \ + -p "Documentation for My Project" +``` + +## Error Handling + +The script will: +- Skip the `.git` directory +- Print error messages for failed file uploads +- Continue processing remaining files if an error occurs +- Display a summary of processed files upon completion + +## License + +This project is licensed under the terms of the MIT [LICENSE](LICENSE). + +## Contributing + +Feel free to open issues or submit pull requests to improve this tool. \ No newline at end of file