-
-
Notifications
You must be signed in to change notification settings - Fork 360
/
Copy pathopenai_spec.rb
71 lines (63 loc) · 2.34 KB
/
openai_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
RSpec.describe OpenAI do
it "has a version number" do
expect(OpenAI::VERSION).not_to be nil
end
describe "#configure" do
let(:access_token) { "abc123" }
let(:api_version) { "v2" }
let(:organization_id) { "def456" }
let(:custom_uri_base) { "ghi789" }
let(:custom_request_timeout) { 25 }
let(:extra_headers) { { "User-Agent" => "OpenAI Ruby Gem #{OpenAI::VERSION}" } }
before do
OpenAI.configure do |config|
config.access_token = access_token
config.api_version = api_version
config.organization_id = organization_id
config.extra_headers = extra_headers
end
end
it "returns the config" do
expect(OpenAI.configuration.access_token).to eq(access_token)
expect(OpenAI.configuration.api_version).to eq(api_version)
expect(OpenAI.configuration.organization_id).to eq(organization_id)
expect(OpenAI.configuration.uri_base).to eq("https://api.openai.com/")
expect(OpenAI.configuration.request_timeout).to eq(120)
expect(OpenAI.configuration.extra_headers).to eq(extra_headers)
end
context "with custom timeout and uri base" do
before do
OpenAI.configure do |config|
config.uri_base = custom_uri_base
config.request_timeout = custom_request_timeout
end
end
it "returns the config" do
expect(OpenAI.configuration.access_token).to eq(access_token)
expect(OpenAI.configuration.api_version).to eq(api_version)
expect(OpenAI.configuration.organization_id).to eq(organization_id)
expect(OpenAI.configuration.uri_base).to eq(custom_uri_base)
expect(OpenAI.configuration.request_timeout).to eq(custom_request_timeout)
expect(OpenAI.configuration.extra_headers).to eq(extra_headers)
end
end
end
describe "#rough_token_count" do
context "on a non-String" do
it "raises an error" do
expect { OpenAI.rough_token_count([]) }.to raise_error(ArgumentError)
end
end
context "on the empty string" do
it "returns 0" do
expect(OpenAI.rough_token_count("")).to eq(0)
end
end
context "on a string" do
let(:content) { "Red is my favorite color. Egg is not a necessary ingredient." }
it "estimates tokens" do
expect(OpenAI.rough_token_count(content)).to eq(15)
end
end
end
end