Metadata-Version: 2.4
Name: verdi-llm
Version: 0.1.0
Summary: An LLM tool for an even easier use of AiiDA.
Keywords: aiida,llm,verdi
Author-email: Ali Khosravi <khsrali@gmail.com>
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: AiiDA
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
License-File: LICENSE.txt
Requires-Dist: click-spinner~=0.1.8
Requires-Dist: click~=8.1.0
Requires-Dist: faiss-cpu~=1.11
Requires-Dist: sentence_transformers~=4.1
Requires-Dist: pydata-sphinx-theme~=0.15.1 ; extra == "docs"
Requires-Dist: sphinx~=7.2.0 ; extra == "docs"
Requires-Dist: sphinx-copybutton~=0.5.0 ; extra == "docs"
Requires-Dist: sphinx-design~=0.5.0 ; extra == "docs"
Requires-Dist: sphinx-notfound-page~=1.0 ; extra == "docs"
Requires-Dist: sphinxext-rediraffe~=0.2.4 ; extra == "docs"
Requires-Dist: sphinx-sqlalchemy~=0.2.0 ; extra == "docs"
Requires-Dist: sphinx-intl~=2.1.0 ; extra == "docs"
Requires-Dist: myst-nb~=1.0.0 ; extra == "docs"
Requires-Dist: mypy~=1.13.0 ; extra == "pre-commit"
Requires-Dist: packaging~=23.0 ; extra == "pre-commit"
Requires-Dist: pre-commit~=3.5 ; extra == "pre-commit"
Requires-Dist: tomli ; extra == "pre-commit"
Requires-Dist: types-PyYAML ; extra == "pre-commit"
Provides-Extra: docs
Provides-Extra: pre-commit

# verdi-llm

<br>
<div align="left">
  <img src="assets/logo.png" alt="Repository Logo" width="200" style="margin-top: 20px; margin-bottom: 20px;"/>
</div>
<br>

Uses LLM to achieve a prompt via aiida cli



## Installation

At the moment only developer installation is available. Just fetch the repo and run
```
pip install -e .
```

## Usage

For now, it only works with [Groq](https://groq.com/), because it provides free API.
More backends will be added later.

First, configure for once:
`verdi-llm configure --backend groq --api-key <API-KEY>` -- to generate a key [see here](https://console.groq.com/keys)

Now you can ask whatever you want, the limit is your imagination :crossed_fingers: 
`$ verdi-llm cli 'delete are groups that start with label qe*'`

It will then, respond with a generated command and asks for a confirmation (`e`) before executing it. 
```
$ verdi-llm cli 'delete are groups that start with label qe*'
Generated command: `verdi group delete --startswith qe`

Execute[e], Modify[m], or Cancel[c]:: e
$ verdi process list
Command output:

Report: all groups deleted.
```
Alternatively the user has the option (`m`) to edit the command and fix mistakes before executing. Or simply press `c` to cancel.

