Commit Graph
128 Commits
Author SHA1 Message Date
Nuno Campos d366bacf03 Expose filter arg in get_state_history
- Combine list and search methods in Checkpointer
2024-06-05 17:14:35 -07:00
Nuno Campos 5b5323b94f Rename Packet to Send 2024-05-31 15:17:22 -07:00
Nuno Campos 30e456be91 One more test, handle negative timeout 2024-05-31 15:13:07 -07:00
Nuno Campos ef3332ff74 Remove nested output for packet tasks 2024-05-31 14:46:56 -07:00
Nuno Campos 5ae9db83c7 Update ids in tests 2024-05-31 13:58:35 -07:00
Nuno CamposandGitHub 48f75699b0 Merge pull request #559 from langchain-ai/nc/30may/debug-checkpoint-metadata
Add metadata to debug/checkpoint stream events
2024-05-31 13:25:09 -07:00
Nuno Campos 9fd459c7fc Update to use a single arg like other nodes 2024-05-31 13:19:29 -07:00
Nuno Campos 87de8df888 Add metadata to debug/checkpoint stream events
- reorganize checkpointing code to share code between input and step checkpoints
- do not emit debug/checkpoint events when there is no checkpointer attached
- emit debug/checkpoint event for input checkpoint as well
2024-05-30 17:39:28 -07:00
Nuno Campos 75f14cc06d Finish tests 2024-05-30 16:08:30 -07:00
Nuno Campos 7a1feb466b Implement map-reduce api for StateGraph/Pregel
- current Pregel primitive is pull-based, ie. nodes write to channels, and it's up to other nodes to subscribe to those channels to "pull" updates
- this adds a "push" primitive where a node can directly schedule a node (more than once if desired) for execution in the next step, with additional kwargs to be passed in. Nodes scheduled in this way get called with both the current state and any kwargs passed to Packet
2024-05-30 15:36:32 -07:00
Nuno Campos 7a2de5e369 WIP 2024-05-30 11:45:21 -07:00
Nuno Campos 02326d74bf WIP 2024-05-30 11:45:21 -07:00
Nuno Campos e4c32248aa Support returning non-dict objects as state updates from nodes 2024-05-30 08:38:40 -07:00
Nuno Campos 24d130d407 Add support for requesting multiple stream modes in same stream/astream call 2024-05-22 12:25:28 -07:00
Andrew NguonlyandGitHub 08b505e017 Merge configurable fields with previous checkpoint config before each run (#510)
* Merge configurable fields with previous checkpoint config.

* Update update_state() and aupdate_state() to merge configurable fields with previous checkpoint config.

* Update tests to verify that all checkpoint metadata contain the expected configurable field keys. This assertion is needed because a run can have an arbitrary number of steps based on the construction of the graph.
2024-05-21 11:03:25 -07:00
Nuno Campos de71709fdc Expose checkpoint timestamp in get/update/list state methods 2024-05-20 16:23:46 -07:00
Andrew Nguonly f5454715df Merge main branch. 2024-05-17 19:32:14 -07:00
Andrew Nguonly 09bae3022d Add checkpoint config to checkpoint metadata? 2024-05-17 19:25:02 -07:00
Andrew Nguonly 18addb52aa Add support for passing Callable metadata filter to FewShotExamples managed value. 2024-05-17 18:41:57 -07:00
Nuno Campos 695503a4d3 Update to langchain-core 0.2.0
- Use stream_events(version=v2) in tests
2024-05-17 14:38:51 -07:00
Nuno Campos a4e88e930f Disable retries by default 2024-05-16 15:59:45 -07:00
Nuno Campos 2414e0ab5e Add retry_policy for graphs
- default is to retry, fully configurable
- configuration options follow temporal https://docs.temporal.io/retry-policies#properties
2024-05-16 15:44:30 -07:00
Nuno Campos 52b2c755d7 Use uuid6 as the id for checkpoints
- this avoids conflicts if multiple processes creating checkpoints in same thread at same time
- uuid6 with a monotically increasing clock_seq is sortable by creation time at ms precision (plus clock_seq for ties, plus 48 bits of randomness for further ties)
2024-05-14 16:56:25 -07:00
Nuno CamposandGitHub a694aaa2bb Merge pull request #444 from langchain-ai/an/10may/few-shot-clone
Add `FewShotExamples` managed value (redo)
2024-05-14 15:35:48 -07:00
Nuno Campos 273a836fc4 debug: Include task index in task id 2024-05-14 13:35:56 -07:00
Nuno CamposandGitHub d8af81312a Merge pull request #447 from langchain-ai/nc/14may/small-fixes
Fix memory checkpointer list/alist
2024-05-14 11:24:04 -07:00
Nuno Campos 0c37a17172 Fix memory checkpointer list/alist
- add tests for memory checkpointer list and alist
- fix async step counting
2024-05-14 10:37:01 -07:00
William FHandGitHub f146668735 Rename "action" to "tools" in tools_condition w/in docs (#445) 2024-05-13 23:41:33 -07:00
Andrew Nguonly aae05407f4 Lint code. 2024-05-13 18:22:07 -07:00
Nuno Campos 227f409611 Add writes property in checkpoint metadata
- This adds a historic view of the actions taken by nodes inside a thread, supporting rendering a richer history of a thread (eg in debug ui)
2024-05-09 14:30:29 -07:00
Nuno Campos a6c6b8211f Add tests for calling update on an empty thread
- this would eg be what you'd do in an api like openai assistants api
2024-05-08 10:43:31 -07:00
William FHandGitHub 3e5ea31cdc Add Spellcheck and import hogwarts (#419) 2024-05-08 10:25:11 -07:00
Nuno Campos e892c95194 Export all exceptions from langgraph.errors 2024-05-07 08:07:26 -07:00
Nuno Campos 48865daf02 Fix checkpoint lineage for updates/resumes 2024-05-06 11:53:20 -07:00
Nuno Campos 611ecdb1cd Checkpoint inputs before starting the first step for easier error recovery
- this enables easier retrying, for any error just do .invoke(None, config) no matter which step the error happened on
2024-05-06 11:53:20 -07:00
Nuno Campos f160f82912 Add checkpoint metadata fields
- source: input, update or loop
- step: int
- make step counter continue from previous last step
2024-05-06 11:52:49 -07:00
Nuno Campos 3ff3def62b Remove option to only checkpoint at end of run
- Now that checkpoint at end of each step adds no latency there is not point to keep this
- This will make it easier to add future features
2024-05-06 11:52:49 -07:00
Nuno Campos f304908102 Add metadata to checkpoints
- not yet used in this PR
2024-05-06 11:52:49 -07:00
Nuno Campos 446543d973 Fix RunnableCallable wrapper when sync func with config arg is invoked async 2024-05-03 12:33:12 -07:00
Nuno Campos 42d3215e34 Implement cursor pagination for get_state_history (time travel endpoint)
- interface in base checkpointer
- implement in sqlite, aiosqlite, memory
- implement in Pregel.get_state_history()
2024-05-03 10:34:11 -07:00
Nuno Campos 27efba27c0 Update tests 2024-05-02 09:31:22 -07:00
Nuno Campos 5e322a6550 Implement stream_mode=debug
- outputs 3 types of payloads
-- task: node about to be executed
-- task_result: result of node execution
-- checkpoint: state values at end of superstep
2024-04-30 16:15:38 -07:00
Nuno Campos 281e312d40 Add tests for async cancellation
- when outer invoke/stream is cancelled currently running nodes should be cancelled
- when multiple nodes run in parallel and one fails the others should be cancelled
2024-04-30 13:57:11 -07:00
Nuno Campos 9a79eb54f9 Finish fixing tests 2024-04-30 09:23:41 -07:00
Nuno Campos 3571a893f2 Fix bug where saving a runnable or function in state object would misbehave
- the function/runnable would be called when processing the state update
2024-04-24 15:35:02 -07:00
Nuno Campos 79bff13a47 Add then= arg for add_conditional_edge and set_conditional_entry_point
- This makes it easy to implement graphs where you want to decide among N possible nodes, and then visit another node after whichever one you chose
2024-04-24 14:06:07 -07:00
Angel Igareta 99c2754156 Fix tests due to change of style for conditional edges. Migrate ascii to snapshot for system compatiblity 2024-04-18 12:53:43 +02:00
Nuno Campos 64dd631668 Lint 2024-04-17 15:26:05 -07:00
Nuno Campos 322cea054c Fix astream_events modifying output format unexpectedly
- (unrelated) use run_id passed in
- if using a graph as node in another graph ensure stream_mode for inner call is always values
- ensure langchain-core doesn't auto promote streamed dicts to addable dicts, which results in unexpected output (only) when calling astream_events
2024-04-17 15:24:43 -07:00
Nuno Campos f3ae555b91 Shorten conditional edge names 2024-04-12 09:29:27 -07:00