# iauto
`iauto` is a Python library for intelligent automation.
## Key Features
* **Workflow Orchestration**: Defining workflow using YAML, for collaboration and version control
* **Playwright Integration**: Automate web workflows with Playwright
* **Appium Integration**: Automate web, iOS, Android, Windows, and macOS workflows with Appium
* **LLMs Integration**: Integrate AI into automated workflows, support OpenAI API and self-hosting LLMs
### Roadmap
* **pyautogui Integration**: Cross-platform keyboard and mouse control
* **OCR**: Support ORC-based screen element recognition
* **OpenAI Assistants API**: Support Orchestrating OpenAI Assistants API
## Quick Start
### Installation
Python version requirement: >=3.8
`iauto` can be installed from PyPI using `pip`. It is recommended to create a new virtual environment before installation to avoid conflicts.
```bash
pip install -U iauto
```
To enable cuBLAS acceleration on NVIDIA GPU:
```bash
CMAKE_ARGS="-DGGML_CUBLAS=ON" pip install -U iauto
```
To enable Metal on Apple silicon devices:
```bash
CMAKE_ARGS="-DGGML_METAL=ON" pip install -U iauto
```
### Playbook
Automate your workflow by writing a playbook.
**Example: Web automation**
`browser.yaml`
```yaml
playbook:
description: Open browser and goto https://bing.com
actions:
- browser.open:
args:
exec: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
result: $browser
- browser.goto:
args:
browser: $browser
url: https://bing.com
result: $page
- repeat:
actions:
- browser.eval:
args:
page: $page
javascript: new Date()
result: $now
- log: $now
- time.wait: 2
```
Run the playbook:
```bash
python -m iauto ./browser.yaml
```
**Example: Chatbot**
`chatbot.yaml`:
```yaml
playbook:
description: Chat to OpenAI
actions:
- llm.session:
result: $session
- repeat:
actions:
- shell.prompt:
args: "Human: "
result: $prompt
- llm.chat:
args:
session: $session
prompt: $prompt
result: $message
- shell.print: "AI: {$message}"
```
Set your OpenAI API key:
```bash
export OPENAI_API_KEY=sk-<YOUR_API_KEY>
```
Run the playbook:
```bash
python -m iauto ./chatbot.yaml
```
**[More example playbooks](./playbooks)**
* [Control Flow](./playbooks/control_flow.yaml)
* [Appium Webdriver](./playbooks/webdriver.yaml)
* [Playwright Browser](./playbooks/browser.yaml)
* [OpenAI REPL Chatbot](./playbooks/openai_repl.yaml)
* [ChatGLM REPL Chatbot](./playbooks/chatglm_repl.yaml)
* [QWen REPL Chatbot](./playbooks/qwen_repl.yaml)
## Contribution
We are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.
### Development setup
* Code Style: [PEP-8](https://peps.python.org/pep-0008/)
* Docstring Style: [Google Style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
```bash
# Create python venv
python -m venv .venv
source .venv/bin/activate
# Install dependencies
pip install -r requirements.txt
pip install -r requirements-dev.txt
# Apply autopep8, isort and flake8 as pre commit hooks
pre-commit install
```
### Build
```bash
./build.sh
```
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/shellc/ia-desktop",
"name": "iauto-server",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "AI,Automation,LLM,RPA",
"author": "shellc",
"author_email": "shenggong.wang@gmail.com",
"download_url": "",
"platform": null,
"description": "# iauto\n\n`iauto` is a Python library for intelligent automation.\n\n## Key Features\n\n* **Workflow Orchestration**: Defining workflow using YAML, for collaboration and version control\n* **Playwright Integration**: Automate web workflows with Playwright\n* **Appium Integration**: Automate web, iOS, Android, Windows, and macOS workflows with Appium\n* **LLMs Integration**: Integrate AI into automated workflows, support OpenAI API and self-hosting LLMs\n\n### Roadmap\n\n* **pyautogui Integration**: Cross-platform keyboard and mouse control\n* **OCR**: Support ORC-based screen element recognition\n* **OpenAI Assistants API**: Support Orchestrating OpenAI Assistants API\n\n## Quick Start\n\n### Installation\n\nPython version requirement: >=3.8\n\n`iauto` can be installed from PyPI using `pip`. It is recommended to create a new virtual environment before installation to avoid conflicts.\n\n```bash\npip install -U iauto\n```\n\nTo enable cuBLAS acceleration on NVIDIA GPU:\n\n```bash\nCMAKE_ARGS=\"-DGGML_CUBLAS=ON\" pip install -U iauto\n```\n\nTo enable Metal on Apple silicon devices:\n\n```bash\nCMAKE_ARGS=\"-DGGML_METAL=ON\" pip install -U iauto\n```\n\n### Playbook\n\nAutomate your workflow by writing a playbook.\n\n**Example: Web automation**\n\n`browser.yaml`\n\n```yaml\nplaybook:\n description: Open browser and goto https://bing.com\n actions:\n - browser.open:\n args:\n exec: /Applications/Google Chrome.app/Contents/MacOS/Google Chrome\n result: $browser\n - browser.goto:\n args:\n browser: $browser\n url: https://bing.com\n result: $page\n - repeat:\n actions:\n - browser.eval:\n args:\n page: $page\n javascript: new Date()\n result: $now\n - log: $now\n - time.wait: 2\n```\n\nRun the playbook:\n\n```bash\npython -m iauto ./browser.yaml\n```\n\n**Example: Chatbot**\n\n`chatbot.yaml`:\n\n```yaml\nplaybook:\n description: Chat to OpenAI\n actions:\n - llm.session:\n result: $session\n - repeat:\n actions:\n - shell.prompt:\n args: \"Human: \"\n result: $prompt\n - llm.chat:\n args:\n session: $session\n prompt: $prompt\n result: $message\n - shell.print: \"AI: {$message}\"\n```\n\nSet your OpenAI API key:\n\n```bash\nexport OPENAI_API_KEY=sk-<YOUR_API_KEY>\n```\n\nRun the playbook:\n\n```bash\npython -m iauto ./chatbot.yaml\n```\n\n**[More example playbooks](./playbooks)**\n\n* [Control Flow](./playbooks/control_flow.yaml)\n* [Appium Webdriver](./playbooks/webdriver.yaml)\n* [Playwright Browser](./playbooks/browser.yaml)\n* [OpenAI REPL Chatbot](./playbooks/openai_repl.yaml)\n* [ChatGLM REPL Chatbot](./playbooks/chatglm_repl.yaml)\n* [QWen REPL Chatbot](./playbooks/qwen_repl.yaml)\n\n## Contribution\n\nWe are extremely open to contributions, whether it be in the form of a new feature, improved infrastructure, or better documentation.\n\n### Development setup\n\n* Code Style: [PEP-8](https://peps.python.org/pep-0008/)\n* Docstring Style: [Google Style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)\n\n```bash\n# Create python venv\npython -m venv .venv\nsource .venv/bin/activate\n\n# Install dependencies\npip install -r requirements.txt\npip install -r requirements-dev.txt\n\n# Apply autopep8, isort and flake8 as pre commit hooks\npre-commit install\n```\n### Build\n\n```bash\n./build.sh\n```\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "iauto-server is a server for iauto",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/shellc/ia-desktop"
},
"split_keywords": [
"ai",
"automation",
"llm",
"rpa"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "03e0be7b710c7c9857161b4cae2091735eaa29445b2256ebd0c03e965501ea89",
"md5": "691b42056f3732b85c8e52268fcd87ab",
"sha256": "6ffd0d7d291ae24d3014491a90afaed58d72d67b5664c8190279ceff1f450732"
},
"downloads": -1,
"filename": "iauto_server-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "691b42056f3732b85c8e52268fcd87ab",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 3179,
"upload_time": "2024-01-29T08:50:01",
"upload_time_iso_8601": "2024-01-29T08:50:01.272914Z",
"url": "https://files.pythonhosted.org/packages/03/e0/be7b710c7c9857161b4cae2091735eaa29445b2256ebd0c03e965501ea89/iauto_server-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-01-29 08:50:01",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "shellc",
"github_project": "ia-desktop",
"github_not_found": true,
"lcname": "iauto-server"
}