PraisonAI application combines AutoGen and CrewAI or similar frameworks into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customization, and efficient human-agent collaboration.
Project description
Praison AI
Praison AI, leveraging both AutoGen and CrewAI or any other agent framework, represents a low-code, centralised framework designed to simplify the creation and orchestration of multi-agent systems for various LLM applications, emphasizing ease of use, customization, and human-agent interaction.
Cookbook | Open in Colab | |
---|---|---|
Basic | PraisonAI | |
Include Tools | PraisonAI Tools |
TL;DR
pip install praisonai
export OPENAI_API_KEY="Enter your API key"
praisonai --init create a movie script about dog in moon
praisonai
Table of Contents
- Installation
- Initialise
- Run
- Full Automatic Mode
- User Interface
- Praison AI Chat
- Create Custom Tools
- Agents Playbook
- Include praisonai package in your project
- Commands to Install Dev Dependencies
- Other Models
- Contributing
- Star History
Installation
pip install praisonai
Initialise
export OPENAI_API_KEY="Enter your API key"
Generate your OPENAI API KEY from here: https://platform.openai.com/api-keys
Note: You can use other providers such as Ollama, Mistral ... etc. Details are provided at the bottom.
praisonai --init create a movie script about dog in moon
This will automatically create agents.yaml file in the current directory.
To initialse with a specific agent framework (Optional):
praisonai --framework autogen --init create movie script about cat in mars
Run
praisonai
or
python -m praisonai
Specify the agent framework (Optional):
praisonai --framework autogen
Full Automatic Mode
praisonai --auto create a movie script about Dog in Moon
User Interface
pip install -U "praisonai[ui]"
export OPENAI_API_KEY="Enter your API key"
chainlit create-secret
export CHAINLIT_AUTH_SECRET=xxxxxxxx
praisonai ui
or
python -m praisonai ui
Praison AI Chat
pip install "praisonai[chat]"
export OPENAI_API_KEY="Enter your API key"
praisonai chat
Create Custom Tools
Step 1: Pre-requisite to Create a Custom Tool
agents.yaml
file should be present in the current directory.
If it doesn't exist, create it by running the command praisonai --init research about the latest AI News and prepare a detailed report
.
Step 2: to Create a Custom Tool
Create a file called tools.py in the same directory as the agents.yaml file.
# example tools.py
from duckduckgo_search import DDGS
from praisonai_tools import BaseTool
class InternetSearchTool(BaseTool):
name: str = "InternetSearchTool"
description: str = "Search Internet for relevant information based on a query or latest news"
def _run(self, query: str):
ddgs = DDGS()
results = ddgs.text(keywords=query, region='wt-wt', safesearch='moderate', max_results=5)
return results
Step 3: to Create a Custom Tool
Add the tool to the agents.yaml file as show below under the tools section - InternetSearchTool
.
framework: crewai
topic: research about the latest AI News and prepare a detailed report
roles:
research_analyst:
backstory: Experienced in gathering and analyzing data related to AI news trends.
goal: Analyze AI News trends
role: Research Analyst
tasks:
gather_data:
description: Conduct in-depth research on the latest AI News trends from reputable
sources.
expected_output: Comprehensive report on current AI News trends.
tools:
- InternetSearchTool
Agents Playbook
Simple Playbook Example
framework: crewai
topic: Artificial Intelligence
roles:
screenwriter:
backstory: 'Skilled in crafting scripts with engaging dialogue about {topic}.'
goal: Create scripts from concepts.
role: Screenwriter
tasks:
scriptwriting_task:
description: 'Develop scripts with compelling characters and dialogue about {topic}.'
expected_output: 'Complete script ready for production.'
Use 100+ Models
Include praisonai package in your project
Option 1: Using RAW YAML
from praisonai import PraisonAI
# Example agent_yaml content
agent_yaml = """
framework: "crewai"
topic: "Space Exploration"
roles:
astronomer:
role: "Space Researcher"
goal: "Discover new insights about {topic}"
backstory: "You are a curious and dedicated astronomer with a passion for unraveling the mysteries of the cosmos."
tasks:
investigate_exoplanets:
description: "Research and compile information about exoplanets discovered in the last decade."
expected_output: "A summarized report on exoplanet discoveries, including their size, potential habitability, and distance from Earth."
"""
# Create a PraisonAI instance with the agent_yaml content
praisonai = PraisonAI(agent_yaml=agent_yaml)
# Run PraisonAI
result = praisonai.run()
# Print the result
print(result)
Option 2: Using separate agents.yaml file
Note: Please create agents.yaml file before hand.
from praisonai import PraisonAI
def basic(): # Basic Mode
praisonai = PraisonAI(agent_file="agents.yaml")
praisonai.run()
if __name__ == "__main__":
basic()
Commands to Install Dependencies:
-
Install all dependencies, including dev dependencies:
poetry install
-
Install only documentation dependencies:
poetry install --with docs
-
Install only test dependencies:
poetry install --with test
-
Install only dev dependencies:
poetry install --with dev
This configuration ensures that your development dependencies are correctly categorized and installed as needed.
Contributing
- Fork on GitHub: Use the "Fork" button on the repository page.
- Clone your fork:
git clone https://github.com/yourusername/praisonAI.git
- Create a branch:
git checkout -b new-feature
- Make changes and commit:
git commit -am "Add some feature"
- Push to your fork:
git push origin new-feature
- Submit a pull request via GitHub's web interface.
- Await feedback from project maintainers.
Star History
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for praisonai-0.0.47-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | edf4d5bd3b7b13162d2acb96522a220ad4d9450208eaa9b23c21578390b2db93 |
|
MD5 | 6f94e1e0f0d447aa5bbad4291bbe9843 |
|
BLAKE2b-256 | a2bdae0cafe0e70e31266d444dcb58bfbd3eac97e3325d56cb3a8f1b65d53bfa |