add README.md
This commit is contained in:
@@ -1,2 +1,60 @@
|
||||
# task-699cc158d6d3a5544a3ed35b
|
||||
# Stream‑mode LangChain Agent
|
||||
|
||||
## What this project does
|
||||
|
||||
This repository contains a minimal example that demonstrates how to replace the
|
||||
`invoke()` call of a LangChain agent with the streaming interface `stream()`. The
|
||||
output is printed token by token so that the user can see the agent “think” in
|
||||
real time.
|
||||
|
||||
The script uses the BroJS LLM provider and a tiny mock tool called
|
||||
`get_price` to illustrate how tools are called while streaming.
|
||||
|
||||
## File structure
|
||||
|
||||
```
|
||||
├── main.py # Entry point – shows three example invocations
|
||||
├── requirements.txt # Dependencies (no exact versions)
|
||||
└── README.md # This file
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
export JOURNAL_MCP_PAT=YOUR_BROJS_TOKEN # required for the LLM
|
||||
python main.py
|
||||
```
|
||||
|
||||
## Example output
|
||||
|
||||
Running `python main.py` produces something like:
|
||||
|
||||
```
|
||||
=== Example 1 ===
|
||||
--- Step 0 ---
|
||||
Paris is the capital of France.
|
||||
--- End ---
|
||||
|
||||
=== Example 2 ===
|
||||
--- Step 0 ---
|
||||
The price of milk in Kazan is 89 rubles.
|
||||
--- End ---
|
||||
|
||||
=== Example 3 ===
|
||||
--- Step 0 ---
|
||||
The price of bread in Kazan is 45 rubles.
|
||||
The price of coffee in Moscow is 120 rubles.
|
||||
--- End ---
|
||||
```
|
||||
|
||||
## How it works
|
||||
|
||||
* The agent is created with `create_agent` and a single tool.
|
||||
* `agent.stream()` returns an iterator that yields tuples `(chunk_type,
|
||||
chunk_data)` where `chunk_type` can be `'messages'` or `'updates'`.
|
||||
* Tokens are printed as they arrive, and step changes are highlighted with
|
||||
a separator line.
|
||||
|
||||
Feel free to extend the tool set or modify the prompt – the streaming logic
|
||||
remains unchanged.
|
||||
|
||||
Reference in New Issue
Block a user