From 609ea019b2e5712be03a5aa180af9eb56950a3ee Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Mon, 5 Feb 2024 20:24:46 -0500 Subject: [PATCH] docs: Update streaming documentation (#17066) Updating streaming documentation following fix of JSON parser for streaming json. --- docs/docs/expression_language/streaming.ipynb | 362 +++++++++--------- 1 file changed, 187 insertions(+), 175 deletions(-) diff --git a/docs/docs/expression_language/streaming.ipynb b/docs/docs/expression_language/streaming.ipynb index 74da56d16b8..d597c4d825f 100644 --- a/docs/docs/expression_language/streaming.ipynb +++ b/docs/docs/expression_language/streaming.ipynb @@ -66,6 +66,8 @@ } ], "source": [ + "# Showing the example using anthropic, but you can use\n", + "# your favorite chat model!\n", "from langchain.chat_models import ChatAnthropic\n", "\n", "model = ChatAnthropic()\n", @@ -164,9 +166,9 @@ "name": "stdout", "output_type": "stream", "text": [ - " Sure|,| here|'s| a| funny| joke| about| a| par|rot|:|\n", + " Here|'s| a| silly| joke| about| a| par|rot|:|\n", "\n", - "Why| doesn|'t| a| par|rot| ever| get| hungry| at| night|?| Because| it| has| a| light| snack| before| bed|!||" + "What| kind| of| teacher| gives| good| advice|?| An| ap|-|parent| (|app|arent|)| one|!||" ] } ], @@ -228,40 +230,34 @@ "{'countries': [{}]}\n", "{'countries': [{'name': ''}]}\n", "{'countries': [{'name': 'France'}]}\n", - "{'countries': [{'name': 'France', 'population': ''}]}\n", - "{'countries': [{'name': 'France', 'population': '67'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': ''}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': ''}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': ''}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan', 'population': ''}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan', 'population': '126'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan', 'population': '126,'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan', 'population': '126,860'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan', 'population': '126,860,'}]}\n", - "{'countries': [{'name': 'France', 'population': '67,022,000'}, {'name': 'Spain', 'population': '46,754,784'}, {'name': 'Japan', 'population': '126,860,301'}]}\n" + "{'countries': [{'name': 'France', 'population': 67}]}\n", + "{'countries': [{'name': 'France', 'population': 6739}]}\n", + "{'countries': [{'name': 'France', 'population': 673915}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': ''}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Sp'}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain'}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 4675}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 467547}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {'name': ''}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {'name': 'Japan'}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {'name': 'Japan', 'population': 12}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {'name': 'Japan', 'population': 12647}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {'name': 'Japan', 'population': 1264764}]}\n", + "{'countries': [{'name': 'France', 'population': 67391582}, {'name': 'Spain', 'population': 46754778}, {'name': 'Japan', 'population': 126476461}]}\n" ] } ], "source": [ "from langchain_core.output_parsers import JsonOutputParser\n", - "from langchain_openai.chat_models import ChatOpenAI\n", "\n", - "model = ChatOpenAI()\n", - "\n", - "chain = model | JsonOutputParser() # This parser only works with OpenAI right now\n", + "chain = (\n", + " model | JsonOutputParser()\n", + ") # Due to a bug in older versions of Langchain, JsonOutputParser did not stream results from some models\n", "async for text in chain.astream(\n", " 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`'\n", "):\n", @@ -294,12 +290,14 @@ "name": "stdout", "output_type": "stream", "text": [ - "[None, None, None]|" + "['France', 'Spain', 'Japan']|" ] } ], "source": [ - "from langchain_core.output_parsers import JsonOutputParser\n", + "from langchain_core.output_parsers import (\n", + " JsonOutputParser,\n", + ")\n", "\n", "\n", "# A function that operates on finalized inputs\n", @@ -326,7 +324,7 @@ "chain = model | JsonOutputParser() | _extract_country_names\n", "\n", "async for text in chain.astream(\n", - " 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\"'\n", + " 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`'\n", "):\n", " print(text, end=\"|\", flush=True)" ] @@ -348,7 +346,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 17, "id": "15984b2b-315a-4119-945b-2a3dabea3082", "metadata": {}, "outputs": [ @@ -356,7 +354,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "France|Spain|Japan|" + "France|Sp|Spain|Japan|" ] } ], @@ -392,11 +390,23 @@ "chain = model | JsonOutputParser() | _extract_country_names_streaming\n", "\n", "async for text in chain.astream(\n", - " 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\"'\n", + " 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`'\n", "):\n", " print(text, end=\"|\", flush=True)" ] }, + { + "cell_type": "markdown", + "id": "d59823f5-9b9a-43c5-a213-34644e2f1d3d", + "metadata": {}, + "source": [ + ":::{.callout-note}\n", + "Because the code above is relying on JSON auto-completion, you may see partial names of countries (e.g., `Sp` and `Spain`), which is not what one would want for an extraction result!\n", + "\n", + "We're focusing on streaming concepts, not necessarily the results of the chains.\n", + ":::" + ] + }, { "cell_type": "markdown", "id": "6adf65b7-aa47-4321-98c7-a0abe43b833a", @@ -409,7 +419,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "id": "b9b1c00d-8b44-40d0-9e2b-8a70d238f82b", "metadata": {}, "outputs": [ @@ -420,7 +430,7 @@ " Document(page_content='harrison likes spicy food')]]" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -465,7 +475,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "id": "957447e6-1e60-41ef-8c10-2654bd9e738d", "metadata": {}, "outputs": [], @@ -483,7 +493,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "id": "94e50b5d-bf51-4eee-9da0-ee40dd9ce42b", "metadata": {}, "outputs": [ @@ -491,9 +501,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "|H|arrison| worked| at| Kens|ho|,| a| renowned| technology| company| known| for| revolution|izing| the| artificial| intelligence| industry|.\n", - "|K|ens|ho|,| located| in| the| heart| of| Silicon| Valley|,| is| famous| for| its| cutting|-edge| research| and| development| in| machine| learning|.\n", - "|With| its| state|-of|-the|-art| facilities| and| talented| team|,| Kens|ho| has| become| a| hub| for| innovation| and| a| sought|-after| workplace| for| tech| enthusiasts| like| Harrison|.||" + " Based| on| the| given| context|,| the| only| information| provided| about| where| Harrison| worked| is| that| he| worked| at| Ken|sh|o|.| Since| there| are| no| other| details| provided| about| Ken|sh|o|,| I| do| not| have| enough| information| to| write| 3| additional| made| up| sentences| about| this| place|.| I| can| only| state| that| Harrison| worked| at| Ken|sh|o|.||" ] } ], @@ -528,17 +536,17 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "id": "61348df9-ec58-401e-be89-68a70042f88e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "'0.1.14'" + "'0.1.18'" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -604,7 +612,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "id": "c00df46e-7f6b-4e06-8abf-801898c8d57f", "metadata": {}, "outputs": [ @@ -612,7 +620,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/eugene/.pyenv/versions/3.11.4/envs/langchain_3_11_4/lib/python3.11/site-packages/langchain_core/_api/beta_decorator.py:86: LangChainBetaWarning: This API is in beta and may change in the future.\n", + "/home/eugene/src/langchain/libs/core/langchain_core/_api/beta_decorator.py:86: LangChainBetaWarning: This API is in beta and may change in the future.\n", " warn_beta(\n" ] } @@ -650,7 +658,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "id": "ce31b525-f47d-4828-85a7-912ce9f2e79b", "metadata": {}, "outputs": [ @@ -658,26 +666,26 @@ "data": { "text/plain": [ "[{'event': 'on_chat_model_start',\n", - " 'run_id': 'd78b4ffb-0eb1-499c-8a90-8e4a4aa2edae',\n", - " 'name': 'ChatOpenAI',\n", + " 'run_id': '555843ed-3d24-4774-af25-fbf030d5e8c4',\n", + " 'name': 'ChatAnthropic',\n", " 'tags': [],\n", " 'metadata': {},\n", " 'data': {'input': 'hello'}},\n", " {'event': 'on_chat_model_stream',\n", - " 'run_id': 'd78b4ffb-0eb1-499c-8a90-8e4a4aa2edae',\n", + " 'run_id': '555843ed-3d24-4774-af25-fbf030d5e8c4',\n", " 'tags': [],\n", " 'metadata': {},\n", - " 'name': 'ChatOpenAI',\n", - " 'data': {'chunk': AIMessageChunk(content='')}},\n", + " 'name': 'ChatAnthropic',\n", + " 'data': {'chunk': AIMessageChunk(content=' Hello')}},\n", " {'event': 'on_chat_model_stream',\n", - " 'run_id': 'd78b4ffb-0eb1-499c-8a90-8e4a4aa2edae',\n", + " 'run_id': '555843ed-3d24-4774-af25-fbf030d5e8c4',\n", " 'tags': [],\n", " 'metadata': {},\n", - " 'name': 'ChatOpenAI',\n", - " 'data': {'chunk': AIMessageChunk(content='Hello')}}]" + " 'name': 'ChatAnthropic',\n", + " 'data': {'chunk': AIMessageChunk(content='!')}}]" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -688,7 +696,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "76cfe826-ee63-4310-ad48-55a95eb3b9d6", "metadata": {}, "outputs": [ @@ -696,20 +704,20 @@ "data": { "text/plain": [ "[{'event': 'on_chat_model_stream',\n", - " 'run_id': 'd78b4ffb-0eb1-499c-8a90-8e4a4aa2edae',\n", + " 'run_id': '555843ed-3d24-4774-af25-fbf030d5e8c4',\n", " 'tags': [],\n", " 'metadata': {},\n", - " 'name': 'ChatOpenAI',\n", + " 'name': 'ChatAnthropic',\n", " 'data': {'chunk': AIMessageChunk(content='')}},\n", " {'event': 'on_chat_model_end',\n", - " 'name': 'ChatOpenAI',\n", - " 'run_id': 'd78b4ffb-0eb1-499c-8a90-8e4a4aa2edae',\n", + " 'name': 'ChatAnthropic',\n", + " 'run_id': '555843ed-3d24-4774-af25-fbf030d5e8c4',\n", " 'tags': [],\n", " 'metadata': {},\n", - " 'data': {'output': AIMessageChunk(content='Hello! How can I assist you today?')}}]" + " 'data': {'output': AIMessageChunk(content=' Hello!')}}]" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -730,12 +738,14 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 27, "id": "4328c56c-a303-427b-b1f2-f354e9af555c", "metadata": {}, "outputs": [], "source": [ - "chain = model | JsonOutputParser() # This parser only works with OpenAI right now\n", + "chain = (\n", + " model | JsonOutputParser()\n", + ") # Due to a bug in older versions of Langchain, JsonOutputParser did not stream results from some models\n", "\n", "events = [\n", " event\n", @@ -762,7 +772,7 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "id": "8e66ea3d-a450-436a-aaac-d9478abc6c28", "metadata": {}, "outputs": [ @@ -770,26 +780,26 @@ "data": { "text/plain": [ "[{'event': 'on_chain_start',\n", - " 'run_id': 'aa992fb9-d79f-46f3-a857-ae4acad841c4',\n", + " 'run_id': 'b1074bff-2a17-458b-9e7b-625211710df4',\n", " 'name': 'RunnableSequence',\n", " 'tags': [],\n", " 'metadata': {},\n", " 'data': {'input': 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`'}},\n", " {'event': 'on_chat_model_start',\n", - " 'name': 'ChatOpenAI',\n", - " 'run_id': 'c5406de5-0880-4829-ae26-bb565b404e27',\n", + " 'name': 'ChatAnthropic',\n", + " 'run_id': '6072be59-1f43-4f1c-9470-3b92e8406a99',\n", " 'tags': ['seq:step:1'],\n", " 'metadata': {},\n", " 'data': {'input': {'messages': [[HumanMessage(content='output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`')]]}}},\n", " {'event': 'on_parser_start',\n", " 'name': 'JsonOutputParser',\n", - " 'run_id': '32b47794-8fb6-4ef4-8800-23ed6c3f4519',\n", + " 'run_id': 'bf978194-0eda-4494-ad15-3a5bfe69cd59',\n", " 'tags': ['seq:step:2'],\n", " 'metadata': {},\n", " 'data': {}}]" ] }, - "execution_count": 16, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -816,7 +826,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "id": "630c71d6-8d94-4ce0-a78a-f20e90f628df", "metadata": {}, "outputs": [ @@ -824,29 +834,31 @@ "name": "stdout", "output_type": "stream", "text": [ - "Chat model chunk: ''\n", + "Chat model chunk: ' Here'\n", + "Chat model chunk: ' is'\n", + "Chat model chunk: ' the'\n", + "Chat model chunk: ' JSON'\n", + "Chat model chunk: ' with'\n", + "Chat model chunk: ' the'\n", + "Chat model chunk: ' requested'\n", + "Chat model chunk: ' countries'\n", + "Chat model chunk: ' and'\n", + "Chat model chunk: ' their'\n", + "Chat model chunk: ' populations'\n", + "Chat model chunk: ':'\n", + "Chat model chunk: '\\n\\n```'\n", + "Chat model chunk: 'json'\n", "Parser chunk: {}\n", - "Chat model chunk: '{\\n'\n", - "Chat model chunk: ' '\n", + "Chat model chunk: '\\n{'\n", + "Chat model chunk: '\\n '\n", "Chat model chunk: ' \"'\n", "Chat model chunk: 'countries'\n", "Chat model chunk: '\":'\n", "Parser chunk: {'countries': []}\n", - "Chat model chunk: ' [\\n'\n", - "Chat model chunk: ' '\n", + "Chat model chunk: ' ['\n", + "Chat model chunk: '\\n '\n", "Parser chunk: {'countries': [{}]}\n", - "Chat model chunk: ' {\\n'\n", - "Chat model chunk: ' '\n", - "Chat model chunk: ' \"'\n", - "Chat model chunk: 'name'\n", - "Chat model chunk: '\":'\n", - "Parser chunk: {'countries': [{'name': ''}]}\n", - "Chat model chunk: ' \"'\n", - "Parser chunk: {'countries': [{'name': 'France'}]}\n", - "Chat model chunk: 'France'\n", - "Chat model chunk: '\",\\n'\n", - "Chat model chunk: ' '\n", - "Chat model chunk: ' \"'\n", + "Chat model chunk: ' {'\n", "...\n" ] } @@ -897,7 +909,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "id": "4f0b581b-be63-4663-baba-c6d2b625cdf9", "metadata": {}, "outputs": [ @@ -905,17 +917,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_parser_start', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': []}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': ''}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France'}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 670}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 670600}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 67060000}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 67060000}, {}]}}}\n", - "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': '450011c0-6f3b-4ec8-92d4-6603d9d1d603', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 67060000}, {'name': ''}]}}}\n", + "{'event': 'on_parser_start', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': []}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': ''}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France'}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 67}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 6739}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 673915}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 67391582}]}}}\n", + "{'event': 'on_parser_stream', 'name': 'my_parser', 'run_id': 'f2ac1d1c-e14a-45fc-8990-e5c24e707299', 'tags': ['seq:step:2'], 'metadata': {}, 'data': {'chunk': {'countries': [{'name': 'France', 'population': 67391582}, {}]}}}\n", "...\n" ] } @@ -949,7 +961,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "id": "096cd904-72f0-4ebe-a8b7-d0e730faea7f", "metadata": {}, "outputs": [ @@ -957,17 +969,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_chat_model_start', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'input': {'messages': [[HumanMessage(content='output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`')]]}}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='{\\n')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' ')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' \"')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='countries')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='\":')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' [\\n')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' ')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' {\\n')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '9ba1ef9f-5954-4649-b3da-1171b6abb000', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' ')}}\n", + "{'event': 'on_chat_model_start', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'input': {'messages': [[HumanMessage(content='output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`')]]}}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' Here')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' is')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' the')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' JSON')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' with')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' the')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' requested')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' countries')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' and')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'model', 'run_id': '98a6e192-8159-460c-ba73-6dfc921e3777', 'tags': ['seq:step:1'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' their')}}\n", "...\n" ] } @@ -1008,7 +1020,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "id": "26bac0d2-76d9-446e-b346-82790236b88d", "metadata": {}, "outputs": [ @@ -1016,17 +1028,17 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_chain_start', 'run_id': 'd4c78db8-be20-4fa0-87d6-cb317822967a', 'name': 'RunnableSequence', 'tags': ['my_chain'], 'metadata': {}, 'data': {'input': 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`'}}\n", - "{'event': 'on_chat_model_start', 'name': 'ChatOpenAI', 'run_id': '15e46d9f-ccf5-4da2-b9e3-b2a85873ba4c', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'input': {'messages': [[HumanMessage(content='output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`')]]}}}\n", - "{'event': 'on_parser_start', 'name': 'JsonOutputParser', 'run_id': '91945f4f-0deb-4999-acf0-f6d191c89b34', 'tags': ['seq:step:2', 'my_chain'], 'metadata': {}, 'data': {}}\n", - "{'event': 'on_chat_model_stream', 'name': 'ChatOpenAI', 'run_id': '15e46d9f-ccf5-4da2-b9e3-b2a85873ba4c', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='')}}\n", - "{'event': 'on_parser_stream', 'name': 'JsonOutputParser', 'run_id': '91945f4f-0deb-4999-acf0-f6d191c89b34', 'tags': ['seq:step:2', 'my_chain'], 'metadata': {}, 'data': {'chunk': {}}}\n", - "{'event': 'on_chain_stream', 'run_id': 'd4c78db8-be20-4fa0-87d6-cb317822967a', 'tags': ['my_chain'], 'metadata': {}, 'name': 'RunnableSequence', 'data': {'chunk': {}}}\n", - "{'event': 'on_chat_model_stream', 'name': 'ChatOpenAI', 'run_id': '15e46d9f-ccf5-4da2-b9e3-b2a85873ba4c', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='{\"')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'ChatOpenAI', 'run_id': '15e46d9f-ccf5-4da2-b9e3-b2a85873ba4c', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='countries')}}\n", - "{'event': 'on_chat_model_stream', 'name': 'ChatOpenAI', 'run_id': '15e46d9f-ccf5-4da2-b9e3-b2a85873ba4c', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content='\":')}}\n", - "{'event': 'on_parser_stream', 'name': 'JsonOutputParser', 'run_id': '91945f4f-0deb-4999-acf0-f6d191c89b34', 'tags': ['seq:step:2', 'my_chain'], 'metadata': {}, 'data': {'chunk': {'countries': []}}}\n", - "{'event': 'on_chain_stream', 'run_id': 'd4c78db8-be20-4fa0-87d6-cb317822967a', 'tags': ['my_chain'], 'metadata': {}, 'name': 'RunnableSequence', 'data': {'chunk': {'countries': []}}}\n", + "{'event': 'on_chain_start', 'run_id': '190875f3-3fb7-49ad-9b6e-f49da22f3e49', 'name': 'RunnableSequence', 'tags': ['my_chain'], 'metadata': {}, 'data': {'input': 'output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`'}}\n", + "{'event': 'on_chat_model_start', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'input': {'messages': [[HumanMessage(content='output a list of the countries france, spain and japan and their populations in JSON format. Use a dict with an outer key of \"countries\" which contains a list of countries. Each country should have the key `name` and `population`')]]}}}\n", + "{'event': 'on_parser_start', 'name': 'JsonOutputParser', 'run_id': '3b5e4ca1-40fe-4a02-9a19-ba2a43a6115c', 'tags': ['seq:step:2', 'my_chain'], 'metadata': {}, 'data': {}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' Here')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' is')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' the')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' JSON')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' with')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' the')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' requested')}}\n", + "{'event': 'on_chat_model_stream', 'name': 'ChatAnthropic', 'run_id': 'ff58f732-b494-4ff9-852a-783d42f4455d', 'tags': ['seq:step:1', 'my_chain'], 'metadata': {}, 'data': {'chunk': AIMessageChunk(content=' countries')}}\n", "...\n" ] } @@ -1062,7 +1074,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "id": "0e6451d3-3b11-4a71-ae19-998f4c10180f", "metadata": {}, "outputs": [], @@ -1104,7 +1116,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "id": "f9a8fe35-faab-4970-b8c0-5c780845d98a", "metadata": {}, "outputs": [ @@ -1112,7 +1124,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n" + "['France', 'Spain', 'Japan']\n" ] } ], @@ -1133,7 +1145,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "id": "b08215cd-bffa-4e76-aaf3-c52ee34f152c", "metadata": {}, "outputs": [ @@ -1141,33 +1153,33 @@ "name": "stdout", "output_type": "stream", "text": [ - "Chat model chunk: ''\n", + "Chat model chunk: ' Here'\n", + "Chat model chunk: ' is'\n", + "Chat model chunk: ' the'\n", + "Chat model chunk: ' JSON'\n", + "Chat model chunk: ' with'\n", + "Chat model chunk: ' the'\n", + "Chat model chunk: ' requested'\n", + "Chat model chunk: ' countries'\n", + "Chat model chunk: ' and'\n", + "Chat model chunk: ' their'\n", + "Chat model chunk: ' populations'\n", + "Chat model chunk: ':'\n", + "Chat model chunk: '\\n\\n```'\n", + "Chat model chunk: 'json'\n", "Parser chunk: {}\n", - "Chat model chunk: '{\"'\n", + "Chat model chunk: '\\n{'\n", + "Chat model chunk: '\\n '\n", + "Chat model chunk: ' \"'\n", "Chat model chunk: 'countries'\n", "Chat model chunk: '\":'\n", "Parser chunk: {'countries': []}\n", - "Chat model chunk: ' [\\n'\n", - "Chat model chunk: ' '\n", + "Chat model chunk: ' ['\n", + "Chat model chunk: '\\n '\n", "Parser chunk: {'countries': [{}]}\n", - "Chat model chunk: ' {\"'\n", - "Chat model chunk: 'name'\n", - "Chat model chunk: '\":'\n", - "Parser chunk: {'countries': [{'name': ''}]}\n", + "Chat model chunk: ' {'\n", + "Chat model chunk: '\\n '\n", "Chat model chunk: ' \"'\n", - "Parser chunk: {'countries': [{'name': 'France'}]}\n", - "Chat model chunk: 'France'\n", - "Chat model chunk: '\",'\n", - "Chat model chunk: ' \"'\n", - "Chat model chunk: 'population'\n", - "Chat model chunk: '\":'\n", - "Parser chunk: {'countries': [{'name': 'France', 'population': ''}]}\n", - "Chat model chunk: ' \"'\n", - "Parser chunk: {'countries': [{'name': 'France', 'population': '67'}]}\n", - "Chat model chunk: '67'\n", - "Parser chunk: {'countries': [{'name': 'France', 'population': '67 million'}]}\n", - "Chat model chunk: ' million'\n", - "Chat model chunk: '\"},\\n'\n", "...\n" ] } @@ -1212,7 +1224,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "id": "1854206d-b3a5-4f91-9e00-bccbaebac61f", "metadata": {}, "outputs": [ @@ -1220,9 +1232,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_tool_start', 'run_id': '39e4a7eb-c13d-46f0-99e7-75c2fa4aa6a6', 'name': 'bad_tool', 'tags': [], 'metadata': {}, 'data': {'input': 'hello'}}\n", - "{'event': 'on_tool_stream', 'run_id': '39e4a7eb-c13d-46f0-99e7-75c2fa4aa6a6', 'tags': [], 'metadata': {}, 'name': 'bad_tool', 'data': {'chunk': 'olleh'}}\n", - "{'event': 'on_tool_end', 'name': 'bad_tool', 'run_id': '39e4a7eb-c13d-46f0-99e7-75c2fa4aa6a6', 'tags': [], 'metadata': {}, 'data': {'output': 'olleh'}}\n" + "{'event': 'on_tool_start', 'run_id': 'ae7690f8-ebc9-4886-9bbe-cb336ff274f2', 'name': 'bad_tool', 'tags': [], 'metadata': {}, 'data': {'input': 'hello'}}\n", + "{'event': 'on_tool_stream', 'run_id': 'ae7690f8-ebc9-4886-9bbe-cb336ff274f2', 'tags': [], 'metadata': {}, 'name': 'bad_tool', 'data': {'chunk': 'olleh'}}\n", + "{'event': 'on_tool_end', 'name': 'bad_tool', 'run_id': 'ae7690f8-ebc9-4886-9bbe-cb336ff274f2', 'tags': [], 'metadata': {}, 'data': {'output': 'olleh'}}\n" ] } ], @@ -1258,7 +1270,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "id": "a20a6cb3-bb43-465c-8cfc-0a7349d70968", "metadata": {}, "outputs": [ @@ -1266,11 +1278,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_tool_start', 'run_id': '4263aca5-f221-4eb7-b07e-60a89fb76c5c', 'name': 'correct_tool', 'tags': [], 'metadata': {}, 'data': {'input': 'hello'}}\n", - "{'event': 'on_chain_start', 'name': 'reverse_word', 'run_id': '65e3679b-e238-47ce-a875-ee74480e696e', 'tags': [], 'metadata': {}, 'data': {'input': 'hello'}}\n", - "{'event': 'on_chain_end', 'name': 'reverse_word', 'run_id': '65e3679b-e238-47ce-a875-ee74480e696e', 'tags': [], 'metadata': {}, 'data': {'input': 'hello', 'output': 'olleh'}}\n", - "{'event': 'on_tool_stream', 'run_id': '4263aca5-f221-4eb7-b07e-60a89fb76c5c', 'tags': [], 'metadata': {}, 'name': 'correct_tool', 'data': {'chunk': 'olleh'}}\n", - "{'event': 'on_tool_end', 'name': 'correct_tool', 'run_id': '4263aca5-f221-4eb7-b07e-60a89fb76c5c', 'tags': [], 'metadata': {}, 'data': {'output': 'olleh'}}\n" + "{'event': 'on_tool_start', 'run_id': '384f1710-612e-4022-a6d4-8a7bb0cc757e', 'name': 'correct_tool', 'tags': [], 'metadata': {}, 'data': {'input': 'hello'}}\n", + "{'event': 'on_chain_start', 'name': 'reverse_word', 'run_id': 'c4882303-8867-4dff-b031-7d9499b39dda', 'tags': [], 'metadata': {}, 'data': {'input': 'hello'}}\n", + "{'event': 'on_chain_end', 'name': 'reverse_word', 'run_id': 'c4882303-8867-4dff-b031-7d9499b39dda', 'tags': [], 'metadata': {}, 'data': {'input': 'hello', 'output': 'olleh'}}\n", + "{'event': 'on_tool_stream', 'run_id': '384f1710-612e-4022-a6d4-8a7bb0cc757e', 'tags': [], 'metadata': {}, 'name': 'correct_tool', 'data': {'chunk': 'olleh'}}\n", + "{'event': 'on_tool_end', 'name': 'correct_tool', 'run_id': '384f1710-612e-4022-a6d4-8a7bb0cc757e', 'tags': [], 'metadata': {}, 'data': {'output': 'olleh'}}\n" ] } ], @@ -1295,7 +1307,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "id": "0ac0a3c1-f3a4-4157-b053-4fec8d2e698c", "metadata": {}, "outputs": [ @@ -1303,11 +1315,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_chain_start', 'run_id': '714d22d4-a3c3-45fc-b2f1-913aa7f0fc22', 'name': 'reverse_and_double', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", - "{'event': 'on_chain_start', 'name': 'reverse_word', 'run_id': '35a6470c-db65-4fe1-8dff-4e3418601d2f', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", - "{'event': 'on_chain_end', 'name': 'reverse_word', 'run_id': '35a6470c-db65-4fe1-8dff-4e3418601d2f', 'tags': [], 'metadata': {}, 'data': {'input': '1234', 'output': '4321'}}\n", - "{'event': 'on_chain_stream', 'run_id': '714d22d4-a3c3-45fc-b2f1-913aa7f0fc22', 'tags': [], 'metadata': {}, 'name': 'reverse_and_double', 'data': {'chunk': '43214321'}}\n", - "{'event': 'on_chain_end', 'name': 'reverse_and_double', 'run_id': '714d22d4-a3c3-45fc-b2f1-913aa7f0fc22', 'tags': [], 'metadata': {}, 'data': {'output': '43214321'}}\n" + "{'event': 'on_chain_start', 'run_id': '4fe56c7b-6982-4999-a42d-79ba56151176', 'name': 'reverse_and_double', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", + "{'event': 'on_chain_start', 'name': 'reverse_word', 'run_id': '335fe781-8944-4464-8d2e-81f61d1f85f5', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", + "{'event': 'on_chain_end', 'name': 'reverse_word', 'run_id': '335fe781-8944-4464-8d2e-81f61d1f85f5', 'tags': [], 'metadata': {}, 'data': {'input': '1234', 'output': '4321'}}\n", + "{'event': 'on_chain_stream', 'run_id': '4fe56c7b-6982-4999-a42d-79ba56151176', 'tags': [], 'metadata': {}, 'name': 'reverse_and_double', 'data': {'chunk': '43214321'}}\n", + "{'event': 'on_chain_end', 'name': 'reverse_and_double', 'run_id': '4fe56c7b-6982-4999-a42d-79ba56151176', 'tags': [], 'metadata': {}, 'data': {'output': '43214321'}}\n" ] } ], @@ -1337,7 +1349,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "id": "c896bb94-9d10-41ff-8fe2-d6b05b1ed74b", "metadata": {}, "outputs": [ @@ -1345,11 +1357,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "{'event': 'on_chain_start', 'run_id': '17c89289-9c71-406d-90de-86f76b5e798b', 'name': 'reverse_and_double', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", - "{'event': 'on_chain_start', 'name': 'reverse_word', 'run_id': 'b1105188-9196-43c1-9603-4f2f58e51de4', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", - "{'event': 'on_chain_end', 'name': 'reverse_word', 'run_id': 'b1105188-9196-43c1-9603-4f2f58e51de4', 'tags': [], 'metadata': {}, 'data': {'input': '1234', 'output': '4321'}}\n", - "{'event': 'on_chain_stream', 'run_id': '17c89289-9c71-406d-90de-86f76b5e798b', 'tags': [], 'metadata': {}, 'name': 'reverse_and_double', 'data': {'chunk': '43214321'}}\n", - "{'event': 'on_chain_end', 'name': 'reverse_and_double', 'run_id': '17c89289-9c71-406d-90de-86f76b5e798b', 'tags': [], 'metadata': {}, 'data': {'output': '43214321'}}\n" + "{'event': 'on_chain_start', 'run_id': '7485eedb-1854-429c-a2f8-03d01452daef', 'name': 'reverse_and_double', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", + "{'event': 'on_chain_start', 'name': 'reverse_word', 'run_id': 'e7cddab2-9b95-4e80-abaf-4b2429117835', 'tags': [], 'metadata': {}, 'data': {'input': '1234'}}\n", + "{'event': 'on_chain_end', 'name': 'reverse_word', 'run_id': 'e7cddab2-9b95-4e80-abaf-4b2429117835', 'tags': [], 'metadata': {}, 'data': {'input': '1234', 'output': '4321'}}\n", + "{'event': 'on_chain_stream', 'run_id': '7485eedb-1854-429c-a2f8-03d01452daef', 'tags': [], 'metadata': {}, 'name': 'reverse_and_double', 'data': {'chunk': '43214321'}}\n", + "{'event': 'on_chain_end', 'name': 'reverse_and_double', 'run_id': '7485eedb-1854-429c-a2f8-03d01452daef', 'tags': [], 'metadata': {}, 'data': {'output': '43214321'}}\n" ] } ], @@ -1385,7 +1397,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.4" + "version": "3.11.2" } }, "nbformat": 4,