| from fastapi import FastAPI |
| from pydantic import BaseModel |
| from baybe import ParameterSpace, ContinuousParameter, ExperimentData, SurrogateModel, AcquisitionPolicy |
|
|
| app = FastAPI() |
|
|
| space = ParameterSpace(parameters=[ContinuousParameter(name="x", lower=0.0, upper=1.0)]) |
| data = ExperimentData(parameter_space=space) |
|
|
| class Observation(BaseModel): |
| x: float |
| y: float |
|
|
| @app.get("/") |
| def read_root(): |
| return {"message": "Baybe API is running on Hugging Face"} |
|
|
| @app.post("/submit") |
| def submit(obs: Observation): |
| data.add_measurement(parameter_values={"x": obs.x}, target_values={"y": obs.y}) |
| return {"status": "ok", "count": len(data.parameter_values)} |
|
|
| @app.get("/suggest") |
| def suggest(): |
| model = SurrogateModel() |
| policy = AcquisitionPolicy() |
| model.fit(data) |
| result = policy.compute(data, model) |
| return {"suggested_x": result[0]["x"]} |