Activate and use OpenAI streaming API.
This commit is contained in:
+26
-14
@@ -16,26 +16,37 @@ class OpenAITest(unittest.TestCase):
|
||||
openai = OpenAI(config)
|
||||
|
||||
# Set up the mock response from openai.ChatCompletion.create
|
||||
mock_response = {
|
||||
mock_chunk1 = {
|
||||
'choices': [
|
||||
{
|
||||
'message': {
|
||||
'index': 0,
|
||||
'delta': {
|
||||
'content': 'Answer 1'
|
||||
}
|
||||
},
|
||||
'finish_reason': None
|
||||
},
|
||||
{
|
||||
'message': {
|
||||
'index': 1,
|
||||
'delta': {
|
||||
'content': 'Answer 2'
|
||||
}
|
||||
},
|
||||
'finish_reason': None
|
||||
}
|
||||
],
|
||||
'usage': {
|
||||
'prompt_tokens': 10,
|
||||
'completion_tokens': 20,
|
||||
'total_tokens': 30
|
||||
}
|
||||
}
|
||||
mock_create.return_value = mock_response
|
||||
mock_chunk2 = {
|
||||
'choices': [
|
||||
{
|
||||
'index': 0,
|
||||
'finish_reason': 'stop'
|
||||
},
|
||||
{
|
||||
'index': 1,
|
||||
'finish_reason': 'stop'
|
||||
}
|
||||
],
|
||||
}
|
||||
mock_create.return_value = iter([mock_chunk1, mock_chunk2])
|
||||
|
||||
# Create test data
|
||||
question = Message(Question('Question'))
|
||||
@@ -57,9 +68,9 @@ class OpenAITest(unittest.TestCase):
|
||||
self.assertIsNotNone(response.tokens)
|
||||
self.assertIsInstance(response.tokens, Tokens)
|
||||
assert response.tokens
|
||||
self.assertEqual(response.tokens.prompt, 10)
|
||||
self.assertEqual(response.tokens.completion, 20)
|
||||
self.assertEqual(response.tokens.total, 30)
|
||||
self.assertEqual(response.tokens.prompt, 53)
|
||||
self.assertEqual(response.tokens.completion, 6)
|
||||
self.assertEqual(response.tokens.total, 59)
|
||||
|
||||
# Assert the mock call to openai.ChatCompletion.create
|
||||
mock_create.assert_called_once_with(
|
||||
@@ -76,6 +87,7 @@ class OpenAITest(unittest.TestCase):
|
||||
max_tokens=config.max_tokens,
|
||||
top_p=config.top_p,
|
||||
n=2,
|
||||
stream=True,
|
||||
frequency_penalty=config.frequency_penalty,
|
||||
presence_penalty=config.presence_penalty
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user