6
6
import com .theokanning .openai .assistants .*;
7
7
import com .theokanning .openai .file .File ;
8
8
import com .theokanning .openai .utils .TikTokensUtil ;
9
- import org .junit .jupiter .api .AfterAll ;
10
- import org .junit .jupiter .api .Test ;
9
+ import org .junit .jupiter .api .*;
11
10
12
11
import java .util .Collections ;
13
12
import java .util .List ;
14
13
15
14
import static org .junit .jupiter .api .Assertions .*;
16
15
17
16
17
+ @ TestMethodOrder (MethodOrderer .OrderAnnotation .class )
18
18
public class AssistantTest {
19
- public static final String MATH_TUTOR = "Math Tutor" ;
20
- public static final String ASSISTANT_INSTRUCTION = "You are a personal Math Tutor." ;
21
19
22
- static String token = System .getenv ("OPENAI_TOKEN" );;
20
+ static OpenAiService service = new OpenAiService (System .getenv ("OPENAI_TOKEN" ));
21
+ static String assistantId ;
22
+ static String fileId ;
23
23
24
- static OpenAiService service = new OpenAiService (token );
25
24
26
- @ Test
27
- void retrieveAssistant () {
28
- Assistant createAssistantResponse = createAndValidateAssistant ();
29
-
30
- Assistant retrieveAssistantResponse = service .retrieveAssistant (createAssistantResponse .getId ());
31
- validateAssistantResponse (retrieveAssistantResponse );
25
+ @ AfterAll
26
+ static void teardown () {
27
+ try {
28
+ service .deleteAssistantFile (assistantId , fileId );
29
+ } catch (Exception e ) {
30
+ // do nothing
31
+ }
32
+ try {
33
+ service .deleteAssistant (assistantId );
34
+ } catch (Exception e ) {
35
+ // do nothing
36
+ }
32
37
}
33
38
34
39
@ Test
35
- void modifyAssistant () {
36
- Assistant createAssistantResponse = createAndValidateAssistant ();
40
+ @ Order (1 )
41
+ void createAssistant () {
42
+ AssistantRequest assistantRequest = AssistantRequest .builder ().model (TikTokensUtil .ModelEnum .GPT_4_1106_preview .getName ()).name ("Math Tutor" ).instructions ("You are a personal Math Tutor." ).tools (Collections .singletonList (new Tool (AssistantToolsEnum .CODE_INTERPRETER , null ))).build ();
43
+ Assistant assistant = service .createAssistant (assistantRequest );
37
44
38
- String modifiedName = MATH_TUTOR + "Modified" ;
39
- ModifyAssistantRequest modifyRequest = ModifyAssistantRequest .builder ()
40
- .name (modifiedName )
41
- .build ();
45
+ assistantId = assistant .getId ();
42
46
43
- Assistant modifiedAssistantResponse = service .modifyAssistant (createAssistantResponse .getId (), modifyRequest );
44
- assertNotNull (modifiedAssistantResponse );
45
- assertEquals (modifiedName , modifiedAssistantResponse .getName ());
47
+ assertEquals (assistant .getName (), "Math Tutor" );
48
+ assertEquals (assistant .getTools ().get (0 ).getType (), AssistantToolsEnum .CODE_INTERPRETER );
46
49
}
47
50
48
51
@ Test
49
- void deleteAssistant () {
50
- Assistant createAssistantResponse = createAndValidateAssistant ();
52
+ @ Order (2 )
53
+ void retrieveAssistant () {
54
+ Assistant assistant = service .retrieveAssistant (assistantId );
51
55
52
- DeleteResult deletedAssistant = service .deleteAssistant (createAssistantResponse .getId ());
56
+ assertEquals (assistant .getName (), "Math Tutor" );
57
+ }
53
58
54
- assertNotNull (deletedAssistant );
55
- assertEquals (createAssistantResponse .getId (), deletedAssistant .getId ());
56
- assertTrue (deletedAssistant .isDeleted ());
59
+ @ Test
60
+ @ Order (3 )
61
+ void modifyAssistant () {
62
+ String modifiedName = "Science Tutor" ;
63
+ ModifyAssistantRequest modifyRequest = ModifyAssistantRequest .builder ().name (modifiedName ).build ();
64
+
65
+ Assistant modifiedAssistant = service .modifyAssistant (assistantId , modifyRequest );
66
+ assertEquals (modifiedName , modifiedAssistant .getName ());
57
67
}
58
68
59
69
@ Test
70
+ @ Order (4 )
60
71
void listAssistants () {
61
72
OpenAiResponse <Assistant > assistants = service .listAssistants (ListSearchParameters .builder ().build ());
62
73
@@ -65,79 +76,53 @@ void listAssistants() {
65
76
}
66
77
67
78
@ Test
79
+ @ Order (5 )
68
80
void createAssistantFile () {
69
- File uploadedFile = uploadAssistantFile ();
70
-
71
- Assistant assistant = createAndValidateAssistant ();
81
+ String filePath = "src/test/resources/assistants-data.html" ;
82
+ File uploadedFile = service .uploadFile ("assistants" , filePath );
72
83
73
- AssistantFile assistantFile = service .createAssistantFile (assistant . getId () , new AssistantFileRequest (uploadedFile .getId ()));
84
+ AssistantFile assistantFile = service .createAssistantFile (assistantId , new AssistantFileRequest (uploadedFile .getId ()));
74
85
86
+ fileId = assistantFile .getId ();
75
87
assertNotNull (assistantFile );
76
88
assertEquals (uploadedFile .getId (), assistantFile .getId ());
77
- assertEquals (assistant . getId () , assistantFile .getAssistantId ());
89
+ assertEquals (assistantId , assistantFile .getAssistantId ());
78
90
}
79
91
80
92
@ Test
93
+ @ Order (6 )
81
94
void retrieveAssistantFile () {
82
- //TODO
83
- //There is a bug with uploading assistant files https://community.openai.com/t/possible-bug-with-agent-creation-php-file-upload/484490/5
84
- //So this would have to be done later
85
- }
95
+ AssistantFile file = service .retrieveAssistantFile (assistantId , fileId );
86
96
87
- @ Test
88
- void deleteAssistantFile () {
89
- //TODO
90
- //There is a bug with uploading assistant files https://community.openai.com/t/possible-bug-with-agent-creation-php-file-upload/484490/5
91
- //So this would have to be done later
97
+ assertEquals (file .getId (), fileId );
92
98
}
93
99
100
+
94
101
@ Test
102
+ @ Order (7 )
95
103
void listAssistantFiles () {
96
- //TODO
97
- //There is a bug with uploading assistant files https://community.openai.com/t/possible-bug-with-agent-creation-php-file-upload/484490/5
98
- //So this would have to be done later
99
- }
100
-
101
- @ AfterAll
102
- static void clean () {
103
- //Clean up all data created during this test
104
- ListSearchParameters queryFilter = ListSearchParameters .builder ()
105
- .limit (100 )
106
- .build ();
107
- OpenAiResponse <Assistant > assistantListAssistant = service .listAssistants (queryFilter );
108
- assistantListAssistant .getData ().forEach (assistant ->{
109
- service .deleteAssistant (assistant .getId ());
110
- });
111
- }
104
+ List <AssistantFile > files = service .listAssistantFiles (assistantId , new ListSearchParameters ()).data ;
112
105
113
- private static File uploadAssistantFile () {
114
- String filePath = "src/test/resources/assistants-data.html" ;
115
- return service . uploadFile ( "assistants" , filePath );
106
+ assertFalse ( files . isEmpty ());
107
+ assertEquals ( files . get ( 0 ). getId (), fileId ) ;
108
+ assertEquals ( files . get ( 0 ). getObject (), "assistant.file" );
116
109
}
117
110
118
- private static Assistant createAndValidateAssistant () {
119
- AssistantRequest assistantRequest = assistantStub ();
120
- Assistant createAssistantResponse = service . createAssistant ( assistantRequest );
121
- validateAssistantResponse ( createAssistantResponse );
111
+ @ Test
112
+ @ Order ( 8 )
113
+ void deleteAssistantFile () {
114
+ DeleteResult deletedFile = service . deleteAssistantFile ( assistantId , fileId );
122
115
123
- return createAssistantResponse ;
116
+ assertEquals (deletedFile .getId (), fileId );
117
+ assertTrue (deletedFile .isDeleted ());
124
118
}
125
119
126
- private static AssistantRequest assistantStub () {
127
- return AssistantRequest .builder ()
128
- .model (TikTokensUtil .ModelEnum .GPT_4_1106_preview .getName ())
129
- .name (MATH_TUTOR )
130
- .instructions (ASSISTANT_INSTRUCTION )
131
- .tools (Collections .singletonList (new Tool (AssistantToolsEnum .CODE_INTERPRETER , null )))
132
- .build ();
133
- }
120
+ @ Test
121
+ @ Order (9 )
122
+ void deleteAssistant () {
123
+ DeleteResult deletedAssistant = service .deleteAssistant (assistantId );
134
124
135
- private static void validateAssistantResponse (Assistant assistantResponse ) {
136
- assertNotNull (assistantResponse );
137
- assertNotNull (assistantResponse .getId ());
138
- assertNotNull (assistantResponse .getCreatedAt ());
139
- assertNotNull (assistantResponse .getObject ());
140
- assertEquals (assistantResponse .getTools ().get (0 ).getType (), AssistantToolsEnum .CODE_INTERPRETER );
141
- assertEquals (MATH_TUTOR , assistantResponse .getName ());
125
+ assertEquals (assistantId , deletedAssistant .getId ());
126
+ assertTrue (deletedAssistant .isDeleted ());
142
127
}
143
128
}
0 commit comments