Elijah ben Izzy
Elijah ben Izzy
This is complete, see #190
> Adding to the discussion, I think the "pydantic" and the "decorator/class" approaches could be dubbed "centralized" vs "decentralized" state model. > > I'll be focusing on the benefits of...
OK, API decision, this is up next on implementation. Will support a few different ways to do it -- key is that it all compiles. We support centralized *and* decentralized....
```python MyState = PydanticState[MyModel] class MyState: substate: @action(reads=["a", "b"], writes=["a", "b"]) def my_action(state: MyState) -> MyState: state.c = fn(state.a, state.b) state.d =... return state @action(reads=["a", "b"], writes=["c", "d"]) def my_action(state:...
See #350
> Hello > > I have the following use case: > > 1. I want to transition to a default action (let's call it RESET) when an exception occurs in...
Reading for a conceptual model https://martinfowler.com/eaaDev/EventSourcing.html
Storing deltas between state is the right way to do this -- it also allows us to save storage, which for something like `chat_history` is moving from `O(n^2)` to `O(n)`....
Some thoughts out loud: More can go through the app -- having it on the tracker is weird... ```python app.annotate({"value": 1}) app.annotate({"value": 1, }, sequence_id=10) app.annotate({"value": 1, }, sequence_id=-10) #...
Types of metadata we want: 1. Artifacts -- these are associated with actions, and optionally traces. These are immutable, and only logged during execution. Examples: - An embedding of something...