Skip to content

Commit

Permalink
Merge branch 'main' into eng-128-rework-chatml
Browse files Browse the repository at this point in the history
  • Loading branch information
bboynton97 committed Apr 2, 2024
2 parents 87d890a + c71f8af commit afefb95
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 63 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/python-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Python Tests

on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
python-version: [3.11]

steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.11' # Use a default Python version for running tox
- name: Install tox
run: pip install tox
- name: Run tests with tox
run: tox
1 change: 0 additions & 1 deletion agentops/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from .event import Event, ActionEvent, LLMEvent, ToolEvent, ErrorEvent
from .enums import Models
from .decorators import record_function
from os import environ


def init(api_key: Optional[str] = None,
Expand Down
3 changes: 3 additions & 0 deletions agentops/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ def record(self, event: Event | ErrorEvent):
"""

if self._session is not None and not self._session.has_ended:
agent_id = check_call_stack_for_agent_id()
if agent_id:
event.agent_id = agent_id
self._worker.add_event(event.__dict__)
else:
logging.warning(
Expand Down
2 changes: 1 addition & 1 deletion agentops/http_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def post(url: str, payload: bytes, api_key: Optional[str] = None, parent_key: Op

if result.code == 401:
logging.warning(
'AgentOps: Could not post data - API server rejected your API key')
f'AgentOps: Could not post data - API server rejected your API key: {api_key}')
if result.code == 400:
logging.warning(f'AgentOps: Could not post data - {result.body}')
if result.code == 500:
Expand Down
120 changes: 60 additions & 60 deletions tests/test_patcher.py
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
import pytest
from unittest.mock import MagicMock
from agentops.llm_tracker import LlmTracker

# Mock the openai library


@pytest.fixture
def mock_openai(mocker):
mock = mocker.MagicMock()
mocker.patch.dict('sys.modules', {'openai': mock})
return mock

# Test that the correct methods are overridden for version >= 1.0.0


def test_override_api_version_ge_1(mock_openai):
mock_openai.__version__ = '1.0.0' # Version is exactly 1.0.0
tracker = LlmTracker(client=MagicMock())

original_method = MagicMock()
mock_openai.chat = MagicMock(completions=MagicMock(create=original_method))

tracker.override_api('openai')

# The original method should be replaced with a new method
assert mock_openai.chat.completions.create != original_method
assert callable(mock_openai.chat.completions.create)

# Test that the correct methods are overridden for version < 1.0.0


def test_override_api_version_lt_1(mock_openai):
mock_openai.__version__ = '0.9.9' # Version is less than 1.0.0
tracker = LlmTracker(client=MagicMock())

original_method = MagicMock()
mock_openai.ChatCompletion = MagicMock(create=original_method)

tracker.override_api('openai')

# The original method should be replaced with a new method
assert mock_openai.ChatCompletion.create != original_method
assert callable(mock_openai.ChatCompletion.create)

# Test that the override_api method handles missing __version__ attribute


def test_override_api_missing_version_attribute(mocker):
mock_openai = mocker.MagicMock()
mocker.patch.dict('sys.modules', {'openai': mock_openai})
tracker = LlmTracker(client=MagicMock())

# This should not raise an error, and should use the methods for version < 1.0.0
tracker.override_api('openai')

# Now you need to assert that the correct methods for version < 1.0.0 are overridden
# Assuming 'ChatCompletion.create' is the method to be overridden for version < 1.0.0
assert hasattr(mock_openai, 'ChatCompletion')
assert callable(mock_openai.ChatCompletion.create)
# import pytest
# from unittest.mock import MagicMock
# from agentops.llm_tracker import LlmTracker
#
# # Mock the openai library
#
#
# @pytest.fixture
# def mock_openai(mocker):
# mock = mocker.MagicMock()
# mocker.patch.dict('sys.modules', {'openai': mock})
# return mock
#
# # Test that the correct methods are overridden for version >= 1.0.0
#
#
# def test_override_api_version_ge_1(mock_openai):
# mock_openai.__version__ = '1.0.0' # Version is exactly 1.0.0
# tracker = LlmTracker(client=MagicMock())
#
# original_method = MagicMock()
# mock_openai.chat = MagicMock(completions=MagicMock(create=original_method))
#
# tracker.override_api('openai')
#
# # The original method should be replaced with a new method
# assert mock_openai.chat.completions.create != original_method
# assert callable(mock_openai.chat.completions.create)
#
# # Test that the correct methods are overridden for version < 1.0.0
#
#
# def test_override_api_version_lt_1(mock_openai):
# mock_openai.__version__ = '0.9.9' # Version is less than 1.0.0
# tracker = LlmTracker(client=MagicMock())
#
# original_method = MagicMock()
# mock_openai.ChatCompletion = MagicMock(create=original_method)
#
# tracker.override_api('openai')
#
# # The original method should be replaced with a new method
# assert mock_openai.ChatCompletion.create != original_method
# assert callable(mock_openai.ChatCompletion.create)
#
# # Test that the override_api method handles missing __version__ attribute
#
#
# def test_override_api_missing_version_attribute(mocker):
# mock_openai = mocker.MagicMock()
# mocker.patch.dict('sys.modules', {'openai': mock_openai})
# tracker = LlmTracker(client=MagicMock())
#
# # This should not raise an error, and should use the methods for version < 1.0.0
# tracker.override_api('openai')
#
# # Now you need to assert that the correct methods for version < 1.0.0 are overridden
# # Assuming 'ChatCompletion.create' is the method to be overridden for version < 1.0.0
# assert hasattr(mock_openai, 'ChatCompletion')
# assert callable(mock_openai.ChatCompletion.create)
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# and then run "tox" from this directory.

[tox]
envlist = py37, py38, py39, mypy
envlist = py310, py311

[testenv]
deps =
Expand Down

0 comments on commit afefb95

Please sign in to comment.