Metadata-Version: 2.2
Name: besser-agentic-framework
Version: 2.0.0
Summary: BESSER Agentic Framework (BAF)
Author: Luxembourg Institute of Science and Technology
License: MIT
Project-URL: Documentation, https://besser-agentic-framework.readthedocs.io/
Project-URL: Source Code, https://github.com/BESSER-PEARL/BESSER-Agentic-Framework
Project-URL: Bug Tracker, https://github.com/BESSER-PEARL/BESSER-Agentic-Framework/issues
Keywords: agent,bot,framework,chatbot,state-machine,nlp
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: dateparser==1.1.8
Requires-Dist: langdetect==1.0.9
Requires-Dist: nltk==3.9.1
Requires-Dist: numpy==1.26.1
Requires-Dist: pandas==2.1.1
Requires-Dist: python-telegram-bot==21.0
Requires-Dist: psycopg2-binary==2.9.9
Requires-Dist: pyvis==0.3.2
Requires-Dist: requests==2.31.0
Requires-Dist: snowballstemmer==2.2.0
Requires-Dist: sqlalchemy==2.0.29
Requires-Dist: streamlit==1.40.0
Requires-Dist: streamlit-antd-components==0.3.2
Requires-Dist: text2num==2.5.0
Requires-Dist: websocket-client==1.6.4
Requires-Dist: websockets==11.0.3
Provides-Extra: extras
Requires-Dist: spacy==3.7.2; extra == "extras"
Requires-Dist: librosa==0.10.1; extra == "extras"
Requires-Dist: SpeechRecognition==3.10.0; extra == "extras"
Requires-Dist: opencv-python==4.10.0.84; extra == "extras"
Requires-Dist: plotly==5.18.0; extra == "extras"
Requires-Dist: chromadb==0.5.4; extra == "extras"
Requires-Dist: langchain==0.2.9; extra == "extras"
Requires-Dist: langchain-community==0.2.7; extra == "extras"
Requires-Dist: pypdf==4.3.1; extra == "extras"
Requires-Dist: tiktoken==0.7.0; extra == "extras"
Provides-Extra: llms
Requires-Dist: openai==1.59.6; extra == "llms"
Requires-Dist: replicate==0.23.1; extra == "llms"
Requires-Dist: transformers==4.41.1; extra == "llms"
Provides-Extra: tensorflow
Requires-Dist: keras==2.14.0; extra == "tensorflow"
Requires-Dist: tensorflow==2.14.0; extra == "tensorflow"
Provides-Extra: torch
Requires-Dist: torch==2.5.1; extra == "torch"
Provides-Extra: docs
Requires-Dist: sphinx==7.2.3; extra == "docs"
Requires-Dist: sphinx-copybutton==0.5.2; extra == "docs"
Requires-Dist: sphinx-paramlinks==0.6.0; extra == "docs"
Requires-Dist: furo==2023.8.19; extra == "docs"
Requires-Dist: m2r2==0.3.3; extra == "docs"
Provides-Extra: all
Requires-Dist: spacy==3.7.2; extra == "all"
Requires-Dist: librosa==0.10.1; extra == "all"
Requires-Dist: SpeechRecognition==3.10.0; extra == "all"
Requires-Dist: opencv-python==4.10.0.84; extra == "all"
Requires-Dist: plotly==5.18.0; extra == "all"
Requires-Dist: chromadb==0.5.4; extra == "all"
Requires-Dist: langchain==0.2.9; extra == "all"
Requires-Dist: langchain-community==0.2.7; extra == "all"
Requires-Dist: pypdf==4.3.1; extra == "all"
Requires-Dist: tiktoken==0.7.0; extra == "all"
Requires-Dist: openai==1.59.6; extra == "all"
Requires-Dist: replicate==0.23.1; extra == "all"
Requires-Dist: transformers==4.41.1; extra == "all"
Requires-Dist: keras==2.14.0; extra == "all"
Requires-Dist: tensorflow==2.14.0; extra == "all"
Requires-Dist: torch==2.5.1; extra == "all"
Dynamic: provides-extra
Dynamic: requires-dist

<div align="center">
  <img src="./docs/source/_static/baf_logo_readme.svg" alt="BESSER Agentic Framework" width="500"/>
</div>

