From b435f5257a5479b489590fd94cc0a9daf0d9e260 Mon Sep 17 00:00:00 2001 From: maffettone Date: Mon, 11 Dec 2023 14:31:47 -0800 Subject: [PATCH] add: kmeans agent containe --- docker/kmeans-agent/Dockerfile | 17 +++++++++++++++++ docker/kmeans-agent/startup_script.py | 26 ++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 docker/kmeans-agent/Dockerfile create mode 100644 docker/kmeans-agent/startup_script.py diff --git a/docker/kmeans-agent/Dockerfile b/docker/kmeans-agent/Dockerfile new file mode 100644 index 0000000..939886b --- /dev/null +++ b/docker/kmeans-agent/Dockerfile @@ -0,0 +1,17 @@ +FROM python:3.10 + +RUN mkdir /root/src -p +WORKDIR /root/src +RUN git clone https://github.com/NSLS-II-PDF/pdf-agents.git + +RUN pip3 install --upgrade pip setuptools +RUN pip3 install scikit-learn bluesky-adaptive uvicorn fastapi +RUN pip3 install caproto ophyd +RUN pip3 install git+https://github.com/bluesky/databroker.git@v2.0.0b13#egg=databroker +RUN pip3 install nslsii +RUN pip3 install -e pdf-agents + +COPY ./startup_script.py /root/src/startup_script.py + +ENV BS_AGENT_STARTUP_SCRIPT_PATH=/root/src/startup_script.py +CMD uvicorn bluesky_adaptive.server:app --host 0.0.0.0 --port 60610 diff --git a/docker/kmeans-agent/startup_script.py b/docker/kmeans-agent/startup_script.py new file mode 100644 index 0000000..172f6ef --- /dev/null +++ b/docker/kmeans-agent/startup_script.py @@ -0,0 +1,26 @@ +from bluesky_adaptive.server import register_variable, shutdown_decorator, startup_decorator + +from pdf_agents.sklearn import PassiveKmeansAgent + + +class ContainerKmeansAgent(PassiveKmeansAgent): + @property + def name(self): + return "ContainerKmeansAgent" + + +agent = ContainerKmeansAgent(k_clusters=3, report_on_tell=False) + + +@startup_decorator +def startup(): + agent.start() + + +@shutdown_decorator +def shutdown_agent(): + return agent.stop() + + +register_variable("Known UUIDs", agent, "tell_cache") +register_variable("Agent Name", agent, "instance_name")