mirror of
https://github.com/deepset-ai/haystack.git
synced 2025-08-11 01:57:48 +00:00

* Add support for prompt truncation when using chatgpt if direct prompting is used * Update tests for test token limit for prompt node * Update warning message to be correct * Minor cleanup * Mark back to integration * Update count_openai_tokens_messages to reflect changes shown in tiktoken * Use mocking to avoid request call * Fix test to make it comply with unit test requirements * Move tests to respective invocation layers * Moved fixture to one spot
15 lines
711 B
Python
15 lines
711 B
Python
from unittest.mock import patch, MagicMock
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_openai_tokenizer():
|
|
with patch("haystack.nodes.prompt.invocation_layer.open_ai.load_openai_tokenizer") as mock_tokenizer_func:
|
|
mock_tokenizer = MagicMock() # this will be our mock tokenizer
|
|
# "This is a test for a mock openai tokenizer."
|
|
mock_tokenizer.encode.return_value = [2028, 374, 264, 1296, 369, 264, 8018, 1825, 2192, 47058, 13]
|
|
# Returning truncated prompt: [2028, 374, 264, 1296, 369, 264, 8018, 1825, 2192]
|
|
mock_tokenizer.decode.return_value = "This is a test for a mock openai"
|
|
mock_tokenizer_func.return_value = mock_tokenizer
|
|
yield mock_tokenizer_func
|