[![Python](https://img.shields.io/badge/python-3.10%20%7C%203.11-blue?logo=python&logoColor=gold)](https://pypi.org/project/besser-agentic-framework/)
[![PyPI version](https://img.shields.io/pypi/v/besser-agentic-framework?logo=pypi&logoColor=white)](https://pypi.org/project/besser-agentic-framework/)
[![PyPI - Downloads](https://static.pepy.tech/badge/besser-agentic-framework)](https://pypi.org/project/besser-agentic-framework/)
[![Documentation Status](https://readthedocs.org/projects/besser-agentic-framework/badge/?version=latest)](https://besser-agentic-framework.readthedocs.io/latest/?badge=latest)
[![PyPI - License](https://img.shields.io/pypi/l/besser-agentic-framework)](https://opensource.org/license/MIT)
[![LinkedIn](https://img.shields.io/badge/-LinkedIn-blue?logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/pireseduardo/)](https://www.linkedin.com/company/besser-agentic-framework)
[![GitHub Repo stars](https://img.shields.io/github/stars/besser-pearl/besser-agentic-framework?style=social)](https://star-history.com/#besser-pearl/besser-agentic-framework)

The BESSER Agentic Framework (BAF) is part of the [BESSER](https://modeling-languages.com/a-smart-low-code-platform-for-smart-software-in-luxembourg-goodbye-barcelona/) (Building Better Smart Software Faster) project. It aims
to make the design and implementation of agents, bots and chatbots easier and accessible for everyone.

**Check out the official [documentation](https://besser-agentic-framework.readthedocs.io/).**

## Quick start

### Requirements

- Python 3.11
- Recommended: Create a virtual environment
  (e.g. [venv](https://docs.python.org/3/library/venv.html),
  [conda](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html))
- Install the [package](https://pypi.org/project/besser-agentic-framework/):

```bash
pip install besser-agentic-framework
```

This command will install the base package with the core dependencies, but will omit some optional dependencies.

You can add the following tags to the installation:

- ``extras``: It will install the necessary dependencies for some additional agent functionalities (e.g., RAG, Speech-to-Text, plotly, opencv).
- ``llms``: Necessary dependencies to run LLMs (openai, replicate, transformers)
- ``tensorflow``: Necessary for the SimpleIntentClassifier. Since tensorflow is a very heavy package, this allows to install it only if necessary
- ``torch``: To install PyTorch (necessary for some HuggingFace models)
- ``docs``: Dependencies to compile the project documentation (the one you are reading now)
- ``all``: **It installs all the dependencies at once**

This is how you would install the package with additional dependencies:

```bash
  pip install besser-agentic-framework[extras,llms,tensorflow]
```

If you cloned this repository, you can install the dependencies in 2 ways:

```bash
pip install -e .[extras]
```

or by referencing to the requirements files:

```bash
pip install -r requirements/requirements-extras.txt
```

Note that if you want to set your agent's language to **Luxembourgish**, you will need to manually install the [spellux](https://github.com/questoph/spellux) library. 

### Example agents

- [greetings_agent](https://github.com/BESSER-PEARL/BESSER-Agentic-Framework/blob/main/besser/agent/test/examples/greetings_agent.py): Very simple agent for the first contact with the framework
- [weather_agent](https://github.com/BESSER-PEARL/BESSER-Agentic-Framework/blob/main/besser/agent/test/examples/weather_agent.py): Introducing [entities](https://besser-agentic-framework.readthedocs.io/latest/wiki/core/entities.html)
- [llm_agent](https://github.com/BESSER-PEARL/BESSER-Agentic-Framework/blob/main/besser/agent/test/examples/llm_agent.py): Introducing [Large Language Models (LLMs)](https://besser-agentic-framework.readthedocs.io/latest/wiki/nlp/llm.html)
- [rag_agent](https://github.com/BESSER-PEARL/BESSER-Agentic-Framework/blob/main/besser/agent/test/examples/rag_agent.py): Introducing [Retrieval Augmented Generation (RAG)](https://besser-agentic-framework.readthedocs.io/latest/wiki/nlp/rag.html)
- [telegram_agent](https://github.com/BESSER-PEARL/BESSER-Agentic-Framework/blob/main/besser/agent/test/examples/telegram_agent.py): Introducing the [TelegramPlatform](https://besser-agentic-framework.readthedocs.io/latest/wiki/platforms/telegram_platform.html)

For more example agents, check out the [BAF-agent-examples](https://github.com/BESSER-PEARL/BAF-agent-examples) repository!
