smartloop


Namesmartloop JSON
Version 1.3.2 PyPI version JSON
download
home_pagehttps://github.com/LexicHQ/smartloop
SummarySmartloop Command Line interface to process documents using LLM
upload_time2025-08-24 17:55:11
maintainerNone
docs_urlNone
authorSmartloop Inc.
requires_pythonNone
licenseLICENSE.txt
keywords llm framework fine-tuning platform document-processing ai
VCS
bugtrack_url
requirements PyYAML requests typer inquirer tabulate pyfiglet
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<img src="https://github.com/user-attachments/assets/b30e2c38-dc19-49a5-973d-51e1dafe5c4d" width="100%" />

<br/>

Use the CLI to upload, manage, and query documents based on fine-tuned LLM models. It uses the smartloop API to manage projects and documents and gives you an easy way to quickly process contents and reason based on it.


![PyPI - Version](https://img.shields.io/pypi/v/smartloop)

## Requirements

- Python 3.11

## Installation

Install the CLI with the following command:

```
pip install -U smartloop

```
Once installed, check that everything is setup correctly:



```console
smartloop --help
                                                                                                                                                                     
 Usage: smartloop [OPTIONS] COMMAND [ARGS]...                                                                                                                          
                                                                                                                                                                     
╭─ Options ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion          Install completion for the current shell.                                                                                           │
│ --show-completion             Show completion for the current shell, to copy it or customize the installation.                                                    │
│ --help                        Show this message and exit.                                                                                                         │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ whoami    Find out which account you are logged in                                                                                                                │
╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯


```

## Setup


To authenticate with the Smartloop Platform, run the following command in your terminal:

```bash
smartloop login
```

You will be prompted to visit [https://app.smartloop.ai/developer](https://app.smartloop.ai/developer) to copy your access token. Paste your token into the CLI when prompted. The token will be saved for future use.

## Create a Project

Once you have configured the CLI , you can start creating projects using the following command:

```bash
smartloop projects create --name microsoft
```

## Select a Project

Use the following command to interactively select a project:


```bash
smartloop projects select
```

## Upload Document

Once the project is selected , upload documents from your folder or a specific file to personalized your project, in this case I am uploading the a document describing Microsoft online services form my local machine:

```bash
smartloop upload --path=~/document1.pdf
```

## Run It

Execute the following command to start prompting:

```bash
smartloop run
```

This will start a chat session with your currently selected project. If no project is currently selected, you'll be prompted to choose one interactively.

### Run with a Specific Project

You can also run a chat session directly with a specific project by providing its ID:

```bash
smartloop run --project-id your-project-id
```

This bypasses the need to first select a project and directly starts the chat session with the specified project.

To find your project ID, you can list all your projects:

```bash
smartloop projects list
```

This will bring up the interface to prompt your queries as shown below:

```bash
Microsoft(microsoft-24-07-2024)
======================================
Enter prompt (Ctrl-C to exit): 
what the SLA for azure open ai
⠋
The SLA (Service Level Agreement) for Azure OpenAI is not explicitly mentioned in the provided text. However, it's possible that the SLA for Azure OpenAI might be similar to the one mentioned below:

"Uptime Percentage"

* Service Credit:
+ < 99.9%: 10%
+ < 99%: 25%
+ < 95%: 100%

Please note that this is not a direct quote from the provided text, but rather an inference based on the format and structure of the SLA mentioned for other Azure services (e.g., SAP HANA on Azure High Availability Pair). To confirm the actual SLA for Azure OpenAI, you should check the official Microsoft documentation or contact their support team.

Prompt message (Ctrl-C to exit):
```

In order to set `temperature` of your conversation, which ranges from 0.0 to 1.0, use the following command:

```bash 
```

To enable memory to retain context in the conversation, use the following command:

```bash 
```

To disable memory, use the following command:

```bash 
smartloop projects set --id=project_id --no-memory

```

`LLM temperature is a parameter that influences the language model's output, determining whether the output is more random and creative or more predictable.`

The higher value tends towards more creative answer


## Supported Documents types

* PDF
* DOCX
* TXT
* CSV


## Contributing

Contributions are welcome! Please create a pull request with your changes. 


## Contact

If you have any questions or suggestions, please feel free to reach out to hello@smartloop.ai


## References

* [Smartloop API Documentation](https://api.smartloop.ai/v1/redoc)


## License

This project is licensed under the terms of the MIT license.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/LexicHQ/smartloop",
    "name": "smartloop",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "LLM, framework, fine-tuning, platform, document-processing, ai",
    "author": "Smartloop Inc.",
    "author_email": "hello@smartloop.ai",
    "download_url": "https://files.pythonhosted.org/packages/18/2d/1a4f11139fa1d2cc9a76197c0ebd43bad854d5435b8837f5e24a76a36057/smartloop-1.3.2.tar.gz",
    "platform": null,
    "description": "\n<img src=\"https://github.com/user-attachments/assets/b30e2c38-dc19-49a5-973d-51e1dafe5c4d\" width=\"100%\" />\n\n<br/>\n\nUse the CLI to upload, manage, and query documents based on fine-tuned LLM models. It uses the smartloop API to manage projects and documents and gives you an easy way to quickly process contents and reason based on it.\n\n\n![PyPI - Version](https://img.shields.io/pypi/v/smartloop)\n\n## Requirements\n\n- Python 3.11\n\n## Installation\n\nInstall the CLI with the following command:\n\n```\npip install -U smartloop\n\n```\nOnce installed, check that everything is setup correctly:\n\n\n\n```console\nsmartloop --help\n                                                                                                                                                                     \n Usage: smartloop [OPTIONS] COMMAND [ARGS]...                                                                                                                          \n                                                                                                                                                                     \n\u256d\u2500 Options \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 --install-completion          Install completion for the current shell.                                                                                           \u2502\n\u2502 --show-completion             Show completion for the current shell, to copy it or customize the installation.                                                    \u2502\n\u2502 --help                        Show this message and exit.                                                                                                         \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\u256d\u2500 Commands \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256e\n\u2502 whoami    Find out which account you are logged in                                                                                                                \u2502\n\u2570\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u256f\n\n\n```\n\n## Setup\n\n\nTo authenticate with the Smartloop Platform, run the following command in your terminal:\n\n```bash\nsmartloop login\n```\n\nYou will be prompted to visit [https://app.smartloop.ai/developer](https://app.smartloop.ai/developer) to copy your access token. Paste your token into the CLI when prompted. The token will be saved for future use.\n\n## Create a Project\n\nOnce you have configured the CLI , you can start creating projects using the following command:\n\n```bash\nsmartloop projects create --name microsoft\n```\n\n## Select a Project\n\nUse the following command to interactively select a project:\n\n\n```bash\nsmartloop projects select\n```\n\n## Upload Document\n\nOnce the project is selected , upload documents from your folder or a specific file to personalized your project, in this case I am uploading the a document describing Microsoft online services form my local machine:\n\n```bash\nsmartloop upload --path=~/document1.pdf\n```\n\n## Run It\n\nExecute the following command to start prompting:\n\n```bash\nsmartloop run\n```\n\nThis will start a chat session with your currently selected project. If no project is currently selected, you'll be prompted to choose one interactively.\n\n### Run with a Specific Project\n\nYou can also run a chat session directly with a specific project by providing its ID:\n\n```bash\nsmartloop run --project-id your-project-id\n```\n\nThis bypasses the need to first select a project and directly starts the chat session with the specified project.\n\nTo find your project ID, you can list all your projects:\n\n```bash\nsmartloop projects list\n```\n\nThis will bring up the interface to prompt your queries as shown below:\n\n```bash\nMicrosoft(microsoft-24-07-2024)\n======================================\nEnter prompt (Ctrl-C to exit): \nwhat the SLA for azure open ai\n\u280b\nThe SLA (Service Level Agreement) for Azure OpenAI is not explicitly mentioned in the provided text. However, it's possible that the SLA for Azure OpenAI might be similar to the one mentioned below:\n\n\"Uptime Percentage\"\n\n* Service Credit:\n+ < 99.9%: 10%\n+ < 99%: 25%\n+ < 95%: 100%\n\nPlease note that this is not a direct quote from the provided text, but rather an inference based on the format and structure of the SLA mentioned for other Azure services (e.g., SAP HANA on Azure High Availability Pair). To confirm the actual SLA for Azure OpenAI, you should check the official Microsoft documentation or contact their support team.\n\nPrompt message (Ctrl-C to exit):\n```\n\nIn order to set `temperature` of your conversation, which ranges from 0.0 to 1.0, use the following command:\n\n```bash \n```\n\nTo enable memory to retain context in the conversation, use the following command:\n\n```bash \n```\n\nTo disable memory, use the following command:\n\n```bash \nsmartloop projects set --id=project_id --no-memory\n\n```\n\n`LLM temperature is a parameter that influences the language model's output, determining whether the output is more random and creative or more predictable.`\n\nThe higher value tends towards more creative answer\n\n\n## Supported Documents types\n\n* PDF\n* DOCX\n* TXT\n* CSV\n\n\n## Contributing\n\nContributions are welcome! Please create a pull request with your changes. \n\n\n## Contact\n\nIf you have any questions or suggestions, please feel free to reach out to hello@smartloop.ai\n\n\n## References\n\n* [Smartloop API Documentation](https://api.smartloop.ai/v1/redoc)\n\n\n## License\n\nThis project is licensed under the terms of the MIT license.\n",
    "bugtrack_url": null,
    "license": "LICENSE.txt",
    "summary": "Smartloop Command Line interface to process documents using LLM",
    "version": "1.3.2",
    "project_urls": {
        "Homepage": "https://github.com/LexicHQ/smartloop"
    },
    "split_keywords": [
        "llm",
        " framework",
        " fine-tuning",
        " platform",
        " document-processing",
        " ai"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3adf8032d94e281d21da07202d2f7891fc49cdd8441680b0c8979ea1aa0ab7b9",
                "md5": "9840e17c88d9f504a543751cb452e908",
                "sha256": "ba78ae944207e0acd6f45e52bb42aee2326eb3d708a5bf4f8ef7621027b27fe0"
            },
            "downloads": -1,
            "filename": "smartloop-1.3.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "9840e17c88d9f504a543751cb452e908",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 14351,
            "upload_time": "2025-08-24T17:55:10",
            "upload_time_iso_8601": "2025-08-24T17:55:10.083229Z",
            "url": "https://files.pythonhosted.org/packages/3a/df/8032d94e281d21da07202d2f7891fc49cdd8441680b0c8979ea1aa0ab7b9/smartloop-1.3.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "182d1a4f11139fa1d2cc9a76197c0ebd43bad854d5435b8837f5e24a76a36057",
                "md5": "4903dc7a6b7e25d22eba74a7399a5bb0",
                "sha256": "5c68a514517f6ed2d405dd1dc4142b725bc1c4dc1aa3f4c24ef2ccf2f18c5ac6"
            },
            "downloads": -1,
            "filename": "smartloop-1.3.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4903dc7a6b7e25d22eba74a7399a5bb0",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 13619,
            "upload_time": "2025-08-24T17:55:11",
            "upload_time_iso_8601": "2025-08-24T17:55:11.245094Z",
            "url": "https://files.pythonhosted.org/packages/18/2d/1a4f11139fa1d2cc9a76197c0ebd43bad854d5435b8837f5e24a76a36057/smartloop-1.3.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-24 17:55:11",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "LexicHQ",
    "github_project": "smartloop",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "PyYAML",
            "specs": [
                [
                    "==",
                    "6.0.1"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "typer",
            "specs": [
                [
                    "==",
                    "0.12.3"
                ]
            ]
        },
        {
            "name": "inquirer",
            "specs": [
                [
                    "==",
                    "3.3.0"
                ]
            ]
        },
        {
            "name": "tabulate",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "pyfiglet",
            "specs": [
                [
                    "==",
                    "1.0.4"
                ]
            ]
        }
    ],
    "lcname": "smartloop"
}
        
Elapsed time: 0.52157s