Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install flask praisonai==2.2.13 gunicorn markdown
RUN pip install flask praisonai==2.2.14 gunicorn markdown
EXPOSE 8080
CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]
2 changes: 1 addition & 1 deletion docker/Dockerfile.chat
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
RUN pip install --no-cache-dir \
praisonaiagents>=0.0.4 \
praisonai_tools \
"praisonai==2.2.13" \
"praisonai==2.2.14" \
"praisonai[chat]" \
"embedchain[github,youtube]"

Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.dev
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
RUN pip install --no-cache-dir \
praisonaiagents>=0.0.4 \
praisonai_tools \
"praisonai==2.2.13" \
"praisonai==2.2.14" \
"praisonai[ui]" \
"praisonai[chat]" \
"praisonai[realtime]" \
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile.ui
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
RUN pip install --no-cache-dir \
praisonaiagents>=0.0.4 \
praisonai_tools \
"praisonai==2.2.13" \
"praisonai==2.2.14" \
"praisonai[ui]" \
"praisonai[crewai]"

Expand Down
2 changes: 1 addition & 1 deletion docs/api/praisonai/deploy.html
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ <h2 id="raises">Raises</h2>
file.write(&#34;FROM python:3.11-slim\n&#34;)
file.write(&#34;WORKDIR /app\n&#34;)
file.write(&#34;COPY . .\n&#34;)
file.write(&#34;RUN pip install flask praisonai==2.2.13 gunicorn markdown\n&#34;)
file.write(&#34;RUN pip install flask praisonai==2.2.14 gunicorn markdown\n&#34;)
file.write(&#34;EXPOSE 8080\n&#34;)
file.write(&#39;CMD [&#34;gunicorn&#34;, &#34;-b&#34;, &#34;0.0.0.0:8080&#34;, &#34;api:app&#34;]\n&#39;)

Expand Down
2 changes: 1 addition & 1 deletion docs/developers/local-development.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ WORKDIR /app

COPY . .

RUN pip install flask praisonai==2.2.13 watchdog
RUN pip install flask praisonai==2.2.14 watchdog

EXPOSE 5555

Expand Down
2 changes: 1 addition & 1 deletion docs/ui/chat.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ To facilitate local development with live reload, you can use Docker. Follow the

COPY . .

RUN pip install flask praisonai==2.2.13 watchdog
RUN pip install flask praisonai==2.2.14 watchdog

EXPOSE 5555

Expand Down
2 changes: 1 addition & 1 deletion docs/ui/code.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,7 @@ To facilitate local development with live reload, you can use Docker. Follow the

COPY . .

RUN pip install flask praisonai==2.2.13 watchdog
RUN pip install flask praisonai==2.2.14 watchdog

EXPOSE 5555

Expand Down
1 change: 0 additions & 1 deletion praisonai/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,6 @@ def __init__(self, agent_file="agents.yaml", framework="", auto=False, init=Fals
'model': os.environ.get("OPENAI_MODEL_NAME", "gpt-4o"),
'base_url': os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1"),
'api_key': api_key,
'openai_api_key': api_key, # AutoGen sometimes expects this field name
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The line 'openai_api_key': api_key, # AutoGen sometimes expects this field name was removed. The comment suggests this key might be important for AutoGen compatibility.

Could you clarify the reason for this removal?

  • Has it been confirmed that AutoGen (across various versions or configurations it might be used with PraisonAI) no longer requires or benefits from this specific openai_api_key field, and that the existing api_key field is now universally sufficient?
  • Was this change tested to ensure no regressions for users integrating with AutoGen, especially those who might have relied on this specific key name?

Given the PR's focus on versioning, this change seems out of scope unless it's a necessary cleanup tied to version 2.2.14. Ensuring backward compatibility or clearly documenting such breaking changes is important.

'api_type': 'openai' # AutoGen expects this field
}
]
Expand Down
2 changes: 1 addition & 1 deletion praisonai/deploy.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ def create_dockerfile(self):
file.write("FROM python:3.11-slim\n")
file.write("WORKDIR /app\n")
file.write("COPY . .\n")
file.write("RUN pip install flask praisonai==2.2.13 gunicorn markdown\n")
file.write("RUN pip install flask praisonai==2.2.14 gunicorn markdown\n")
file.write("EXPOSE 8080\n")
file.write('CMD ["gunicorn", "-b", "0.0.0.0:8080", "api:app"]\n')

Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "PraisonAI"
version = "2.2.13"
version = "2.2.14"
description = "PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration."
readme = "README.md"
license = ""
Expand Down Expand Up @@ -89,7 +89,7 @@ autogen = ["pyautogen>=0.2.19", "praisonai-tools>=0.0.15", "crewai"]

[tool.poetry]
name = "PraisonAI"
version = "2.2.13"
version = "2.2.14"
description = "PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration."
authors = ["Mervin Praison"]
license = ""
Expand Down
33 changes: 32 additions & 1 deletion tests/test_agents_playbook.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,39 @@
# tests/test_agents_playbook.py
import unittest
import subprocess
import pytest
import os
from praisonai import PraisonAI

class TestPraisonAIFramework(unittest.TestCase):

@pytest.mark.real
def test_main_with_autogen_framework(self):
"""Test AutoGen framework integration with real API calls"""
# Check if we have a real API key
api_key = os.environ.get('OPENAI_API_KEY')
if not api_key or api_key == 'test-key' or api_key.startswith('sk-test-'):
self.skipTest("Skipping real test - no valid OPENAI_API_KEY provided")

praisonai = PraisonAI(agent_file='tests/autogen-agents.yaml')
try:
result = praisonai.run()
self.assertIn('### Task Output ###', result)
self.assertIn('### Output ###', result)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The assertion in test_main_with_autogen_framework has changed from looking for ### Task Output ### to ### Output ###.

What prompted this change in the expected output string for the AutoGen framework test?

  • Is this due to a deliberate change in the output format of praisonai.run() in version 2.2.14?
  • Or is it possibly related to the removal of the openai_api_key in praisonai/cli.py affecting AutoGen's output?

Understanding the reason for this change is important to ensure the test is still correctly verifying the intended behavior and not masking an unintended side-effect.

except Exception as e:
if ('Invalid API Key' in str(e) or 'AuthenticationError' in str(e) or
'InstructorRetryException' in str(e) or '401' in str(e)):
self.skipTest(f"Skipping due to API authentication: {e}")
else:
raise

@pytest.mark.real
def test_main_with_custom_framework(self):
"""Test CrewAI framework integration with real API calls"""
# Check if we have a real API key
api_key = os.environ.get('OPENAI_API_KEY')
if not api_key or api_key == 'test-key' or api_key.startswith('sk-test-'):
self.skipTest("Skipping real test - no valid OPENAI_API_KEY provided")

praisonai = PraisonAI(agent_file='tests/crewai-agents.yaml')
try:
result = praisonai.run()
Expand All @@ -28,7 +45,14 @@ def test_main_with_custom_framework(self):
else:
raise

@pytest.mark.real
def test_main_with_internet_search_tool(self):
"""Test internet search tool integration with real API calls"""
# Check if we have a real API key
api_key = os.environ.get('OPENAI_API_KEY')
if not api_key or api_key == 'test-key' or api_key.startswith('sk-test-'):
self.skipTest("Skipping real test - no valid OPENAI_API_KEY provided")

praisonai = PraisonAI(agent_file='tests/search-tool-agents.yaml')
try:
result = praisonai.run()
Expand All @@ -40,7 +64,14 @@ def test_main_with_internet_search_tool(self):
else:
raise

@pytest.mark.real
def test_main_with_built_in_tool(self):
"""Test built-in tool integration with real API calls"""
# Check if we have a real API key
api_key = os.environ.get('OPENAI_API_KEY')
if not api_key or api_key == 'test-key' or api_key.startswith('sk-test-'):
self.skipTest("Skipping real test - no valid OPENAI_API_KEY provided")

praisonai = PraisonAI(agent_file='tests/inbuilt-tool-agents.yaml')
try:
result = praisonai.run()
Expand Down
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading