mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-09-05 01:07:48 +02:00
59 lines
1.6 KiB
Markdown
59 lines
1.6 KiB
Markdown
# `permchain`
|
|
|
|
## Get started
|
|
|
|
`pip install permchain`
|
|
|
|
## Usage
|
|
|
|
```python
|
|
from permchain import Pregel, channels
|
|
|
|
grow_value = (
|
|
Pregel.subscribe_to("value")
|
|
| (lambda x: x + x)
|
|
| Pregel.write_to(value=lambda x: x if len(x) < 10 else None)
|
|
)
|
|
|
|
app = Pregel(
|
|
chains={"grow_value": grow_value},
|
|
channels={"value": channels.LastValue(str)},
|
|
input="value",
|
|
output="value",
|
|
)
|
|
|
|
assert app.invoke("a") == "aaaaaaaa"
|
|
|
|
```
|
|
|
|
Check `examples` for more examples.
|
|
|
|
## Near-term Roadmap
|
|
|
|
- [x] Iterate on API
|
|
- [x] do we want api to receive output from multiple channels in invoke()
|
|
- [x] do we want api to send input to multiple channels in invoke()
|
|
- [x] Finish updating tests to new API
|
|
- [x] Implement input_schema and output_schema in Pregel
|
|
- [ ] More tests
|
|
- [x] Test different input and output types (str, str sequence)
|
|
- [x] Add tests for Stream, UniqueInbox
|
|
- [ ] Add tests for subscribe_to_each().join()
|
|
- [x] Add optional debug logging
|
|
- [ ] Implement checkpointing
|
|
- [ ] Save checkpoints at end of each step
|
|
- [ ] Load checkpoint at start of invocation
|
|
- [ ] API to specify storage backend and save key
|
|
- [ ] Add more examples
|
|
- [ ] human in the loop
|
|
- [ ] combine documents
|
|
- [ ] agent executor
|
|
- [ ] run over dataset
|
|
- [ ] Fault tolerance
|
|
- [ ] Retry individual processes in a step
|
|
- [ ] Retry entire step?
|
|
- [ ] Pregel.stream_log to contain additional keys specific to Pregel
|
|
- [ ] tasks: inputs of each chain in each step, keyed by {name}:{step}
|
|
- [ ] task_results: same as above but outputs
|
|
- [ ] channels: channel values at end of each step, keyed by {name}:{step}
|