A library of ready-to-use LLM components
Project description
LLM Components
Overview
llm-components is a Python library designed to feed large language models with data from different sources.
The library formats content in a structured markdown format.
Features
-
Code base formatting:
- Traverse a directory tree while respecting
.gitignorerules. - Format the directory structure and file contents into a readable markdown format.
- Clone a git repository and format its contents.
- Traverse a directory tree while respecting
-
Convert web pages to markdown format
Installation
To install the llm-components library, you can use pip:
pip install llm-components
Usage
Command-Line Interface
You can use the command-line interface to map a code base to markdown. The CLI takes the root directory of the code base or a git repository URL as an argument.
llm-components format-codebase <root_dir_or_repo>
You can also convert a web page to markdown using the CLI:
llm-components web-to-markdown <url>
Example
# For a local directory
llm-components format-codebase /path/to/your/code/base
# For a git repository
llm-components format-codebase https://github.com/your/repo.git
# For a web page
llm-components web-to-markdown https://advanced-stack.com
This will output the directory structure and file contents in a structured markdown format.
Programmatic Usage
You can also use the library programmatically by importing the necessary functions.
import tempfile
from pathlib import Path
from llm_components.loaders.code_base import map_codebase_to_text
from llm_components.loaders.git_utils import clone_repository
from llm_components.loaders.web_to_markdown import retrieve_and_convert
# For a local directory
root_dir = Path("/path/to/your/code/base")
result = map_codebase_to_text(root_dir)
print(result)
# For a git repository
repo_url = "https://github.com/your/repo.git"
with tempfile.TemporaryDirectory() as temp_dir:
clone_dir = Path(temp_dir) / "repo"
clone_repository(repo_url, clone_dir)
result = map_codebase_to_text(clone_dir)
print(result)
# For a web page
url = "https://example.com"
markdown_content = retrieve_and_convert(url)
print(markdown_content)
License
This project is licensed under the MIT License.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llm_components-1.3.2.tar.gz.
File metadata
- Download URL: llm_components-1.3.2.tar.gz
- Upload date:
- Size: 6.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
416c05b07371620867df351fa99d05fe0f84f4f4194c6e55f698e827a019315f
|
|
| MD5 |
70e3c5c0988063f72d4c4d7560a19db0
|
|
| BLAKE2b-256 |
c2262b963dcfc7ec598a3e4d7f76d92de71652f70cb68920fb1ad5b421801ad3
|
File details
Details for the file llm_components-1.3.2-py3-none-any.whl.
File metadata
- Download URL: llm_components-1.3.2-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a9d8f7d6a0116bd196b6687efb9f5b0b855e6b243c5d4874d6a1c89c055540b3
|
|
| MD5 |
4f1fc8386d0e1b846a9622352c37b433
|
|
| BLAKE2b-256 |
44434c4d90f604dbcd6dccea0df8b912905960f444725c29b1c21d999e30c8ad
|