ws lug fixed + docker support

master
prplV 2025-07-01 04:03:01 -04:00
parent 1281f66518
commit 7e1e3ac38e
5 changed files with 16 additions and 9 deletions

View File

@ -13,9 +13,9 @@ ML_MODEL_NAME="kis-test"
# `ML_REQUEST_TIMEOUT` for setting ML response wait time # `ML_REQUEST_TIMEOUT` for setting ML response wait time
# ------------------------------------------------------ # ------------------------------------------------------
# - Measures in `secs` # - Measures in `secs`
# - Default value - 10 # - Default value - 15
# ------------------------------------------------------ # ------------------------------------------------------
ML_REQUEST_TIMEOUT="10" ML_REQUEST_TIMEOUT="15"
# `ML_API_LOG_LEVEL` log level selection # `ML_API_LOG_LEVEL` log level selection

View File

@ -17,5 +17,6 @@ COPY --from=builder /app/target/x86_64-unknown-linux-musl/release/ml-api /app/ml
RUN apk add --no-cache ca-certificates RUN apk add --no-cache ca-certificates
EXPOSE 5134/tcp EXPOSE 5134/tcp
EXPOSE 1560/tcp
ENTRYPOINT ["/app/ml-api"] ENTRYPOINT ["/app/ml-api"]

View File

@ -8,13 +8,14 @@ services:
- NOXIS_SOCKET_PATH=./noxis.sock - NOXIS_SOCKET_PATH=./noxis.sock
- NOXIS_PROXY_PORT=7654 - NOXIS_PROXY_PORT=7654
- NOXIS_LOG_LEVEL=TRACE - NOXIS_LOG_LEVEL=TRACE
- ML_TARGET_URL=http://192.168.231.89:11434/api/generate - ML_TARGET_URL=http://192.168.249.5:11434/api/generate
- ML_MODEL_NAME=kis-test - ML_MODEL_NAME=kis-test
- ML_REQUEST_TIMEOUT=10 - ML_REQUEST_TIMEOUT=20
- ML_LOG_LEVEL=TRACE - ML_LOG_LEVEL=TRACE
- ML_API_PORT=5134 - ML_API_PORT=5134
ports: ports:
- 5134:5134 - 5134:5134
- 5135:1560
restart: always restart: always
networks: networks:

View File

@ -38,7 +38,7 @@ pub mod rest {
pub mod ws { pub mod ws {
use axum::extract::{ws::{Message, WebSocket}, WebSocketUpgrade}; use axum::extract::{ws::{Message, WebSocket}, WebSocketUpgrade};
use tracing::trace; use tracing::{debug, trace};
use super::{IntoResponse, InputMetric, Config, State}; use super::{IntoResponse, InputMetric, Config, State};
pub async fn model_ws_handler( pub async fn model_ws_handler(
@ -63,17 +63,22 @@ pub mod ws {
Ok(msg) => { Ok(msg) => {
match serde_json::from_str::<Vec<InputMetric>>(msg) { match serde_json::from_str::<Vec<InputMetric>>(msg) {
Err(er) => { Err(er) => {
let _ = ws.send( match ws.send(
Message::Text( Message::Text(
format!("Cannot convert input message: {er}") format!("Cannot convert input message: {er}")
.into() .into()
) )
).await; ).await {
Ok(_) => trace!("cannot convert given msg"),
Err(er) => {let _ = ws.send(Message::Text(format!("Request was aborted: {}", er).into())).await;},
}
}, },
Ok(req) => { Ok(req) => {
match super::send_message_to_model(config.clone(), req).await { match super::send_message_to_model(config.clone(), req).await {
Ok(resp) => { Ok(resp) => {
let _ = ws.send(Message::Text(resp.into())); trace!("Successfull request to model");
debug!("Response from the Model: {}", &resp);
let _ = ws.send(Message::Text(resp.into())).await;
}, },
Err(er) => { Err(er) => {
let _ = ws.send(Message::Text(format!("Cannot get model's response: {er}").into())).await; let _ = ws.send(Message::Text(format!("Cannot get model's response: {er}").into())).await;

View File

@ -48,7 +48,7 @@ impl ApiSessionConfig {
model_name : std::env::var("ML_MODEL_NAME")?, model_name : std::env::var("ML_MODEL_NAME")?,
request_timeout : std::env::var("ML_REQUEST_TIMEOUT")?.parse().unwrap_or_else(|_| { request_timeout : std::env::var("ML_REQUEST_TIMEOUT")?.parse().unwrap_or_else(|_| {
warn!("invalid port was given, setting up default one ..."); warn!("invalid port was given, setting up default one ...");
10 15
}), }),
client : Client::new(), client : Client::new(),
}; };