[Router] Refactor protocol definitions: split spec.rs into modular files (#11677)

Co-authored-by: Chang Su <chang.s.su@oracle.com>
This commit is contained in:
Keyang Ru
2025-10-16 13:44:44 -07:00
committed by GitHub
parent 86b04d25b3
commit 4c9bcb9d56
56 changed files with 2939 additions and 2914 deletions

View File

@@ -1,7 +1,8 @@
use serde_json::json;
use sglang_router_rs::protocols::spec::{
ChatCompletionRequest, ChatMessage, Function, FunctionCall, FunctionChoice, StreamOptions,
Tool, ToolChoice, ToolChoiceValue, ToolReference, UserMessageContent,
use sglang_router_rs::protocols::chat::{ChatCompletionRequest, ChatMessage, UserMessageContent};
use sglang_router_rs::protocols::common::{
Function, FunctionCall, FunctionChoice, StreamOptions, Tool, ToolChoice, ToolChoiceValue,
ToolReference,
};
use sglang_router_rs::protocols::validated::Normalizable;
use validator::Validate;

View File

@@ -1,5 +1,5 @@
use serde_json::json;
use sglang_router_rs::protocols::spec::{ChatMessage, UserMessageContent};
use sglang_router_rs::protocols::chat::{ChatMessage, UserMessageContent};
#[test]
fn test_chat_message_tagged_by_role_system() {

View File

@@ -1,5 +1,6 @@
use serde_json::{from_str, json, to_string};
use sglang_router_rs::protocols::spec::{EmbeddingRequest, GenerationRequest};
use sglang_router_rs::protocols::common::GenerationRequest;
use sglang_router_rs::protocols::embedding::EmbeddingRequest;
#[test]
fn test_embedding_request_serialization_string_input() {

View File

@@ -1,9 +1,10 @@
use serde_json::{from_str, to_string, Number, Value};
use sglang_router_rs::protocols::spec::{
GenerationRequest, RerankRequest, RerankResponse, RerankResult, StringOrArray, UsageInfo,
V1RerankReqInput,
use sglang_router_rs::protocols::common::{GenerationRequest, StringOrArray, UsageInfo};
use sglang_router_rs::protocols::rerank::{
RerankRequest, RerankResponse, RerankResult, V1RerankReqInput,
};
use std::collections::HashMap;
use validator::Validate;
#[test]
fn test_rerank_request_serialization() {
@@ -75,8 +76,7 @@ fn test_rerank_request_validation_empty_query() {
};
let result = request.validate();
assert!(result.is_err());
assert_eq!(result.unwrap_err(), "Query cannot be empty");
assert!(result.is_err(), "Should reject empty query");
}
#[test]
@@ -92,8 +92,7 @@ fn test_rerank_request_validation_whitespace_query() {
};
let result = request.validate();
assert!(result.is_err());
assert_eq!(result.unwrap_err(), "Query cannot be empty");
assert!(result.is_err(), "Should reject whitespace-only query");
}
#[test]
@@ -109,8 +108,7 @@ fn test_rerank_request_validation_empty_documents() {
};
let result = request.validate();
assert!(result.is_err());
assert_eq!(result.unwrap_err(), "Documents list cannot be empty");
assert!(result.is_err(), "Should reject empty documents list");
}
#[test]
@@ -126,8 +124,7 @@ fn test_rerank_request_validation_top_k_zero() {
};
let result = request.validate();
assert!(result.is_err());
assert_eq!(result.unwrap_err(), "top_k must be greater than 0");
assert!(result.is_err(), "Should reject top_k of zero");
}
#[test]