mirror of
https://github.com/aljazceru/Auto-GPT.git
synced 2025-12-26 10:24:30 +01:00
55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
|
|
from autogpt.llm.api_manager import ApiManager
|
|
from autogpt.llm.providers import openai
|
|
|
|
api_manager = ApiManager()
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def reset_api_manager():
|
|
api_manager.reset()
|
|
yield
|
|
|
|
|
|
class TestProviderOpenAI:
|
|
@staticmethod
|
|
def test_create_chat_completion_debug_mode(caplog):
|
|
"""Test if debug mode logs response."""
|
|
messages = [
|
|
{"role": "system", "content": "You are a helpful assistant."},
|
|
{"role": "user", "content": "Who won the world series in 2020?"},
|
|
]
|
|
model = "gpt-3.5-turbo"
|
|
with patch("openai.ChatCompletion.create") as mock_create:
|
|
mock_response = MagicMock()
|
|
del mock_response.error
|
|
mock_response.usage.prompt_tokens = 10
|
|
mock_response.usage.completion_tokens = 20
|
|
mock_create.return_value = mock_response
|
|
|
|
openai.create_chat_completion(messages, model=model)
|
|
|
|
assert "Response" in caplog.text
|
|
|
|
@staticmethod
|
|
def test_create_chat_completion_empty_messages():
|
|
"""Test if empty messages result in zero tokens and cost."""
|
|
messages = []
|
|
model = "gpt-3.5-turbo"
|
|
|
|
with patch("openai.ChatCompletion.create") as mock_create:
|
|
mock_response = MagicMock()
|
|
del mock_response.error
|
|
mock_response.usage.prompt_tokens = 0
|
|
mock_response.usage.completion_tokens = 0
|
|
mock_create.return_value = mock_response
|
|
|
|
openai.create_chat_completion(messages, model=model)
|
|
|
|
assert api_manager.get_total_prompt_tokens() == 0
|
|
assert api_manager.get_total_completion_tokens() == 0
|
|
assert api_manager.get_total_cost() == 0
|