(
State(state): State<Arc<ServerState>>,
Path(session_id): Path<String>,
Json(req): Json<SendMessageRequest>,
)
| 1074 | } |
| 1075 | |
| 1076 | async fn send_message( |
| 1077 | State(state): State<Arc<ServerState>>, |
| 1078 | Path(session_id): Path<String>, |
| 1079 | Json(req): Json<SendMessageRequest>, |
| 1080 | ) -> Result<Json<MessageInfo>> { |
| 1081 | let mut sessions = state.sessions.lock().await; |
| 1082 | let session = sessions |
| 1083 | .get_mut(&session_id) |
| 1084 | .ok_or_else(|| ApiError::SessionNotFound(session_id.clone()))?; |
| 1085 | session.add_user_message(&req.content); |
| 1086 | if let Some(variant) = req.variant.as_deref() { |
| 1087 | session |
| 1088 | .metadata |
| 1089 | .insert("model_variant".to_string(), serde_json::json!(variant)); |
| 1090 | } |
| 1091 | let assistant_msg = session.add_assistant_message(); |
| 1092 | let info = message_to_info(&session_id, assistant_msg); |
| 1093 | drop(sessions); |
| 1094 | persist_sessions_if_enabled(&state).await; |
| 1095 | Ok(Json(info)) |
| 1096 | } |
| 1097 | |
| 1098 | async fn list_messages( |
| 1099 | State(state): State<Arc<ServerState>>, |
nothing calls this directly
no test coverage detected