File tree Expand file tree Collapse file tree 3 files changed +25
-5
lines changed Expand file tree Collapse file tree 3 files changed +25
-5
lines changed Original file line number Diff line number Diff line change @@ -18,13 +18,15 @@ def list(version: default_version)
1818 end
1919
2020 def upload ( version : default_version , parameters : { } )
21+ file = validate ( file : parameters [ :file ] )
22+
2123 self . class . post (
2224 "/#{ version } /files" ,
2325 headers : {
2426 "Content-Type" => "application/json" ,
2527 "Authorization" => "Bearer #{ @access_token } "
2628 } ,
27- body : parameters . merge ( file : File . open ( parameters [ : file] ) )
29+ body : parameters . merge ( file : file )
2830 )
2931 end
3032
@@ -53,5 +55,13 @@ def delete(id:, version: default_version)
5355 def default_version
5456 "v1" . freeze
5557 end
58+
59+ def validate ( file :)
60+ File . open ( file ) . each_line . with_index do |line , index |
61+ JSON . parse ( line )
62+ rescue JSON ::ParserError => e
63+ raise JSON ::ParserError , "#{ e . message } - found on line #{ index + 1 } of #{ file } "
64+ end
65+ end
5666 end
5767end
Original file line number Diff line number Diff line change 1+ {"text" : " puppy A is happy" , "metadata" : " emotional state of puppy A" }
2+ {"text" : " puppy B is sad" , "metadata" : "emotional state of puppy B }
Original file line number Diff line number Diff line change 1111 OpenAI ::Client . new . files . upload ( parameters : { file : file , purpose : purpose } )
1212 end
1313
14- it "succeeds" do
15- VCR . use_cassette ( cassette ) do
16- r = JSON . parse ( response . body )
17- expect ( r [ "filename" ] ) . to eq ( filename )
14+ context "with a valid JSON lines file" do
15+ it "succeeds" do
16+ VCR . use_cassette ( cassette ) do
17+ r = JSON . parse ( response . body )
18+ expect ( r [ "filename" ] ) . to eq ( filename )
19+ end
1820 end
1921 end
22+
23+ context "with an invalid file" do
24+ let ( :filename ) { File . join ( "errors" , "missing_quote.jsonl" ) }
25+
26+ it { expect { response } . to raise_error ( JSON ::ParserError ) }
27+ end
2028 end
2129
2230 describe "#list" do
You can’t perform that action at this time.
0 commit comments