@@ -28,7 +28,7 @@ import (
28
28
func Test_ValidateRequestBody (t * testing.T ) {
29
29
testCases := []struct {
30
30
message string
31
- requestPath string
31
+ requestType OpenAiRequestType
32
32
requestBody []byte
33
33
model string
34
34
messages string
@@ -38,95 +38,95 @@ func Test_ValidateRequestBody(t *testing.T) {
38
38
}{
39
39
{
40
40
message : "unknown path" ,
41
- requestPath : "/v1/unknown" ,
41
+ requestType : OpenAiRequestUnknownType ,
42
42
statusCode : envoyTypePb .StatusCode_NotImplemented ,
43
43
},
44
44
{
45
45
message : "/v1/chat/completions json unmarhsal error" ,
46
- requestPath : "/v1/chat/completions" ,
46
+ requestType : OpenAiRequestChatCompletionsType ,
47
47
requestBody : []byte ("bad_request" ),
48
48
statusCode : envoyTypePb .StatusCode_BadRequest ,
49
49
},
50
50
{
51
51
message : "/v1/chat/completions json unmarhsal ChatCompletionsNewParams" ,
52
- requestPath : "/v1/chat/completions" ,
52
+ requestType : OpenAiRequestChatCompletionsType ,
53
53
requestBody : []byte (`{"model": 1}` ),
54
54
statusCode : envoyTypePb .StatusCode_BadRequest ,
55
55
},
56
56
{
57
57
message : "/v1/chat/completions json unmarhsal no messages" ,
58
- requestPath : "/v1/chat/completions" ,
58
+ requestType : OpenAiRequestChatCompletionsType ,
59
59
requestBody : []byte (`{"model": "llama2-7b"}` ),
60
60
statusCode : envoyTypePb .StatusCode_BadRequest ,
61
61
},
62
62
{
63
63
message : "/v1/chat/completions json unmarhsal valid messages" ,
64
- requestPath : "/v1/chat/completions" ,
64
+ requestType : OpenAiRequestChatCompletionsType ,
65
65
requestBody : []byte (`{"model": "llama2-7b", "messages": [{"role": "system", "content": "this is system"},{"role": "user", "content": "say this is test"}]}` ),
66
66
model : "llama2-7b" ,
67
67
messages : "this is system say this is test" ,
68
68
statusCode : envoyTypePb .StatusCode_OK ,
69
69
},
70
70
{
71
71
message : "/v1/chat/completions json unmarhsal invalid messages with complex content" ,
72
- requestPath : "/v1/chat/completions" ,
72
+ requestType : OpenAiRequestChatCompletionsType ,
73
73
requestBody : []byte (`{"model": "llama2-7b", "messages": [{"role": "system", "content": "this is system"},{"role": "user", "content": {"type": "text", "text": "say this is test", "complex": make(chan int)}}]}` ),
74
74
statusCode : envoyTypePb .StatusCode_BadRequest ,
75
75
},
76
76
{
77
77
message : "/v1/chat/completions json unmarhsal valid messages with complex content" ,
78
- requestPath : "/v1/chat/completions" ,
78
+ requestType : OpenAiRequestChatCompletionsType ,
79
79
requestBody : []byte (`{"model": "llama2-7b", "messages": [{"role": "system", "content": "this is system"},{"role": "user", "content": [{"type": "text", "text": "say this is test"}, {"type": "text", "text": "say this is test"}]}]}` ),
80
80
model : "llama2-7b" ,
81
81
messages : "this is system [{\" text\" :\" say this is test\" ,\" type\" :\" text\" },{\" text\" :\" say this is test\" ,\" type\" :\" text\" }]" ,
82
82
statusCode : envoyTypePb .StatusCode_OK ,
83
83
},
84
84
{
85
85
message : "/v1/chat/completions json unmarhsal valid messages with stop string param" ,
86
- requestPath : "/v1/chat/completions" ,
86
+ requestType : OpenAiRequestChatCompletionsType ,
87
87
requestBody : []byte (`{"model": "llama2-7b", "messages": [{"role": "system", "content": "this is system"},{"role": "user", "content": "say this is test"}], "stop": "stop"}` ),
88
88
model : "llama2-7b" ,
89
89
messages : "this is system say this is test" ,
90
90
statusCode : envoyTypePb .StatusCode_OK ,
91
91
},
92
92
{
93
93
message : "/v1/chat/completions json unmarhsal valid messages with stop array param" ,
94
- requestPath : "/v1/chat/completions" ,
94
+ requestType : OpenAiRequestChatCompletionsType ,
95
95
requestBody : []byte (`{"model": "llama2-7b", "messages": [{"role": "system", "content": "this is system"},{"role": "user", "content": "say this is test"}], "stop": ["stop"]}` ),
96
96
model : "llama2-7b" ,
97
97
messages : "this is system say this is test" ,
98
98
statusCode : envoyTypePb .StatusCode_OK ,
99
99
},
100
100
{
101
101
message : "/v1/chat/completions json unmarshal invalid stream bool" ,
102
- requestPath : "/v1/chat/completions" ,
102
+ requestType : OpenAiRequestChatCompletionsType ,
103
103
requestBody : []byte (`{"model": "llama2-7b", "stream": "true", "messages": [{"role": "system", "content": "this is system"}]}` ),
104
104
statusCode : envoyTypePb .StatusCode_BadRequest ,
105
105
},
106
106
{
107
107
message : "/v1/chat/completions json unmarshal stream options is null" ,
108
- requestPath : "/v1/chat/completions" ,
108
+ requestType : OpenAiRequestChatCompletionsType ,
109
109
user : utils.User {Tpm : 1 },
110
110
requestBody : []byte (`{"model": "llama2-7b", "stream": true, "messages": [{"role": "system", "content": "this is system"}]}` ),
111
111
statusCode : envoyTypePb .StatusCode_BadRequest ,
112
112
},
113
113
{
114
114
message : "/v1/chat/completions stream_options.include_usage == false with user.TPM >= 1 is NOT OK" ,
115
115
user : utils.User {Tpm : 1 },
116
- requestPath : "/v1/chat/completions" ,
116
+ requestType : OpenAiRequestChatCompletionsType ,
117
117
requestBody : []byte (`{"model": "llama2-7b", "stream": true, "stream_options": {"include_usage": false}, "messages": [{"role": "system", "content": "this is system"}]}` ),
118
118
statusCode : envoyTypePb .StatusCode_BadRequest ,
119
119
},
120
120
{
121
121
message : "/v1/chat/completions stream_options.include_usage == false with user.TPM == 0 is OK" ,
122
- requestPath : "/v1/chat/completions" ,
122
+ requestType : OpenAiRequestChatCompletionsType ,
123
123
requestBody : []byte (`{"model": "llama2-7b", "stream": true, "stream_options": {"include_usage": false}, "messages": [{"role": "system", "content": "this is system"}]}` ),
124
124
statusCode : envoyTypePb .StatusCode_OK ,
125
125
},
126
126
{
127
127
message : "/v1/chat/completions valid request body" ,
128
128
user : utils.User {Tpm : 1 },
129
- requestPath : "/v1/chat/completions" ,
129
+ requestType : OpenAiRequestChatCompletionsType ,
130
130
requestBody : []byte (`{"model": "llama2-7b", "stream": true, "stream_options": {"include_usage": true}, "messages": [{"role": "system", "content": "this is system"},{"role": "user", "content": "say this is test"}]}` ),
131
131
stream : true ,
132
132
model : "llama2-7b" ,
@@ -136,7 +136,7 @@ func Test_ValidateRequestBody(t *testing.T) {
136
136
}
137
137
138
138
for _ , tt := range testCases {
139
- model , messages , stream , errRes := validateRequestBody ("1" , tt .requestPath , tt .requestBody , tt .user )
139
+ model , messages , stream , errRes := validateRequestBody ("1" , tt .requestType , tt .requestBody , tt .user )
140
140
141
141
if tt .statusCode == 200 {
142
142
assert .Equal (t , (* extProcPb .ProcessingResponse )(nil ), errRes , tt .message )
0 commit comments