rpaframework
Collection of open-source libraries and tools for Robotic Process Automation (RPA), designed to be used with both Robot Framework and Python
Stars: 1137
RPA Framework is an open-source collection of libraries and tools for Robotic Process Automation (RPA), designed to be used with Robot Framework and Python. It offers well-documented core libraries for Software Robot Developers, optimized for Robocorp Control Room and Developer Tools, and accepts external contributions. The project includes various libraries for tasks like archiving, browser automation, date/time manipulations, cloud services integration, encryption operations, database interactions, desktop automation, document processing, email operations, Excel manipulation, file system operations, FTP interactions, web API interactions, image manipulation, AI services, and more. The development of the repository is Python-based and requires Python version 3.8+, with tooling based on poetry and invoke for compiling, building, and running the package. The project is licensed under the Apache License 2.0.
README:
We are looking at improving our keyword usage to cover situations where developer might be struggling to smoothly write task for a Robot. Describe the situation where your implementation speed slows due to the lack of easier syntax.
Comment HERE <https://github.com/robocorp/rpaframework/issues/738>
_
.. contents:: Table of Contents :local: :depth: 1
.. include-docs-readme
RPA Framework
is a collection of open-source libraries and tools for
Robotic Process Automation (RPA), and it is designed to be used with both
Robot Framework
_ and Python
_. The goal is to offer well-documented and
actively maintained core libraries for Software Robot Developers.
Learn more about RPA at Robocorp Documentation
_.
The project is:
- 100% Open Source
- Sponsored by Robocorp_
- Optimized for Robocorp
Control Room
_ andDeveloper Tools
_ - Accepting external contributions
.. _Robot Framework: https://robotframework.org .. _Robot Framework Foundation: https://robotframework.org/foundation/ .. _Python: https://www.python.org/ .. _Robocorp: https://robocorp.com .. _Robocorp Documentation: https://robocorp.com/docs/ .. _Control Room: https://robocorp.com/docs/control-room .. _Developer Tools: https://robocorp.com/downloads .. _Installing Python Packages: https://robocorp.com/docs/setup/installing-python-package-dependencies
Links ^^^^^
- Homepage:
<https://www.github.com/robocorp/rpaframework/>
_ - Documentation:
<https://rpaframework.org/>
_ - PyPI:
<https://pypi.org/project/rpaframework/>
_ - Release notes:
<https://rpaframework.org/releasenotes.html>
_ - RSS feed:
<https://rpaframework.org/releases.xml>
_
.. image:: https://img.shields.io/github/actions/workflow/status/robocorp/rpaframework/main.yaml?style=for-the-badge :target: https://github.com/robocorp/rpaframework/actions/workflows/main.yaml :alt: Status
.. image:: https://img.shields.io/pypi/dw/rpaframework?style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework :alt: rpaframework
.. image:: https://img.shields.io/pypi/l/rpaframework.svg?style=for-the-badge&color=brightgreen :target: http://www.apache.org/licenses/LICENSE-2.0.html :alt: License
.. image:: https://img.shields.io/pypi/v/rpaframework.svg?label=rpaframework&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework :alt: rpaframework latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-assistant.svg?label=rpaframework-assistant&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework-assistant :alt: rpaframework-assistant latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-aws.svg?label=rpaframework-aws&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework-aws :alt: rpaframework-aws latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-core.svg?label=rpaframework-core&style=for-the-badge :target: https://pypi.python.org/pypi/rpaframework-core :alt: rpaframework-core latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-google.svg?label=rpaframework-google&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-google :alt: rpaframework-google latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-hubspot.svg?label=rpaframework-hubspot&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-hubspot :alt: rpaframework-hubspot latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-openai.svg?label=rpaframework-openai&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-openai :alt: rpaframework-openai latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-pdf.svg?label=rpaframework-pdf&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-pdf :alt: rpaframework-pdf latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-recognition.svg?label=rpaframework-recognition&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-recognition :alt: rpaframework-recognition latest version
.. image:: https://img.shields.io/pypi/v/rpaframework-windows.svg?label=rpaframework-windows&style=for-the-badge&color=blue :target: https://pypi.python.org/pypi/rpaframework-windows :alt: rpaframework-windows latest version
From the above packages, rpaframework-core
and rpaframework-recognition
are
support packages, which alone do not contain any libraries.
The RPA Framework project currently includes the following libraries:
The x
in the PACKAGE column means that library is included in the rpaframework package and for example. x,pdf
means that RPA.PDF
library is provided in both the rpaframework and rpaframework-pdf packages.
+----------------------------+-------------------------------------------------------+------------------------+
| LIBRARY NAME | DESCRIPTION | PACKAGE |
+----------------------------+-------------------------------------------------------+------------------------+
| Archive
_ | Archiving TAR and ZIP files | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Assistant
_ | Display information to a user and request input. | assistant |
+----------------------------+-------------------------------------------------------+------------------------+
| Browser.Selenium
_ | Control browsers and automate the web | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Browser.Playwright
_ | Newer way to control browsers | special (more below) |
+----------------------------+-------------------------------------------------------+------------------------+
| Calendar
_ | For date and time manipulations | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Cloud.AWS
_ | Use Amazon AWS services | x,aws |
+----------------------------+-------------------------------------------------------+------------------------+
| Cloud.Azure
_ | Use Microsoft Azure services | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Cloud.Google
_ | Use Google Cloud services | google |
+----------------------------+-------------------------------------------------------+------------------------+
| Crypto
_ | Common hashing and encryption operations | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Database
_ | Interact with databases | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Desktop
_ | Cross-platform desktop automation | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Desktop.Clipboard
_ | Interact with the system clipboard | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Desktop.OperatingSystem
_ | Read OS information and manipulate processes | x |
+----------------------------+-------------------------------------------------------+------------------------+
| DocumentAI
_ | Intelligent Document Processing wrapper | x |
+----------------------------+-------------------------------------------------------+------------------------+
| DocumentAI.Base64AI
_ | Intelligent Document Processing service | x |
+----------------------------+-------------------------------------------------------+------------------------+
| DocumentAI.Nanonets
_ | Intelligent Document Processing service | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Email.Exchange
_ | E-Mail operations (Exchange protocol) | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Email.ImapSmtp
_ | E-Mail operations (IMAP & SMTP) | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Excel.Application
_ | Control the Excel desktop application | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Excel.Files
_ | Manipulate Excel files directly | x |
+----------------------------+-------------------------------------------------------+------------------------+
| FileSystem
_ | Read and manipulate files and paths | x |
+----------------------------+-------------------------------------------------------+------------------------+
| FTP
_ | Interact with FTP servers | x |
+----------------------------+-------------------------------------------------------+------------------------+
| HTTP
_ | Interact directly with web APIs | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Hubspot
_ | Access HubSpot CRM data objects | hubspot |
+----------------------------+-------------------------------------------------------+------------------------+
| Images
_ | Manipulate images | x |
+----------------------------+-------------------------------------------------------+------------------------+
| JavaAccessBridge
_ | Control Java applications | x |
+----------------------------+-------------------------------------------------------+------------------------+
| JSON
_ | Manipulate JSON objects | x |
+----------------------------+-------------------------------------------------------+------------------------+
| MFA
_ | Authenticate using one-time passwords (OTP) & OAuth2 | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Notifier
_ | Notify messages using different services | x |
+----------------------------+-------------------------------------------------------+------------------------+
| OpenAI
_ | Artificial Intelligence service | openai |
+----------------------------+-------------------------------------------------------+------------------------+
| Outlook.Application
_ | Control the Outlook desktop application | x |
+----------------------------+-------------------------------------------------------+------------------------+
| PDF
_ | Read and create PDF documents | x,pdf |
+----------------------------+-------------------------------------------------------+------------------------+
| Robocorp.Process
_ | Use the Robocorp Process API | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Robocorp.WorkItems
_ | Use the Robocorp Work Items API | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Robocorp.Vault
_ | Use the Robocorp Secrets API | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Robocorp.Storage
_ | Use the Robocorp Asset Storage API | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Salesforce
_ | Salesforce operations | x |
+----------------------------+-------------------------------------------------------+------------------------+
| SAP
_ | Control SAP GUI desktop client | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Smartsheet
_ | Access Smartsheet sheets | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Tables
_ | Manipulate, sort, and filter tabular data | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Tasks
_ | Control task execution | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Twitter
_ | Twitter API interface | x |
+----------------------------+-------------------------------------------------------+------------------------+
| Windows
_ | Alternative library for Windows automation | x,windows |
+----------------------------+-------------------------------------------------------+------------------------+
| Word.Application
_ | Control the Word desktop application | x |
+----------------------------+-------------------------------------------------------+------------------------+
.. _Archive: https://rpaframework.org/libraries/archive/ .. _Assistant: https://rpaframework.org/libraries/assistant/ .. _Browser.Playwright: https://rpaframework.org/libraries/browser_playwright/ .. _Browser.Selenium: https://rpaframework.org/libraries/browser_selenium/ .. _Calendar: https://rpaframework.org/libraries/calendar/ .. _Cloud.AWS: https://rpaframework.org/libraries/cloud_aws/ .. _Cloud.Azure: https://rpaframework.org/libraries/cloud_azure/ .. _Cloud.Google: https://rpaframework.org/libraries/cloud_google/ .. _Crypto: https://rpaframework.org/libraries/crypto/ .. _Database: https://rpaframework.org/libraries/database/ .. _Desktop: https://rpaframework.org/libraries/desktop/ .. _Desktop.Clipboard: https://rpaframework.org/libraries/desktop_clipboard/ .. _Desktop.Operatingsystem: https://rpaframework.org/libraries/desktop_operatingsystem/ .. _DocumentAI: https://rpaframework.org/libraries/documentai .. _DocumentAI.Base64AI: https://rpaframework.org/libraries/documentai_base64ai/ .. _DocumentAI.Nanonets: https://rpaframework.org/libraries/documentai_nanonets/ .. _Email.Exchange: https://rpaframework.org/libraries/email_exchange/ .. _Email.ImapSmtp: https://rpaframework.org/libraries/email_imapsmtp/ .. _Excel.Application: https://rpaframework.org/libraries/excel_application/ .. _Excel.Files: https://rpaframework.org/libraries/excel_files/ .. _FileSystem: https://rpaframework.org/libraries/filesystem/ .. _FTP: https://rpaframework.org/libraries/ftp/ .. _HTTP: https://rpaframework.org/libraries/http/ .. _Hubspot: https://rpaframework.org/libraries/hubspot/ .. _Images: https://rpaframework.org/libraries/images/ .. _JavaAccessBridge: https://rpaframework.org/libraries/javaaccessbridge/ .. _JSON: https://rpaframework.org/libraries/json/ .. _MFA: https://rpaframework.org/libraries/mfa/ .. _Notifier: https://rpaframework.org/libraries/notifier/ .. _OpenAI: https://rpaframework.org/libraries/openai/ .. _Outlook.Application: https://rpaframework.org/libraries/outlook_application/ .. _PDF: https://rpaframework.org/libraries/pdf/ .. _Robocorp.Process: https://rpaframework.org/libraries/robocorp_process/ .. _Robocorp.WorkItems: https://rpaframework.org/libraries/robocorp_workitems/ .. _Robocorp.Vault: https://rpaframework.org/libraries/robocorp_vault/ .. _Robocorp.Storage: https://rpaframework.org/libraries/robocorp_storage/ .. _Salesforce: https://rpaframework.org/libraries/salesforce/ .. _SAP: https://rpaframework.org/libraries/sap/ .. _Smartsheet: https://rpaframework.org/libraries/smartsheet/ .. _Tables: https://rpaframework.org/libraries/tables/ .. _Tasks: https://rpaframework.org/libraries/tasks/ .. _Twitter: https://rpaframework.org/libraries/twitter/ .. _Windows: https://rpaframework.org/libraries/windows/ .. _Word.Application: https://rpaframework.org/libraries/word_application/
The RPA.Browser.Playwright at the moment requires special installation, because of the package size and the post install step it needs to be fully installed.
Minimum required conda.yaml
to install Playwright:
.. code-block:: yaml
channels:
- conda-forge
dependencies:
- python=3.9.16
- nodejs=16.14.2
- pip=22.1.2
- pip:
- robotframework-browser==17.2.0
- rpaframework==24.1.2
rccPostInstall:
- rfbrowser init
Learn about installing Python packages at Installing Python Packages
_.
Default installation method with Robocorp Developer Tools
_ using conda.yaml
:
.. code-block:: yaml
channels: - conda-forge dependencies: - python=3.9.16 - pip=22.1.2 - pip: - rpaframework==24.1.2
To install all extra packages (including Playwright dependencies), you can use:
.. code-block:: yaml
channels: - conda-forge dependencies: - python=3.9.16 - tesseract=4.1.1 - nodejs=16.14.2 - pip=22.1.2 - pip: - robotframework-browser==17.2.0 - rpaframework==24.1.2 - rpaframework-aws==5.2.8 - rpaframework-google==7.0.3 - rpaframework-recognition==5.1.2 rccPostInstall: - rfbrowser init
Separate installation of AWS, PDF and Windows libraries without the main
rpaframework
:
.. code-block:: yaml
channels: - conda-forge dependencies: - python=3.9.16 - pip=22.1.2 - pip: - rpaframework-aws==5.2.8 # included in the rpaframework as an extra - rpaframework-pdf==7.1.5 # included in the rpaframework by default - rpaframework-windows==7.3.2 # included in the rpaframework by default
Installation method with pip
using Python venv
_:
.. code-block:: shell
python -m venv .venv source .venv/bin/activate pip install rpaframework
.. note:: Python 3.8 or higher is required
After installation the libraries can be directly imported inside
Robot Framework
_:
.. code:: robotframework
*** Settings ***
Library RPA.Browser.Selenium
*** Tasks ***
Login as user
Open available browser https://example.com
Input text id:user-name ${USERNAME}
Input text id:password ${PASSWORD}
The libraries are also available inside Python_:
.. code:: python
from RPA.Browser.Selenium import Selenium
lib = Selenium()
lib.open_available_browser("https://example.com")
lib.input_text("id:user-name", username)
lib.input_text("id:password", password)
-
rpaframework.org <https://rpaframework.org/>
_ for library documentation -
Robocorp Documentation
_ for guides and tutorials -
#rpaframework channel in
Robot Framework Slack
_ if you have open questions or want to contribute -
Robocorp Forum
_ for discussions about RPA - Communicate with your fellow Software Robot Developers and Robocorp experts
at
Robocorp Developers Slack
_
.. _Robot Framework Slack: https://robotframework-slack-invite.herokuapp.com/ .. _Robocorp Forum: https://forum.robocorp.com .. _Robocorp Developers Slack: https://robocorp-developers.slack.com
Found a bug? Missing a critical feature? Interested in contributing?
Head over to the Contribution guide <https://rpaframework.org/contributing/guide.html>
_
to see where to get started.
Repository development is Python
_ based and requires at minimum
Python version 3.8+ installed on the development machine. The default Python version used in the
Robocorp Robot template is 3.9.16 so it is a good choice for the version to install. Not recommended
versions are 3.7.6 and 3.8.1, because they have issues with some of the dependencies related to rpaframework
.
At the time the newer Python versions starting from 3.11 are also not recommended, because some of
the dependencies might cause issues.
Repository development tooling is based on poetry
_ and invoke
_. Poetry is the
underlying tool used for compiling, building and running the package. Invoke is used
for scripting purposes, for example for linting, testing and publishing tasks.
Before writing any code, please read and acknowledge our extensive Dev Guide
_.
.. _Dev Guide: https://github.com/robocorp/rpaframework/blob/master/docs/source/contributing/development.md
First steps to start developing:
- initial poetry configuration
.. code:: shell
poetry config virtualenvs.path null poetry config virtualenvs.in-project true poetry config repositories.devpi "https://devpi.robocorp.cloud/ci/test"
-
git clone the repository #. create a new Git branch or switch to correct branch or stay in master branch
- some branch naming conventions feature/name-of-feature, hotfix/name-of-the-issue, release/number-of-release
#. poetry install
which install package with its dependencies into the .venv directory of the package, for example packages/main/.venv
#. if testing against Robocorp Robot which is using devdata/env.json
- set environment variables
- or
poetry build
and use resulting .whl file (in the dist/ directory) in the Robot conda.yaml - or
poetry build
and push resulting .whl file (in the dist/ directory) into a repository and use raw url to include it in the Robot conda.yaml - another possibility for Robocorp internal development is to use Robocorp devpi instance, by
poetry publish --ci
and point conda.yaml to use rpaframework version in devpi
#. poetry run python -m robot <ROBOT_ARGS> <TARGET_ROBOT_FILE>
- common ROBOT_ARGS from Robocorp Robot template:
--report NONE --outputdir output --logtitle "Task log"
#. poetry run python <TARGET_PYTHON_FILE>
#. invoke lint
to make sure that code formatting is according to rpaframework repository guidelines.
It is possible and likely that Github action will fail the if developer has not linted the code changes. Code
formatting is based on black
_ and flake8
_ and those are run with the invoke lint
.
#. the library documentation can be created in the repository root (so called "meta" package level). The documentation is
built by the docgen tools using the locally installed version of the project, local changes for the main package
will be reflected each time you generate the docs, but if you want to see local changes for optional packages, you must
utilize invoke install-local --package <package_name>
using the appropriate package name (e.g., rpaframework-aws
). This
will reinstall that package as a local editable version instead of from PyPI. Multiple such packages can be added by
repeating the use of the --package
option. In order to reset this, use invoke install --reset
.
-
poetry update
and/orinvoke install-local --package <package name>
make docs
- open
docs/build/html/index.html
with the browser to view the changes or executemake local
and navigate tolocalhost:8000
to view docs as a live local webpage.
.. code-block:: toml
# Before
[tool.poetry.dependencies]
python = "^3.8"
rpaframework = { path = "packages/main", extras = ["cv", "playwright", "aws"] }
rpaframework-google = "^4.0.0"
rpaframework-windows = "^4.0.0"
# After
[tool.poetry.dependencies]
python = "^3.8"
rpaframework = { path = "packages/main", extras = ["cv", "playwright"] }
rpaframework-aws = { path = "packages/aws" }
rpaframework-google = "^4.0.0"
rpaframework-windows = "^4.0.0"
#. invoke test
(this will run both Python unittests and robotframework tests defined in the packages tests/ directory)
- to run specific Python test:
poetry run pytest path/to/test.py::test_function
- to run specific Robotframework test:
inv testrobot -r <robot_name> -t <task_name>
#. git commit changes #. git push changes to remote #. create pull request from the branch describing changes included in the description #. update docs/source/releasenotes.rst with changes (commit and push)
Packaging and publishing are done after changes have been merged into master branch. All the following steps should be done within master branch.
#. git pull latest changes into master branch
#. in the package directory containing changes execute invoke lint
and invoke test
#. update pyproject.toml with new version according to semantic versioning
#. update docs/source/releasenotes.rst with changes
#. in the repository root (so called "meta" package level) run command poetry update
#. git commit changed poetry.lock files (on meta and target package level), releasenotes.rst
and pyproject.toml with message "PACKAGE. version x.y.z"
#. git push
#. invoke publish
after Github action on master branch is all green
Some recommended tools for development
-
Visual Studio Code
_ as a code editor with following extensions:-
Robocorp Code
_ -
Robot Framework Language Server
_ -
GitLens
_ -
Python extension
_
-
-
GitHub Desktop
_ will make version management less prone to errors
.. _poetry: https://python-poetry.org .. _invoke: https://www.pyinvoke.org .. _Visual Studio Code: https://code.visualstudio.com .. _GitHub Desktop: https://desktop.github.com .. _Robocorp Code: https://marketplace.visualstudio.com/items?itemName=robocorp.robocorp-code .. _Robot Framework Language Server: https://marketplace.visualstudio.com/items?itemName=robocorp.robotframework-lsp .. _GitLens: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens .. _Python extension: https://marketplace.visualstudio.com/items?itemName=ms-python.python .. _black: https://pypi.org/project/black/ .. _flake8: https://pypi.org/project/flake8/ .. _venv: https://docs.python.org/3/library/venv.html
This project is open-source and licensed under the terms of the
Apache License 2.0 <http://apache.org/licenses/LICENSE-2.0>
_.
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for rpaframework
Similar Open Source Tools
rpaframework
RPA Framework is an open-source collection of libraries and tools for Robotic Process Automation (RPA), designed to be used with Robot Framework and Python. It offers well-documented core libraries for Software Robot Developers, optimized for Robocorp Control Room and Developer Tools, and accepts external contributions. The project includes various libraries for tasks like archiving, browser automation, date/time manipulations, cloud services integration, encryption operations, database interactions, desktop automation, document processing, email operations, Excel manipulation, file system operations, FTP interactions, web API interactions, image manipulation, AI services, and more. The development of the repository is Python-based and requires Python version 3.8+, with tooling based on poetry and invoke for compiling, building, and running the package. The project is licensed under the Apache License 2.0.
StableToolBench
StableToolBench is a new benchmark developed to address the instability of Tool Learning benchmarks. It aims to balance stability and reality by introducing features such as a Virtual API System with caching and API simulators, a new set of solvable queries determined by LLMs, and a Stable Evaluation System using GPT-4. The Virtual API Server can be set up either by building from source or using a prebuilt Docker image. Users can test the server using provided scripts and evaluate models with Solvable Pass Rate and Solvable Win Rate metrics. The tool also includes model experiments results comparing different models' performance.
StableToolBench
StableToolBench is a new benchmark developed to address the instability of Tool Learning benchmarks. It aims to balance stability and reality by introducing features like Virtual API System, Solvable Queries, and Stable Evaluation System. The benchmark ensures consistency through a caching system and API simulators, filters queries based on solvability using LLMs, and evaluates model performance using GPT-4 with metrics like Solvable Pass Rate and Solvable Win Rate.
gollama
Gollama is a delightful tool that brings Ollama, your offline conversational AI companion, directly into your terminal. It provides a fun and interactive way to generate responses from various models without needing internet connectivity. Whether you're brainstorming ideas, exploring creative writing, or just looking for inspiration, Gollama is here to assist you. The tool offers an interactive interface, customizable prompts, multiple models selection, and visual feedback to enhance user experience. It can be installed via different methods like downloading the latest release, using Go, running with Docker, or building from source. Users can interact with Gollama through various options like specifying a custom base URL, prompt, model, and enabling raw output mode. The tool supports different modes like interactive, piped, CLI with image, and TUI with image. Gollama relies on third-party packages like bubbletea, glamour, huh, and lipgloss. The roadmap includes implementing piped mode, support for extracting codeblocks, copying responses/codeblocks to clipboard, GitHub Actions for automated releases, and downloading models directly from Ollama using the rest API. Contributions are welcome, and the project is licensed under the MIT License.
PraisonAI
Praison AI is a low-code, centralised framework that simplifies the creation and orchestration of multi-agent systems for various LLM applications. It emphasizes ease of use, customization, and human-agent interaction. The tool leverages AutoGen and CrewAI frameworks to facilitate the development of AI-generated scripts and movie concepts. Users can easily create, run, test, and deploy agents for scriptwriting and movie concept development. Praison AI also provides options for full automatic mode and integration with OpenAI models for enhanced AI capabilities.
dvc
DVC, or Data Version Control, is a command-line tool and VS Code extension that helps you develop reproducible machine learning projects. With DVC, you can version your data and models, iterate fast with lightweight pipelines, track experiments in your local Git repo, compare any data, code, parameters, model, or performance plots, and share experiments and automatically reproduce anyone's experiment.
BricksLLM
BricksLLM is a cloud native AI gateway written in Go. Currently, it provides native support for OpenAI, Anthropic, Azure OpenAI and vLLM. BricksLLM aims to provide enterprise level infrastructure that can power any LLM production use cases. Here are some use cases for BricksLLM: * Set LLM usage limits for users on different pricing tiers * Track LLM usage on a per user and per organization basis * Block or redact requests containing PIIs * Improve LLM reliability with failovers, retries and caching * Distribute API keys with rate limits and cost limits for internal development/production use cases * Distribute API keys with rate limits and cost limits for students
mistral.rs
Mistral.rs is a fast LLM inference platform written in Rust. We support inference on a variety of devices, quantization, and easy-to-use application with an Open-AI API compatible HTTP server and Python bindings.
ovos-installer
The ovos-installer is a simple and multilingual tool designed to install Open Voice OS and HiveMind using Bash, Whiptail, and Ansible. It supports various Linux distributions and provides an automated installation process. Users can easily start and stop services, update their Open Voice OS instance, and uninstall the tool if needed. The installer also allows for non-interactive installation through scenario files. It offers a user-friendly way to set up Open Voice OS on different systems.
onnxruntime-server
ONNX Runtime Server is a server that provides TCP and HTTP/HTTPS REST APIs for ONNX inference. It aims to offer simple, high-performance ML inference and a good developer experience. Users can provide inference APIs for ONNX models without writing additional code by placing the models in the directory structure. Each session can choose between CPU or CUDA, analyze input/output, and provide Swagger API documentation for easy testing. Ready-to-run Docker images are available, making it convenient to deploy the server.
aiogram
aiogram is a modern and fully asynchronous framework for Telegram Bot API written in Python 3.8+ using asyncio and aiohttp. It helps users create faster and more powerful bots. The framework supports features such as asynchronous operations, type hints, PyPy support, Telegram Bot API integration, router updates, Finite State Machine, magic filters, middlewares, webhook replies, and I18n/L10n support with GNU Gettext or Fluent. Prior experience with asyncio is recommended before using aiogram.
pr-pilot
PR Pilot is an AI-powered tool designed to assist users in their daily workflow by delegating routine work to AI with confidence and predictability. It integrates seamlessly with popular development tools and allows users to interact with it through a Command-Line Interface, Python SDK, REST API, and Smart Workflows. Users can automate tasks such as generating PR titles and descriptions, summarizing and posting issues, and formatting README files. The tool aims to save time and enhance productivity by providing AI-powered solutions for common development tasks.
aiostream
aiostream provides a collection of stream operators for creating asynchronous pipelines of operations. It offers features like operator pipe-lining, repeatability, safe iteration context, simplified execution, slicing and indexing, and concatenation. The stream operators are categorized into creation, transformation, selection, combination, aggregation, advanced, timing, and miscellaneous. Users can combine these operators to perform various asynchronous tasks efficiently.
rwkv.cpp
rwkv.cpp is a port of BlinkDL/RWKV-LM to ggerganov/ggml, supporting FP32, FP16, and quantized INT4, INT5, and INT8 inference. It focuses on CPU but also supports cuBLAS. The project provides a C library rwkv.h and a Python wrapper. RWKV is a large language model architecture with models like RWKV v5 and v6. It requires only state from the previous step for calculations, making it CPU-friendly on large context lengths. Users are advised to test all available formats for perplexity and latency on a representative dataset before serious use.
MooER
MooER (摩耳) is an LLM-based speech recognition and translation model developed by Moore Threads. It allows users to transcribe speech into text (ASR) and translate speech into other languages (AST) in an end-to-end manner. The model was trained using 5K hours of data and is now also available with an 80K hours version. MooER is the first LLM-based speech model trained and inferred using domestic GPUs. The repository includes pretrained models, inference code, and a Gradio demo for a better user experience.
TPI-LLM
TPI-LLM (Tensor Parallelism Inference for Large Language Models) is a system designed to bring LLM functions to low-resource edge devices, addressing privacy concerns by enabling LLM inference on edge devices with limited resources. It leverages multiple edge devices for inference through tensor parallelism and a sliding window memory scheduler to minimize memory usage. TPI-LLM demonstrates significant improvements in TTFT and token latency compared to other models, and plans to support infinitely large models with low token latency in the future.
For similar tasks
crawlee
Crawlee is a web scraping and browser automation library that helps you build reliable scrapers quickly. Your crawlers will appear human-like and fly under the radar of modern bot protections even with the default configuration. Crawlee gives you the tools to crawl the web for links, scrape data, and store it to disk or cloud while staying configurable to suit your project's needs.
rpaframework
RPA Framework is an open-source collection of libraries and tools for Robotic Process Automation (RPA), designed to be used with Robot Framework and Python. It offers well-documented core libraries for Software Robot Developers, optimized for Robocorp Control Room and Developer Tools, and accepts external contributions. The project includes various libraries for tasks like archiving, browser automation, date/time manipulations, cloud services integration, encryption operations, database interactions, desktop automation, document processing, email operations, Excel manipulation, file system operations, FTP interactions, web API interactions, image manipulation, AI services, and more. The development of the repository is Python-based and requires Python version 3.8+, with tooling based on poetry and invoke for compiling, building, and running the package. The project is licensed under the Apache License 2.0.
Delphi-AI-Developer
Delphi AI Developer is a plugin that enhances the Delphi IDE with AI capabilities from OpenAI, Gemini, and Groq APIs. It assists in code generation, refactoring, and speeding up development by providing code suggestions and predefined questions. Users can interact with AI chat and databases within the IDE, customize settings, and access documentation. The plugin is open-source and under the MIT License.
StableSwarmUI
StableSwarmUI is a modular Stable Diffusion web user interface that emphasizes making power tools easily accessible, high performance, and extensible. It is designed to be a one-stop-shop for all things Stable Diffusion, providing a wide range of features and capabilities to enhance the user experience.
civitai
Civitai is a platform where people can share their stable diffusion models (textual inversions, hypernetworks, aesthetic gradients, VAEs, and any other crazy stuff people do to customize their AI generations), collaborate with others to improve them, and learn from each other's work. The platform allows users to create an account, upload their models, and browse models that have been shared by others. Users can also leave comments and feedback on each other's models to facilitate collaboration and knowledge sharing.
joliGEN
JoliGEN is an integrated framework for training custom generative AI image-to-image models. It implements GAN, Diffusion, and Consistency models for various image translation tasks, including domain and style adaptation with conservation of semantics. The tool is designed for real-world applications such as Controlled Image Generation, Augmented Reality, Dataset Smart Augmentation, and Synthetic to Real transforms. JoliGEN allows for fast and stable training with a REST API server for simplified deployment. It offers a wide range of options and parameters with detailed documentation available for models, dataset formats, and data augmentation.
facefusion-docker
FaceFusion Docker is an industry leading face manipulation platform that provides a seamless way to manipulate faces in images and videos. The repository offers Docker containers for CPU, CUDA, TensorRT, and ROCm environments, allowing users to easily set up and run the platform. Users can access different containers through specific ports to browse and interact with the face manipulation features. The platform is designed to be user-friendly and efficient for various face manipulation tasks.
For similar jobs
aiscript
AiScript is a lightweight scripting language that runs on JavaScript. It supports arrays, objects, and functions as first-class citizens, and is easy to write without the need for semicolons or commas. AiScript runs in a secure sandbox environment, preventing infinite loops from freezing the host. It also allows for easy provision of variables and functions from the host.
askui
AskUI is a reliable, automated end-to-end automation tool that only depends on what is shown on your screen instead of the technology or platform you are running on.
bots
The 'bots' repository is a collection of guides, tools, and example bots for programming bots to play video games. It provides resources on running bots live, installing the BotLab client, debugging bots, testing bots in simulated environments, and more. The repository also includes example bots for games like EVE Online, Tribal Wars 2, and Elvenar. Users can learn about developing bots for specific games, syntax of the Elm programming language, and tools for memory reading development. Additionally, there are guides on bot programming, contributing to BotLab, and exploring Elm syntax and core library.
ain
Ain is a terminal HTTP API client designed for scripting input and processing output via pipes. It allows flexible organization of APIs using files and folders, supports shell-scripts and executables for common tasks, handles url-encoding, and enables sharing the resulting curl, wget, or httpie command-line. Users can put things that change in environment variables or .env-files, and pipe the API output for further processing. Ain targets users who work with many APIs using a simple file format and uses curl, wget, or httpie to make the actual calls.
LaVague
LaVague is an open-source Large Action Model framework that uses advanced AI techniques to compile natural language instructions into browser automation code. It leverages Selenium or Playwright for browser actions. Users can interact with LaVague through an interactive Gradio interface to automate web interactions. The tool requires an OpenAI API key for default examples and offers a Playwright integration guide. Contributors can help by working on outlined tasks, submitting PRs, and engaging with the community on Discord. The project roadmap is available to track progress, but users should exercise caution when executing LLM-generated code using 'exec'.
robocorp
Robocorp is a platform that allows users to create, deploy, and operate Python automations and AI actions. It provides an easy way to extend the capabilities of AI agents, assistants, and copilots with custom actions written in Python. Users can create and deploy tools, skills, loaders, and plugins that securely connect any AI Assistant platform to their data and applications. The Robocorp Action Server makes Python scripts compatible with ChatGPT and LangChain by automatically creating and exposing an API based on function declaration, type hints, and docstrings. It simplifies the process of developing and deploying AI actions, enabling users to interact with AI frameworks effortlessly.
Open-Interface
Open Interface is a self-driving software that automates computer tasks by sending user requests to a language model backend (e.g., GPT-4V) and simulating keyboard and mouse inputs to execute the steps. It course-corrects by sending current screenshots to the language models. The tool supports MacOS, Linux, and Windows, and requires setting up the OpenAI API key for access to GPT-4V. It can automate tasks like creating meal plans, setting up custom language model backends, and more. Open Interface is currently not efficient in accurate spatial reasoning, tracking itself in tabular contexts, and navigating complex GUI-rich applications. Future improvements aim to enhance the tool's capabilities with better models trained on video walkthroughs. The tool is cost-effective, with user requests priced between $0.05 - $0.20, and offers features like interrupting the app and primary display visibility in multi-monitor setups.
AI-Case-Sorter-CS7.1
AI-Case-Sorter-CS7.1 is a project focused on building a case sorter using machine vision and machine learning AI to sort cases by headstamp. The repository includes Arduino code and 3D models necessary for the project.