You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.2 KiB
89 lines
2.2 KiB
import io
|
|
import json
|
|
|
|
import pytest
|
|
|
|
import openai
|
|
from openai import error
|
|
|
|
|
|
# FILE TESTS
|
|
def test_file_upload():
|
|
result = openai.File.create(
|
|
file=io.StringIO(
|
|
json.dumps({"prompt": "test file data", "completion": "tada"})
|
|
),
|
|
purpose="fine-tune",
|
|
)
|
|
assert result.purpose == "fine-tune"
|
|
assert "id" in result
|
|
|
|
result = openai.File.retrieve(id=result.id)
|
|
assert result.status == "uploaded"
|
|
|
|
|
|
# CHAT COMPLETION TESTS
|
|
def test_chat_completions():
|
|
result = openai.ChatCompletion.create(
|
|
model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello!"}]
|
|
)
|
|
assert len(result.choices) == 1
|
|
|
|
|
|
def test_chat_completions_multiple():
|
|
result = openai.ChatCompletion.create(
|
|
model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello!"}], n=5
|
|
)
|
|
assert len(result.choices) == 5
|
|
|
|
|
|
def test_chat_completions_streaming():
|
|
result = None
|
|
events = openai.ChatCompletion.create(
|
|
model="gpt-3.5-turbo",
|
|
messages=[{"role": "user", "content": "Hello!"}],
|
|
stream=True,
|
|
)
|
|
for result in events:
|
|
assert len(result.choices) == 1
|
|
|
|
|
|
# COMPLETION TESTS
|
|
def test_completions():
|
|
result = openai.Completion.create(prompt="This was a test", n=5, engine="ada")
|
|
assert len(result.choices) == 5
|
|
|
|
|
|
def test_completions_multiple_prompts():
|
|
result = openai.Completion.create(
|
|
prompt=["This was a test", "This was another test"], n=5, engine="ada"
|
|
)
|
|
assert len(result.choices) == 10
|
|
|
|
|
|
def test_completions_model():
|
|
result = openai.Completion.create(prompt="This was a test", n=5, model="ada")
|
|
assert len(result.choices) == 5
|
|
assert result.model.startswith("ada")
|
|
|
|
|
|
def test_timeout_raises_error():
|
|
# A query that should take awhile to return
|
|
with pytest.raises(error.Timeout):
|
|
openai.Completion.create(
|
|
prompt="test" * 1000,
|
|
n=10,
|
|
model="ada",
|
|
max_tokens=100,
|
|
request_timeout=0.01,
|
|
)
|
|
|
|
|
|
def test_timeout_does_not_error():
|
|
# A query that should be fast
|
|
openai.Completion.create(
|
|
prompt="test",
|
|
model="ada",
|
|
request_timeout=10,
|
|
)
|