@@ -164,7 +164,7 @@ __DATA__
164164 local code, body = t('/apisix/admin/routes/1',
165165 ngx.HTTP_PUT,
166166 [[{
167- "uri": "/v1/messages",
167+ "uri": "/anything/ v1/messages",
168168 "plugins": {
169169 "ai-proxy": {
170170 "provider": "openai",
@@ -194,7 +194,7 @@ passed
194194
195195=== TEST 2: Send Anthropic request to /v1/messages and verify protocol conversion
196196--- request
197- POST /v1/messages
197+ POST /anything/ v1/messages
198198{ "model": "claude-3-5-sonnet-20241022", "messages": [ { "role": "user","content": "hello" } ] }
199199--- more_headers
200200Authorization: Bearer token
@@ -206,7 +206,7 @@ qr/"text":"1 \+ 1 = 2\."/
206206
207207=== TEST 3: Missing messages field returns 400
208208--- request
209- POST /v1/messages
209+ POST /anything/ v1/messages
210210{ "model": "claude-3-5-sonnet-20241022" }
211211--- more_headers
212212Authorization: Bearer token
@@ -218,7 +218,7 @@ Authorization: Bearer token
218218
219219=== TEST 4: Malformed JSON body returns 400
220220--- request
221- POST /v1/messages
221+ POST /anything/ v1/messages
222222this is not valid json
223223--- more_headers
224224Authorization: Bearer token
@@ -229,7 +229,7 @@ Content-Type: application/json
229229
230230=== TEST 5: messages field is wrong type (non-array)
231231--- request
232- POST /v1/messages
232+ POST /anything/ v1/messages
233233{ "model": "claude-3-5-sonnet-20241022", "messages": "hello" }
234234--- more_headers
235235Authorization: Bearer token
@@ -241,7 +241,7 @@ Authorization: Bearer token
241241
242242=== TEST 6: messages is an empty array
243243--- request
244- POST /v1/messages
244+ POST /anything/ v1/messages
245245{ "model": "claude-3-5-sonnet-20241022", "messages": [] }
246246--- more_headers
247247Authorization: Bearer token
@@ -259,7 +259,7 @@ Authorization: Bearer token
259259 local code, body = t('/apisix/admin/routes/1',
260260 ngx.HTTP_PUT,
261261 [[{
262- "uri": "/v1/messages",
262+ "uri": "/anything/ v1/messages",
263263 "plugins": {
264264 "ai-proxy": {
265265 "provider": "openai",
@@ -356,7 +356,7 @@ passed
356356
357357 local res, err = httpc:request({
358358 method = "POST",
359- path = "/v1/messages",
359+ path = "/anything/ v1/messages",
360360 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
361361 body = [[{
362362 "model": "claude-3-5-sonnet-20241022",
@@ -389,7 +389,7 @@ qr/event: message_start\ndata:.*?"type":"message_start".*?event: content_block_s
389389 local code, body = t('/apisix/admin/routes/1',
390390 ngx.HTTP_PUT,
391391 [[{
392- "uri": "/v1/messages",
392+ "uri": "/anything/ v1/messages",
393393 "plugins": {
394394 "ai-proxy": {
395395 "provider": "openai",
@@ -487,7 +487,7 @@ passed
487487
488488 local res, err = httpc:request({
489489 method = "POST",
490- path = "/v1/messages",
490+ path = "/anything/ v1/messages",
491491 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
492492 body = [[{
493493 "model": "claude-3-5-sonnet-20241022",
@@ -515,7 +515,7 @@ qr/"text":"system prompt ok"/
515515 local code, body = t('/apisix/admin/routes/1',
516516 ngx.HTTP_PUT,
517517 [[{
518- "uri": "/v1/messages",
518+ "uri": "/anything/ v1/messages",
519519 "plugins": {
520520 "ai-proxy": {
521521 "provider": "openai",
@@ -545,7 +545,7 @@ passed
545545
546546=== TEST 12: Tool calling request/response conversion (Anthropic <-> OpenAI)
547547--- request
548- POST /v1/messages
548+ POST /anything/ v1/messages
549549{"model":"claude-3-5-sonnet-20241022","messages":[{"role":"user","content":"What is the weather in Paris?"}],"tools":[{"name":"get_weather","description":"Get weather","input_schema":{"type":"object","properties":{"location":{"type":"string"}},"required":["location"]}}]}
550550--- more_headers
551551Authorization: Bearer token
@@ -564,7 +564,7 @@ qr/(?=.*"stop_reason":"tool_use")(?=.*"type":"tool_use")(?=.*"name":"get_weather
564564 local code, body = t('/apisix/admin/routes/1',
565565 ngx.HTTP_PUT,
566566 [[{
567- "uri": "/v1/messages",
567+ "uri": "/anything/ v1/messages",
568568 "plugins": {
569569 "ai-proxy": {
570570 "provider": "openai",
@@ -638,7 +638,7 @@ passed
638638
639639 local res, err = httpc:request({
640640 method = "POST",
641- path = "/v1/messages",
641+ path = "/anything/ v1/messages",
642642 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
643643 body = [[{
644644 "model": "gpt-4o",
@@ -691,7 +691,7 @@ OK: message_stop appeared exactly once
691691 local code, body = t('/apisix/admin/routes/1',
692692 ngx.HTTP_PUT,
693693 [[{
694- "uri": "/v1/messages",
694+ "uri": "/anything/ v1/messages",
695695 "plugins": {
696696 "ai-proxy": {
697697 "provider": "openai",
@@ -769,7 +769,7 @@ passed
769769
770770 local res, err = httpc:request({
771771 method = "POST",
772- path = "/v1/messages",
772+ path = "/anything/ v1/messages",
773773 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
774774 body = [[{
775775 "model": "gpt-4o",
@@ -836,7 +836,7 @@ OK: two finish_reason chunks handled correctly
836836 local code, body = t('/apisix/admin/routes/1',
837837 ngx.HTTP_PUT,
838838 [[{
839- "uri": "/v1/messages",
839+ "uri": "/anything/ v1/messages",
840840 "plugins": {
841841 "ai-proxy": {
842842 "provider": "openai",
@@ -914,7 +914,7 @@ passed
914914
915915 local res, err = httpc:request({
916916 method = "POST",
917- path = "/v1/messages",
917+ path = "/anything/ v1/messages",
918918 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
919919 body = [[{
920920 "model": "deepseek-chat",
@@ -968,7 +968,7 @@ OK: DeepSeek usage:null chunks handled correctly
968968 local code, body = t('/apisix/admin/routes/1',
969969 ngx.HTTP_PUT,
970970 [[{
971- "uri": "/v1/messages",
971+ "uri": "/anything/ v1/messages",
972972 "plugins": {
973973 "ai-proxy": {
974974 "provider": "openai",
@@ -1042,7 +1042,7 @@ passed
10421042
10431043 local res, err = httpc:request({
10441044 method = "POST",
1045- path = "/v1/messages",
1045+ path = "/anything/ v1/messages",
10461046 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
10471047 body = [[{
10481048 "model": "gpt-4o",
@@ -1156,7 +1156,7 @@ OK: sse.encode output ends with \n\n
11561156
11571157 local res, err = httpc:request({
11581158 method = "POST",
1159- path = "/v1/messages",
1159+ path = "/anything/ v1/messages",
11601160 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
11611161 body = [[{
11621162 "model": "gpt-4o",
@@ -1246,7 +1246,7 @@ OK: sse.encode edge cases passed
12461246 local code, body = t('/apisix/admin/routes/1',
12471247 ngx.HTTP_PUT,
12481248 [[{
1249- "uri": "/v1/messages",
1249+ "uri": "/anything/ v1/messages",
12501250 "plugins": {
12511251 "ai-proxy": {
12521252 "provider": "openai",
@@ -1320,7 +1320,7 @@ passed
13201320
13211321 local res, err = httpc:request({
13221322 method = "POST",
1323- path = "/v1/messages",
1323+ path = "/anything/ v1/messages",
13241324 headers = { ["Content-Type"] = "application/json", ["Connection"] = "close" },
13251325 body = [[{
13261326 "model": "gpt-4o",
0 commit comments