mirror of
https://github.com/katanemo/plano.git
synced 2026-07-17 16:31:04 +02:00
adding support for model aliases in archgw
This commit is contained in:
parent
1e8c81d8f6
commit
f13b420146
13 changed files with 1438 additions and 8 deletions
|
|
@ -104,6 +104,20 @@ pub struct ChatCompletionsRequest {
|
|||
// pub web_search: Option<bool>, // GOOD FIRST ISSUE: Future support for web search
|
||||
}
|
||||
|
||||
impl ChatCompletionsRequest {
|
||||
/// Suppress max_tokens if the model is o3, o3-*, openrouter/o3, or openrouter/o3-*
|
||||
pub fn suppress_max_tokens_if_o3(&mut self) {
|
||||
let model = self.model.as_str();
|
||||
let is_o3 = model == "o3"
|
||||
|| model.starts_with("o3-")
|
||||
|| model == "openrouter/o3"
|
||||
|| model.starts_with("openrouter/o3-");
|
||||
if is_o3 {
|
||||
self.max_tokens = None;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// CHAT COMPLETIONS API TYPES
|
||||
// ============================================================================
|
||||
|
|
@ -530,7 +544,10 @@ impl TryFrom<&[u8]> for ChatCompletionsRequest {
|
|||
type Error = OpenAIStreamError;
|
||||
|
||||
fn try_from(bytes: &[u8]) -> Result<Self, Self::Error> {
|
||||
serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)
|
||||
let mut req: ChatCompletionsRequest = serde_json::from_slice(bytes).map_err(OpenAIStreamError::from)?;
|
||||
// Use the centralized suppression logic
|
||||
req.suppress_max_tokens_if_o3();
|
||||
Ok(req)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ impl TryFrom<AnthropicMessagesRequest> for ChatCompletionsRequest {
|
|||
let openai_tools = req.tools.map(|tools| convert_anthropic_tools(tools));
|
||||
let (openai_tool_choice, parallel_tool_calls) = convert_anthropic_tool_choice(req.tool_choice);
|
||||
|
||||
Ok(ChatCompletionsRequest {
|
||||
let mut _chat_completions_req: ChatCompletionsRequest = ChatCompletionsRequest {
|
||||
model: req.model,
|
||||
messages: openai_messages,
|
||||
temperature: req.temperature,
|
||||
|
|
@ -109,7 +109,9 @@ impl TryFrom<AnthropicMessagesRequest> for ChatCompletionsRequest {
|
|||
tool_choice: openai_tool_choice,
|
||||
parallel_tool_calls,
|
||||
..Default::default()
|
||||
})
|
||||
};
|
||||
_chat_completions_req.suppress_max_tokens_if_o3();
|
||||
Ok(_chat_completions_req)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue