From 84fab36a1fcb2e0ade38c4a4770591c6236ce8df Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 8 May 2024 14:04:46 +0800 Subject: refactor: split /data.json into /v1/models and /v1/roles (#494) --- src/serve.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) (limited to 'src/serve.rs') diff --git a/src/serve.rs b/src/serve.rs index 4413c89..3fa0d90 100644 --- a/src/serve.rs +++ b/src/serve.rs @@ -158,12 +158,14 @@ impl Server { let mut status = StatusCode::OK; let res = if path == "/v1/chat/completions" { self.chat_completion(req).await + } else if path == "/v1/models" { + self.list_models() + } else if path == "/v1/roles" { + self.list_roles() } else if path == "/playground" || path == "/playground.html" { self.playground_page() } else if path == "/arena" || path == "/arena.html" { self.arena_page() - } else if path == "/data.json" { - self.data_json() } else { status = StatusCode::NOT_FOUND; Err(anyhow!("The requested endpoint was not found.")) @@ -198,11 +200,16 @@ impl Server { Ok(res) } - fn data_json(&self) -> Result { - let data = json!({ - "models": self.models, - "roles": self.roles, - }); + fn list_models(&self) -> Result { + let data = json!({ "data": self.models }); + let res = Response::builder() + .header("Content-Type", "application/json; charset=utf-8") + .body(Full::new(Bytes::from(data.to_string())).boxed())?; + Ok(res) + } + + fn list_roles(&self) -> Result { + let data = json!({ "data": self.roles }); let res = Response::builder() .header("Content-Type", "application/json; charset=utf-8") .body(Full::new(Bytes::from(data.to_string())).boxed())?; -- cgit v1.2.3