diff --git a/#math_demo.py# b/#math_demo.py#
new file mode 100644
index 0000000000000000000000000000000000000000..5afc0716319c6831ebc18c11b249d153d8a4c840
--- /dev/null
+++ b/#math_demo.py#
@@ -0,0 +1,27 @@
+# Notebook to answer a math problem with code.
+# Adapted from Dust [maths-generate-code](https://dust.tt/spolu/a/d12ac33169)
+
+import minichain
+
+# Prompt that asks LLM for code from math.
+
+class MathPrompt(minichain.TemplatePrompt[str]):
+ template_file = "math.pmpt.tpl"
+
+# Ask a question and run it as python code.
+
+with minichain.start_chain("math") as backend:
+ question = "What is the sum of the powers of 3 (3^i) that are smaller than 100?"
+ prompt = MathPrompt(backend.OpenAI()).chain(minichain.SimplePrompt(backend.Python()))
+ result = prompt({"question": question})
+ print(result)
+
+# View the prompt
+
+# + tags=["hide_inp"]
+MathPrompt().show({"question": "What is 10 + 12?"}, "10 + 12")
+# -
+
+# View the log
+
+minichain.show_log("math.log")
diff --git a/#qa.py# b/#qa.py#
new file mode 100644
index 0000000000000000000000000000000000000000..37b1d6b9a44ba0178ca3a1796f45bee5467e2f53
--- /dev/null
+++ b/#qa.py#
@@ -0,0 +1,45 @@
+# # QA
+
+# Questions answering with embeddings. Adapted from [OpenAI
+# Notebook](https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb).
+
+import datasets
+import numpy as np
+from minichain import EmbeddingPrompt, TemplatePrompt, show_log, start_chain
+
+# We use Hugging Face Datasets as the database by assigning
+# a FAISS index.
+
+olympics = datasets.load_from_disk("olympics.data")
+olympics.add_faiss_index("embeddings")
+
+
+# Fast KNN retieval prompt
+
+
+class KNNPrompt(EmbeddingPrompt):
+ def find(self, out, inp):
+ res = olympics.get_nearest_examples("embeddings", np.array(out), 3)
+ return {"question": inp, "docs": res.examples["content"]}
+
+
+# QA prompt to ask question with examples
+
+
+class QAPrompt(TemplatePrompt):
+ template_file = "qa.pmpt.tpl"
+
+
+with start_chain("qa") as backend:
+ question = "Who won the 2020 Summer Olympics men's high jump?"
+ prompt = KNNPrompt(backend.OpenAIEmbed()).chain(QAPrompt(backend.OpenAI()))
+ result = prompt(question)
+ print(result)
+
+# + tags=["hide_inp"]
+QAPrompt().show(
+ {"question": "Who won the race?", "docs": ["doc1", "doc2", "doc3"]}, "Joe Bob"
+)
+# -
+
+show_log("qa.log")
diff --git a/#selfask.py# b/#selfask.py#
new file mode 100644
index 0000000000000000000000000000000000000000..b4499de655f4af9bcbdad463c611c8cb523d82f1
--- /dev/null
+++ b/#selfask.py#
@@ -0,0 +1,83 @@
+# Notebook implementation of the self-ask + Google tool use prompt.
+# Adapted from https://github.com/ofirpress/self-ask
+
+from dataclasses import dataclass
+
+from parsita import *
+
+import minichain
+
+# Define the state of the bot.
+
+@dataclass
+class IntermediateState:
+ s: str
+
+@dataclass
+class FinalState:
+ s: str
+
+@dataclass
+class Out:
+ echo: str
+ state: FinalState | IntermediateState
+
+
+# Self Ask Prompt
+
+class SelfAsk(minichain.TemplatePrompt[Out]):
+ template_file = "selfask.pmpt.tpl"
+ stop_template = "\nIntermediate answer:"
+
+ # Parsita parser.
+ class Parser(TextParsers):
+ follow = (lit("Follow up:") >> reg(r".*")) > IntermediateState
+ finish = (lit("So the final answer is: ") >> reg(r".*")) > FinalState
+ response = follow | finish
+
+ def parse(self, response: str, inp) -> Out:
+ return Out(
+ self.prompt(inp).prompt + response,
+ self.Parser.response.parse(response).or_die(),
+ )
+
+# Runtime loop
+
+def selfask(inp: str, openai, google) -> str:
+ prompt1 = SelfAsk(openai)
+ prompt2 = minichain.SimplePrompt(google)
+ suffix = ""
+ for i in range(3):
+ out = prompt1(dict(input=inp, suffix=suffix, agent_scratchpad=True))
+
+ if isinstance(out.state, FinalState):
+ break
+ suffix += out.echo
+ out2 = prompt2(out.state.s)
+ suffix += "\nIntermediate answer: " + out2 + "\n"
+ return out.state.s
+
+
+with minichain.start_chain("selfask") as backend:
+ result = selfask(
+ "What is the zip code of the city where George Washington was born?",
+ backend.OpenAI(),
+ backend.Google(),
+ )
+ print(result)
+
+# View prompt examples.
+
+# + tags=["hide_inp"]
+SelfAsk().show(
+ {
+ "input": "What is the zip code of the city where George Washington was born?",
+ "agent_scratchpad": True,
+ },
+ "Follow up: Where was George Washington born?",
+)
+# -
+
+# View log.
+
+minichain.show_log("selfask.log")
diff --git a/__pycache__/bash.cpython-310.pyc b/__pycache__/bash.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..3ce2c24eef99f88ccf945fa523900792adcafc65
Binary files /dev/null and b/__pycache__/bash.cpython-310.pyc differ
diff --git a/__pycache__/chat.cpython-310.pyc b/__pycache__/chat.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..9bc95abc3c8a90ffcc9fef555b48913c64abde5f
Binary files /dev/null and b/__pycache__/chat.cpython-310.pyc differ
diff --git a/__pycache__/examples.cpython-310.pyc b/__pycache__/examples.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..d613ba95afc6723491c9d814203898c297309d35
Binary files /dev/null and b/__pycache__/examples.cpython-310.pyc differ
diff --git a/__pycache__/gatsby.cpython-310.pyc b/__pycache__/gatsby.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..704347a134ee46f31a9adc2fa5407d57295c8807
Binary files /dev/null and b/__pycache__/gatsby.cpython-310.pyc differ
diff --git a/__pycache__/math.cpython-310.pyc b/__pycache__/math.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b7302399ed4b2e9db79daca74de067f812536a25
Binary files /dev/null and b/__pycache__/math.cpython-310.pyc differ
diff --git a/__pycache__/math_demo.cpython-310.pyc b/__pycache__/math_demo.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..b23925e1de8e3780b879f0698c91f941f86960fb
Binary files /dev/null and b/__pycache__/math_demo.cpython-310.pyc differ
diff --git a/__pycache__/ner.cpython-310.pyc b/__pycache__/ner.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..e4a529da103545743d6c4abfbff9b10d557f8b4b
Binary files /dev/null and b/__pycache__/ner.cpython-310.pyc differ
diff --git a/__pycache__/pal.cpython-310.pyc b/__pycache__/pal.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..8079cf80591b9600e942275f300ce27f054c4f08
Binary files /dev/null and b/__pycache__/pal.cpython-310.pyc differ
diff --git a/__pycache__/stats.cpython-310.pyc b/__pycache__/stats.cpython-310.pyc
new file mode 100644
index 0000000000000000000000000000000000000000..780a81989a72276d92159b54c27bfc462c15f1c8
Binary files /dev/null and b/__pycache__/stats.cpython-310.pyc differ
diff --git a/app.py b/app.py
new file mode 100644
index 0000000000000000000000000000000000000000..de73c0892b38a7f5fed3fb9c25761b3e7743a5ce
--- /dev/null
+++ b/app.py
@@ -0,0 +1,21 @@
+import gradio as gr
+from chat import gradio as chat
+from ner import gradio as ner
+from math_demo import gradio as math_demo
+from bash import gradio as bash
+from pal import gradio as pal
+from gatsby import gradio as gatsby
+from qa import gradio as qa
+from stats import gradio as stats
+
+css = "#clean div.form {border: 0px} #response {border: 0px; background: #ffeec6} #prompt {border: 0px;background: aliceblue} #json {border: 0px} #result {border: 0px; background: #c5e0e5} #inner {padding: 20px} #inner textarea {border: 0px} .tabs div.tabitem {border: 0px}"
+
+with gr.Blocks(css=css) as demo:
+ gr.HTML("
Mini-Chain
[code] [docs]")
+
+ gr.TabbedInterface([chat, qa, gatsby, math_demo, ner, bash, pal, stats],
+ ["Chat", "QA", "Book", "Math", "NER", "Bash", "PAL", "Stats"],
+ css= css)
+
+demo.launch()
+
diff --git a/base.py b/base.py
new file mode 100644
index 0000000000000000000000000000000000000000..2f5bf0cc99c41a49d1e5a0ea10d781654cc6103f
--- /dev/null
+++ b/base.py
@@ -0,0 +1,57 @@
+# Prompt from ...
+#
+
+prompt = """
+Question: Who lived longer, Muhammad Ali or Alan Turing?
+Are follow up questions needed here: Yes.
+Follow up: How old was Muhammad Ali when he died?
+Intermediate answer: Muhammad Ali was 74 years old when he died.
+Follow up: How old was Alan Turing when he died?
+Intermediate answer: Alan Turing was 41 years old when he died.
+So the final answer is: Muhammad Ali
+
+Question: When was the founder of craigslist born?
+Are follow up questions needed here: Yes.
+Follow up: Who was the founder of craigslist?
+Intermediate answer: Craigslist was founded by Craig Newmark.
+Follow up: When was Craig Newmark born?
+Intermediate answer: Craig Newmark was born on December 6, 1952.
+So the final answer is: December 6, 1952
+
+Question: Who was the maternal grandfather of George Washington?
+Are follow up questions needed here: Yes.
+Follow up: Who was the mother of George Washington?
+Intermediate answer: The mother of George Washington was Mary Ball Washington.
+Follow up: Who was the father of Mary Ball Washington?
+Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
+So the final answer is: Joseph Ball
+
+Question: Are both the directors of Jaws and Casino Royale from the same country?
+Are follow up questions needed here: Yes.
+Follow up: Who is the director of Jaws?
+Intermediate answer: The director of Jaws is Steven Spielberg.
+Follow up: Where is Steven Spielberg from?
+Intermediate answer: The United States.
+Follow up: Who is the director of Casino Royale?
+Intermediate answer: The director of Casino Royale is Martin Campbell.
+Follow up: Where is Martin Campbell from?
+Intermediate answer: New Zealand.
+So the final answer is: No
+
+Question: {{input}}
+Are followup questions needed here: {% if agent_scratchpad %}Yes{%else%}No{% endif %}.
+"""
+
+import jinja2
+
+class SelfAsk:
+ def render(self, input: str, agent_scratchpad: bool):
+ return jinja.render(prompt, dict(input=input,
+ agent_scatchpad=agent_scratchpad))
+
+ def parse(self, response: str):
+ pass
+
+
+ def stop(self):
+ return []
diff --git a/base.sh b/base.sh
new file mode 100644
index 0000000000000000000000000000000000000000..a772d36bcc9a92838b208f9ab7759c7e09147571
--- /dev/null
+++ b/base.sh
@@ -0,0 +1,2 @@
+export OPENAI_KEY="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"
+export SERP_KEY="593a073fa4c730efe918e592a538b36e80841bc8f8dd4070c1566920f75ba140"
diff --git a/bash.html b/bash.html
new file mode 100644
index 0000000000000000000000000000000000000000..1e09036901ec62d446b919418a018dbeee54d781
--- /dev/null
+++ b/bash.html
@@ -0,0 +1,15153 @@
+
+
+
+
+
+bash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Out[3]:
+
+
+
+
+
+
+
+
+CLIPrompt
+
+
+ - Input:
+ -
+
{'question': 'list the files in the directory'}
+
+
+
+
+
+ - Full Prompt:
+ -
+
+
+ If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put "#!/bin/bash" in your answer. Make sure to reason step by step, using this format:
Question: "copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'"
I need to take the following actions:
- List all files in the directory
- Create a new directory
- Copy the files from the first directory into the second directory
```bash
ls
mkdir myNewDirectory
cp -r target/* myNewDirectory
```
That is the format. Begin!
Question:
list the files in the directory
+
+
+
+ - Response:
+ -
+ ```bash
ls
```
+
+
+ - Value:
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Out[5]:
+
+
+
+
+
+
+
+
+BashPrompt
+
+
+ - Input:
+ -
+
+
+
+
+
+ - Full Prompt:
+ -
+
+
+ ls;cat file.txt
+
+
+
+ - Response:
+ -
+ hello
+
+
+ - Value:
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
base.py
+bash.html
+bash.ipynb
+bash.log
+bash.pmpt.tpl
+bash.pmpt.tpl~
+bash.py
+bash.py~
+#parallel.py#
+parallel.py
+parallel.py~
+selfask
+selfask.html
+selfask.ipynb
+selfask.log
+selfask.pmpt.tpl
+selfask.py
+story.py
+story.py~
+base.py
+bash.html
+bash.ipynb
+bash.log
+bash.pmpt.tpl
+bash.pmpt.tpl~
+bash.py
+bash.py~
+#parallel.py#
+parallel.py
+parallel.py~
+selfask
+selfask.html
+selfask.ipynb
+selfask.log
+selfask.pmpt.tpl
+selfask.py
+story.py
+story.py~
+base.py
+bash.html
+bash.ipynb
+bash.log
+bash.pmpt.tpl
+bash.pmpt.tpl~
+bash.py
+bash.py~
+#parallel.py#
+parallel.py
+parallel.py~
+selfask
+selfask.html
+selfask.ipynb
+selfask.log
+selfask.pmpt.tpl
+selfask.py
+story.py
+story.py~
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
f1d34948-3c10-43b1-993c-d3c55d3255b5
+
+b4113480-2253-4c08-be66-b4d54acd0911
+ │ ├── input:
+ │ │ └── question: "go up one directory and list the files in the directory"
+ │ ├── prompt: If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put "#!/bin/bash" in your answer. Make sure to reason step by step, using this format:⏎
+ │ │ ⏎
+ │ │ Question: "copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'"⏎
+ │ │ ⏎
+ │ │ I need to take the following actions:⏎
+ │ │ - List all files in the directory⏎
+ │ │ - Create a new directory⏎
+ │ │ - Copy the files from the first directory into the second directory⏎
+ │ │ ```bash⏎
+ │ │ ls⏎
+ │ │ mkdir myNewDirectory⏎
+ │ │ cp -r target/* myNewDirectory⏎
+ │ │ ```⏎
+ │ │ ⏎
+ │ │ That is the format. Begin!⏎
+ │ │ ⏎
+ │ │ Question: "go up one directory and list the files in the directory"
+ │ ├── result: ```bash⏎
+ │ │ ls⏎
+ │ │ ls⏎
+ │ │ ls⏎
+ │ │ ```
+ │ │ └── returned:
+ │ │ ├── 0: ls
+ │ │ ├── 1: ls
+ │ │ └── 2: ls
+
+bbfa93a2-07f9-4c2f-880e-8b4ea8cd5d66
+ │ ├── input:
+ │ │ ├── 0: ls
+ │ │ ├── 1: ls
+ │ │ └── 2: ls
+ │ ├── prompt: ls;ls;ls
+ │ ├── result: base.py⏎
+ │ │ bash.html⏎
+ │ │ bash.ipynb⏎
+ │ │ bash.log⏎
+ │ │ bash.pmpt.tpl⏎
+ │ │ bash.pmpt.tpl~⏎
+ │ │ bash.py⏎
+ │ │ bash.py~⏎
+ │ │ #parallel.py#⏎
+ │ │ parallel.py⏎
+ │ │ parallel.py~⏎
+ │ │ selfask⏎
+ │ │ selfask.html⏎
+ │ │ selfask.ipynb⏎
+ │ │ selfask.log⏎
+ │ │ selfask.pmpt.tpl⏎
+ │ │ selfask.py⏎
+ │ │ story.py⏎
+ │ │ story.py~⏎
+ │ │ base.py⏎
+ │ │ bash.html⏎
+ │ │ bash.ipynb⏎
+ │ │ bash.log⏎
+ │ │ bash.pmpt.tpl⏎
+ │ │ bash.pmpt.tpl~⏎
+ │ │ bash.py⏎
+ │ │ bash.py~⏎
+ │ │ #parallel.py#⏎
+ │ │ parallel.py⏎
+ │ │ parallel.py~⏎
+ │ │ selfask⏎
+ │ │ selfask.html⏎
+ │ │ selfask.ipynb⏎
+ │ │ selfask.log⏎
+ │ │ selfask.pmpt.tpl⏎
+ │ │ selfask.py⏎
+ │ │ story.py⏎
+ │ │ story.py~⏎
+ │ │ base.py⏎
+ │ │ bash.html⏎
+ │ │ bash.ipynb⏎
+ │ │ bash.log⏎
+ │ │ bash.pmpt.tpl⏎
+ │ │ bash.pmpt.tpl~⏎
+ │ │ bash.py⏎
+ │ │ bash.py~⏎
+ │ │ #parallel.py#⏎
+ │ │ parallel.py⏎
+ │ │ parallel.py~⏎
+ │ │ selfask⏎
+ │ │ selfask.html⏎
+ │ │ selfask.ipynb⏎
+ │ │ selfask.log⏎
+ │ │ selfask.pmpt.tpl⏎
+ │ │ selfask.py⏎
+ │ │ story.py⏎
+ │ │ story.py~⏎
+ │ │
+ │ │ └── returned: base.py⏎
+ │ │ bash.html⏎
+ │ │ bash.ipynb⏎
+ │ │ bash.log⏎
+ │ │ bash.pmpt.tpl⏎
+ │ │ bash.pmpt.tpl~⏎
+ │ │ bash.py⏎
+ │ │ bash.py~⏎
+ │ │ #parallel.py#⏎
+ │ │ parallel.py⏎
+ │ │ parallel.py~⏎
+ │ │ selfask⏎
+ │ │ selfask.html⏎
+ │ │ selfask.ipynb⏎
+ │ │ selfask.log⏎
+ │ │ selfask.pmpt.tpl⏎
+ │ │ selfask.py⏎
+ │ │ story.py⏎
+ │ │ story.py~⏎
+ │ │ base.py⏎
+ │ │ bash.html⏎
+ │ │ bash.ipynb⏎
+ │ │ bash.log⏎
+ │ │ bash.pmpt.tpl⏎
+ │ │ bash.pmpt.tpl~⏎
+ │ │ bash.py⏎
+ │ │ bash.py~⏎
+ │ │ #parallel.py#⏎
+ │ │ parallel.py⏎
+ │ │ parallel.py~⏎
+ │ │ selfask⏎
+ │ │ selfask.html⏎
+ │ │ selfask.ipynb⏎
+ │ │ selfask.log⏎
+ │ │ selfask.pmpt.tpl⏎
+ │ │ selfask.py⏎
+ │ │ story.py⏎
+ │ │ story.py~⏎
+ │ │ base.py⏎
+ │ │ bash.html⏎
+ │ │ bash.ipynb⏎
+ │ │ bash.log⏎
+ │ │ bash.pmpt.tpl⏎
+ │ │ bash.pmpt.tpl~⏎
+ │ │ bash.py⏎
+ │ │ bash.py~⏎
+ │ │ #parallel.py#⏎
+ │ │ parallel.py⏎
+ │ │ parallel.py~⏎
+ │ │ selfask⏎
+ │ │ selfask.html⏎
+ │ │ selfask.ipynb⏎
+ │ │ selfask.log⏎
+ │ │ selfask.pmpt.tpl⏎
+ │ │ selfask.py⏎
+ │ │ story.py⏎
+ │ │ story.py~⏎
+ │ │
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/bash.ipynb b/bash.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..9b64f07b7436b5ed1374bfd5edc53b0ab7e1aa44
--- /dev/null
+++ b/bash.ipynb
@@ -0,0 +1,412 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "27962df3",
+ "metadata": {},
+ "source": [
+ "Notebook to generate and run a bash command.\n",
+ "Adapted from LangChain\n",
+ "[BashChain](https://langchain.readthedocs.io/en/latest/modules/chains/examples/llm_bash.html)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "e01d45bc",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:17.548344Z",
+ "iopub.status.busy": "2023-02-27T14:12:17.547695Z",
+ "iopub.status.idle": "2023-02-27T14:12:17.767947Z",
+ "shell.execute_reply": "2023-02-27T14:12:17.767208Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import minichain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b2caf597",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "Prompt that asks LLM to produce a bash command."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "8669ca4e",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:17.773257Z",
+ "iopub.status.busy": "2023-02-27T14:12:17.771880Z",
+ "iopub.status.idle": "2023-02-27T14:12:17.778057Z",
+ "shell.execute_reply": "2023-02-27T14:12:17.777432Z"
+ },
+ "lines_to_next_cell": 2
+ },
+ "outputs": [],
+ "source": [
+ "class CLIPrompt(minichain.TemplatePrompt):\n",
+ " template_file = \"bash.pmpt.tpl\"\n",
+ "\n",
+ " def parse(self, out: str, inp):\n",
+ " out = out.strip()\n",
+ " assert out.startswith(\"```bash\")\n",
+ " return out.split(\"\\n\")[1:-1]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "79cc544e",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "Prompt that runs the bash command."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "db1e09b6",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:17.782732Z",
+ "iopub.status.busy": "2023-02-27T14:12:17.781591Z",
+ "iopub.status.idle": "2023-02-27T14:12:17.787303Z",
+ "shell.execute_reply": "2023-02-27T14:12:17.786651Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "class BashPrompt(minichain.Prompt):\n",
+ " def prompt(self, inp) -> str:\n",
+ " return \";\".join(inp).replace(\"\\n\", \"\")\n",
+ "\n",
+ " def parse(self, out: str, inp) -> str:\n",
+ " return out"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5b993ae8",
+ "metadata": {},
+ "source": [
+ "Generate and run bash command."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "17572fff",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:17.792430Z",
+ "iopub.status.busy": "2023-02-27T14:12:17.791251Z",
+ "iopub.status.idle": "2023-02-27T14:12:19.652953Z",
+ "shell.execute_reply": "2023-02-27T14:12:19.650586Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "#backend.py#\n",
+ "backend.py\n",
+ "base.py\n",
+ "__init__.py\n",
+ "lang.py\n",
+ "prompts.py\n",
+ "__pycache__\n",
+ "templates\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "with minichain.start_chain(\"bash\") as backend:\n",
+ " question = (\n",
+ " '\"go up one directory, and then into the minichain directory,'\n",
+ " 'and list the files in the directory\"'\n",
+ " )\n",
+ " prompt = CLIPrompt(backend.OpenAI()).chain(BashPrompt(backend.BashProcess()))\n",
+ " result = prompt({\"question\": question})\n",
+ " print(result)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "aadedf29",
+ "metadata": {},
+ "source": [
+ "View the prompts."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "0e1c2f1a",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:19.662941Z",
+ "iopub.status.busy": "2023-02-27T14:12:19.661254Z",
+ "iopub.status.idle": "2023-02-27T14:12:19.738758Z",
+ "shell.execute_reply": "2023-02-27T14:12:19.738197Z"
+ },
+ "lines_to_next_cell": 2,
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "CLIPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'question': 'list the files in the directory'}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put \"#!/bin/bash\" in your answer. Make sure to reason step by step, using this format:
Question: \"copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'\"
I need to take the following actions:
- List all files in the directory
- Create a new directory
- Copy the files from the first directory into the second directory
```bash
ls
mkdir myNewDirectory
cp -r target/* myNewDirectory
```
That is the format. Begin!
Question:
list the files in the directory
\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " ```bash
ls
```\n",
+ " \n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nCLIPrompt
\\n\\n\\n - Input:
\\n - \\n
{'question': 'list the files in the directory'}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put \"#!/bin/bash\" in your answer. Make sure to reason step by step, using this format:
Question: \"copy the files in the directory named \\'target\\' into a new directory at the same level as target called \\'myNewDirectory\\'\"
I need to take the following actions:
- List all files in the directory
- Create a new directory
- Copy the files from the first directory into the second directory
```bash
ls
mkdir myNewDirectory
cp -r target/* myNewDirectory
```
That is the format. Begin!
Question:
list the files in the directory
\\n \\n \\n\\n - Response:
\\n - \\n ```bash
ls
```\\n \\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "CLIPrompt().show(\n",
+ " {\"question\": \"list the files in the directory\"}, \"\"\"```bash\\nls\\n```\"\"\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "79cf9c84",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:19.740976Z",
+ "iopub.status.busy": "2023-02-27T14:12:19.740788Z",
+ "iopub.status.idle": "2023-02-27T14:12:19.745592Z",
+ "shell.execute_reply": "2023-02-27T14:12:19.745136Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "BashPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
['ls', 'cat file.txt']\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " ls;cat file.txt
\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " hello\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nBashPrompt
\\n\\n\\n - Input:
\\n - \\n
['ls', 'cat file.txt']\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n ls;cat file.txt
\\n \\n \\n\\n - Response:
\\n - \\n hello\\n
\\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "BashPrompt().show([\"ls\", \"cat file.txt\"], \"hello\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "89c7bc6c",
+ "metadata": {},
+ "source": [
+ "View the run log."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "7dbcec08",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:12:19.748151Z",
+ "iopub.status.busy": "2023-02-27T14:12:19.747899Z",
+ "iopub.status.idle": "2023-02-27T14:12:19.768720Z",
+ "shell.execute_reply": "2023-02-27T14:12:19.768248Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15mfc682a98-f50a-4837-8b6d-87e843c19732\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.531s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.003s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mquestion\u001b[0m: \"go up one directory, and then into the minichain directory,and list the files in the directory\"\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.528s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put \"#!/bin/bash\" in your answer. Make sure to reason step by step, using this format:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: \"copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ I need to take the following actions:⏎\n",
+ " │ │ - List all files in the directory⏎\n",
+ " │ │ - Create a new directory⏎\n",
+ " │ │ - Copy the files from the first directory into the second directory⏎\n",
+ " │ │ ```bash⏎\n",
+ " │ │ ls⏎\n",
+ " │ │ mkdir myNewDirectory⏎\n",
+ " │ │ cp -r target/* myNewDirectory⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ That is the format. Begin!⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: \"go up one directory, and then into the minichain directory,and list the files in the directory\"\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```bash⏎\n",
+ " │ │ cd ..⏎\n",
+ " │ │ cd minichain⏎\n",
+ " │ │ ls⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m328e2368-6c0f-4a03-ae78-26aa43a517e3\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.006s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m0\u001b[0m: cd ..\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1\u001b[0m: cd minichain\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4m2\u001b[0m: ls\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.005s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: cd ..;cd minichain;ls\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: #backend.py#⏎\n",
+ " │ │ backend.py⏎\n",
+ " │ │ base.py⏎\n",
+ " │ │ __init__.py⏎\n",
+ " │ │ lang.py⏎\n",
+ " │ │ prompts.py⏎\n",
+ " │ │ __pycache__⏎\n",
+ " │ │ templates⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mca5f4b25-55ca-441d-a0d2-f39ad0bca2d0\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mbash\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:17Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.850s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mbash\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "minichain.show_log(\"bash.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/bash.log b/bash.log
new file mode 100644
index 0000000000000000000000000000000000000000..98cd95a502439ce91d0170bf81bc78fd47017959
--- /dev/null
+++ b/bash.log
@@ -0,0 +1,8 @@
+{"action_status": "started", "timestamp": 1678759606.621539, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.6216574, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.6456344, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.645799, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9333436, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.9335442, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/bash.pmpt.tpl b/bash.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..a9531909755576039793bd342e44efb706978ffa
--- /dev/null
+++ b/bash.pmpt.tpl
@@ -0,0 +1,17 @@
+If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put "#!/bin/bash" in your answer. Make sure to reason step by step, using this format:
+
+Question: "copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'"
+
+I need to take the following actions:
+- List all files in the directory
+- Create a new directory
+- Copy the files from the first directory into the second directory
+```bash
+ls
+mkdir myNewDirectory
+cp -r target/* myNewDirectory
+```
+
+That is the format. Begin!
+
+Question: "{{question}}"
\ No newline at end of file
diff --git a/bash.py b/bash.py
new file mode 100644
index 0000000000000000000000000000000000000000..76f33b4be9a141de5192d5df1f20aea4cab07944
--- /dev/null
+++ b/bash.py
@@ -0,0 +1,64 @@
+# Notebook to generate and run a bash command.
+# Adapted from LangChain
+# [BashChain](https://langchain.readthedocs.io/en/latest/modules/chains/examples/llm_bash.html)
+
+import minichain
+
+# Prompt that asks LLM to produce a bash command.
+
+
+class CLIPrompt(minichain.TemplatePrompt):
+ template_file = "bash.pmpt.tpl"
+
+ def parse(self, out: str, inp):
+ out = out.strip()
+ assert out.startswith("```bash")
+ return out.split("\n")[1:-1]
+
+
+# Prompt that runs the bash command.
+
+
+class BashPrompt(minichain.Prompt):
+ def prompt(self, inp) -> str:
+ return ";".join(inp).replace("\n", "")
+
+ def parse(self, out: str, inp) -> str:
+ return out
+
+
+# Generate and run bash command.
+
+with minichain.start_chain("bash") as backend:
+ question = (
+
+ )
+ prompt = CLIPrompt(backend.OpenAI()).chain(BashPrompt(backend.BashProcess()))
+
+gradio = prompt.to_gradio(fields =["question"],
+ examples=['Go up one directory, and then into the minichain directory,'
+ 'and list the files in the directory'],
+ out_type="markdown"
+
+)
+if __name__ == "__main__":
+ gradio.launch()
+
+
+
+# View the prompts.
+
+# + tags=["hide_inp"]
+# CLIPrompt().show(
+# {"question": "list the files in the directory"}, """```bash\nls\n```"""
+# )
+# # -
+
+
+# # + tags=["hide_inp"]
+# BashPrompt().show(["ls", "cat file.txt"], "hello")
+# # -
+
+# # View the run log.
+
+# minichain.show_log("bash.log")
diff --git a/chat.log b/chat.log
new file mode 100644
index 0000000000000000000000000000000000000000..03b6201ca3705cfaa358da62697b3f20937202c9
--- /dev/null
+++ b/chat.log
@@ -0,0 +1,14 @@
+{"action_status": "started", "timestamp": 1678759606.424852, "task_uuid": "0b226ec0-566b-4e36-af45-25c0881e5228", "action_type": "chat", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.4249172, "task_uuid": "0b226ec0-566b-4e36-af45-25c0881e5228", "action_type": "chat", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.5748045, "task_uuid": "a2181bdc-7e7a-47a7-9a58-6abf2c2e10cd", "action_type": "ner", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.5748866, "task_uuid": "a2181bdc-7e7a-47a7-9a58-6abf2c2e10cd", "action_type": "ner", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.5984528, "task_uuid": "694c3be6-2b7a-47b3-8d6a-0408b8dc6a26", "action_type": "math", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.5985456, "task_uuid": "694c3be6-2b7a-47b3-8d6a-0408b8dc6a26", "action_type": "math", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.621539, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.6216574, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.6456344, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.645799, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9333436, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.9335442, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/chat.pmpt.tpl b/chat.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..323fac4e44308dd761b196abf9da9b87b931d302
--- /dev/null
+++ b/chat.pmpt.tpl
@@ -0,0 +1,15 @@
+Assistant is a large language model trained by OpenAI.
+
+Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
+
+Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
+
+Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.
+
+{% for d in memory %}
+Human: {{d[0]}}
+AI: {{d[1]}}
+{% endfor %}
+
+Human: {{human_input}}
+Assistant:
\ No newline at end of file
diff --git a/chat.py b/chat.py
new file mode 100644
index 0000000000000000000000000000000000000000..2381f9352d51f563f09a979c791cc0f2152ff368
--- /dev/null
+++ b/chat.py
@@ -0,0 +1,67 @@
+
+
+import warnings
+from dataclasses import dataclass
+from typing import List, Tuple
+from IPython.display import Markdown, display
+import minichain
+
+# + tags=["hide_inp"]
+warnings.filterwarnings("ignore")
+# -
+
+
+# Generic stateful Memory
+
+MEMORY = 2
+
+@dataclass
+class State:
+ memory: List[Tuple[str, str]]
+ human_input: str = ""
+
+ def push(self, response: str) -> "State":
+ memory = self.memory if len(self.memory) < MEMORY else self.memory[1:]
+ return State(memory + [(self.human_input, response)])
+
+# Chat prompt with memory
+
+class ChatPrompt(minichain.TemplatePrompt):
+ template_file = "chatgpt.pmpt.tpl"
+ def parse(self, out: str, inp: State) -> State:
+ result = out.split("Assistant:")[-1]
+ return inp.push(result)
+
+# class Human(minichain.Prompt):
+# def parse(self, out: str, inp: State) -> State:
+# return inp.human_input = out
+
+
+with minichain.start_chain("chat") as backend:
+ prompt = ChatPrompt(backend.OpenAI())
+ state = State([])
+
+
+examples = [
+ "I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.",
+ "ls ~",
+ "cd ~",
+ "{Please make a file jokes.txt inside and put some jokes inside}",
+ """echo -e "x=lambda y:y*5+3;print('Result:' + str(x(6)))" > run.py && python3 run.py""",
+ """echo -e "print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])" > run.py && python3 run.py""",
+ """echo -e "echo 'Hello from Docker" > entrypoint.sh && echo -e "FROM ubuntu:20.04\nCOPY entrypoint.sh entrypoint.sh\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image""",
+ "nvidia-smi"
+]
+
+gradio = prompt.to_gradio(fields= ["human_input"],
+ initial_state= state,
+ examples=examples,
+ out_type="json"
+)
+if __name__ == "__main__":
+ gradio.launch()
+
+# for i in range(len(fake_human)):
+# human.chain(prompt)
+
+
diff --git a/chatgpt.ipynb b/chatgpt.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..976861167d85f01dcdcbab8a93c14b7b223a8bc3
--- /dev/null
+++ b/chatgpt.ipynb
@@ -0,0 +1,1099 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "3a1d57c7",
+ "metadata": {},
+ "source": [
+ "# ChatGPT"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4751e660",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "\"ChatGPT\" like examples. Adapted from\n",
+ "[LangChain](https://langchain.readthedocs.io/en/latest/modules/memory/examples/chatgpt_clone.html)'s\n",
+ "version of this [blog\n",
+ "post](https://www.engraved.blog/building-a-virtual-machine-inside/)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "0acb2e7c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.736481Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.736154Z",
+ "iopub.status.idle": "2023-02-27T16:23:05.928562Z",
+ "shell.execute_reply": "2023-02-27T16:23:05.927370Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import warnings\n",
+ "from dataclasses import dataclass\n",
+ "from typing import List, Tuple\n",
+ "from IPython.display import Markdown, display\n",
+ "import minichain"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "53e77d82",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.933659Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.932423Z",
+ "iopub.status.idle": "2023-02-27T16:23:05.937782Z",
+ "shell.execute_reply": "2023-02-27T16:23:05.937143Z"
+ },
+ "lines_to_next_cell": 2,
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "warnings.filterwarnings(\"ignore\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e4fbd918",
+ "metadata": {},
+ "source": [
+ "Generic stateful Memory"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "e2c75e33",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.942500Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.941348Z",
+ "iopub.status.idle": "2023-02-27T16:23:05.946048Z",
+ "shell.execute_reply": "2023-02-27T16:23:05.945445Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "MEMORY = 2"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "4bb6e612",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.950846Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.949709Z",
+ "iopub.status.idle": "2023-02-27T16:23:05.956371Z",
+ "shell.execute_reply": "2023-02-27T16:23:05.955692Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "@dataclass\n",
+ "class State:\n",
+ " memory: List[Tuple[str, str]]\n",
+ " human_input: str = \"\"\n",
+ "\n",
+ " def push(self, response: str) -> \"State\":\n",
+ " memory = self.memory if len(self.memory) < MEMORY else self.memory[1:]\n",
+ " return State(memory + [(self.human_input, response)])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "7b958184",
+ "metadata": {},
+ "source": [
+ "Chat prompt with memory"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "651c6a01",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.961370Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.960177Z",
+ "iopub.status.idle": "2023-02-27T16:23:05.965742Z",
+ "shell.execute_reply": "2023-02-27T16:23:05.965181Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class ChatPrompt(minichain.TemplatePrompt):\n",
+ " template_file = \"chatgpt.pmpt.tpl\"\n",
+ " def parse(self, out: str, inp: State) -> State:\n",
+ " result = out.split(\"Assistant:\")[-1]\n",
+ " return inp.push(result)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "2594b95f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.968305Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.967862Z",
+ "iopub.status.idle": "2023-02-27T16:23:05.971369Z",
+ "shell.execute_reply": "2023-02-27T16:23:05.970873Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "fake_human = [\n",
+ " \"I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.\",\n",
+ " \"ls ~\",\n",
+ " \"cd ~\",\n",
+ " \"{Please make a file jokes.txt inside and put some jokes inside}\",\n",
+ " \"\"\"echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py\"\"\",\n",
+ " \"\"\"echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\"\"\",\n",
+ " \"\"\"echo -e \"echo 'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\\nCOPY entrypoint.sh entrypoint.sh\\nENTRYPOINT [\\\"/bin/sh\\\",\\\"entrypoint.sh\\\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\"\"\",\n",
+ " \"nvidia-smi\"\n",
+ "]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "200f6f4f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:05.973893Z",
+ "iopub.status.busy": "2023-02-27T16:23:05.973504Z",
+ "iopub.status.idle": "2023-02-27T16:23:39.934620Z",
+ "shell.execute_reply": "2023-02-27T16:23:39.932059Z"
+ },
+ "lines_to_next_cell": 2
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd."
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "```\n",
+ "$ pwd\n",
+ "/\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** ls ~"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "```\n",
+ "$ ls ~\n",
+ "Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** cd ~"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "```\n",
+ "$ cd ~\n",
+ "$ pwd\n",
+ "/home/username\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** {Please make a file jokes.txt inside and put some jokes inside}"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "\n",
+ "```\n",
+ "$ touch jokes.txt\n",
+ "$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\n",
+ "$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\n",
+ "$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "\n",
+ "```\n",
+ "$ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py\n",
+ "$ python3 run.py\n",
+ "Result: 33\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "\n",
+ "```\n",
+ "$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\n",
+ "$ python3 run.py\n",
+ "[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** echo -e \"echo 'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\n",
+ "COPY entrypoint.sh entrypoint.sh\n",
+ "ENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "\n",
+ "```\n",
+ "$ echo -e \"echo 'Hello from Docker\" > entrypoint.sh\n",
+ "$ echo -e \"FROM ubuntu:20.04\n",
+ "COPY entrypoint.sh entrypoint.sh\n",
+ "ENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile\n",
+ "$ docker build . -t my_docker_image\n",
+ "$ docker run -t my_docker_image\n",
+ "Hello from Docker\n",
+ "```"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Human:** nvidia-smi"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "**Assistant:** \n",
+ "\n",
+ "```\n",
+ "$ nvidia-smi\n",
+ "Sat May 15 21:45:02 2021 \n",
+ "+-----------------------------------------------------------------------------+\n",
+ "| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |\n",
+ "|-------------------------------+----------------------+----------------------+\n",
+ "| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
+ "| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n",
+ "|===============================+======================+======================|\n",
+ "| 0 GeForce RTX 208... Off | 00000000:01:00.0 Off | N/A |\n",
+ "| N/A 45C P0 28W / N/A | 590MiB / 7979MiB | 0% Default |\n",
+ "+-------------------------------+----------------------+----------------------+\n",
+ " \n",
+ "+-----------------------------------------------------------------------------+\n",
+ "| Processes: GPU Memory |\n",
+ "| GPU PID Type Process name Usage |\n",
+ "|=============================================================================|\n",
+ "|"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/markdown": [
+ "--------------"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "with minichain.start_chain(\"chatgpt\") as backend:\n",
+ " prompt = ChatPrompt(backend.OpenAI())\n",
+ " state = State([])\n",
+ " for t in fake_human:\n",
+ " state.human_input = t\n",
+ " display(Markdown(f'**Human:** {t}'))\n",
+ " state = prompt(state)\n",
+ " display(Markdown(f'**Assistant:** {state.memory[-1][1]}'))\n",
+ " display(Markdown(f'--------------'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "49506eaa",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:39.944473Z",
+ "iopub.status.busy": "2023-02-27T16:23:39.943436Z",
+ "iopub.status.idle": "2023-02-27T16:23:40.011091Z",
+ "shell.execute_reply": "2023-02-27T16:23:40.010474Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "ChatPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
State(memory=[('human 1', 'output 1'), ('human 2', 'output 2')], human_input='cd ~')\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Assistant is a large language model trained by OpenAI.
Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.
Human: human 1
AI: output 1
Human: human 2
AI: output 2
Human:
cd ~
Assistant:\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " Text Assistant: Hello\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "
State(memory=[('human 2', 'output 2'), ('cd ~', ' Hello')], human_input='')\n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nChatPrompt
\\n\\n\\n - Input:
\\n - \\n
State(memory=[('human 1', 'output 1'), ('human 2', 'output 2')], human_input='cd ~')\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Assistant is a large language model trained by OpenAI.
Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.
Human: human 1
AI: output 1
Human: human 2
AI: output 2
Human:
cd ~
Assistant:\\n \\n \\n\\n - Response:
\\n - \\n Text Assistant: Hello\\n
\\n\\n - Value:
\\n - \\n
State(memory=[('human 2', 'output 2'), ('cd ~', ' Hello')], human_input='')\\n
\\n\\n \\n
\\n')"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ChatPrompt().show(State([(\"human 1\", \"output 1\"), (\"human 2\", \"output 2\") ], \"cd ~\"),\n",
+ " \"Text Assistant: Hello\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8c8c967b",
+ "metadata": {},
+ "source": [
+ "View the run log."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "7884cf9d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T16:23:40.013468Z",
+ "iopub.status.busy": "2023-02-27T16:23:40.013285Z",
+ "iopub.status.idle": "2023-02-27T16:23:40.076730Z",
+ "shell.execute_reply": "2023-02-27T16:23:40.076097Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15mbe24331e-675b-4c1f-aa66-65b84a7602e3\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mchatgpt\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:05Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m33.953s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mchatgpt\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:39Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m60ca1813-07db-499b-b10b-d5b64709303f\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.264s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": 'State(memory=[(\\'cd ~\\', \\' \\\\n```\\\\n$ cd ~\\\\n$ pwd\\\\n/home/username\\\\n```\\'), (\\'{Please make a file jokes.txt inside and put some jokes inside}\\', \\'\\\\n\\\\n```\\\\n$ touch jokes.txt\\\\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\\\\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\\\\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\\\\n```\\')], human_input=\\'echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py && python3 run.py\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514995.8653514', \"'task_uuid'\": \"'60ca1813-07db-499b-b10b-d5b64709303f'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.259s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: cd ~⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ cd ~⏎\n",
+ " │ │ $ pwd⏎\n",
+ " │ │ /home/username⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: {Please make a file jokes.txt inside and put some jokes inside}⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ touch jokes.txt⏎\n",
+ " │ │ $ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt⏎\n",
+ " │ │ $ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt⏎\n",
+ " │ │ $ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py⏎\n",
+ " │ │ $ python3 run.py⏎\n",
+ " │ │ Result: 33⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mc2062d1e-37fb-44e9-9e3f-35fd33720af5\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:06Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.477s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:06Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:06Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": \"State(memory=[], human_input='I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514986.2875783', \"'task_uuid'\": \"'c2062d1e-37fb-44e9-9e3f-35fd33720af5'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:06Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.472s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ pwd⏎\n",
+ " │ │ /⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mea339a52-82af-4c19-8ee6-1d2f081bc437\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m11.867s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": 'State(memory=[(\\'echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\\\\n$ python3 run.py\\\\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\\\\n```\\'), (\\'echo -e \"echo \\\\\\'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\\\\nCOPY entrypoint.sh entrypoint.sh\\\\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"echo \\\\\\'Hello from Docker\" > entrypoint.sh\\\\n$ echo -e \"FROM ubuntu:20.04\\\\nCOPY entrypoint.sh entrypoint.sh\\\\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile\\\\n$ docker build . -t my_docker_image\\\\n$ docker run -t my_docker_image\\\\nHello from Docker\\\\n```\\')], human_input=\\'nvidia-smi\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677515008.0539572', \"'task_uuid'\": \"'ea339a52-82af-4c19-8ee6-1d2f081bc437'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m11.858s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py⏎\n",
+ " │ │ $ python3 run.py⏎\n",
+ " │ │ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"echo 'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04⏎\n",
+ " │ │ COPY entrypoint.sh entrypoint.sh⏎\n",
+ " │ │ ENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"echo 'Hello from Docker\" > entrypoint.sh⏎\n",
+ " │ │ $ echo -e \"FROM ubuntu:20.04⏎\n",
+ " │ │ COPY entrypoint.sh entrypoint.sh⏎\n",
+ " │ │ ENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile⏎\n",
+ " │ │ $ docker build . -t my_docker_image⏎\n",
+ " │ │ $ docker run -t my_docker_image⏎\n",
+ " │ │ Hello from Docker⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: nvidia-smi⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:39Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:39Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ nvidia-smi⏎\n",
+ " │ │ Sat May 15 21:45:02 2021 ⏎\n",
+ " │ │ +-----------------------------------------------------------------------------+⏎\n",
+ " │ │ | NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |⏎\n",
+ " │ │ |-------------------------------+----------------------+----------------------+⏎\n",
+ " │ │ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |⏎\n",
+ " │ │ | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |⏎\n",
+ " │ │ |===============================+======================+======================|⏎\n",
+ " │ │ | 0 GeForce RTX 208... Off | 00000000:01:00.0 Off | N/A |⏎\n",
+ " │ │ | N/A 45C P0 28W / N/A | 590MiB / 7979MiB | 0% Default |⏎\n",
+ " │ │ +-------------------------------+----------------------+----------------------+⏎\n",
+ " │ │ ⏎\n",
+ " │ │ +-----------------------------------------------------------------------------+⏎\n",
+ " │ │ | Processes: GPU Memory |⏎\n",
+ " │ │ | GPU PID Type Process name Usage |⏎\n",
+ " │ │ |=============================================================================|⏎\n",
+ " │ │ |\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:39Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:39Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.063s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": 'State(memory=[(\\'{Please make a file jokes.txt inside and put some jokes inside}\\', \\'\\\\n\\\\n```\\\\n$ touch jokes.txt\\\\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\\\\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\\\\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\\\\n```\\'), (\\'echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py\\\\n$ python3 run.py\\\\nResult: 33\\\\n```\\')], human_input=\\'echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514999.1337094', \"'task_uuid'\": \"'5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.061s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: {Please make a file jokes.txt inside and put some jokes inside}⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ touch jokes.txt⏎\n",
+ " │ │ $ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt⏎\n",
+ " │ │ $ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt⏎\n",
+ " │ │ $ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py⏎\n",
+ " │ │ $ python3 run.py⏎\n",
+ " │ │ Result: 33⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py⏎\n",
+ " │ │ $ python3 run.py⏎\n",
+ " │ │ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m8d9f2eb7-c022-48e6-bdeb-c35b8852c934\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.437s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": \"State(memory=[('I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.', '\\\\n```\\\\n$ pwd\\\\n/\\\\n```'), ('ls ~', '\\\\n```\\\\n$ ls ~\\\\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\\\\n```')], human_input='cd ~')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514989.5083773', \"'task_uuid'\": \"'8d9f2eb7-c022-48e6-bdeb-c35b8852c934'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.428s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ pwd⏎\n",
+ " │ │ /⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: ls ~⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ ls ~⏎\n",
+ " │ │ Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: cd ~⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ cd ~⏎\n",
+ " │ │ $ pwd⏎\n",
+ " │ │ /home/username⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m6a51f09a-2d2a-4883-a864-3bb66ba6215b\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.718s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": \"State(memory=[('I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.', '\\\\n```\\\\n$ pwd\\\\n/\\\\n```')], human_input='ls ~')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514987.7763977', \"'task_uuid'\": \"'6a51f09a-2d2a-4883-a864-3bb66ba6215b'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:07Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.710s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ pwd⏎\n",
+ " │ │ /⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: ls ~⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ ls ~⏎\n",
+ " │ │ Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:09Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m00a84ff6-6fc1-4afc-88b1-e82a893855d3\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.841s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": 'State(memory=[(\\'echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py\\\\n$ python3 run.py\\\\nResult: 33\\\\n```\\'), (\\'echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\\\\n$ python3 run.py\\\\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\\\\n```\\')], human_input=\\'echo -e \"echo \\\\\\'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\\\\nCOPY entrypoint.sh entrypoint.sh\\\\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677515003.1996367', \"'task_uuid'\": \"'00a84ff6-6fc1-4afc-88b1-e82a893855d3'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.838s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py⏎\n",
+ " │ │ $ python3 run.py⏎\n",
+ " │ │ Result: 33⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py⏎\n",
+ " │ │ $ python3 run.py⏎\n",
+ " │ │ [2, 3, 5, 7, 11, 13, 17, 19, 23, 29]⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: echo -e \"echo 'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04⏎\n",
+ " │ │ COPY entrypoint.sh entrypoint.sh⏎\n",
+ " │ │ ENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ echo -e \"echo 'Hello from Docker\" > entrypoint.sh⏎\n",
+ " │ │ $ echo -e \"FROM ubuntu:20.04⏎\n",
+ " │ │ COPY entrypoint.sh entrypoint.sh⏎\n",
+ " │ │ ENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile⏎\n",
+ " │ │ $ docker build . -t my_docker_image⏎\n",
+ " │ │ $ docker run -t my_docker_image⏎\n",
+ " │ │ Hello from Docker⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:28Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mb0225ad7-9ac0-4735-b895-3fa45eeef9db\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.909s\u001b[2m\u001b[0m\n",
+ " ├── \n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5meliot:destination_failure\u001b[0m/3\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mexception\u001b[0m: builtins.AttributeError\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mmessage\u001b[0m: {\"'input'\": \"State(memory=[('ls ~', '\\\\n```\\\\n$ ls ~\\\\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\\\\n```'), ('cd ~', ' \\\\n```\\\\n$ cd ~\\\\n$ pwd\\\\n/home/username\\\\n```')], human_input='{Please make a file jokes.txt inside and put some jokes inside}')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514990.9499614', \"'task_uuid'\": \"'b0225ad7-9ac0-4735-b895-3fa45eeef9db'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}\u001b[0m\n",
+ " │ └── \u001b[38;5;4mreason\u001b[0m: module 'numpy' has no attribute 'bool'.⏎\n",
+ " │ `np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.⏎\n",
+ " │ The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:⏎\n",
+ " │ https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.906s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Assistant is a large language model trained by OpenAI.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: ls ~⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ ls ~⏎\n",
+ " │ │ Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: cd ~⏎\n",
+ " │ │ AI: ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ cd ~⏎\n",
+ " │ │ $ pwd⏎\n",
+ " │ │ /home/username⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Human: {Please make a file jokes.txt inside and put some jokes inside}⏎\n",
+ " │ │ Assistant:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/5/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ $ touch jokes.txt⏎\n",
+ " │ │ $ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt⏎\n",
+ " │ │ $ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt⏎\n",
+ " │ │ $ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/5/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/6\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 16:23:15Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "minichain.show_log(\"chatgpt.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/chatgpt.log b/chatgpt.log
new file mode 100644
index 0000000000000000000000000000000000000000..3c4e0af77252584c0b7328dbab56b698235e160c
--- /dev/null
+++ b/chatgpt.log
@@ -0,0 +1,66 @@
+{"action_status": "started", "timestamp": 1677514985.975952, "task_uuid": "be24331e-675b-4c1f-aa66-65b84a7602e3", "action_type": "chatgpt", "task_level": [1]}
+{"action_status": "started", "timestamp": 1677514986.2875004, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": \"State(memory=[], human_input='I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514986.2875783', \"'task_uuid'\": \"'c2062d1e-37fb-44e9-9e3f-35fd33720af5'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677514986.287665, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677514986.2912104, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\n\nHuman: I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.\nAssistant:", "action_status": "started", "timestamp": 1677514986.2913702, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677514987.7635746, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n```\n$ pwd\n/\n```", "action_status": "started", "timestamp": 1677514987.763787, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677514987.763915, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677514987.7640302, "task_uuid": "c2062d1e-37fb-44e9-9e3f-35fd33720af5", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677514987.7762234, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": \"State(memory=[('I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.', '\\\\n```\\\\n$ pwd\\\\n/\\\\n```')], human_input='ls ~')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514987.7763977', \"'task_uuid'\": \"'6a51f09a-2d2a-4883-a864-3bb66ba6215b'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677514987.776682, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677514987.7836592, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.\nAI: \n```\n$ pwd\n/\n```\n\n\nHuman: ls ~\nAssistant:", "action_status": "started", "timestamp": 1677514987.7838352, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677514989.494076, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n```\n$ ls ~\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\n```", "action_status": "started", "timestamp": 1677514989.4943125, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677514989.4944377, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677514989.4945207, "task_uuid": "6a51f09a-2d2a-4883-a864-3bb66ba6215b", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677514989.5081844, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": \"State(memory=[('I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.', '\\\\n```\\\\n$ pwd\\\\n/\\\\n```'), ('ls ~', '\\\\n```\\\\n$ ls ~\\\\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\\\\n```')], human_input='cd ~')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514989.5083773', \"'task_uuid'\": \"'8d9f2eb7-c022-48e6-bdeb-c35b8852c934'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677514989.5086985, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677514989.5162013, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.\nAI: \n```\n$ pwd\n/\n```\n\nHuman: ls ~\nAI: \n```\n$ ls ~\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\n```\n\n\nHuman: cd ~\nAssistant:", "action_status": "started", "timestamp": 1677514989.516413, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677514990.9448535, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": " \n```\n$ cd ~\n$ pwd\n/home/username\n```", "action_status": "started", "timestamp": 1677514990.9449363, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677514990.9449837, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677514990.9450145, "task_uuid": "8d9f2eb7-c022-48e6-bdeb-c35b8852c934", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677514990.949691, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": \"State(memory=[('ls ~', '\\\\n```\\\\n$ ls ~\\\\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\\\\n```'), ('cd ~', ' \\\\n```\\\\n$ cd ~\\\\n$ pwd\\\\n/home/username\\\\n```')], human_input='{Please make a file jokes.txt inside and put some jokes inside}')\", \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514990.9499614', \"'task_uuid'\": \"'b0225ad7-9ac0-4735-b895-3fa45eeef9db'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677514990.9501207, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677514990.9532957, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: ls ~\nAI: \n```\n$ ls ~\nDesktop/ Documents/ Downloads/ Music/ Pictures/ Public/ Templates/ Videos/\n```\n\nHuman: cd ~\nAI: \n```\n$ cd ~\n$ pwd\n/home/username\n```\n\n\nHuman: {Please make a file jokes.txt inside and put some jokes inside}\nAssistant:", "action_status": "started", "timestamp": 1677514990.9533696, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677514995.858929, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n\n```\n$ touch jokes.txt\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\n```", "action_status": "started", "timestamp": 1677514995.8590267, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677514995.8590858, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677514995.859122, "task_uuid": "b0225ad7-9ac0-4735-b895-3fa45eeef9db", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677514995.86515, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": 'State(memory=[(\\'cd ~\\', \\' \\\\n```\\\\n$ cd ~\\\\n$ pwd\\\\n/home/username\\\\n```\\'), (\\'{Please make a file jokes.txt inside and put some jokes inside}\\', \\'\\\\n\\\\n```\\\\n$ touch jokes.txt\\\\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\\\\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\\\\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\\\\n```\\')], human_input=\\'echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py && python3 run.py\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514995.8653514', \"'task_uuid'\": \"'60ca1813-07db-499b-b10b-d5b64709303f'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677514995.8655088, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677514995.8692126, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: cd ~\nAI: \n```\n$ cd ~\n$ pwd\n/home/username\n```\n\nHuman: {Please make a file jokes.txt inside and put some jokes inside}\nAI: \n\n```\n$ touch jokes.txt\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\n```\n\n\nHuman: echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py\nAssistant:", "action_status": "started", "timestamp": 1677514995.8693106, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677514999.1287231, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n\n```\n$ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py\n$ python3 run.py\nResult: 33\n```", "action_status": "started", "timestamp": 1677514999.1288157, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677514999.1288638, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677514999.1288946, "task_uuid": "60ca1813-07db-499b-b10b-d5b64709303f", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677514999.1336586, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": 'State(memory=[(\\'{Please make a file jokes.txt inside and put some jokes inside}\\', \\'\\\\n\\\\n```\\\\n$ touch jokes.txt\\\\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\\\\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\\\\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\\\\n```\\'), (\\'echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py\\\\n$ python3 run.py\\\\nResult: 33\\\\n```\\')], human_input=\\'echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677514999.1337094', \"'task_uuid'\": \"'5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677514999.1337867, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677514999.135381, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: {Please make a file jokes.txt inside and put some jokes inside}\nAI: \n\n```\n$ touch jokes.txt\n$ echo \"Why did the chicken cross the road? To get to the other side!\" >> jokes.txt\n$ echo \"What did the fish say when it hit the wall? Dam!\" >> jokes.txt\n$ echo \"Why did the scarecrow win the Nobel Prize? Because he was outstanding in his field!\" >> jokes.txt\n```\n\nHuman: echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py\nAI: \n\n```\n$ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py\n$ python3 run.py\nResult: 33\n```\n\n\nHuman: echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\nAssistant:", "action_status": "started", "timestamp": 1677514999.1354215, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677515003.1960745, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n\n```\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\n$ python3 run.py\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\n```", "action_status": "started", "timestamp": 1677515003.1962907, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677515003.1963375, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677515003.1963675, "task_uuid": "5a8d829e-f545-4f75-b1b3-efb6cdb5d8e4", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677515003.1995413, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": 'State(memory=[(\\'echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"x=lambda y:y*5+3;print(\\\\\\'Result:\\\\\\' + str(x(6)))\" > run.py\\\\n$ python3 run.py\\\\nResult: 33\\\\n```\\'), (\\'echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\\\\n$ python3 run.py\\\\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\\\\n```\\')], human_input=\\'echo -e \"echo \\\\\\'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\\\\nCOPY entrypoint.sh entrypoint.sh\\\\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677515003.1996367', \"'task_uuid'\": \"'00a84ff6-6fc1-4afc-88b1-e82a893855d3'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677515003.1997197, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677515003.201452, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py && python3 run.py\nAI: \n\n```\n$ echo -e \"x=lambda y:y*5+3;print('Result:' + str(x(6)))\" > run.py\n$ python3 run.py\nResult: 33\n```\n\nHuman: echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\nAI: \n\n```\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\n$ python3 run.py\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\n```\n\n\nHuman: echo -e \"echo 'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\nCOPY entrypoint.sh entrypoint.sh\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\nAssistant:", "action_status": "started", "timestamp": 1677515003.2015123, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677515008.0399287, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n\n```\n$ echo -e \"echo 'Hello from Docker\" > entrypoint.sh\n$ echo -e \"FROM ubuntu:20.04\nCOPY entrypoint.sh entrypoint.sh\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile\n$ docker build . -t my_docker_image\n$ docker run -t my_docker_image\nHello from Docker\n```", "action_status": "started", "timestamp": 1677515008.0401833, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677515008.040339, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677515008.040439, "task_uuid": "00a84ff6-6fc1-4afc-88b1-e82a893855d3", "action_type": "", "task_level": [6]}
+{"action_status": "started", "timestamp": 1677515008.053587, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "", "task_level": [1]}
+{"reason": "module 'numpy' has no attribute 'bool'.\n`np.bool` was a deprecated alias for the builtin `bool`. To avoid this error in existing code, use `bool` by itself. Doing this will not modify any behavior and is safe. If you specifically wanted the numpy scalar type, use `np.bool_` here.\nThe aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:\n https://numpy.org/devdocs/release/1.20.0-notes.html#deprecations", "exception": "builtins.AttributeError", "message": "{\"'input'\": 'State(memory=[(\\'echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\\\\n$ python3 run.py\\\\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\\\\n```\\'), (\\'echo -e \"echo \\\\\\'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\\\\nCOPY entrypoint.sh entrypoint.sh\\\\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\\', \\'\\\\n\\\\n```\\\\n$ echo -e \"echo \\\\\\'Hello from Docker\" > entrypoint.sh\\\\n$ echo -e \"FROM ubuntu:20.04\\\\nCOPY entrypoint.sh entrypoint.sh\\\\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile\\\\n$ docker build . -t my_docker_image\\\\n$ docker run -t my_docker_image\\\\nHello from Docker\\\\n```\\')], human_input=\\'nvidia-smi\\')', \"'action_status'\": \"'started'\", \"'timestamp'\": '1677515008.0539572', \"'task_uuid'\": \"'ea339a52-82af-4c19-8ee6-1d2f081bc437'\", \"'action_type'\": \"'Input Function'\", \"'task_level'\": '[2, 1]'}", "timestamp": 1677515008.0543113, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "task_level": [3], "message_type": "eliot:destination_failure"}
+{"action_status": "succeeded", "timestamp": 1677515008.0610886, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.\n\n\nHuman: echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py && python3 run.py\nAI: \n\n```\n$ echo -e \"print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])\" > run.py\n$ python3 run.py\n[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]\n```\n\nHuman: echo -e \"echo 'Hello from Docker\" > entrypoint.sh && echo -e \"FROM ubuntu:20.04\nCOPY entrypoint.sh entrypoint.sh\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image\nAI: \n\n```\n$ echo -e \"echo 'Hello from Docker\" > entrypoint.sh\n$ echo -e \"FROM ubuntu:20.04\nCOPY entrypoint.sh entrypoint.sh\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]\">Dockerfile\n$ docker build . -t my_docker_image\n$ docker run -t my_docker_image\nHello from Docker\n```\n\n\nHuman: nvidia-smi\nAssistant:", "action_status": "started", "timestamp": 1677515008.0612898, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "Prompted", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677515019.9196224, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "Prompted", "task_level": [4, 2]}
+{"result": "\n\n```\n$ nvidia-smi\nSat May 15 21:45:02 2021 \n+-----------------------------------------------------------------------------+\n| NVIDIA-SMI 460.32.03 Driver Version: 460.32.03 CUDA Version: 11.2 |\n|-------------------------------+----------------------+----------------------+\n| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n|===============================+======================+======================|\n| 0 GeForce RTX 208... Off | 00000000:01:00.0 Off | N/A |\n| N/A 45C P0 28W / N/A | 590MiB / 7979MiB | 0% Default |\n+-------------------------------+----------------------+----------------------+\n \n+-----------------------------------------------------------------------------+\n| Processes: GPU Memory |\n| GPU PID Type Process name Usage |\n|=============================================================================|\n|", "action_status": "started", "timestamp": 1677515019.919849, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "Result", "task_level": [5, 1]}
+{"action_status": "succeeded", "timestamp": 1677515019.920001, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "Result", "task_level": [5, 2]}
+{"action_status": "succeeded", "timestamp": 1677515019.9200878, "task_uuid": "ea339a52-82af-4c19-8ee6-1d2f081bc437", "action_type": "", "task_level": [6]}
+{"action_status": "succeeded", "timestamp": 1677515019.9287043, "task_uuid": "be24331e-675b-4c1f-aa66-65b84a7602e3", "action_type": "chatgpt", "task_level": [2]}
diff --git a/chatgpt.pmpt.tpl b/chatgpt.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..323fac4e44308dd761b196abf9da9b87b931d302
--- /dev/null
+++ b/chatgpt.pmpt.tpl
@@ -0,0 +1,15 @@
+Assistant is a large language model trained by OpenAI.
+
+Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.
+
+Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.
+
+Overall, Assistant is a powerful tool that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.
+
+{% for d in memory %}
+Human: {{d[0]}}
+AI: {{d[1]}}
+{% endfor %}
+
+Human: {{human_input}}
+Assistant:
\ No newline at end of file
diff --git a/chatgpt.py b/chatgpt.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee7e771ba3eb32c1c35b457847e89166eec8ee3c
--- /dev/null
+++ b/chatgpt.py
@@ -0,0 +1,75 @@
+# # ChatGPT
+
+# "ChatGPT" like examples. Adapted from
+# [LangChain](https://langchain.readthedocs.io/en/latest/modules/memory/examples/chatgpt_clone.html)'s
+# version of this [blog
+# post](https://www.engraved.blog/building-a-virtual-machine-inside/).
+
+
+import warnings
+from dataclasses import dataclass
+from typing import List, Tuple
+from IPython.display import Markdown, display
+import minichain
+
+# + tags=["hide_inp"]
+warnings.filterwarnings("ignore")
+# -
+
+
+# Generic stateful Memory
+
+MEMORY = 2
+
+@dataclass
+class State:
+ memory: List[Tuple[str, str]]
+ human_input: str = ""
+
+ def push(self, response: str) -> "State":
+ memory = self.memory if len(self.memory) < MEMORY else self.memory[1:]
+ return State(memory + [(self.human_input, response)])
+
+# Chat prompt with memory
+
+class ChatPrompt(minichain.TemplatePrompt):
+ template_file = "chatgpt.pmpt.tpl"
+ def parse(self, out: str, inp: State) -> State:
+ result = out.split("Assistant:")[-1]
+ return inp.push(result)
+
+class Human(minichain.Prompt):
+ def parse(self, out: str, inp: State) -> State:
+ return inp.human_input = out
+
+
+fake_human = [
+ "I want you to act as a Linux terminal. I will type commands and you will reply with what the terminal should show. I want you to only reply with the terminal output inside one unique code block, and nothing else. Do not write explanations. Do not type commands unless I instruct you to do so. When I need to tell you something in English I will do so by putting text inside curly brackets {like this}. My first command is pwd.",
+ "ls ~",
+ "cd ~",
+ "{Please make a file jokes.txt inside and put some jokes inside}",
+ """echo -e "x=lambda y:y*5+3;print('Result:' + str(x(6)))" > run.py && python3 run.py""",
+ """echo -e "print(list(filter(lambda x: all(x%d for d in range(2,x)),range(2,3**10)))[:10])" > run.py && python3 run.py""",
+ """echo -e "echo 'Hello from Docker" > entrypoint.sh && echo -e "FROM ubuntu:20.04\nCOPY entrypoint.sh entrypoint.sh\nENTRYPOINT [\"/bin/sh\",\"entrypoint.sh\"]">Dockerfile && docker build . -t my_docker_image && docker run -t my_docker_image""",
+ "nvidia-smi"
+]
+
+with minichain.start_chain("chatgpt") as backend:
+ prompt = ChatPrompt(backend.OpenAI())
+ human = Human(backend.Mock(fake_human))
+ state = State([])
+ for i in range(len(fake_human)):
+ human.chain(prompt)
+ # display(Markdown(f'**Human:** {t}'))
+ # display(Markdown(f'**Assistant:** {state.memory[-1][1]}'))
+ # display(Markdown(f'--------------'))
+
+
+# + tags=["hide_inp"]
+ChatPrompt().show(State([("human 1", "output 1"), ("human 2", "output 2") ], "cd ~"),
+ "Text Assistant: Hello")
+# -
+
+# View the run log.
+
+minichain.show_log("chatgpt.log")
diff --git a/color.py b/color.py
new file mode 100644
index 0000000000000000000000000000000000000000..a2c8d298cf6ff5793064aaaa36b622eb692def68
--- /dev/null
+++ b/color.py
@@ -0,0 +1,26 @@
+# Answer a math problem with code.
+# Adapted from Dust [maths-generate-code](https://dust.tt/spolu/a/d12ac33169)
+
+from minichain import Backend, JinjaPrompt, Prompt, start_chain, SimplePrompt, show_log
+
+
+# Prompt that asks LLM for code from math.
+
+class ColorPrompt(Prompt[str, bool]):
+ def parse(inp: str) -> str:
+ return f"Answer 'Yes' if this is a color, {inp}. Answer:"
+
+ def parse(out: str, inp) -> bool:
+ # Encode the parsing logic
+ return out.strip() == "Yes"
+ColorPrompt().show({"inp": "dog"}, "No")
+
+
+with start_chain("color") as backend:
+ question = 'What is the sum of the powers of 3 (3^i) that are smaller than 100?'
+ prompt = MathPrompt(backend.OpenAI()).chain(SimplePrompt(backend.Python()))
+ result = prompt({"question": question})
+ print(result)
+
+
+show_log("math.log")
diff --git a/examples.py b/examples.py
new file mode 100644
index 0000000000000000000000000000000000000000..1cd011b95b22398e7410ed5682d64ea08d3eeb8f
--- /dev/null
+++ b/examples.py
@@ -0,0 +1,20 @@
+import gradio as gr
+from chat import gradio as chat
+from ner import gradio as ner
+from math_demo import gradio as math_demo
+from bash import gradio as bash
+from pal import gradio as pal
+from gatsby import gradio as gatsby
+from stats import gradio as stats
+
+css = "#clean div.form {border: 0px} #response {border: 0px; background: #ffeec6} #prompt {border: 0px;background: aliceblue} #json {border: 0px} #result {border: 0px; background: #c5e0e5} #inner {padding: 20px} #inner textarea {border: 0px} .tabs div.tabitem {border: 0px}"
+
+with gr.Blocks(css=css) as demo:
+ gr.HTML(" Mini-Chain
[code] [docs]")
+
+ gr.TabbedInterface([chat, gatsby, math_demo, ner, bash, pal, stats],
+ ["Chat", "QA", "Math", "NER", "Bash", "PAL", "Stats"],
+ css= css)
+
+demo.launch()
+
diff --git a/gatsby.ipynb b/gatsby.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..c3b300b1ff51f890671b36867f4b00886871d560
--- /dev/null
+++ b/gatsby.ipynb
@@ -0,0 +1,1497 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "ef9ec743",
+ "metadata": {},
+ "source": [
+ "Questions answering with Hugging Face embeddings.\n",
+ "Adapted from the [LlamaIndex example](https://github.com/jerryjliu/gpt_index/blob/main/examples/gatsby/TestGatsby.ipynb). "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "009d42b4",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:18.198257Z",
+ "iopub.status.busy": "2023-02-27T01:42:18.198061Z",
+ "iopub.status.idle": "2023-02-27T01:42:18.857472Z",
+ "shell.execute_reply": "2023-02-27T01:42:18.856748Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import datasets\n",
+ "import numpy as np"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "268e96a2",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:18.860345Z",
+ "iopub.status.busy": "2023-02-27T01:42:18.859944Z",
+ "iopub.status.idle": "2023-02-27T01:42:19.003657Z",
+ "shell.execute_reply": "2023-02-27T01:42:19.002999Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from minichain import EmbeddingPrompt, TemplatePrompt, show_log, start_chain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d9db66d3",
+ "metadata": {},
+ "source": [
+ "Load data with embeddings (computed beforehand)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "45b2af90",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:19.006281Z",
+ "iopub.status.busy": "2023-02-27T01:42:19.006013Z",
+ "iopub.status.idle": "2023-02-27T01:42:19.040589Z",
+ "shell.execute_reply": "2023-02-27T01:42:19.040155Z"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "767c094ef5ca40bba8598c29f12a4e82",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/1 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Dataset({\n",
+ " features: ['passages', 'embeddings'],\n",
+ " num_rows: 52\n",
+ "})"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "gatsby = datasets.load_from_disk(\"gatsby\")\n",
+ "gatsby.add_faiss_index(\"embeddings\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1981e6d4",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "Fast KNN retieval prompt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "9d563ca4",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:19.045403Z",
+ "iopub.status.busy": "2023-02-27T01:42:19.045216Z",
+ "iopub.status.idle": "2023-02-27T01:42:19.048881Z",
+ "shell.execute_reply": "2023-02-27T01:42:19.048442Z"
+ },
+ "lines_to_next_cell": 2
+ },
+ "outputs": [],
+ "source": [
+ "class KNNPrompt(EmbeddingPrompt):\n",
+ " def find(self, out, inp):\n",
+ " res = gatsby.get_nearest_examples(\"embeddings\", np.array(out), 1)\n",
+ " return {\"question\": inp, \"docs\": res.examples[\"passages\"]}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4727a6eb",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "QA prompt to ask question with examples"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "bb41489d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:19.051172Z",
+ "iopub.status.busy": "2023-02-27T01:42:19.050989Z",
+ "iopub.status.idle": "2023-02-27T01:42:19.053671Z",
+ "shell.execute_reply": "2023-02-27T01:42:19.053236Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "class QAPrompt(TemplatePrompt):\n",
+ " template_file = \"gatsby.pmpt.tpl\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "6f62cc05",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:19.055816Z",
+ "iopub.status.busy": "2023-02-27T01:42:19.055528Z",
+ "iopub.status.idle": "2023-02-27T01:42:22.998193Z",
+ "shell.execute_reply": "2023-02-27T01:42:22.997407Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "You're using a different task than the one specified in the repository. Be sure to know what you're doing :)\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\n",
+ "Gatsby had no past before he met Daisy. He was a penniless young man without a past, and at any moment the invisible cloak of his uniform might slip from his shoulders. He was liable at the whim of an impersonal government to be blown anywhere about the world.\n"
+ ]
+ }
+ ],
+ "source": [
+ "with start_chain(\"gatsby\") as backend:\n",
+ " question = \"What did Gatsby do before he met Daisy?\"\n",
+ " prompt = KNNPrompt(\n",
+ " backend.HuggingFaceEmbed(\"sentence-transformers/all-mpnet-base-v2\")\n",
+ " ).chain(QAPrompt(backend.OpenAI()))\n",
+ " result = prompt(question)\n",
+ " print(result)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "16532f43",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:23.001357Z",
+ "iopub.status.busy": "2023-02-27T01:42:23.000809Z",
+ "iopub.status.idle": "2023-02-27T01:42:23.061583Z",
+ "shell.execute_reply": "2023-02-27T01:42:23.060988Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "QAPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'question': 'Who was Gatsby?', 'docs': ['doc1', 'doc2', 'doc3']}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Context information is below.
---------------------
* doc1
* doc2
* doc3
---------------------
Given the context information and not prior knowledge, answer the question:
Who was Gatsby?
\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " \n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nQAPrompt
\\n\\n\\n - Input:
\\n - \\n
{'question': 'Who was Gatsby?', 'docs': ['doc1', 'doc2', 'doc3']}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Context information is below.
---------------------
* doc1
* doc2
* doc3
---------------------
Given the context information and not prior knowledge, answer the question:
Who was Gatsby?
\\n \\n \\n\\n - Response:
\\n - \\n \\n
\\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "QAPrompt().show({\"question\": \"Who was Gatsby?\", \"docs\": [\"doc1\", \"doc2\", \"doc3\"]}, \"\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "bf80e95a",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T01:42:23.064174Z",
+ "iopub.status.busy": "2023-02-27T01:42:23.063901Z",
+ "iopub.status.idle": "2023-02-27T01:42:23.149001Z",
+ "shell.execute_reply": "2023-02-27T01:42:23.148032Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15m150103fd-7d30-415e-9d6a-5b90d2828e01\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.568s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: What did Gatsby do before he met Daisy?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.564s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: What did Gatsby do before he met Daisy?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.004s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m0\u001b[0m: -0.003887228202074766\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1\u001b[0m: 0.0198895875364542\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m2\u001b[0m: 0.005014391615986824\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m3\u001b[0m: -0.0190346110612154\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m4\u001b[0m: -0.042222920805215836\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m5\u001b[0m: 0.012635739520192146\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m6\u001b[0m: -0.005387490149587393\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m7\u001b[0m: 0.03442128375172615\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m8\u001b[0m: 0.0464773066341877\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m9\u001b[0m: 0.008885958231985569\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m10\u001b[0m: -0.04840860515832901\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m11\u001b[0m: -0.03726816177368164\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m12\u001b[0m: 0.016300739720463753\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m13\u001b[0m: -0.0653470978140831\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m14\u001b[0m: 0.0007964272517710924\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m15\u001b[0m: 0.04424842447042465\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m16\u001b[0m: 0.01560900267213583\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m17\u001b[0m: 0.035743627697229385\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m18\u001b[0m: -0.00965164601802826\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m19\u001b[0m: 0.009560459293425083\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m20\u001b[0m: -0.02739725448191166\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m21\u001b[0m: -0.007629592437297106\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m22\u001b[0m: 0.021500661969184875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m23\u001b[0m: 0.013538479804992676\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m24\u001b[0m: 0.04506908357143402\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m25\u001b[0m: -0.02173086814582348\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m26\u001b[0m: -0.037203118205070496\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m27\u001b[0m: 0.02240951545536518\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m28\u001b[0m: 0.003418558742851019\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m29\u001b[0m: 0.08345533162355423\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m30\u001b[0m: -0.040042534470558167\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m31\u001b[0m: 0.006710043177008629\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m32\u001b[0m: -0.02690550871193409\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m33\u001b[0m: 0.017070511355996132\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m34\u001b[0m: 1.4651720903202659e-06\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m35\u001b[0m: 0.05050818249583244\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m36\u001b[0m: 0.005196787882596254\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m37\u001b[0m: -0.002508606296032667\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m38\u001b[0m: 0.052329324185848236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m39\u001b[0m: -0.04391421750187874\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m40\u001b[0m: 0.04599013179540634\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m41\u001b[0m: 0.06579176336526871\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m42\u001b[0m: 0.012650401331484318\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m43\u001b[0m: 0.017899667844176292\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m44\u001b[0m: -0.007629082538187504\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m45\u001b[0m: -0.06791124492883682\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m46\u001b[0m: 0.027055444195866585\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m47\u001b[0m: 0.04240965098142624\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m48\u001b[0m: -0.0014380303910002112\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m49\u001b[0m: 0.03848158195614815\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m50\u001b[0m: 0.0014641903107985854\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m51\u001b[0m: -0.03977559134364128\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m52\u001b[0m: -0.0018461189465597272\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m53\u001b[0m: -0.059043433517217636\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m54\u001b[0m: 0.1207849457859993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m55\u001b[0m: -0.06049825996160507\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m56\u001b[0m: -0.005036478396505117\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m57\u001b[0m: 0.006569963879883289\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m58\u001b[0m: -0.0036258224863559008\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m59\u001b[0m: 0.008000718429684639\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m60\u001b[0m: -0.0062234364449977875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m61\u001b[0m: -0.023182090371847153\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m62\u001b[0m: -0.00882204994559288\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m63\u001b[0m: 0.009475354105234146\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m64\u001b[0m: 0.017948221415281296\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m65\u001b[0m: 0.015006807632744312\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m66\u001b[0m: 0.021125024184584618\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m67\u001b[0m: 0.05389823764562607\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m68\u001b[0m: -0.02793748676776886\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m69\u001b[0m: -0.05090532824397087\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m70\u001b[0m: -0.03356138616800308\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m71\u001b[0m: 0.03817868232727051\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m72\u001b[0m: 0.012790110893547535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m73\u001b[0m: 0.07405167073011398\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m74\u001b[0m: -0.0328509584069252\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m75\u001b[0m: 0.05626484006643295\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m76\u001b[0m: 0.019829316064715385\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m77\u001b[0m: -0.03345923125743866\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m78\u001b[0m: -0.02177395671606064\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m79\u001b[0m: 0.02872779779136181\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m80\u001b[0m: 0.0135793536901474\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m81\u001b[0m: -0.031462039798498154\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m82\u001b[0m: 0.002982931211590767\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m83\u001b[0m: 0.06613441556692123\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m84\u001b[0m: 0.048370473086833954\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m85\u001b[0m: 0.02307708188891411\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m86\u001b[0m: -0.004249386489391327\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m87\u001b[0m: 0.06685653328895569\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m88\u001b[0m: -0.00013748533092439175\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m89\u001b[0m: -0.020395943894982338\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m90\u001b[0m: -0.0011983092408627272\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m91\u001b[0m: -0.007947346195578575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m92\u001b[0m: 0.03730745241045952\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m93\u001b[0m: 0.05674215778708458\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m94\u001b[0m: 0.05057070776820183\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m95\u001b[0m: -0.05810670927166939\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m96\u001b[0m: 0.022949619218707085\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m97\u001b[0m: 0.03930797800421715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m98\u001b[0m: -0.021489188075065613\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m99\u001b[0m: -0.048992808908224106\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m100\u001b[0m: -0.05567613244056702\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m101\u001b[0m: 0.021180571988224983\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m102\u001b[0m: 0.025468016043305397\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m103\u001b[0m: -0.013376590795814991\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m104\u001b[0m: 0.019633078947663307\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m105\u001b[0m: 0.018038973212242126\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m106\u001b[0m: -0.029233181849122047\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m107\u001b[0m: -0.010348604992032051\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m108\u001b[0m: -0.00217558816075325\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m109\u001b[0m: 0.034397006034851074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m110\u001b[0m: -0.003291693516075611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m111\u001b[0m: 0.01378923375159502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m112\u001b[0m: -0.023623095825314522\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m113\u001b[0m: 0.0077826292254030704\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m114\u001b[0m: 0.0757577195763588\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m115\u001b[0m: -0.045490678399801254\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m116\u001b[0m: 0.0271370317786932\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m117\u001b[0m: 0.01106982585042715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m118\u001b[0m: 0.06986100226640701\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m119\u001b[0m: 0.004652573261409998\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m120\u001b[0m: -0.026407692581415176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m121\u001b[0m: 0.02654942311346531\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m122\u001b[0m: -0.013814344070851803\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m123\u001b[0m: 0.015623255632817745\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m124\u001b[0m: -0.0013841806212440133\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m125\u001b[0m: -0.07441864907741547\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m126\u001b[0m: -0.03911731392145157\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m127\u001b[0m: 0.012507066130638123\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m128\u001b[0m: -0.0019597068894654512\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m129\u001b[0m: 0.04322737082839012\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m130\u001b[0m: -0.08140037953853607\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m131\u001b[0m: -0.046755872666835785\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m132\u001b[0m: 0.006243414245545864\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m133\u001b[0m: 0.026318460702896118\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m134\u001b[0m: 0.0159731637686491\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m135\u001b[0m: 0.03304019197821617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m136\u001b[0m: 0.017776355147361755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m137\u001b[0m: 0.001956591848284006\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m138\u001b[0m: -0.05270813778042793\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m139\u001b[0m: 0.022184859961271286\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m140\u001b[0m: -0.004321028012782335\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m141\u001b[0m: -0.06809651106595993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m142\u001b[0m: -0.015974225476384163\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m143\u001b[0m: 0.04090206325054169\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m144\u001b[0m: -0.027739299461245537\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m145\u001b[0m: -0.013041611760854721\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m146\u001b[0m: 0.02270037867128849\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m147\u001b[0m: -0.07612844556570053\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m148\u001b[0m: -0.01403880026191473\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m149\u001b[0m: 0.007825094275176525\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m150\u001b[0m: 0.019956760108470917\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m151\u001b[0m: 0.04297448322176933\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m152\u001b[0m: 0.06620678305625916\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m153\u001b[0m: -0.0013794675469398499\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m154\u001b[0m: -0.0007877094903960824\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m155\u001b[0m: -0.0028835332486778498\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m156\u001b[0m: -0.03251530975103378\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m157\u001b[0m: 0.0693008154630661\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m158\u001b[0m: 0.02533932775259018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m159\u001b[0m: -0.04930483549833298\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m160\u001b[0m: -0.028866160660982132\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m161\u001b[0m: 0.013105092570185661\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m162\u001b[0m: -0.00032235519029200077\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m163\u001b[0m: -0.004497512709349394\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m164\u001b[0m: 0.008668838068842888\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m165\u001b[0m: -0.03998921066522598\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m166\u001b[0m: 0.03472451865673065\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m167\u001b[0m: -0.03176688775420189\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m168\u001b[0m: -0.050222210586071014\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m169\u001b[0m: -0.007928549312055111\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m170\u001b[0m: 0.006060054060071707\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m171\u001b[0m: -0.02676914818584919\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m172\u001b[0m: -0.0004880416381638497\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m173\u001b[0m: 0.018508536741137505\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m174\u001b[0m: 0.006893310230225325\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m175\u001b[0m: 0.042400188744068146\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m176\u001b[0m: 0.009105817414820194\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m177\u001b[0m: -0.007138664834201336\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m178\u001b[0m: 0.003602404613047838\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m179\u001b[0m: 0.004579325672239065\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m180\u001b[0m: 0.041190255433321\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m181\u001b[0m: 0.052081894129514694\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m182\u001b[0m: -0.031011149287223816\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m183\u001b[0m: -0.057172711938619614\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m184\u001b[0m: 0.022979892790317535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m185\u001b[0m: 0.03831249475479126\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m186\u001b[0m: -0.01930481381714344\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m187\u001b[0m: -0.03624449670314789\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m188\u001b[0m: -0.037680286914110184\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m189\u001b[0m: 0.011300966143608093\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m190\u001b[0m: 0.036070533096790314\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m191\u001b[0m: -0.022547848522663116\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m192\u001b[0m: 0.01874937303364277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m193\u001b[0m: 0.01988656260073185\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m194\u001b[0m: -0.020734472200274467\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m195\u001b[0m: -0.007428019307553768\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m196\u001b[0m: -0.003264310769736767\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m197\u001b[0m: -0.04716583341360092\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m198\u001b[0m: -0.026512106880545616\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m199\u001b[0m: -0.03813556581735611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m200\u001b[0m: -0.005563961807638407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m201\u001b[0m: 0.010924777947366238\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m202\u001b[0m: -0.0033122797030955553\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m203\u001b[0m: 0.11311263591051102\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m204\u001b[0m: 0.03912902623414993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m205\u001b[0m: -0.014459850266575813\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m206\u001b[0m: 0.03189709037542343\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m207\u001b[0m: 0.0325789637863636\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m208\u001b[0m: -0.017283132299780846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m209\u001b[0m: -0.05573096498847008\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m210\u001b[0m: 0.00042612224933691323\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m211\u001b[0m: 0.00654100626707077\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m212\u001b[0m: 0.05866165831685066\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m213\u001b[0m: -0.005709860473871231\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m214\u001b[0m: -0.00796140544116497\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m215\u001b[0m: -0.004614187870174646\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m216\u001b[0m: 0.046565886586904526\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m217\u001b[0m: -0.04610903188586235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m218\u001b[0m: -0.020649379119277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m219\u001b[0m: 0.014566184021532536\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m220\u001b[0m: -0.03268798068165779\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m221\u001b[0m: 0.010726038366556168\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m222\u001b[0m: -0.00037832141970284283\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m223\u001b[0m: -0.016519244760274887\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m224\u001b[0m: 0.001395150669850409\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m225\u001b[0m: -0.08267226815223694\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m226\u001b[0m: -0.046204376965761185\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m227\u001b[0m: -0.031283628195524216\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m228\u001b[0m: -0.02102569490671158\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m229\u001b[0m: -0.025800546631217003\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m230\u001b[0m: -0.020199021324515343\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m231\u001b[0m: -0.0056645795702934265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m232\u001b[0m: 0.028101593255996704\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m233\u001b[0m: 0.023253001272678375\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m234\u001b[0m: 0.05617931857705116\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m235\u001b[0m: 0.007474121637642384\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m236\u001b[0m: -0.03169779106974602\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m237\u001b[0m: -0.0634794682264328\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m238\u001b[0m: -0.020578697323799133\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m239\u001b[0m: -0.09570180624723434\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m240\u001b[0m: 0.0023220584262162447\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m241\u001b[0m: 0.02834375575184822\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m242\u001b[0m: -0.002714385511353612\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m243\u001b[0m: -0.026459665969014168\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m244\u001b[0m: -0.03968740254640579\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m245\u001b[0m: 0.0010514616733416915\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m246\u001b[0m: 0.034720368683338165\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m247\u001b[0m: -0.023337475955486298\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m248\u001b[0m: 0.03357527032494545\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m249\u001b[0m: -0.01888580434024334\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m250\u001b[0m: -0.034629978239536285\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m251\u001b[0m: -0.005862865597009659\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m252\u001b[0m: 0.02481168322265148\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m253\u001b[0m: 0.038720741868019104\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m254\u001b[0m: 0.05143310874700546\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m255\u001b[0m: -0.07362972944974899\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m256\u001b[0m: -0.0043714698404073715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m257\u001b[0m: -0.01376280002295971\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m258\u001b[0m: 0.03078486956655979\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m259\u001b[0m: 0.01876477152109146\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m260\u001b[0m: -0.026450321078300476\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m261\u001b[0m: 0.019811443984508514\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m262\u001b[0m: 0.005419518798589706\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m263\u001b[0m: -0.019856290891766548\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m264\u001b[0m: 0.019118990749120712\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m265\u001b[0m: -0.03570350259542465\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m266\u001b[0m: -0.028832420706748962\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m267\u001b[0m: -0.06430661678314209\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m268\u001b[0m: 0.02233273908495903\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m269\u001b[0m: -0.002680010860785842\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m270\u001b[0m: 0.022545458748936653\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m271\u001b[0m: 0.029415179044008255\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m272\u001b[0m: 0.016307689249515533\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m273\u001b[0m: -0.030629388988018036\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m274\u001b[0m: 0.024303853511810303\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m275\u001b[0m: -0.04003429040312767\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m276\u001b[0m: 0.06680615246295929\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m277\u001b[0m: 0.013873234391212463\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m278\u001b[0m: -0.031811632215976715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m279\u001b[0m: 0.006674048490822315\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m280\u001b[0m: 0.03402351588010788\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m281\u001b[0m: 0.014812447130680084\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m282\u001b[0m: -0.002348647452890873\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m283\u001b[0m: 0.029263515025377274\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m284\u001b[0m: -0.04305024817585945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m285\u001b[0m: 0.05092079937458038\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m286\u001b[0m: 0.014998083934187889\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m287\u001b[0m: 0.0559835210442543\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m288\u001b[0m: 0.05659601092338562\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m289\u001b[0m: -0.032506056129932404\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m290\u001b[0m: -0.011745196767151356\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m291\u001b[0m: 0.004756545182317495\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m292\u001b[0m: 0.016696447506546974\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m293\u001b[0m: 0.01634025387465954\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m294\u001b[0m: 0.0027515410911291838\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m295\u001b[0m: -0.006625561509281397\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m296\u001b[0m: 0.024717435240745544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m297\u001b[0m: -0.037308208644390106\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m298\u001b[0m: -0.014416090212762356\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m299\u001b[0m: 0.03212406113743782\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m300\u001b[0m: -0.0017894095508381724\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m301\u001b[0m: -0.06056123599410057\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m302\u001b[0m: 0.031623098999261856\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m303\u001b[0m: 0.015540852211415768\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m304\u001b[0m: -0.022205905988812447\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m305\u001b[0m: -0.020957499742507935\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m306\u001b[0m: -0.03665414825081825\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m307\u001b[0m: -0.00998745672404766\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m308\u001b[0m: -0.07648861408233643\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m309\u001b[0m: 0.01648937724530697\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m310\u001b[0m: -0.06585470587015152\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m311\u001b[0m: -0.009889816865324974\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m312\u001b[0m: -0.005081212148070335\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m313\u001b[0m: 0.02715182863175869\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m314\u001b[0m: 0.08042862266302109\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m315\u001b[0m: -0.024754684418439865\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m316\u001b[0m: 0.0013086956460028887\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m317\u001b[0m: 0.014669244177639484\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m318\u001b[0m: -0.003130931407213211\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m319\u001b[0m: -0.032377101480960846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m320\u001b[0m: 0.018950892612338066\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m321\u001b[0m: -0.03326814994215965\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m322\u001b[0m: -0.05920145660638809\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m323\u001b[0m: 0.01379262562841177\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m324\u001b[0m: 0.015418375842273235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m325\u001b[0m: -0.02721942961215973\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m326\u001b[0m: 0.03788064792752266\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m327\u001b[0m: 0.013909389264881611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m328\u001b[0m: 0.07906065881252289\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m329\u001b[0m: 0.04695257917046547\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m330\u001b[0m: 0.025030121207237244\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m331\u001b[0m: -0.021177712827920914\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m332\u001b[0m: 0.00964528787881136\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m333\u001b[0m: -0.00930618867278099\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m334\u001b[0m: 0.0705944374203682\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m335\u001b[0m: 0.056093744933605194\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m336\u001b[0m: -0.048553191125392914\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m337\u001b[0m: 0.014934103935956955\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m338\u001b[0m: -0.005455792881548405\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m339\u001b[0m: 0.01625811494886875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m340\u001b[0m: 0.035979971289634705\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m341\u001b[0m: 0.044982053339481354\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m342\u001b[0m: 0.006236139684915543\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m343\u001b[0m: -0.09025052189826965\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m344\u001b[0m: -0.04590274393558502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m345\u001b[0m: -0.005322533659636974\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m346\u001b[0m: -0.05016981065273285\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m347\u001b[0m: -0.027683105319738388\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m348\u001b[0m: -0.07181200385093689\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m349\u001b[0m: -0.01848607324063778\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m350\u001b[0m: -0.09767501056194305\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m351\u001b[0m: 0.0035151278134435415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m352\u001b[0m: -0.036153122782707214\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m353\u001b[0m: -0.046863898634910583\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m354\u001b[0m: -0.027725093066692352\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m355\u001b[0m: 0.02095642127096653\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m356\u001b[0m: 0.028504688292741776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m357\u001b[0m: -0.026084287092089653\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m358\u001b[0m: -0.016343530267477036\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m359\u001b[0m: 0.006354904267936945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m360\u001b[0m: -0.03842195123434067\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m361\u001b[0m: -0.020052241161465645\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m362\u001b[0m: -0.0039218999445438385\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m363\u001b[0m: -0.005180169828236103\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m364\u001b[0m: 0.06778889894485474\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m365\u001b[0m: -0.053725775331258774\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m366\u001b[0m: 0.014296329580247402\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m367\u001b[0m: 0.04353368654847145\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m368\u001b[0m: 0.006914097815752029\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m369\u001b[0m: 0.0655544325709343\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m370\u001b[0m: -0.01449697557836771\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m371\u001b[0m: 0.03363028168678284\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m372\u001b[0m: -0.06275250762701035\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m373\u001b[0m: 0.049764081835746765\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m374\u001b[0m: -0.009972180239856243\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m375\u001b[0m: -0.029209475964307785\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m376\u001b[0m: -0.023113129660487175\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m377\u001b[0m: 0.016114482656121254\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m378\u001b[0m: 0.029449494555592537\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m379\u001b[0m: -0.009830719791352749\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m380\u001b[0m: 0.03450608626008034\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m381\u001b[0m: 0.03422730043530464\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m382\u001b[0m: -0.006067289505153894\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m383\u001b[0m: 0.04374401643872261\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m384\u001b[0m: -0.029037849977612495\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m385\u001b[0m: 0.021764082834124565\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m386\u001b[0m: -1.3408462109509856e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m387\u001b[0m: -0.07287029176950455\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m388\u001b[0m: -0.03546876832842827\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m389\u001b[0m: 0.03886757418513298\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m390\u001b[0m: 0.026129238307476044\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m391\u001b[0m: 0.007167821284383535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m392\u001b[0m: 0.016980379819869995\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m393\u001b[0m: 0.050290584564208984\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m394\u001b[0m: -0.021773403510451317\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m395\u001b[0m: 0.008399774320423603\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m396\u001b[0m: -0.048103127628564835\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m397\u001b[0m: -0.015021353028714657\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m398\u001b[0m: -0.019069857895374298\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m399\u001b[0m: -0.012140675447881222\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m400\u001b[0m: -0.03396833688020706\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m401\u001b[0m: 0.06750674545764923\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m402\u001b[0m: 0.044069867581129074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m403\u001b[0m: -0.002717355964705348\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m404\u001b[0m: -0.024896182119846344\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m405\u001b[0m: 0.02222360484302044\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m406\u001b[0m: -0.03847828134894371\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m407\u001b[0m: -0.010072839446365833\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m408\u001b[0m: -0.005221790634095669\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m409\u001b[0m: -0.025164682418107986\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m410\u001b[0m: -0.012828045524656773\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m411\u001b[0m: 0.10586799681186676\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m412\u001b[0m: -0.033161766827106476\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m413\u001b[0m: 0.021820316091179848\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m414\u001b[0m: 0.0011391477892175317\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m415\u001b[0m: -0.051194947212934494\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m416\u001b[0m: -0.015856537967920303\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m417\u001b[0m: 0.025962136685848236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m418\u001b[0m: 0.030953478068113327\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m419\u001b[0m: -0.06370990723371506\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m420\u001b[0m: 0.01010304968804121\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m421\u001b[0m: 0.003352577332407236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m422\u001b[0m: -0.04120684787631035\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m423\u001b[0m: -0.025548182427883148\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m424\u001b[0m: -0.013285758905112743\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m425\u001b[0m: -0.004803207702934742\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m426\u001b[0m: 0.07016759365797043\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m427\u001b[0m: 0.03535054624080658\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m428\u001b[0m: 0.024349261075258255\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m429\u001b[0m: -0.008826765231788158\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m430\u001b[0m: 0.025963757187128067\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m431\u001b[0m: -0.05632730945944786\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m432\u001b[0m: -0.018799180164933205\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m433\u001b[0m: 0.06442150473594666\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m434\u001b[0m: -0.03916173055768013\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m435\u001b[0m: -0.04384036734700203\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m436\u001b[0m: -0.010013355873525143\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m437\u001b[0m: 0.02870503067970276\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m438\u001b[0m: -0.039207059890031815\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m439\u001b[0m: -0.008780469186604023\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m440\u001b[0m: -0.0248566921800375\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m441\u001b[0m: 0.02549748308956623\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m442\u001b[0m: 0.048325877636671066\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m443\u001b[0m: 0.006353657692670822\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m444\u001b[0m: -0.03146296367049217\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m445\u001b[0m: 0.014660898596048355\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m446\u001b[0m: 0.048260852694511414\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m447\u001b[0m: 0.010833763517439365\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m448\u001b[0m: 0.04239527881145477\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m449\u001b[0m: 0.028075523674488068\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m450\u001b[0m: -0.03765295818448067\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m451\u001b[0m: -0.00021245400421321392\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m452\u001b[0m: -0.01637384295463562\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m453\u001b[0m: -0.020441051572561264\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m454\u001b[0m: -0.0676245465874672\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m455\u001b[0m: -0.027973361313343048\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m456\u001b[0m: 0.02841685339808464\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m457\u001b[0m: -0.04900107905268669\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m458\u001b[0m: 0.023237289860844612\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m459\u001b[0m: 0.03781578689813614\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m460\u001b[0m: -0.007594790775328875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m461\u001b[0m: 0.043228015303611755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m462\u001b[0m: 0.05682665482163429\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m463\u001b[0m: -0.0477324053645134\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m464\u001b[0m: -0.021895756945014\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m465\u001b[0m: -0.0036302392836660147\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m466\u001b[0m: 0.02580680511891842\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m467\u001b[0m: 0.04808980971574783\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m468\u001b[0m: 0.009833880700170994\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m469\u001b[0m: -0.029267817735671997\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m470\u001b[0m: -0.08730483800172806\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m471\u001b[0m: -0.014473497867584229\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m472\u001b[0m: 0.006700731813907623\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m473\u001b[0m: 0.006656119599938393\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m474\u001b[0m: -0.0015066990163177252\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m475\u001b[0m: -0.028340918943285942\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m476\u001b[0m: -0.030466021969914436\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m477\u001b[0m: -0.03252173587679863\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m478\u001b[0m: 0.02763795666396618\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m479\u001b[0m: 0.014965834096074104\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m480\u001b[0m: -0.08788534253835678\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m481\u001b[0m: 0.0920148640871048\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m482\u001b[0m: 0.023050582036376\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m483\u001b[0m: 0.07885754853487015\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m484\u001b[0m: 0.01756744459271431\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m485\u001b[0m: -0.056676235049963\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m486\u001b[0m: -0.0015523789916187525\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m487\u001b[0m: 0.049248840659856796\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m488\u001b[0m: 0.013111501932144165\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m489\u001b[0m: -0.036881934851408005\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m490\u001b[0m: 0.004156735725700855\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m491\u001b[0m: -0.03959950804710388\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m492\u001b[0m: -0.04187732934951782\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m493\u001b[0m: -0.033697813749313354\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m494\u001b[0m: -0.03416171669960022\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m495\u001b[0m: 0.026224296540021896\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m496\u001b[0m: -0.00212427438236773\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m497\u001b[0m: -0.08400624990463257\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m498\u001b[0m: -0.0015784328570589423\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m499\u001b[0m: -0.015712128952145576\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m500\u001b[0m: 0.00414662342518568\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m501\u001b[0m: -0.06312809139490128\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m502\u001b[0m: 0.023281363770365715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m503\u001b[0m: -0.04033081233501434\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m504\u001b[0m: -0.022044356912374496\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m505\u001b[0m: -0.00438954820856452\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m506\u001b[0m: 0.04902002960443497\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m507\u001b[0m: -0.011810027062892914\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m508\u001b[0m: 0.01779176853597164\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m509\u001b[0m: -0.023316439241170883\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m510\u001b[0m: -0.013815398328006268\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m511\u001b[0m: 0.02640579454600811\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m512\u001b[0m: -0.08118424564599991\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m513\u001b[0m: -0.10231015086174011\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m514\u001b[0m: -0.0796288251876831\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m515\u001b[0m: -0.0010594624327495694\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m516\u001b[0m: -0.0637231320142746\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m517\u001b[0m: -0.056297458708286285\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m518\u001b[0m: -0.0012530259555205703\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m519\u001b[0m: -0.008524828590452671\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m520\u001b[0m: -0.03042135015130043\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m521\u001b[0m: -0.025304418057203293\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m522\u001b[0m: 0.004190725740045309\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m523\u001b[0m: 0.024401284754276276\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m524\u001b[0m: 0.034874532371759415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m525\u001b[0m: -0.011733213439583778\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m526\u001b[0m: -0.0050503043457865715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m527\u001b[0m: 0.008346868678927422\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m528\u001b[0m: -0.02921750769019127\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m529\u001b[0m: -0.002856032457202673\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m530\u001b[0m: -0.029102787375450134\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m531\u001b[0m: 0.012367988005280495\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m532\u001b[0m: 0.05957779660820961\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m533\u001b[0m: -0.03270721435546875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m534\u001b[0m: 0.01106699462980032\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m535\u001b[0m: -0.03437996283173561\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m536\u001b[0m: -0.0077677154913544655\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m537\u001b[0m: 0.04259764403104782\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m538\u001b[0m: 0.03433895856142044\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m539\u001b[0m: -0.010584652423858643\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m540\u001b[0m: 0.04206785559654236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m541\u001b[0m: -0.005901589058339596\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m542\u001b[0m: 0.0809914618730545\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m543\u001b[0m: -0.01004907675087452\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m544\u001b[0m: -0.014947034418582916\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m545\u001b[0m: -0.021967414766550064\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m546\u001b[0m: 0.01694410853087902\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m547\u001b[0m: 0.024536356329917908\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m548\u001b[0m: 0.013179230503737926\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m549\u001b[0m: 0.01811409927904606\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m550\u001b[0m: -0.0033348591532558203\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m551\u001b[0m: -0.012882251292467117\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m552\u001b[0m: -0.08294843882322311\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m553\u001b[0m: -0.026284009218215942\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m554\u001b[0m: 0.05716654285788536\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m555\u001b[0m: -5.770721438693419e-33\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m556\u001b[0m: 0.006357301026582718\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m557\u001b[0m: -0.03077971562743187\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m558\u001b[0m: 0.02423958107829094\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m559\u001b[0m: 0.0932648777961731\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m560\u001b[0m: -0.03927141800522804\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m561\u001b[0m: 0.004607198294252157\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m562\u001b[0m: -0.009199658408761024\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m563\u001b[0m: -0.04007495194673538\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m564\u001b[0m: -0.03309480473399162\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m565\u001b[0m: -0.014829229563474655\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m566\u001b[0m: -0.036076925694942474\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m567\u001b[0m: 0.023974459618330002\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m568\u001b[0m: 0.014334749430418015\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m569\u001b[0m: 0.011738981120288372\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m570\u001b[0m: 0.026305491104722023\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m571\u001b[0m: -0.010234019719064236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m572\u001b[0m: -0.0038947095163166523\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m573\u001b[0m: 0.013933834619820118\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m574\u001b[0m: -0.021842440590262413\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m575\u001b[0m: 0.04014803096652031\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m576\u001b[0m: 0.02398701384663582\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m577\u001b[0m: 0.007562308572232723\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m578\u001b[0m: -0.0007755713304504752\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m579\u001b[0m: 0.1080133318901062\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m580\u001b[0m: -0.0232221819460392\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m581\u001b[0m: -0.05419640615582466\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m582\u001b[0m: -0.05870767682790756\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m583\u001b[0m: 0.055049289017915726\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m584\u001b[0m: -0.00986260175704956\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m585\u001b[0m: -0.020703867077827454\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m586\u001b[0m: -0.017294231802225113\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m587\u001b[0m: -0.021378090605139732\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m588\u001b[0m: -0.0075568691827356815\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m589\u001b[0m: 0.0320829376578331\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m590\u001b[0m: 0.007051725406199694\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m591\u001b[0m: 0.017801843583583832\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m592\u001b[0m: -0.022040322422981262\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m593\u001b[0m: -0.01376914232969284\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m594\u001b[0m: 0.019660823047161102\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m595\u001b[0m: 0.005341327283531427\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m596\u001b[0m: -0.02221737429499626\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m597\u001b[0m: 0.010496651753783226\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m598\u001b[0m: 0.01511034369468689\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m599\u001b[0m: 0.03725795820355415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m600\u001b[0m: 0.008722214959561825\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m601\u001b[0m: -0.05763749033212662\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m602\u001b[0m: -0.016340825706720352\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m603\u001b[0m: -0.000229535173275508\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m604\u001b[0m: 0.009402784518897533\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m605\u001b[0m: 0.04061824828386307\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m606\u001b[0m: 0.019907427951693535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m607\u001b[0m: -0.018085433170199394\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m608\u001b[0m: 0.006473230663686991\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m609\u001b[0m: -0.11802327632904053\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m610\u001b[0m: 0.03228956460952759\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m611\u001b[0m: 0.007952426560223103\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m612\u001b[0m: 0.004755759611725807\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m613\u001b[0m: 0.05796555429697037\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m614\u001b[0m: 0.03206593915820122\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m615\u001b[0m: 0.0045759002678096294\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m616\u001b[0m: 0.03472132980823517\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m617\u001b[0m: -0.01541859656572342\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m618\u001b[0m: -0.06067410483956337\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m619\u001b[0m: 0.030672801658511162\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m620\u001b[0m: 0.008894214406609535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m621\u001b[0m: 0.0035295470152050257\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m622\u001b[0m: 0.11620364338159561\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m623\u001b[0m: -0.010405236855149269\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m624\u001b[0m: -0.07650286704301834\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m625\u001b[0m: -0.06865312159061432\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m626\u001b[0m: -0.043477676808834076\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m627\u001b[0m: 0.02466365322470665\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m628\u001b[0m: -0.020602161064743996\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m629\u001b[0m: -0.004234707914292812\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m630\u001b[0m: 0.0005591363296844065\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m631\u001b[0m: -0.007192609831690788\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m632\u001b[0m: -0.010511847212910652\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m633\u001b[0m: 0.024170776829123497\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m634\u001b[0m: 0.07789268344640732\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m635\u001b[0m: 0.008256817236542702\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m636\u001b[0m: 0.01852312684059143\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m637\u001b[0m: 0.0073267691768705845\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m638\u001b[0m: 0.006290810648351908\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m639\u001b[0m: -0.0070859333500266075\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m640\u001b[0m: -0.024793867021799088\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m641\u001b[0m: 0.0846845805644989\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m642\u001b[0m: 0.0028347219340503216\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m643\u001b[0m: 0.05728163942694664\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m644\u001b[0m: -0.02475057728588581\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m645\u001b[0m: 0.001300928881391883\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m646\u001b[0m: -0.0078034959733486176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m647\u001b[0m: -0.00807581003755331\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m648\u001b[0m: 0.01260744221508503\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m649\u001b[0m: 0.02734578587114811\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m650\u001b[0m: -0.06054101884365082\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m651\u001b[0m: -0.0003099057066719979\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m652\u001b[0m: -0.06677668541669846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m653\u001b[0m: -0.009642992168664932\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m654\u001b[0m: 0.04419955238699913\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m655\u001b[0m: 0.022375885397195816\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m656\u001b[0m: 0.07053053379058838\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m657\u001b[0m: 0.01769324019551277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m658\u001b[0m: -0.006071730516850948\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m659\u001b[0m: 0.038312431424856186\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m660\u001b[0m: -0.0003823191800620407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m661\u001b[0m: 0.005449597258120775\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m662\u001b[0m: 0.027598610147833824\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m663\u001b[0m: 0.09349528700113297\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m664\u001b[0m: -0.052799321711063385\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m665\u001b[0m: -0.038738686591386795\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m666\u001b[0m: -0.037908680737018585\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m667\u001b[0m: 0.000825792842078954\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m668\u001b[0m: -0.04833551496267319\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m669\u001b[0m: -0.06191939115524292\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m670\u001b[0m: -0.001491617993451655\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m671\u001b[0m: 0.007265156134963036\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m672\u001b[0m: 0.0012317452346906066\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m673\u001b[0m: 0.09357017278671265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m674\u001b[0m: -0.017656344920396805\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m675\u001b[0m: 0.015433751046657562\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m676\u001b[0m: 0.06978774815797806\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m677\u001b[0m: 0.0681474357843399\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m678\u001b[0m: -0.0035361191257834435\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m679\u001b[0m: -0.007062133401632309\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m680\u001b[0m: 0.021396886557340622\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m681\u001b[0m: 0.034925900399684906\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m682\u001b[0m: 0.04840550571680069\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m683\u001b[0m: -0.00026239242288284004\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m684\u001b[0m: -0.05098772421479225\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m685\u001b[0m: -0.004788246005773544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m686\u001b[0m: -0.006261441390961409\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m687\u001b[0m: -0.03541318327188492\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m688\u001b[0m: 2.1640293823566026e-07\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m689\u001b[0m: 0.009504515677690506\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m690\u001b[0m: 0.002063180785626173\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m691\u001b[0m: -0.016988303512334824\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m692\u001b[0m: 0.054872218519449234\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m693\u001b[0m: -0.008502008393406868\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m694\u001b[0m: 0.012229707092046738\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m695\u001b[0m: -0.027471216395497322\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m696\u001b[0m: 0.008199622854590416\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m697\u001b[0m: 0.00016756185505073518\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m698\u001b[0m: 0.017955856397747993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m699\u001b[0m: 0.0734444260597229\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m700\u001b[0m: 0.018215620890259743\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m701\u001b[0m: -0.006734748836606741\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m702\u001b[0m: -0.0009413568186573684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m703\u001b[0m: 0.038283318281173706\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m704\u001b[0m: 0.03462311252951622\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m705\u001b[0m: 0.006868139375001192\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m706\u001b[0m: -0.057488370686769485\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m707\u001b[0m: 0.034916747361421585\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m708\u001b[0m: -0.002445003716275096\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m709\u001b[0m: -0.008846830576658249\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m710\u001b[0m: -0.017094686627388\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m711\u001b[0m: -0.021008862182497978\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m712\u001b[0m: -0.0057312799617648125\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m713\u001b[0m: 0.06670287251472473\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m714\u001b[0m: -0.05895605683326721\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m715\u001b[0m: 0.003967765253037214\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m716\u001b[0m: -0.04688413068652153\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m717\u001b[0m: -0.007967855781316757\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m718\u001b[0m: 0.008486705832183361\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m719\u001b[0m: 0.04752103611826897\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m720\u001b[0m: -0.018809055909514427\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m721\u001b[0m: -0.035304129123687744\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m722\u001b[0m: 0.05190379545092583\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m723\u001b[0m: -0.02688978612422943\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m724\u001b[0m: -0.004413092974573374\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m725\u001b[0m: 0.006161215715110302\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m726\u001b[0m: -0.06472691893577576\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m727\u001b[0m: -0.03412643074989319\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m728\u001b[0m: 0.07960573583841324\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m729\u001b[0m: -0.04458937421441078\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m730\u001b[0m: -0.03486024960875511\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m731\u001b[0m: -0.012804203666746616\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m732\u001b[0m: 0.00819985568523407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m733\u001b[0m: 0.05537816509604454\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m734\u001b[0m: 0.03693454712629318\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m735\u001b[0m: 0.002208888065069914\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m736\u001b[0m: -0.054239824414253235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m737\u001b[0m: -0.0033781256061047316\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m738\u001b[0m: 0.012642616406083107\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m739\u001b[0m: -0.007412124890834093\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m740\u001b[0m: 0.018704794347286224\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m741\u001b[0m: 0.020678628236055374\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m742\u001b[0m: -0.017073800787329674\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m743\u001b[0m: -0.04182546213269234\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m744\u001b[0m: -0.04236733540892601\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m745\u001b[0m: 0.007342583499848843\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m746\u001b[0m: -0.0185915045440197\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m747\u001b[0m: 0.051248468458652496\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m748\u001b[0m: 0.048972323536872864\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m749\u001b[0m: 0.008518674410879612\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m750\u001b[0m: -0.029436754062771797\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m751\u001b[0m: -0.034767813980579376\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m752\u001b[0m: 0.03085225075483322\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m753\u001b[0m: 0.051904525607824326\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m754\u001b[0m: -0.02561274915933609\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m755\u001b[0m: 0.03814048320055008\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m756\u001b[0m: 1.1672317964385828e-34\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m757\u001b[0m: 0.012339473702013493\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m758\u001b[0m: -0.017261575907468796\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m759\u001b[0m: 0.03371218964457512\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m760\u001b[0m: 0.04937398433685303\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m761\u001b[0m: -0.0268130861222744\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m762\u001b[0m: -0.03502042964100838\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m763\u001b[0m: 0.001780011341907084\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m764\u001b[0m: -0.012070025317370892\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m765\u001b[0m: 0.004172053188085556\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m766\u001b[0m: -0.005994188599288464\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4m767\u001b[0m: -0.004628462716937065\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m43a06b19-35d7-444a-a822-c38a3473719d\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.364s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.007s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4mdocs\u001b[0m: \u001b[0m\n",
+ " │ │ │ └── \u001b[38;5;4m0\u001b[0m: and redolent of this year’s shining motorcars and of dances whose flowers were scarcely withered. It excited him, too, that many men had already loved Daisy—it increased her value in his eyes. He felt their presence all about the house, pervading the air with the shades and echoes of still vibrant emotions. But he knew that he was in Daisy’s house by a colossal accident. However glorious might be his future as Jay Gatsby, he was at present a penniless young man without a past, and at any moment the invisible cloak of his uniform might slip from his shoulders. So he made the most of his time. He took what he could get, ravenously and unscrupulously—eventually he took Daisy one still October night, took her because he had no real right to touch her hand. He might have despised himself, for he had certainly taken her under false pretences. I don’t mean that he had traded on his phantom millions, but he had deliberately given Daisy a sense of security; he let her believe that he was a person from much the same strata as herself—that he was fully able to take care of her. As a matter of fact, he had no such facilities—he had no comfortable family standing behind him, and he was liable at the whim of an impersonal government to be blown anywhere about the world. But he didn’t despise himself and it didn’t turn out as he had imagined. He had intended, probably, to take what he could and go—but now he found that he had committed himself to the following of a grail. He knew that Daisy was extraordinary, but he didn’t realize just how extraordinary a “nice” girl could be. She vanished into her rich house, into her rich, full life, leaving Gatsby—nothing. He felt married to her, that was all. When they met again, two days later, it was Gatsby who was breathless, who was, somehow, betrayed. Her porch was bright with the bought luxury of star-shine; the wicker of the settee squeaked fashionably as she turned toward him and he kissed her curious and lovely mouth. She had caught a cold, and it made her voice huskier and more charming than ever, and Gatsby was overwhelmingly aware of the youth and mystery that wealth imprisons and preserves, of the freshness of many clothes, and of Daisy, gleaming like silver, safe and proud above the hot struggles of the poor. ------------------------------------------------------------------------ “I can’t describe to you how surprised I was to find out I loved her, old sport. I even hoped for a while that she’d throw me over, bu\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mquestion\u001b[0m: What did Gatsby do before he met Daisy?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.357s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Context information is below. ⏎\n",
+ " │ │ ---------------------⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ * and redolent of this year’s shining motorcars and of dances whose flowers were scarcely withered. It excited him, too, that many men had already loved Daisy—it increased her value in his eyes. He felt their presence all about the house, pervading the air with the shades and echoes of still vibrant emotions. But he knew that he was in Daisy’s house by a colossal accident. However glorious might be his future as Jay Gatsby, he was at present a penniless young man without a past, and at any moment the invisible cloak of his uniform might slip from his shoulders. So he made the most of his time. He took what he could get, ravenously and unscrupulously—eventually he took Daisy one still October night, took her because he had no real right to touch her hand. He might have despised himself, for he had certainly taken her under false pretences. I don’t mean that he had traded on his phantom millions, but he had deliberately given Daisy a sense of security; he let her believe that he was a person from much the same strata as herself—that he was fully able to take care of her. As a matter of fact, he had no such facilities—he had no comfortable family standing behind him, and he was liable at the whim of an impersonal government to be blown anywhere about the world. But he didn’t despise himself and it didn’t turn out as he had imagined. He had intended, probably, to take what he could and go—but now he found that he had committed himself to the following of a grail. He knew that Daisy was extraordinary, but he didn’t realize just how extraordinary a “nice” girl could be. She vanished into her rich house, into her rich, full life, leaving Gatsby—nothing. He felt married to her, that was all. When they met again, two days later, it was Gatsby who was breathless, who was, somehow, betrayed. Her porch was bright with the bought luxury of star-shine; the wicker of the settee squeaked fashionably as she turned toward him and he kissed her curious and lovely mouth. She had caught a cold, and it made her voice huskier and more charming than ever, and Gatsby was overwhelmingly aware of the youth and mystery that wealth imprisons and preserves, of the freshness of many clothes, and of Daisy, gleaming like silver, safe and proud above the hot struggles of the poor. ------------------------------------------------------------------------ “I can’t describe to you how surprised I was to find out I loved her, old sport. I even hoped for a while that she’d throw me over, bu⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ---------------------⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Given the context information and not prior knowledge, answer the question: What did Gatsby do before he met Daisy?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:22Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:22Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Gatsby had no past before he met Daisy. He was a penniless young man without a past, and at any moment the invisible cloak of his uniform might slip from his shoulders. He was liable at the whim of an impersonal government to be blown anywhere about the world.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:22Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:22Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mc8458531-d088-4135-a4fd-29438ef1f1bc\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mgatsby\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 01:42:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.938s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mgatsby\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 01:42:22Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "show_log(\"gatsby.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "0e6730a9487c42349bc2b68436f1691f": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "1759a157663c4c5bae414da98b9a2ff5": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_0e6730a9487c42349bc2b68436f1691f",
+ "max": 1.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_5973fd00ef0146c3921c5f9ed181ce8a",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 1.0
+ }
+ },
+ "201d51f882cc4fb3bde8bdcf364480cc": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_dfb18d25dea24dba90ab68a8537792ce",
+ "placeholder": "",
+ "style": "IPY_MODEL_feed9581a52a4bdf9660cddddb55d731",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 1/1 [00:00<00:00, 97.43it/s]"
+ }
+ },
+ "20fe4211bd42450d8bbf2e303615f5c1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "356d8689dfeb43fa9d655b851c0fcba8": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "5973fd00ef0146c3921c5f9ed181ce8a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "767c094ef5ca40bba8598c29f12a4e82": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_e150da57eb994977bb2f1d85f771a0aa",
+ "IPY_MODEL_1759a157663c4c5bae414da98b9a2ff5",
+ "IPY_MODEL_201d51f882cc4fb3bde8bdcf364480cc"
+ ],
+ "layout": "IPY_MODEL_bbcae8b8964e4a428bbf96872ba15e85",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "bbcae8b8964e4a428bbf96872ba15e85": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "dfb18d25dea24dba90ab68a8537792ce": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "e150da57eb994977bb2f1d85f771a0aa": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_356d8689dfeb43fa9d655b851c0fcba8",
+ "placeholder": "",
+ "style": "IPY_MODEL_20fe4211bd42450d8bbf2e303615f5c1",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "100%"
+ }
+ },
+ "feed9581a52a4bdf9660cddddb55d731": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/gatsby.log b/gatsby.log
new file mode 100644
index 0000000000000000000000000000000000000000..d6f143ae8a1ddaf894e2f337c326f8fc3ffbb991
--- /dev/null
+++ b/gatsby.log
@@ -0,0 +1,4 @@
+{"action_status": "started", "timestamp": 1678759606.9333436, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.9335442, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/gatsby.pmpt.tpl b/gatsby.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..27419b80fa5b2b8363f99953efabb73ea62e8a19
--- /dev/null
+++ b/gatsby.pmpt.tpl
@@ -0,0 +1,13 @@
+Context information is below.
+
+
+---------------------
+
+
+{% for doc in docs %}
+* {{doc}}
+{% endfor %}
+
+---------------------
+
+Given the context information and not prior knowledge, answer the question: {{question}}
\ No newline at end of file
diff --git a/gatsby.py b/gatsby.py
new file mode 100644
index 0000000000000000000000000000000000000000..82036903f6850780ef0d78013d56f6f1afd79554
--- /dev/null
+++ b/gatsby.py
@@ -0,0 +1,53 @@
+# Questions answering with Hugging Face embeddings. Adapted from the
+# [LlamaIndex
+# example](https://github.com/jerryjliu/gpt_index/blob/main/examples/gatsby/TestGatsby.ipynb).
+
+import datasets
+import numpy as np
+
+from minichain import EmbeddingPrompt, TemplatePrompt, show_log, start_chain
+
+# Load data with embeddings (computed beforehand)
+
+gatsby = datasets.load_from_disk("gatsby")
+gatsby.add_faiss_index("embeddings")
+
+# Fast KNN retieval prompt
+
+class KNNPrompt(EmbeddingPrompt):
+ def prompt(self, inp):
+ return inp["query"]
+
+ def find(self, out, inp):
+ res = gatsby.get_nearest_examples("embeddings", np.array(out), 1)
+ return {"question": inp["query"], "docs": res.examples["passages"]}
+
+# QA prompt to ask question with examples
+
+
+class QAPrompt(TemplatePrompt):
+ template_file = "gatsby.pmpt.tpl"
+
+
+with start_chain("gatsby") as backend:
+ # question = "What did Gatsby do before he met Daisy?"
+ prompt = KNNPrompt(
+ backend.HuggingFaceEmbed("sentence-transformers/all-mpnet-base-v2")
+ ).chain(QAPrompt(backend.OpenAI()))
+ # result = prompt(question)
+ # print(result)
+
+
+gradio = prompt.to_gradio(fields=["query"],
+ examples=["What did Gatsby do before he met Daisy?"],
+ keys={"HF_KEY"})
+if __name__ == "__main__":
+ gradio.launch()
+
+
+
+# + tags=["hide_inp"]
+# QAPrompt().show({"question": "Who was Gatsby?", "docs": ["doc1", "doc2", "doc3"]}, "")
+# # -
+
+# show_log("gatsby.log")
diff --git a/gatsby/data-00000-of-00001.arrow b/gatsby/data-00000-of-00001.arrow
new file mode 100644
index 0000000000000000000000000000000000000000..88c4bd396c83e8d7a3e9c95d709f2825e2f1918f
--- /dev/null
+++ b/gatsby/data-00000-of-00001.arrow
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aaf95ec56542a1f5bd2aa3c48afb7551abb21249fd8e155855cb582ab70e64fa
+size 454712
diff --git a/gatsby/dataset_info.json b/gatsby/dataset_info.json
new file mode 100644
index 0000000000000000000000000000000000000000..b2ef2bc9d2fc76b8396ac18e3f24a580f31c4137
--- /dev/null
+++ b/gatsby/dataset_info.json
@@ -0,0 +1,19 @@
+{
+ "citation": "",
+ "description": "",
+ "features": {
+ "passages": {
+ "dtype": "string",
+ "_type": "Value"
+ },
+ "embeddings": {
+ "feature": {
+ "dtype": "float64",
+ "_type": "Value"
+ },
+ "_type": "Sequence"
+ }
+ },
+ "homepage": "",
+ "license": ""
+}
\ No newline at end of file
diff --git a/gatsby/state.json b/gatsby/state.json
new file mode 100644
index 0000000000000000000000000000000000000000..d15f7c6acf2907eaa29e4eb17ce8df0ff036032f
--- /dev/null
+++ b/gatsby/state.json
@@ -0,0 +1,13 @@
+{
+ "_data_files": [
+ {
+ "filename": "data-00000-of-00001.arrow"
+ }
+ ],
+ "_fingerprint": "58e539e18c1f1ec8",
+ "_format_columns": null,
+ "_format_kwargs": {},
+ "_format_type": null,
+ "_output_all_columns": false,
+ "_split": null
+}
\ No newline at end of file
diff --git a/gatsby_part.txt b/gatsby_part.txt
new file mode 100644
index 0000000000000000000000000000000000000000..014457c0fe15370d54bdaf1d38da0b20b4b0796a
--- /dev/null
+++ b/gatsby_part.txt
@@ -0,0 +1,2561 @@
+
+ VII
+
+It was when curiosity about Gatsby was at its highest that the lights
+in his house failed to go on one Saturday night—and, as obscurely as
+it had begun, his career as Trimalchio was over. Only gradually did I
+become aware that the automobiles which turned expectantly into his
+drive stayed for just a minute and then drove sulkily away. Wondering
+if he were sick I went over to find out—an unfamiliar butler with a
+villainous face squinted at me suspiciously from the door.
+
+“Is Mr. Gatsby sick?”
+
+“Nope.” After a pause he added “sir” in a dilatory, grudging way.
+
+“I hadn’t seen him around, and I was rather worried. Tell him Mr.
+Carraway came over.”
+
+“Who?” he demanded rudely.
+
+“Carraway.”
+
+“Carraway. All right, I’ll tell him.”
+
+Abruptly he slammed the door.
+
+My Finn informed me that Gatsby had dismissed every servant in his
+house a week ago and replaced them with half a dozen others, who never
+went into West Egg village to be bribed by the tradesmen, but ordered
+moderate supplies over the telephone. The grocery boy reported that
+the kitchen looked like a pigsty, and the general opinion in the
+village was that the new people weren’t servants at all.
+
+Next day Gatsby called me on the phone.
+
+“Going away?” I inquired.
+
+“No, old sport.”
+
+“I hear you fired all your servants.”
+
+“I wanted somebody who wouldn’t gossip. Daisy comes over quite
+often—in the afternoons.”
+
+So the whole caravansary had fallen in like a card house at the
+disapproval in her eyes.
+
+“They’re some people Wolfshiem wanted to do something for. They’re all
+brothers and sisters. They used to run a small hotel.”
+
+“I see.”
+
+He was calling up at Daisy’s request—would I come to lunch at her
+house tomorrow? Miss Baker would be there. Half an hour later Daisy
+herself telephoned and seemed relieved to find that I was
+coming. Something was up. And yet I couldn’t believe that they would
+choose this occasion for a scene—especially for the rather harrowing
+scene that Gatsby had outlined in the garden.
+
+The next day was broiling, almost the last, certainly the warmest, of
+the summer. As my train emerged from the tunnel into sunlight, only
+the hot whistles of the National Biscuit Company broke the simmering
+hush at noon. The straw seats of the car hovered on the edge of
+combustion; the woman next to me perspired delicately for a while into
+her white shirtwaist, and then, as her newspaper dampened under her
+fingers, lapsed despairingly into deep heat with a desolate cry. Her
+pocketbook slapped to the floor.
+
+“Oh, my!” she gasped.
+
+I picked it up with a weary bend and handed it back to her, holding it
+at arm’s length and by the extreme tip of the corners to indicate that
+I had no designs upon it—but everyone near by, including the woman,
+suspected me just the same.
+
+“Hot!” said the conductor to familiar faces. “Some weather! … Hot! …
+Hot! … Hot! … Is it hot enough for you? Is it hot? Is it … ?”
+
+My commutation ticket came back to me with a dark stain from his hand.
+That anyone should care in this heat whose flushed lips he kissed,
+whose head made damp the pyjama pocket over his heart!
+
+… Through the hall of the Buchanans’ house blew a faint wind, carrying
+the sound of the telephone bell out to Gatsby and me as we waited at
+the door.
+
+“The master’s body?” roared the butler into the mouthpiece. “I’m
+sorry, madame, but we can’t furnish it—it’s far too hot to touch this
+noon!”
+
+What he really said was: “Yes … Yes … I’ll see.”
+
+He set down the receiver and came toward us, glistening slightly, to
+take our stiff straw hats.
+
+“Madame expects you in the salon!” he cried, needlessly indicating the
+direction. In this heat every extra gesture was an affront to the
+common store of life.
+
+The room, shadowed well with awnings, was dark and cool. Daisy and
+Jordan lay upon an enormous couch, like silver idols weighing down
+their own white dresses against the singing breeze of the fans.
+
+“We can’t move,” they said together.
+
+Jordan’s fingers, powdered white over their tan, rested for a moment
+in mine.
+
+“And Mr. Thomas Buchanan, the athlete?” I inquired.
+
+Simultaneously I heard his voice, gruff, muffled, husky, at the hall
+telephone.
+
+Gatsby stood in the centre of the crimson carpet and gazed around with
+fascinated eyes. Daisy watched him and laughed, her sweet, exciting
+laugh; a tiny gust of powder rose from her bosom into the air.
+
+“The rumour is,” whispered Jordan, “that that’s Tom’s girl on the
+telephone.”
+
+We were silent. The voice in the hall rose high with annoyance: “Very
+well, then, I won’t sell you the car at all … I’m under no obligations
+to you at all … and as for your bothering me about it at lunch time, I
+won’t stand that at all!”
+
+“Holding down the receiver,” said Daisy cynically.
+
+“No, he’s not,” I assured her. “It’s a bona-fide deal. I happen to
+know about it.”
+
+Tom flung open the door, blocked out its space for a moment with his
+thick body, and hurried into the room.
+
+“Mr. Gatsby!” He put out his broad, flat hand with well-concealed
+dislike. “I’m glad to see you, sir … Nick …”
+
+“Make us a cold drink,” cried Daisy.
+
+As he left the room again she got up and went over to Gatsby and
+pulled his face down, kissing him on the mouth.
+
+“You know I love you,” she murmured.
+
+“You forget there’s a lady present,” said Jordan.
+
+Daisy looked around doubtfully.
+
+“You kiss Nick too.”
+
+“What a low, vulgar girl!”
+
+“I don’t care!” cried Daisy, and began to clog on the brick fireplace.
+Then she remembered the heat and sat down guiltily on the couch just
+as a freshly laundered nurse leading a little girl came into the room.
+
+“Bles-sed pre-cious,” she crooned, holding out her arms. “Come to your
+own mother that loves you.”
+
+The child, relinquished by the nurse, rushed across the room and
+rooted shyly into her mother’s dress.
+
+“The bles-sed pre-cious! Did mother get powder on your old yellowy
+hair? Stand up now, and say—How-de-do.”
+
+Gatsby and I in turn leaned down and took the small reluctant hand.
+Afterward he kept looking at the child with surprise. I don’t think he
+had ever really believed in its existence before.
+
+“I got dressed before luncheon,” said the child, turning eagerly to
+Daisy.
+
+“That’s because your mother wanted to show you off.” Her face bent
+into the single wrinkle of the small white neck. “You dream, you. You
+absolute little dream.”
+
+“Yes,” admitted the child calmly. “Aunt Jordan’s got on a white dress
+too.”
+
+“How do you like mother’s friends?” Daisy turned her around so that
+she faced Gatsby. “Do you think they’re pretty?”
+
+“Where’s Daddy?”
+
+“She doesn’t look like her father,” explained Daisy. “She looks like
+me. She’s got my hair and shape of the face.”
+
+Daisy sat back upon the couch. The nurse took a step forward and held
+out her hand.
+
+“Come, Pammy.”
+
+“Goodbye, sweetheart!”
+
+With a reluctant backward glance the well-disciplined child held to
+her nurse’s hand and was pulled out the door, just as Tom came back,
+preceding four gin rickeys that clicked full of ice.
+
+Gatsby took up his drink.
+
+“They certainly look cool,” he said, with visible tension.
+
+We drank in long, greedy swallows.
+
+“I read somewhere that the sun’s getting hotter every year,” said Tom
+genially. “It seems that pretty soon the earth’s going to fall into
+the sun—or wait a minute—it’s just the opposite—the sun’s getting
+colder every year.
+
+“Come outside,” he suggested to Gatsby, “I’d like you to have a look
+at the place.”
+
+I went with them out to the veranda. On the green Sound, stagnant in
+the heat, one small sail crawled slowly toward the fresher sea.
+Gatsby’s eyes followed it momentarily; he raised his hand and pointed
+across the bay.
+
+“I’m right across from you.”
+
+“So you are.”
+
+Our eyes lifted over the rose-beds and the hot lawn and the weedy
+refuse of the dog-days alongshore. Slowly the white wings of the boat
+moved against the blue cool limit of the sky. Ahead lay the scalloped
+ocean and the abounding blessed isles.
+
+“There’s sport for you,” said Tom, nodding. “I’d like to be out there
+with him for about an hour.”
+
+We had luncheon in the dining-room, darkened too against the heat, and
+drank down nervous gaiety with the cold ale.
+
+“What’ll we do with ourselves this afternoon?” cried Daisy, “and the
+day after that, and the next thirty years?”
+
+“Don’t be morbid,” Jordan said. “Life starts all over again when it
+gets crisp in the fall.”
+
+“But it’s so hot,” insisted Daisy, on the verge of tears, “and
+everything’s so confused. Let’s all go to town!”
+
+Her voice struggled on through the heat, beating against it, moulding
+its senselessness into forms.
+
+“I’ve heard of making a garage out of a stable,” Tom was saying to
+Gatsby, “but I’m the first man who ever made a stable out of a
+garage.”
+
+“Who wants to go to town?” demanded Daisy insistently. Gatsby’s eyes
+floated toward her. “Ah,” she cried, “you look so cool.”
+
+Their eyes met, and they stared together at each other, alone in
+space. With an effort she glanced down at the table.
+
+“You always look so cool,” she repeated.
+
+She had told him that she loved him, and Tom Buchanan saw. He was
+astounded. His mouth opened a little, and he looked at Gatsby, and
+then back at Daisy as if he had just recognized her as someone he knew
+a long time ago.
+
+“You resemble the advertisement of the man,” she went on innocently.
+“You know the advertisement of the man—”
+
+“All right,” broke in Tom quickly, “I’m perfectly willing to go to
+town. Come on—we’re all going to town.”
+
+He got up, his eyes still flashing between Gatsby and his wife. No one
+moved.
+
+“Come on!” His temper cracked a little. “What’s the matter, anyhow?
+If we’re going to town, let’s start.”
+
+His hand, trembling with his effort at self-control, bore to his lips
+the last of his glass of ale. Daisy’s voice got us to our feet and out
+on to the blazing gravel drive.
+
+“Are we just going to go?” she objected. “Like this? Aren’t we going
+to let anyone smoke a cigarette first?”
+
+“Everybody smoked all through lunch.”
+
+“Oh, let’s have fun,” she begged him. “It’s too hot to fuss.”
+
+He didn’t answer.
+
+“Have it your own way,” she said. “Come on, Jordan.”
+
+They went upstairs to get ready while we three men stood there
+shuffling the hot pebbles with our feet. A silver curve of the moon
+hovered already in the western sky. Gatsby started to speak, changed
+his mind, but not before Tom wheeled and faced him expectantly.
+
+“Have you got your stables here?” asked Gatsby with an effort.
+
+“About a quarter of a mile down the road.”
+
+“Oh.”
+
+A pause.
+
+“I don’t see the idea of going to town,” broke out Tom savagely.
+“Women get these notions in their heads—”
+
+“Shall we take anything to drink?” called Daisy from an upper window.
+
+“I’ll get some whisky,” answered Tom. He went inside.
+
+Gatsby turned to me rigidly:
+
+“I can’t say anything in his house, old sport.”
+
+“She’s got an indiscreet voice,” I remarked. “It’s full of—” I
+hesitated.
+
+“Her voice is full of money,” he said suddenly.
+
+That was it. I’d never understood before. It was full of money—that
+was the inexhaustible charm that rose and fell in it, the jingle of
+it, the cymbals’ song of it … High in a white palace the king’s
+daughter, the golden girl …
+
+Tom came out of the house wrapping a quart bottle in a towel, followed
+by Daisy and Jordan wearing small tight hats of metallic cloth and
+carrying light capes over their arms.
+
+“Shall we all go in my car?” suggested Gatsby. He felt the hot, green
+leather of the seat. “I ought to have left it in the shade.”
+
+“Is it standard shift?” demanded Tom.
+
+“Yes.”
+
+“Well, you take my coupé and let me drive your car to town.”
+
+The suggestion was distasteful to Gatsby.
+
+“I don’t think there’s much gas,” he objected.
+
+“Plenty of gas,” said Tom boisterously. He looked at the gauge. “And
+if it runs out I can stop at a drugstore. You can buy anything at a
+drugstore nowadays.”
+
+A pause followed this apparently pointless remark. Daisy looked at Tom
+frowning, and an indefinable expression, at once definitely unfamiliar
+and vaguely recognizable, as if I had only heard it described in
+words, passed over Gatsby’s face.
+
+“Come on, Daisy” said Tom, pressing her with his hand toward Gatsby’s
+car. “I’ll take you in this circus wagon.”
+
+He opened the door, but she moved out from the circle of his arm.
+
+“You take Nick and Jordan. We’ll follow you in the coupé.”
+
+She walked close to Gatsby, touching his coat with her hand. Jordan
+and Tom and I got into the front seat of Gatsby’s car, Tom pushed the
+unfamiliar gears tentatively, and we shot off into the oppressive
+heat, leaving them out of sight behind.
+
+“Did you see that?” demanded Tom.
+
+“See what?”
+
+He looked at me keenly, realizing that Jordan and I must have known
+all along.
+
+“You think I’m pretty dumb, don’t you?” he suggested. “Perhaps I am,
+but I have a—almost a second sight, sometimes, that tells me what to
+do. Maybe you don’t believe that, but science—”
+
+He paused. The immediate contingency overtook him, pulled him back
+from the edge of theoretical abyss.
+
+“I’ve made a small investigation of this fellow,” he continued. “I
+could have gone deeper if I’d known—”
+
+“Do you mean you’ve been to a medium?” inquired Jordan humorously.
+
+“What?” Confused, he stared at us as we laughed. “A medium?”
+
+“About Gatsby.”
+
+“About Gatsby! No, I haven’t. I said I’d been making a small
+investigation of his past.”
+
+“And you found he was an Oxford man,” said Jordan helpfully.
+
+“An Oxford man!” He was incredulous. “Like hell he is! He wears a pink
+suit.”
+
+“Nevertheless he’s an Oxford man.”
+
+“Oxford, New Mexico,” snorted Tom contemptuously, “or something like
+that.”
+
+“Listen, Tom. If you’re such a snob, why did you invite him to lunch?”
+demanded Jordan crossly.
+
+“Daisy invited him; she knew him before we were married—God knows
+where!”
+
+We were all irritable now with the fading ale, and aware of it we
+drove for a while in silence. Then as Doctor T. J. Eckleburg’s faded
+eyes came into sight down the road, I remembered Gatsby’s caution
+about gasoline.
+
+“We’ve got enough to get us to town,” said Tom.
+
+“But there’s a garage right here,” objected Jordan. “I don’t want to
+get stalled in this baking heat.”
+
+Tom threw on both brakes impatiently, and we slid to an abrupt dusty
+stop under Wilson’s sign. After a moment the proprietor emerged from
+the interior of his establishment and gazed hollow-eyed at the car.
+
+“Let’s have some gas!” cried Tom roughly. “What do you think we
+stopped for—to admire the view?”
+
+“I’m sick,” said Wilson without moving. “Been sick all day.”
+
+“What’s the matter?”
+
+“I’m all run down.”
+
+“Well, shall I help myself?” Tom demanded. “You sounded well enough on
+the phone.”
+
+With an effort Wilson left the shade and support of the doorway and,
+breathing hard, unscrewed the cap of the tank. In the sunlight his
+face was green.
+
+“I didn’t mean to interrupt your lunch,” he said. “But I need money
+pretty bad, and I was wondering what you were going to do with your
+old car.”
+
+“How do you like this one?” inquired Tom. “I bought it last week.”
+
+“It’s a nice yellow one,” said Wilson, as he strained at the handle.
+
+“Like to buy it?”
+
+“Big chance,” Wilson smiled faintly. “No, but I could make some money
+on the other.”
+
+“What do you want money for, all of a sudden?”
+
+“I’ve been here too long. I want to get away. My wife and I want to go
+West.”
+
+“Your wife does,” exclaimed Tom, startled.
+
+“She’s been talking about it for ten years.” He rested for a moment
+against the pump, shading his eyes. “And now she’s going whether she
+wants to or not. I’m going to get her away.”
+
+The coupé flashed by us with a flurry of dust and the flash of a
+waving hand.
+
+“What do I owe you?” demanded Tom harshly.
+
+“I just got wised up to something funny the last two days,” remarked
+Wilson. “That’s why I want to get away. That’s why I been bothering
+you about the car.”
+
+“What do I owe you?”
+
+“Dollar twenty.”
+
+The relentless beating heat was beginning to confuse me and I had a
+bad moment there before I realized that so far his suspicions hadn’t
+alighted on Tom. He had discovered that Myrtle had some sort of life
+apart from him in another world, and the shock had made him physically
+sick. I stared at him and then at Tom, who had made a parallel
+discovery less than an hour before—and it occurred to me that there
+was no difference between men, in intelligence or race, so profound as
+the difference between the sick and the well. Wilson was so sick that
+he looked guilty, unforgivably guilty—as if he had just got some poor
+girl with child.
+
+“I’ll let you have that car,” said Tom. “I’ll send it over tomorrow
+afternoon.”
+
+That locality was always vaguely disquieting, even in the broad glare
+of afternoon, and now I turned my head as though I had been warned of
+something behind. Over the ash-heaps the giant eyes of Doctor T. J.
+Eckleburg kept their vigil, but I perceived, after a moment, that
+other eyes were regarding us with peculiar intensity from less than
+twenty feet away.
+
+In one of the windows over the garage the curtains had been moved
+aside a little, and Myrtle Wilson was peering down at the car. So
+engrossed was she that she had no consciousness of being observed, and
+one emotion after another crept into her face like objects into a
+slowly developing picture. Her expression was curiously familiar—it
+was an expression I had often seen on women’s faces, but on Myrtle
+Wilson’s face it seemed purposeless and inexplicable until I realized
+that her eyes, wide with jealous terror, were fixed not on Tom, but on
+Jordan Baker, whom she took to be his wife.
+
+------------------------------------------------------------------------
+
+There is no confusion like the confusion of a simple mind, and as we
+drove away Tom was feeling the hot whips of panic. His wife and his
+mistress, until an hour ago secure and inviolate, were slipping
+precipitately from his control. Instinct made him step on the
+accelerator with the double purpose of overtaking Daisy and leaving
+Wilson behind, and we sped along toward Astoria at fifty miles an
+hour, until, among the spidery girders of the elevated, we came in
+sight of the easygoing blue coupé.
+
+“Those big movies around Fiftieth Street are cool,” suggested
+Jordan. “I love New York on summer afternoons when everyone’s away.
+There’s something very sensuous about it—overripe, as if all sorts of
+funny fruits were going to fall into your hands.”
+
+The word “sensuous” had the effect of further disquieting Tom, but
+before he could invent a protest the coupé came to a stop, and Daisy
+signalled us to draw up alongside.
+
+“Where are we going?” she cried.
+
+“How about the movies?”
+
+“It’s so hot,” she complained. “You go. We’ll ride around and meet you
+after.” With an effort her wit rose faintly. “We’ll meet you on some
+corner. I’ll be the man smoking two cigarettes.”
+
+“We can’t argue about it here,” Tom said impatiently, as a truck gave
+out a cursing whistle behind us. “You follow me to the south side of
+Central Park, in front of the Plaza.”
+
+Several times he turned his head and looked back for their car, and if
+the traffic delayed them he slowed up until they came into sight. I
+think he was afraid they would dart down a side-street and out of his
+life forever.
+
+But they didn’t. And we all took the less explicable step of engaging
+the parlour of a suite in the Plaza Hotel.
+
+The prolonged and tumultuous argument that ended by herding us into
+that room eludes me, though I have a sharp physical memory that, in
+the course of it, my underwear kept climbing like a damp snake around
+my legs and intermittent beads of sweat raced cool across my back.
+The notion originated with Daisy’s suggestion that we hire five
+bathrooms and take cold baths, and then assumed more tangible form as
+“a place to have a mint julep.” Each of us said over and over that it
+was a “crazy idea”—we all talked at once to a baffled clerk and
+thought, or pretended to think, that we were being very funny …
+
+The room was large and stifling, and, though it was already four
+o’clock, opening the windows admitted only a gust of hot shrubbery
+from the Park. Daisy went to the mirror and stood with her back to us,
+fixing her hair.
+
+“It’s a swell suite,” whispered Jordan respectfully, and everyone
+laughed.
+
+“Open another window,” commanded Daisy, without turning around.
+
+“There aren’t any more.”
+
+“Well, we’d better telephone for an axe—”
+
+“The thing to do is to forget about the heat,” said Tom impatiently.
+“You make it ten times worse by crabbing about it.”
+
+He unrolled the bottle of whisky from the towel and put it on the
+table.
+
+“Why not let her alone, old sport?” remarked Gatsby. “You’re the one
+that wanted to come to town.”
+
+There was a moment of silence. The telephone book slipped from its
+nail and splashed to the floor, whereupon Jordan whispered, “Excuse
+me”—but this time no one laughed.
+
+“I’ll pick it up,” I offered.
+
+“I’ve got it.” Gatsby examined the parted string, muttered “Hum!” in
+an interested way, and tossed the book on a chair.
+
+“That’s a great expression of yours, isn’t it?” said Tom sharply.
+
+“What is?”
+
+“All this ‘old sport’ business. Where’d you pick that up?”
+
+“Now see here, Tom,” said Daisy, turning around from the mirror, “if
+you’re going to make personal remarks I won’t stay here a minute.
+Call up and order some ice for the mint julep.”
+
+As Tom took up the receiver the compressed heat exploded into sound
+and we were listening to the portentous chords of Mendelssohn’s
+Wedding March from the ballroom below.
+
+“Imagine marrying anybody in this heat!” cried Jordan dismally.
+
+“Still—I was married in the middle of June,” Daisy remembered.
+“Louisville in June! Somebody fainted. Who was it fainted, Tom?”
+
+“Biloxi,” he answered shortly.
+
+“A man named Biloxi. ‘Blocks’ Biloxi, and he made boxes—that’s a
+fact—and he was from Biloxi, Tennessee.”
+
+“They carried him into my house,” appended Jordan, “because we lived
+just two doors from the church. And he stayed three weeks, until Daddy
+told him he had to get out. The day after he left Daddy died.” After
+a moment she added. “There wasn’t any connection.”
+
+“I used to know a Bill Biloxi from Memphis,” I remarked.
+
+“That was his cousin. I knew his whole family history before he
+left. He gave me an aluminium putter that I use today.”
+
+The music had died down as the ceremony began and now a long cheer
+floated in at the window, followed by intermittent cries of
+“Yea—ea—ea!” and finally by a burst of jazz as the dancing began.
+
+“We’re getting old,” said Daisy. “If we were young we’d rise and
+dance.”
+
+“Remember Biloxi,” Jordan warned her. “Where’d you know him, Tom?”
+
+“Biloxi?” He concentrated with an effort. “I didn’t know him. He was a
+friend of Daisy’s.”
+
+“He was not,” she denied. “I’d never seen him before. He came down in
+the private car.”
+
+“Well, he said he knew you. He said he was raised in Louisville. Asa
+Bird brought him around at the last minute and asked if we had room
+for him.”
+
+Jordan smiled.
+
+“He was probably bumming his way home. He told me he was president of
+your class at Yale.”
+
+Tom and I looked at each other blankly.
+
+“Biloxi?”
+
+“First place, we didn’t have any president—”
+
+Gatsby’s foot beat a short, restless tattoo and Tom eyed him suddenly.
+
+“By the way, Mr. Gatsby, I understand you’re an Oxford man.”
+
+“Not exactly.”
+
+“Oh, yes, I understand you went to Oxford.”
+
+“Yes—I went there.”
+
+A pause. Then Tom’s voice, incredulous and insulting:
+
+“You must have gone there about the time Biloxi went to New Haven.”
+
+Another pause. A waiter knocked and came in with crushed mint and ice
+but the silence was unbroken by his “thank you” and the soft closing
+of the door. This tremendous detail was to be cleared up at last.
+
+“I told you I went there,” said Gatsby.
+
+“I heard you, but I’d like to know when.”
+
+“It was in nineteen-nineteen, I only stayed five months. That’s why I
+can’t really call myself an Oxford man.”
+
+Tom glanced around to see if we mirrored his unbelief. But we were all
+looking at Gatsby.
+
+“It was an opportunity they gave to some of the officers after the
+armistice,” he continued. “We could go to any of the universities in
+England or France.”
+
+I wanted to get up and slap him on the back. I had one of those
+renewals of complete faith in him that I’d experienced before.
+
+Daisy rose, smiling faintly, and went to the table.
+
+“Open the whisky, Tom,” she ordered, “and I’ll make you a mint julep.
+Then you won’t seem so stupid to yourself … Look at the mint!”
+
+“Wait a minute,” snapped Tom, “I want to ask Mr. Gatsby one more
+question.”
+
+“Go on,” Gatsby said politely.
+
+“What kind of a row are you trying to cause in my house anyhow?”
+
+They were out in the open at last and Gatsby was content.
+
+“He isn’t causing a row,” Daisy looked desperately from one to the
+other. “You’re causing a row. Please have a little self-control.”
+
+“Self-control!” repeated Tom incredulously. “I suppose the latest
+thing is to sit back and let Mr. Nobody from Nowhere make love to your
+wife. Well, if that’s the idea you can count me out … Nowadays people
+begin by sneering at family life and family institutions, and next
+they’ll throw everything overboard and have intermarriage between
+black and white.”
+
+Flushed with his impassioned gibberish, he saw himself standing alone
+on the last barrier of civilization.
+
+“We’re all white here,” murmured Jordan.
+
+“I know I’m not very popular. I don’t give big parties. I suppose
+you’ve got to make your house into a pigsty in order to have any
+friends—in the modern world.”
+
+Angry as I was, as we all were, I was tempted to laugh whenever he
+opened his mouth. The transition from libertine to prig was so
+complete.
+
+“I’ve got something to tell you, old sport—” began Gatsby. But Daisy
+guessed at his intention.
+
+“Please don’t!” she interrupted helplessly. “Please let’s all go
+home. Why don’t we all go home?”
+
+“That’s a good idea,” I got up. “Come on, Tom. Nobody wants a drink.”
+
+“I want to know what Mr. Gatsby has to tell me.”
+
+“Your wife doesn’t love you,” said Gatsby. “She’s never loved you.
+She loves me.”
+
+“You must be crazy!” exclaimed Tom automatically.
+
+Gatsby sprang to his feet, vivid with excitement.
+
+“She never loved you, do you hear?” he cried. “She only married you
+because I was poor and she was tired of waiting for me. It was a
+terrible mistake, but in her heart she never loved anyone except me!”
+
+At this point Jordan and I tried to go, but Tom and Gatsby insisted
+with competitive firmness that we remain—as though neither of them had
+anything to conceal and it would be a privilege to partake vicariously
+of their emotions.
+
+“Sit down, Daisy,” Tom’s voice groped unsuccessfully for the paternal
+note. “What’s been going on? I want to hear all about it.”
+
+“I told you what’s been going on,” said Gatsby. “Going on for five
+years—and you didn’t know.”
+
+Tom turned to Daisy sharply.
+
+“You’ve been seeing this fellow for five years?”
+
+“Not seeing,” said Gatsby. “No, we couldn’t meet. But both of us loved
+each other all that time, old sport, and you didn’t know. I used to
+laugh sometimes”—but there was no laughter in his eyes—“to think that
+you didn’t know.”
+
+“Oh—that’s all.” Tom tapped his thick fingers together like a
+clergyman and leaned back in his chair.
+
+“You’re crazy!” he exploded. “I can’t speak about what happened five
+years ago, because I didn’t know Daisy then—and I’ll be damned if I
+see how you got within a mile of her unless you brought the groceries
+to the back door. But all the rest of that’s a God damned lie. Daisy
+loved me when she married me and she loves me now.”
+
+“No,” said Gatsby, shaking his head.
+
+“She does, though. The trouble is that sometimes she gets foolish
+ideas in her head and doesn’t know what she’s doing.” He nodded
+sagely. “And what’s more, I love Daisy too. Once in a while I go off
+on a spree and make a fool of myself, but I always come back, and in
+my heart I love her all the time.”
+
+“You’re revolting,” said Daisy. She turned to me, and her voice,
+dropping an octave lower, filled the room with thrilling scorn: “Do
+you know why we left Chicago? I’m surprised that they didn’t treat you
+to the story of that little spree.”
+
+Gatsby walked over and stood beside her.
+
+“Daisy, that’s all over now,” he said earnestly. “It doesn’t matter
+any more. Just tell him the truth—that you never loved him—and it’s
+all wiped out forever.”
+
+She looked at him blindly. “Why—how could I love him—possibly?”
+
+“You never loved him.”
+
+She hesitated. Her eyes fell on Jordan and me with a sort of appeal,
+as though she realized at last what she was doing—and as though she
+had never, all along, intended doing anything at all. But it was done
+now. It was too late.
+
+“I never loved him,” she said, with perceptible reluctance.
+
+“Not at Kapiolani?” demanded Tom suddenly.
+
+“No.”
+
+From the ballroom beneath, muffled and suffocating chords were
+drifting up on hot waves of air.
+
+“Not that day I carried you down from the Punch Bowl to keep your
+shoes dry?” There was a husky tenderness in his tone … “Daisy?”
+
+“Please don’t.” Her voice was cold, but the rancour was gone from it.
+She looked at Gatsby. “There, Jay,” she said—but her hand as she tried
+to light a cigarette was trembling. Suddenly she threw the cigarette
+and the burning match on the carpet.
+
+“Oh, you want too much!” she cried to Gatsby. “I love you now—isn’t
+that enough? I can’t help what’s past.” She began to sob
+helplessly. “I did love him once—but I loved you too.”
+
+Gatsby’s eyes opened and closed.
+
+“You loved me too?” he repeated.
+
+“Even that’s a lie,” said Tom savagely. “She didn’t know you were
+alive. Why—there’s things between Daisy and me that you’ll never know,
+things that neither of us can ever forget.”
+
+The words seemed to bite physically into Gatsby.
+
+“I want to speak to Daisy alone,” he insisted. “She’s all excited
+now—”
+
+“Even alone I can’t say I never loved Tom,” she admitted in a pitiful
+voice. “It wouldn’t be true.”
+
+“Of course it wouldn’t,” agreed Tom.
+
+She turned to her husband.
+
+“As if it mattered to you,” she said.
+
+“Of course it matters. I’m going to take better care of you from now
+on.”
+
+“You don’t understand,” said Gatsby, with a touch of panic. “You’re
+not going to take care of her any more.”
+
+“I’m not?” Tom opened his eyes wide and laughed. He could afford to
+control himself now. “Why’s that?”
+
+“Daisy’s leaving you.”
+
+“Nonsense.”
+
+“I am, though,” she said with a visible effort.
+
+“She’s not leaving me!” Tom’s words suddenly leaned down over Gatsby.
+“Certainly not for a common swindler who’d have to steal the ring he
+put on her finger.”
+
+“I won’t stand this!” cried Daisy. “Oh, please let’s get out.”
+
+“Who are you, anyhow?” broke out Tom. “You’re one of that bunch that
+hangs around with Meyer Wolfshiem—that much I happen to know. I’ve
+made a little investigation into your affairs—and I’ll carry it
+further tomorrow.”
+
+“You can suit yourself about that, old sport,” said Gatsby steadily.
+
+“I found out what your ‘drugstores’ were.” He turned to us and spoke
+rapidly. “He and this Wolfshiem bought up a lot of side-street
+drugstores here and in Chicago and sold grain alcohol over the
+counter. That’s one of his little stunts. I picked him for a
+bootlegger the first time I saw him, and I wasn’t far wrong.”
+
+“What about it?” said Gatsby politely. “I guess your friend Walter
+Chase wasn’t too proud to come in on it.”
+
+“And you left him in the lurch, didn’t you? You let him go to jail for
+a month over in New Jersey. God! You ought to hear Walter on the
+subject of you.”
+
+“He came to us dead broke. He was very glad to pick up some money, old
+sport.”
+
+“Don’t you call me ‘old sport’!” cried Tom. Gatsby said
+nothing. “Walter could have you up on the betting laws too, but
+Wolfshiem scared him into shutting his mouth.”
+
+That unfamiliar yet recognizable look was back again in Gatsby’s face.
+
+“That drugstore business was just small change,” continued Tom slowly,
+“but you’ve got something on now that Walter’s afraid to tell me
+about.”
+
+I glanced at Daisy, who was staring terrified between Gatsby and her
+husband, and at Jordan, who had begun to balance an invisible but
+absorbing object on the tip of her chin. Then I turned back to
+Gatsby—and was startled at his expression. He looked—and this is said
+in all contempt for the babbled slander of his garden—as if he had
+“killed a man.” For a moment the set of his face could be described in
+just that fantastic way.
+
+It passed, and he began to talk excitedly to Daisy, denying
+everything, defending his name against accusations that had not been
+made. But with every word she was drawing further and further into
+herself, so he gave that up, and only the dead dream fought on as the
+afternoon slipped away, trying to touch what was no longer tangible,
+struggling unhappily, undespairingly, toward that lost voice across
+the room.
+
+The voice begged again to go.
+
+“Please, Tom! I can’t stand this any more.”
+
+Her frightened eyes told that whatever intentions, whatever courage
+she had had, were definitely gone.
+
+“You two start on home, Daisy,” said Tom. “In Mr. Gatsby’s car.”
+
+She looked at Tom, alarmed now, but he insisted with magnanimous
+scorn.
+
+“Go on. He won’t annoy you. I think he realizes that his presumptuous
+little flirtation is over.”
+
+They were gone, without a word, snapped out, made accidental,
+isolated, like ghosts, even from our pity.
+
+After a moment Tom got up and began wrapping the unopened bottle of
+whisky in the towel.
+
+“Want any of this stuff? Jordan? … Nick?”
+
+I didn’t answer.
+
+“Nick?” He asked again.
+
+“What?”
+
+“Want any?”
+
+“No … I just remembered that today’s my birthday.”
+
+I was thirty. Before me stretched the portentous, menacing road of a
+new decade.
+
+It was seven o’clock when we got into the coupé with him and started
+for Long Island. Tom talked incessantly, exulting and laughing, but
+his voice was as remote from Jordan and me as the foreign clamour on
+the sidewalk or the tumult of the elevated overhead. Human sympathy
+has its limits, and we were content to let all their tragic arguments
+fade with the city lights behind. Thirty—the promise of a decade of
+loneliness, a thinning list of single men to know, a thinning
+briefcase of enthusiasm, thinning hair. But there was Jordan beside
+me, who, unlike Daisy, was too wise ever to carry well-forgotten
+dreams from age to age. As we passed over the dark bridge her wan face
+fell lazily against my coat’s shoulder and the formidable stroke of
+thirty died away with the reassuring pressure of her hand.
+
+So we drove on toward death through the cooling twilight.
+
+------------------------------------------------------------------------
+
+The young Greek, Michaelis, who ran the coffee joint beside the
+ash-heaps was the principal witness at the inquest. He had slept
+through the heat until after five, when he strolled over to the
+garage, and found George Wilson sick in his office—really sick, pale
+as his own pale hair and shaking all over. Michaelis advised him to go
+to bed, but Wilson refused, saying that he’d miss a lot of business if
+he did. While his neighbour was trying to persuade him a violent
+racket broke out overhead.
+
+“I’ve got my wife locked in up there,” explained Wilson calmly.
+“She’s going to stay there till the day after tomorrow, and then we’re
+going to move away.”
+
+Michaelis was astonished; they had been neighbours for four years, and
+Wilson had never seemed faintly capable of such a statement.
+Generally he was one of these worn-out men: when he wasn’t working, he
+sat on a chair in the doorway and stared at the people and the cars
+that passed along the road. When anyone spoke to him he invariably
+laughed in an agreeable, colourless way. He was his wife’s man and not
+his own.
+
+So naturally Michaelis tried to find out what had happened, but Wilson
+wouldn’t say a word—instead he began to throw curious, suspicious
+glances at his visitor and ask him what he’d been doing at certain
+times on certain days. Just as the latter was getting uneasy, some
+workmen came past the door bound for his restaurant, and Michaelis
+took the opportunity to get away, intending to come back later. But he
+didn’t. He supposed he forgot to, that’s all. When he came outside
+again, a little after seven, he was reminded of the conversation
+because he heard Mrs. Wilson’s voice, loud and scolding, downstairs in
+the garage.
+
+“Beat me!” he heard her cry. “Throw me down and beat me, you dirty
+little coward!”
+
+A moment later she rushed out into the dusk, waving her hands and
+shouting—before he could move from his door the business was over.
+
+The “death car” as the newspapers called it, didn’t stop; it came out
+of the gathering darkness, wavered tragically for a moment, and then
+disappeared around the next bend. Mavro Michaelis wasn’t even sure of
+its colour—he told the first policeman that it was light green. The
+other car, the one going toward New York, came to rest a hundred yards
+beyond, and its driver hurried back to where Myrtle Wilson, her life
+violently extinguished, knelt in the road and mingled her thick dark
+blood with the dust.
+
+Michaelis and this man reached her first, but when they had torn open
+her shirtwaist, still damp with perspiration, they saw that her left
+breast was swinging loose like a flap, and there was no need to listen
+for the heart beneath. The mouth was wide open and ripped a little at
+the corners, as though she had choked a little in giving up the
+tremendous vitality she had stored so long.
+
+------------------------------------------------------------------------
+
+We saw the three or four automobiles and the crowd when we were still
+some distance away.
+
+“Wreck!” said Tom. “That’s good. Wilson’ll have a little business at
+last.”
+
+He slowed down, but still without any intention of stopping, until, as
+we came nearer, the hushed, intent faces of the people at the garage
+door made him automatically put on the brakes.
+
+“We’ll take a look,” he said doubtfully, “just a look.”
+
+I became aware now of a hollow, wailing sound which issued incessantly
+from the garage, a sound which as we got out of the coupé and walked
+toward the door resolved itself into the words “Oh, my God!” uttered
+over and over in a gasping moan.
+
+“There’s some bad trouble here,” said Tom excitedly.
+
+He reached up on tiptoes and peered over a circle of heads into the
+garage, which was lit only by a yellow light in a swinging metal
+basket overhead. Then he made a harsh sound in his throat, and with a
+violent thrusting movement of his powerful arms pushed his way
+through.
+
+The circle closed up again with a running murmur of expostulation; it
+was a minute before I could see anything at all. Then new arrivals
+deranged the line, and Jordan and I were pushed suddenly inside.
+
+Myrtle Wilson’s body, wrapped in a blanket, and then in another
+blanket, as though she suffered from a chill in the hot night, lay on
+a worktable by the wall, and Tom, with his back to us, was bending
+over it, motionless. Next to him stood a motorcycle policeman taking
+down names with much sweat and correction in a little book. At first I
+couldn’t find the source of the high, groaning words that echoed
+clamorously through the bare garage—then I saw Wilson standing on the
+raised threshold of his office, swaying back and forth and holding to
+the doorposts with both hands. Some man was talking to him in a low
+voice and attempting, from time to time, to lay a hand on his
+shoulder, but Wilson neither heard nor saw. His eyes would drop slowly
+from the swinging light to the laden table by the wall, and then jerk
+back to the light again, and he gave out incessantly his high,
+horrible call:
+
+“Oh, my Ga-od! Oh, my Ga-od! Oh, Ga-od! Oh, my Ga-od!”
+
+Presently Tom lifted his head with a jerk and, after staring around
+the garage with glazed eyes, addressed a mumbled incoherent remark to
+the policeman.
+
+“M-a-v—” the policeman was saying, “—o—”
+
+“No, r—” corrected the man, “M-a-v-r-o—”
+
+“Listen to me!” muttered Tom fiercely.
+
+“r—” said the policeman, “o—”
+
+“g—”
+
+“g—” He looked up as Tom’s broad hand fell sharply on his shoulder.
+“What you want, fella?”
+
+“What happened?—that’s what I want to know.”
+
+“Auto hit her. Ins’antly killed.”
+
+“Instantly killed,” repeated Tom, staring.
+
+“She ran out ina road. Son-of-a-bitch didn’t even stopus car.”
+
+“There was two cars,” said Michaelis, “one comin’, one goin’, see?”
+
+“Going where?” asked the policeman keenly.
+
+“One goin’ each way. Well, she”—his hand rose toward the blankets but
+stopped halfway and fell to his side—“she ran out there an’ the one
+comin’ from N’York knock right into her, goin’ thirty or forty miles
+an hour.”
+
+“What’s the name of this place here?” demanded the officer.
+
+“Hasn’t got any name.”
+
+A pale well-dressed negro stepped near.
+
+“It was a yellow car,” he said, “big yellow car. New.”
+
+“See the accident?” asked the policeman.
+
+“No, but the car passed me down the road, going faster’n forty. Going
+fifty, sixty.”
+
+“Come here and let’s have your name. Look out now. I want to get his
+name.”
+
+Some words of this conversation must have reached Wilson, swaying in
+the office door, for suddenly a new theme found voice among his
+grasping cries:
+
+“You don’t have to tell me what kind of car it was! I know what kind
+of car it was!”
+
+Watching Tom, I saw the wad of muscle back of his shoulder tighten
+under his coat. He walked quickly over to Wilson and, standing in
+front of him, seized him firmly by the upper arms.
+
+“You’ve got to pull yourself together,” he said with soothing
+gruffness.
+
+Wilson’s eyes fell upon Tom; he started up on his tiptoes and then
+would have collapsed to his knees had not Tom held him upright.
+
+“Listen,” said Tom, shaking him a little. “I just got here a minute
+ago, from New York. I was bringing you that coupé we’ve been talking
+about. That yellow car I was driving this afternoon wasn’t mine—do you
+hear? I haven’t seen it all afternoon.”
+
+Only the negro and I were near enough to hear what he said, but the
+policeman caught something in the tone and looked over with truculent
+eyes.
+
+“What’s all that?” he demanded.
+
+“I’m a friend of his.” Tom turned his head but kept his hands firm on
+Wilson’s body. “He says he knows the car that did it … It was a yellow
+car.”
+
+Some dim impulse moved the policeman to look suspiciously at Tom.
+
+“And what colour’s your car?”
+
+“It’s a blue car, a coupé.”
+
+“We’ve come straight from New York,” I said.
+
+Someone who had been driving a little behind us confirmed this, and
+the policeman turned away.
+
+“Now, if you’ll let me have that name again correct—”
+
+Picking up Wilson like a doll, Tom carried him into the office, set
+him down in a chair, and came back.
+
+“If somebody’ll come here and sit with him,” he snapped
+authoritatively. He watched while the two men standing closest glanced
+at each other and went unwillingly into the room. Then Tom shut the
+door on them and came down the single step, his eyes avoiding the
+table. As he passed close to me he whispered: “Let’s get out.”
+
+Self-consciously, with his authoritative arms breaking the way, we
+pushed through the still gathering crowd, passing a hurried doctor,
+case in hand, who had been sent for in wild hope half an hour ago.
+
+Tom drove slowly until we were beyond the bend—then his foot came down
+hard, and the coupé raced along through the night. In a little while I
+heard a low husky sob, and saw that the tears were overflowing down
+his face.
+
+“The God damned coward!” he whimpered. “He didn’t even stop his car.”
+
+------------------------------------------------------------------------
+
+The Buchanans’ house floated suddenly toward us through the dark
+rustling trees. Tom stopped beside the porch and looked up at the
+second floor, where two windows bloomed with light among the vines.
+
+“Daisy’s home,” he said. As we got out of the car he glanced at me and
+frowned slightly.
+
+“I ought to have dropped you in West Egg, Nick. There’s nothing we can
+do tonight.”
+
+A change had come over him, and he spoke gravely, and with decision.
+As we walked across the moonlight gravel to the porch he disposed of
+the situation in a few brisk phrases.
+
+“I’ll telephone for a taxi to take you home, and while you’re waiting
+you and Jordan better go in the kitchen and have them get you some
+supper—if you want any.” He opened the door. “Come in.”
+
+“No, thanks. But I’d be glad if you’d order me the taxi. I’ll wait
+outside.”
+
+Jordan put her hand on my arm.
+
+“Won’t you come in, Nick?”
+
+“No, thanks.”
+
+I was feeling a little sick and I wanted to be alone. But Jordan
+lingered for a moment more.
+
+“It’s only half-past nine,” she said.
+
+I’d be damned if I’d go in; I’d had enough of all of them for one day,
+and suddenly that included Jordan too. She must have seen something of
+this in my expression, for she turned abruptly away and ran up the
+porch steps into the house. I sat down for a few minutes with my head
+in my hands, until I heard the phone taken up inside and the butler’s
+voice calling a taxi. Then I walked slowly down the drive away from
+the house, intending to wait by the gate.
+
+I hadn’t gone twenty yards when I heard my name and Gatsby stepped
+from between two bushes into the path. I must have felt pretty weird
+by that time, because I could think of nothing except the luminosity
+of his pink suit under the moon.
+
+“What are you doing?” I inquired.
+
+“Just standing here, old sport.”
+
+Somehow, that seemed a despicable occupation. For all I knew he was
+going to rob the house in a moment; I wouldn’t have been surprised to
+see sinister faces, the faces of “Wolfshiem’s people,” behind him in
+the dark shrubbery.
+
+“Did you see any trouble on the road?” he asked after a minute.
+
+“Yes.”
+
+He hesitated.
+
+“Was she killed?”
+
+“Yes.”
+
+“I thought so; I told Daisy I thought so. It’s better that the shock
+should all come at once. She stood it pretty well.”
+
+He spoke as if Daisy’s reaction was the only thing that mattered.
+
+“I got to West Egg by a side road,” he went on, “and left the car in
+my garage. I don’t think anybody saw us, but of course I can’t be
+sure.”
+
+I disliked him so much by this time that I didn’t find it necessary to
+tell him he was wrong.
+
+“Who was the woman?” he inquired.
+
+“Her name was Wilson. Her husband owns the garage. How the devil did
+it happen?”
+
+“Well, I tried to swing the wheel—” He broke off, and suddenly I
+guessed at the truth.
+
+“Was Daisy driving?”
+
+“Yes,” he said after a moment, “but of course I’ll say I was. You see,
+when we left New York she was very nervous and she thought it would
+steady her to drive—and this woman rushed out at us just as we were
+passing a car coming the other way. It all happened in a minute, but
+it seemed to me that she wanted to speak to us, thought we were
+somebody she knew. Well, first Daisy turned away from the woman toward
+the other car, and then she lost her nerve and turned back. The second
+my hand reached the wheel I felt the shock—it must have killed her
+instantly.”
+
+“It ripped her open—”
+
+“Don’t tell me, old sport.” He winced. “Anyhow—Daisy stepped on it. I
+tried to make her stop, but she couldn’t, so I pulled on the emergency
+brake. Then she fell over into my lap and I drove on.
+
+“She’ll be all right tomorrow,” he said presently. “I’m just going to
+wait here and see if he tries to bother her about that unpleasantness
+this afternoon. She’s locked herself into her room, and if he tries
+any brutality she’s going to turn the light out and on again.”
+
+“He won’t touch her,” I said. “He’s not thinking about her.”
+
+“I don’t trust him, old sport.”
+
+“How long are you going to wait?”
+
+“All night, if necessary. Anyhow, till they all go to bed.”
+
+A new point of view occurred to me. Suppose Tom found out that Daisy
+had been driving. He might think he saw a connection in it—he might
+think anything. I looked at the house; there were two or three bright
+windows downstairs and the pink glow from Daisy’s room on the ground
+floor.
+
+“You wait here,” I said. “I’ll see if there’s any sign of a
+commotion.”
+
+I walked back along the border of the lawn, traversed the gravel
+softly, and tiptoed up the veranda steps. The drawing-room curtains
+were open, and I saw that the room was empty. Crossing the porch where
+we had dined that June night three months before, I came to a small
+rectangle of light which I guessed was the pantry window. The blind
+was drawn, but I found a rift at the sill.
+
+Daisy and Tom were sitting opposite each other at the kitchen table,
+with a plate of cold fried chicken between them, and two bottles of
+ale. He was talking intently across the table at her, and in his
+earnestness his hand had fallen upon and covered her own. Once in a
+while she looked up at him and nodded in agreement.
+
+They weren’t happy, and neither of them had touched the chicken or the
+ale—and yet they weren’t unhappy either. There was an unmistakable air
+of natural intimacy about the picture, and anybody would have said
+that they were conspiring together.
+
+As I tiptoed from the porch I heard my taxi feeling its way along the
+dark road toward the house. Gatsby was waiting where I had left him in
+the drive.
+
+“Is it all quiet up there?” he asked anxiously.
+
+“Yes, it’s all quiet.” I hesitated. “You’d better come home and get
+some sleep.”
+
+He shook his head.
+
+“I want to wait here till Daisy goes to bed. Good night, old sport.”
+
+He put his hands in his coat pockets and turned back eagerly to his
+scrutiny of the house, as though my presence marred the sacredness of
+the vigil. So I walked away and left him standing there in the
+moonlight—watching over nothing.
+
+
+ VIII
+
+I couldn’t sleep all night; a foghorn was groaning incessantly on the
+Sound, and I tossed half-sick between grotesque reality and savage,
+frightening dreams. Toward dawn I heard a taxi go up Gatsby’s drive,
+and immediately I jumped out of bed and began to dress—I felt that I
+had something to tell him, something to warn him about, and morning
+would be too late.
+
+Crossing his lawn, I saw that his front door was still open and he was
+leaning against a table in the hall, heavy with dejection or sleep.
+
+“Nothing happened,” he said wanly. “I waited, and about four o’clock
+she came to the window and stood there for a minute and then turned
+out the light.”
+
+His house had never seemed so enormous to me as it did that night when
+we hunted through the great rooms for cigarettes. We pushed aside
+curtains that were like pavilions, and felt over innumerable feet of
+dark wall for electric light switches—once I tumbled with a sort of
+splash upon the keys of a ghostly piano. There was an inexplicable
+amount of dust everywhere, and the rooms were musty, as though they
+hadn’t been aired for many days. I found the humidor on an unfamiliar
+table, with two stale, dry cigarettes inside. Throwing open the French
+windows of the drawing-room, we sat smoking out into the darkness.
+
+“You ought to go away,” I said. “It’s pretty certain they’ll trace
+your car.”
+
+“Go away now, old sport?”
+
+“Go to Atlantic City for a week, or up to Montreal.”
+
+He wouldn’t consider it. He couldn’t possibly leave Daisy until he
+knew what she was going to do. He was clutching at some last hope and
+I couldn’t bear to shake him free.
+
+It was this night that he told me the strange story of his youth with
+Dan Cody—told it to me because “Jay Gatsby” had broken up like glass
+against Tom’s hard malice, and the long secret extravaganza was played
+out. I think that he would have acknowledged anything now, without
+reserve, but he wanted to talk about Daisy.
+
+She was the first “nice” girl he had ever known. In various unrevealed
+capacities he had come in contact with such people, but always with
+indiscernible barbed wire between. He found her excitingly
+desirable. He went to her house, at first with other officers from
+Camp Taylor, then alone. It amazed him—he had never been in such a
+beautiful house before. But what gave it an air of breathless
+intensity, was that Daisy lived there—it was as casual a thing to her
+as his tent out at camp was to him. There was a ripe mystery about it,
+a hint of bedrooms upstairs more beautiful and cool than other
+bedrooms, of gay and radiant activities taking place through its
+corridors, and of romances that were not musty and laid away already
+in lavender but fresh and breathing and redolent of this year’s
+shining motorcars and of dances whose flowers were scarcely
+withered. It excited him, too, that many men had already loved
+Daisy—it increased her value in his eyes. He felt their presence all
+about the house, pervading the air with the shades and echoes of still
+vibrant emotions.
+
+But he knew that he was in Daisy’s house by a colossal
+accident. However glorious might be his future as Jay Gatsby, he was
+at present a penniless young man without a past, and at any moment the
+invisible cloak of his uniform might slip from his shoulders. So he
+made the most of his time. He took what he could get, ravenously and
+unscrupulously—eventually he took Daisy one still October night, took
+her because he had no real right to touch her hand.
+
+He might have despised himself, for he had certainly taken her under
+false pretences. I don’t mean that he had traded on his phantom
+millions, but he had deliberately given Daisy a sense of security; he
+let her believe that he was a person from much the same strata as
+herself—that he was fully able to take care of her. As a matter of
+fact, he had no such facilities—he had no comfortable family standing
+behind him, and he was liable at the whim of an impersonal government
+to be blown anywhere about the world.
+
+But he didn’t despise himself and it didn’t turn out as he had
+imagined. He had intended, probably, to take what he could and go—but
+now he found that he had committed himself to the following of a
+grail. He knew that Daisy was extraordinary, but he didn’t realize
+just how extraordinary a “nice” girl could be. She vanished into her
+rich house, into her rich, full life, leaving Gatsby—nothing. He felt
+married to her, that was all.
+
+When they met again, two days later, it was Gatsby who was breathless,
+who was, somehow, betrayed. Her porch was bright with the bought
+luxury of star-shine; the wicker of the settee squeaked fashionably as
+she turned toward him and he kissed her curious and lovely mouth. She
+had caught a cold, and it made her voice huskier and more charming
+than ever, and Gatsby was overwhelmingly aware of the youth and
+mystery that wealth imprisons and preserves, of the freshness of many
+clothes, and of Daisy, gleaming like silver, safe and proud above the
+hot struggles of the poor.
+
+------------------------------------------------------------------------
+
+“I can’t describe to you how surprised I was to find out I loved her,
+old sport. I even hoped for a while that she’d throw me over, but she
+didn’t, because she was in love with me too. She thought I knew a lot
+because I knew different things from her … Well, there I was, way off
+my ambitions, getting deeper in love every minute, and all of a sudden
+I didn’t care. What was the use of doing great things if I could have
+a better time telling her what I was going to do?”
+
+On the last afternoon before he went abroad, he sat with Daisy in his
+arms for a long, silent time. It was a cold fall day, with fire in the
+room and her cheeks flushed. Now and then she moved and he changed his
+arm a little, and once he kissed her dark shining hair. The afternoon
+had made them tranquil for a while, as if to give them a deep memory
+for the long parting the next day promised. They had never been closer
+in their month of love, nor communicated more profoundly one with
+another, than when she brushed silent lips against his coat’s shoulder
+or when he touched the end of her fingers, gently, as though she were
+asleep.
+
+------------------------------------------------------------------------
+
+He did extraordinarily well in the war. He was a captain before he
+went to the front, and following the Argonne battles he got his
+majority and the command of the divisional machine-guns. After the
+armistice he tried frantically to get home, but some complication or
+misunderstanding sent him to Oxford instead. He was worried now—there
+was a quality of nervous despair in Daisy’s letters. She didn’t see
+why he couldn’t come. She was feeling the pressure of the world
+outside, and she wanted to see him and feel his presence beside her
+and be reassured that she was doing the right thing after all.
+
+For Daisy was young and her artificial world was redolent of orchids
+and pleasant, cheerful snobbery and orchestras which set the rhythm of
+the year, summing up the sadness and suggestiveness of life in new
+tunes. All night the saxophones wailed the hopeless comment of the
+“Beale Street Blues” while a hundred pairs of golden and silver
+slippers shuffled the shining dust. At the grey tea hour there were
+always rooms that throbbed incessantly with this low, sweet fever,
+while fresh faces drifted here and there like rose petals blown by the
+sad horns around the floor.
+
+Through this twilight universe Daisy began to move again with the
+season; suddenly she was again keeping half a dozen dates a day with
+half a dozen men, and drowsing asleep at dawn with the beads and
+chiffon of an evening-dress tangled among dying orchids on the floor
+beside her bed. And all the time something within her was crying for a
+decision. She wanted her life shaped now, immediately—and the decision
+must be made by some force—of love, of money, of unquestionable
+practicality—that was close at hand.
+
+That force took shape in the middle of spring with the arrival of Tom
+Buchanan. There was a wholesome bulkiness about his person and his
+position, and Daisy was flattered. Doubtless there was a certain
+struggle and a certain relief. The letter reached Gatsby while he was
+still at Oxford.
+
+------------------------------------------------------------------------
+
+It was dawn now on Long Island and we went about opening the rest of
+the windows downstairs, filling the house with grey-turning,
+gold-turning light. The shadow of a tree fell abruptly across the dew
+and ghostly birds began to sing among the blue leaves. There was a
+slow, pleasant movement in the air, scarcely a wind, promising a cool,
+lovely day.
+
+“I don’t think she ever loved him.” Gatsby turned around from a window
+and looked at me challengingly. “You must remember, old sport, she was
+very excited this afternoon. He told her those things in a way that
+frightened her—that made it look as if I was some kind of cheap
+sharper. And the result was she hardly knew what she was saying.”
+
+He sat down gloomily.
+
+“Of course she might have loved him just for a minute, when they were
+first married—and loved me more even then, do you see?”
+
+Suddenly he came out with a curious remark.
+
+“In any case,” he said, “it was just personal.”
+
+What could you make of that, except to suspect some intensity in his
+conception of the affair that couldn’t be measured?
+
+He came back from France when Tom and Daisy were still on their
+wedding trip, and made a miserable but irresistible journey to
+Louisville on the last of his army pay. He stayed there a week,
+walking the streets where their footsteps had clicked together through
+the November night and revisiting the out-of-the-way places to which
+they had driven in her white car. Just as Daisy’s house had always
+seemed to him more mysterious and gay than other houses, so his idea
+of the city itself, even though she was gone from it, was pervaded
+with a melancholy beauty.
+
+He left feeling that if he had searched harder, he might have found
+her—that he was leaving her behind. The day-coach—he was penniless
+now—was hot. He went out to the open vestibule and sat down on a
+folding-chair, and the station slid away and the backs of unfamiliar
+buildings moved by. Then out into the spring fields, where a yellow
+trolley raced them for a minute with people in it who might once have
+seen the pale magic of her face along the casual street.
+
+The track curved and now it was going away from the sun, which, as it
+sank lower, seemed to spread itself in benediction over the vanishing
+city where she had drawn her breath. He stretched out his hand
+desperately as if to snatch only a wisp of air, to save a fragment of
+the spot that she had made lovely for him. But it was all going by too
+fast now for his blurred eyes and he knew that he had lost that part
+of it, the freshest and the best, forever.
+
+It was nine o’clock when we finished breakfast and went out on the
+porch. The night had made a sharp difference in the weather and there
+was an autumn flavour in the air. The gardener, the last one of
+Gatsby’s former servants, came to the foot of the steps.
+
+“I’m going to drain the pool today, Mr. Gatsby. Leaves’ll start
+falling pretty soon, and then there’s always trouble with the pipes.”
+
+“Don’t do it today,” Gatsby answered. He turned to me apologetically.
+“You know, old sport, I’ve never used that pool all summer?”
+
+I looked at my watch and stood up.
+
+“Twelve minutes to my train.”
+
+I didn’t want to go to the city. I wasn’t worth a decent stroke of
+work, but it was more than that—I didn’t want to leave Gatsby. I
+missed that train, and then another, before I could get myself away.
+
+“I’ll call you up,” I said finally.
+
+“Do, old sport.”
+
+“I’ll call you about noon.”
+
+We walked slowly down the steps.
+
+“I suppose Daisy’ll call too.” He looked at me anxiously, as if he
+hoped I’d corroborate this.
+
+“I suppose so.”
+
+“Well, goodbye.”
+
+We shook hands and I started away. Just before I reached the hedge I
+remembered something and turned around.
+
+“They’re a rotten crowd,” I shouted across the lawn. “You’re worth the
+whole damn bunch put together.”
+
+I’ve always been glad I said that. It was the only compliment I ever
+gave him, because I disapproved of him from beginning to end. First he
+nodded politely, and then his face broke into that radiant and
+understanding smile, as if we’d been in ecstatic cahoots on that fact
+all the time. His gorgeous pink rag of a suit made a bright spot of
+colour against the white steps, and I thought of the night when I
+first came to his ancestral home, three months before. The lawn and
+drive had been crowded with the faces of those who guessed at his
+corruption—and he had stood on those steps, concealing his
+incorruptible dream, as he waved them goodbye.
+
+I thanked him for his hospitality. We were always thanking him for
+that—I and the others.
+
+“Goodbye,” I called. “I enjoyed breakfast, Gatsby.”
+
+------------------------------------------------------------------------
+
+Up in the city, I tried for a while to list the quotations on an
+interminable amount of stock, then I fell asleep in my swivel-chair.
+Just before noon the phone woke me, and I started up with sweat
+breaking out on my forehead. It was Jordan Baker; she often called me
+up at this hour because the uncertainty of her own movements between
+hotels and clubs and private houses made her hard to find in any other
+way. Usually her voice came over the wire as something fresh and cool,
+as if a divot from a green golf-links had come sailing in at the
+office window, but this morning it seemed harsh and dry.
+
+“I’ve left Daisy’s house,” she said. “I’m at Hempstead, and I’m going
+down to Southampton this afternoon.”
+
+Probably it had been tactful to leave Daisy’s house, but the act
+annoyed me, and her next remark made me rigid.
+
+“You weren’t so nice to me last night.”
+
+“How could it have mattered then?”
+
+Silence for a moment. Then:
+
+“However—I want to see you.”
+
+“I want to see you, too.”
+
+“Suppose I don’t go to Southampton, and come into town this
+afternoon?”
+
+“No—I don’t think this afternoon.”
+
+“Very well.”
+
+“It’s impossible this afternoon. Various—”
+
+We talked like that for a while, and then abruptly we weren’t talking
+any longer. I don’t know which of us hung up with a sharp click, but I
+know I didn’t care. I couldn’t have talked to her across a tea-table
+that day if I never talked to her again in this world.
+
+I called Gatsby’s house a few minutes later, but the line was busy. I
+tried four times; finally an exasperated central told me the wire was
+being kept open for long distance from Detroit. Taking out my
+timetable, I drew a small circle around the three-fifty train. Then I
+leaned back in my chair and tried to think. It was just noon.
+
+------------------------------------------------------------------------
+
+When I passed the ash-heaps on the train that morning I had crossed
+deliberately to the other side of the car. I supposed there’d be a
+curious crowd around there all day with little boys searching for dark
+spots in the dust, and some garrulous man telling over and over what
+had happened, until it became less and less real even to him and he
+could tell it no longer, and Myrtle Wilson’s tragic achievement was
+forgotten. Now I want to go back a little and tell what happened at
+the garage after we left there the night before.
+
+They had difficulty in locating the sister, Catherine. She must have
+broken her rule against drinking that night, for when she arrived she
+was stupid with liquor and unable to understand that the ambulance had
+already gone to Flushing. When they convinced her of this, she
+immediately fainted, as if that was the intolerable part of the
+affair. Someone, kind or curious, took her in his car and drove her in
+the wake of her sister’s body.
+
+Until long after midnight a changing crowd lapped up against the front
+of the garage, while George Wilson rocked himself back and forth on
+the couch inside. For a while the door of the office was open, and
+everyone who came into the garage glanced irresistibly through it.
+Finally someone said it was a shame, and closed the door. Michaelis
+and several other men were with him; first, four or five men, later
+two or three men. Still later Michaelis had to ask the last stranger
+to wait there fifteen minutes longer, while he went back to his own
+place and made a pot of coffee. After that, he stayed there alone with
+Wilson until dawn.
+
+About three o’clock the quality of Wilson’s incoherent muttering
+changed—he grew quieter and began to talk about the yellow car. He
+announced that he had a way of finding out whom the yellow car
+belonged to, and then he blurted out that a couple of months ago his
+wife had come from the city with her face bruised and her nose
+swollen.
+
+But when he heard himself say this, he flinched and began to cry “Oh,
+my God!” again in his groaning voice. Michaelis made a clumsy attempt
+to distract him.
+
+“How long have you been married, George? Come on there, try and sit
+still a minute, and answer my question. How long have you been
+married?”
+
+“Twelve years.”
+
+“Ever had any children? Come on, George, sit still—I asked you a
+question. Did you ever have any children?”
+
+The hard brown beetles kept thudding against the dull light, and
+whenever Michaelis heard a car go tearing along the road outside it
+sounded to him like the car that hadn’t stopped a few hours before.
+He didn’t like to go into the garage, because the work bench was
+stained where the body had been lying, so he moved uncomfortably
+around the office—he knew every object in it before morning—and from
+time to time sat down beside Wilson trying to keep him more quiet.
+
+“Have you got a church you go to sometimes, George? Maybe even if you
+haven’t been there for a long time? Maybe I could call up the church
+and get a priest to come over and he could talk to you, see?”
+
+“Don’t belong to any.”
+
+“You ought to have a church, George, for times like this. You must
+have gone to church once. Didn’t you get married in a church? Listen,
+George, listen to me. Didn’t you get married in a church?”
+
+“That was a long time ago.”
+
+The effort of answering broke the rhythm of his rocking—for a moment
+he was silent. Then the same half-knowing, half-bewildered look came
+back into his faded eyes.
+
+“Look in the drawer there,” he said, pointing at the desk.
+
+“Which drawer?”
+
+“That drawer—that one.”
+
+Michaelis opened the drawer nearest his hand. There was nothing in it
+but a small, expensive dog-leash, made of leather and braided
+silver. It was apparently new.
+
+“This?” he inquired, holding it up.
+
+Wilson stared and nodded.
+
+“I found it yesterday afternoon. She tried to tell me about it, but I
+knew it was something funny.”
+
+“You mean your wife bought it?”
+
+“She had it wrapped in tissue paper on her bureau.”
+
+Michaelis didn’t see anything odd in that, and he gave Wilson a dozen
+reasons why his wife might have bought the dog-leash. But conceivably
+Wilson had heard some of these same explanations before, from Myrtle,
+because he began saying “Oh, my God!” again in a whisper—his comforter
+left several explanations in the air.
+
+“Then he killed her,” said Wilson. His mouth dropped open suddenly.
+
+“Who did?”
+
+“I have a way of finding out.”
+
+“You’re morbid, George,” said his friend. “This has been a strain to
+you and you don’t know what you’re saying. You’d better try and sit
+quiet till morning.”
+
+“He murdered her.”
+
+“It was an accident, George.”
+
+Wilson shook his head. His eyes narrowed and his mouth widened
+slightly with the ghost of a superior “Hm!”
+
+“I know,” he said definitely. “I’m one of these trusting fellas and I
+don’t think any harm to nobody, but when I get to know a thing I know
+it. It was the man in that car. She ran out to speak to him and he
+wouldn’t stop.”
+
+Michaelis had seen this too, but it hadn’t occurred to him that there
+was any special significance in it. He believed that Mrs. Wilson had
+been running away from her husband, rather than trying to stop any
+particular car.
+
+“How could she of been like that?”
+
+“She’s a deep one,” said Wilson, as if that answered the question.
+“Ah-h-h—”
+
+He began to rock again, and Michaelis stood twisting the leash in his
+hand.
+
+“Maybe you got some friend that I could telephone for, George?”
+
+This was a forlorn hope—he was almost sure that Wilson had no friend:
+there was not enough of him for his wife. He was glad a little later
+when he noticed a change in the room, a blue quickening by the window,
+and realized that dawn wasn’t far off. About five o’clock it was blue
+enough outside to snap off the light.
+
+Wilson’s glazed eyes turned out to the ash-heaps, where small grey
+clouds took on fantastic shapes and scurried here and there in the
+faint dawn wind.
+
+“I spoke to her,” he muttered, after a long silence. “I told her she
+might fool me but she couldn’t fool God. I took her to the
+window”—with an effort he got up and walked to the rear window and
+leaned with his face pressed against it—“and I said ‘God knows what
+you’ve been doing, everything you’ve been doing. You may fool me, but
+you can’t fool God!’ ”
+
+Standing behind him, Michaelis saw with a shock that he was looking at
+the eyes of Doctor T. J. Eckleburg, which had just emerged, pale and
+enormous, from the dissolving night.
+
+“God sees everything,” repeated Wilson.
+
+“That’s an advertisement,” Michaelis assured him. Something made him
+turn away from the window and look back into the room. But Wilson
+stood there a long time, his face close to the window pane, nodding
+into the twilight.
+
+------------------------------------------------------------------------
+
+By six o’clock Michaelis was worn out, and grateful for the sound of a
+car stopping outside. It was one of the watchers of the night before
+who had promised to come back, so he cooked breakfast for three, which
+he and the other man ate together. Wilson was quieter now, and
+Michaelis went home to sleep; when he awoke four hours later and
+hurried back to the garage, Wilson was gone.
+
+His movements—he was on foot all the time—were afterward traced to
+Port Roosevelt and then to Gad’s Hill, where he bought a sandwich that
+he didn’t eat, and a cup of coffee. He must have been tired and
+walking slowly, for he didn’t reach Gad’s Hill until noon. Thus far
+there was no difficulty in accounting for his time—there were boys who
+had seen a man “acting sort of crazy,” and motorists at whom he stared
+oddly from the side of the road. Then for three hours he disappeared
+from view. The police, on the strength of what he said to Michaelis,
+that he “had a way of finding out,” supposed that he spent that time
+going from garage to garage thereabout, inquiring for a yellow car. On
+the other hand, no garage man who had seen him ever came forward, and
+perhaps he had an easier, surer way of finding out what he wanted to
+know. By half-past two he was in West Egg, where he asked someone the
+way to Gatsby’s house. So by that time he knew Gatsby’s name.
+
+------------------------------------------------------------------------
+
+At two o’clock Gatsby put on his bathing-suit and left word with the
+butler that if anyone phoned word was to be brought to him at the
+pool. He stopped at the garage for a pneumatic mattress that had
+amused his guests during the summer, and the chauffeur helped him to
+pump it up. Then he gave instructions that the open car wasn’t to be
+taken out under any circumstances—and this was strange, because the
+front right fender needed repair.
+
+Gatsby shouldered the mattress and started for the pool. Once he
+stopped and shifted it a little, and the chauffeur asked him if he
+needed help, but he shook his head and in a moment disappeared among
+the yellowing trees.
+
+No telephone message arrived, but the butler went without his sleep
+and waited for it until four o’clock—until long after there was anyone
+to give it to if it came. I have an idea that Gatsby himself didn’t
+believe it would come, and perhaps he no longer cared. If that was
+true he must have felt that he had lost the old warm world, paid a
+high price for living too long with a single dream. He must have
+looked up at an unfamiliar sky through frightening leaves and shivered
+as he found what a grotesque thing a rose is and how raw the sunlight
+was upon the scarcely created grass. A new world, material without
+being real, where poor ghosts, breathing dreams like air, drifted
+fortuitously about … like that ashen, fantastic figure gliding toward
+him through the amorphous trees.
+
+The chauffeur—he was one of Wolfshiem’s protégés—heard the
+shots—afterwards he could only say that he hadn’t thought anything
+much about them. I drove from the station directly to Gatsby’s house
+and my rushing anxiously up the front steps was the first thing that
+alarmed anyone. But they knew then, I firmly believe. With scarcely a
+word said, four of us, the chauffeur, butler, gardener, and I hurried
+down to the pool.
+
+There was a faint, barely perceptible movement of the water as the
+fresh flow from one end urged its way toward the drain at the other.
+With little ripples that were hardly the shadows of waves, the laden
+mattress moved irregularly down the pool. A small gust of wind that
+scarcely corrugated the surface was enough to disturb its accidental
+course with its accidental burden. The touch of a cluster of leaves
+revolved it slowly, tracing, like the leg of transit, a thin red
+circle in the water.
+
+It was after we started with Gatsby toward the house that the gardener
+saw Wilson’s body a little way off in the grass, and the holocaust was
+complete.
+
+
+ IX
+
+After two years I remember the rest of that day, and that night and
+the next day, only as an endless drill of police and photographers and
+newspaper men in and out of Gatsby’s front door. A rope stretched
+across the main gate and a policeman by it kept out the curious, but
+little boys soon discovered that they could enter through my yard, and
+there were always a few of them clustered open-mouthed about the
+pool. Someone with a positive manner, perhaps a detective, used the
+expression “madman” as he bent over Wilson’s body that afternoon, and
+the adventitious authority of his voice set the key for the newspaper
+reports next morning.
+
+Most of those reports were a nightmare—grotesque, circumstantial,
+eager, and untrue. When Michaelis’s testimony at the inquest brought
+to light Wilson’s suspicions of his wife I thought the whole tale
+would shortly be served up in racy pasquinade—but Catherine, who might
+have said anything, didn’t say a word. She showed a surprising amount
+of character about it too—looked at the coroner with determined eyes
+under that corrected brow of hers, and swore that her sister had never
+seen Gatsby, that her sister was completely happy with her husband,
+that her sister had been into no mischief whatever. She convinced
+herself of it, and cried into her handkerchief, as if the very
+suggestion was more than she could endure. So Wilson was reduced to a
+man “deranged by grief” in order that the case might remain in its
+simplest form. And it rested there.
+
+But all this part of it seemed remote and unessential. I found myself
+on Gatsby’s side, and alone. From the moment I telephoned news of the
+catastrophe to West Egg village, every surmise about him, and every
+practical question, was referred to me. At first I was surprised and
+confused; then, as he lay in his house and didn’t move or breathe or
+speak, hour upon hour, it grew upon me that I was responsible, because
+no one else was interested—interested, I mean, with that intense
+personal interest to which everyone has some vague right at the end.
+
+I called up Daisy half an hour after we found him, called her
+instinctively and without hesitation. But she and Tom had gone away
+early that afternoon, and taken baggage with them.
+
+“Left no address?”
+
+“No.”
+
+“Say when they’d be back?”
+
+“No.”
+
+“Any idea where they are? How I could reach them?”
+
+“I don’t know. Can’t say.”
+
+I wanted to get somebody for him. I wanted to go into the room where
+he lay and reassure him: “I’ll get somebody for you, Gatsby. Don’t
+worry. Just trust me and I’ll get somebody for you—”
+
+Meyer Wolfshiem’s name wasn’t in the phone book. The butler gave me
+his office address on Broadway, and I called Information, but by the
+time I had the number it was long after five, and no one answered the
+phone.
+
+“Will you ring again?”
+
+“I’ve rung three times.”
+
+“It’s very important.”
+
+“Sorry. I’m afraid no one’s there.”
+
+I went back to the drawing-room and thought for an instant that they
+were chance visitors, all these official people who suddenly filled
+it. But, though they drew back the sheet and looked at Gatsby with
+shocked eyes, his protest continued in my brain:
+
+“Look here, old sport, you’ve got to get somebody for me. You’ve got
+to try hard. I can’t go through this alone.”
+
+Someone started to ask me questions, but I broke away and going
+upstairs looked hastily through the unlocked parts of his desk—he’d
+never told me definitely that his parents were dead. But there was
+nothing—only the picture of Dan Cody, a token of forgotten violence,
+staring down from the wall.
+
+Next morning I sent the butler to New York with a letter to Wolfshiem,
+which asked for information and urged him to come out on the next
+train. That request seemed superfluous when I wrote it. I was sure
+he’d start when he saw the newspapers, just as I was sure there’d be a
+wire from Daisy before noon—but neither a wire nor Mr. Wolfshiem
+arrived; no one arrived except more police and photographers and
+newspaper men. When the butler brought back Wolfshiem’s answer I began
+to have a feeling of defiance, of scornful solidarity between Gatsby
+and me against them all.
+
+ Dear Mr. Carraway. This has been one of the most terrible shocks of
+ my life to me I hardly can believe it that it is true at all. Such a
+ mad act as that man did should make us all think. I cannot come down
+ now as I am tied up in some very important business and cannot get
+ mixed up in this thing now. If there is anything I can do a little
+ later let me know in a letter by Edgar. I hardly know where I am when
+ I hear about a thing like this and am completely knocked down and
+ out.
+
+ Yours truly
+
+ Meyer Wolfshiem
+
+and then hasty addenda beneath:
+
+ Let me know about the funeral etc do not know his family at all.
+
+When the phone rang that afternoon and Long Distance said Chicago was
+calling I thought this would be Daisy at last. But the connection came
+through as a man’s voice, very thin and far away.
+
+“This is Slagle speaking …”
+
+“Yes?” The name was unfamiliar.
+
+“Hell of a note, isn’t it? Get my wire?”
+
+“There haven’t been any wires.”
+
+“Young Parke’s in trouble,” he said rapidly. “They picked him up when
+he handed the bonds over the counter. They got a circular from New
+York giving ’em the numbers just five minutes before. What d’you know
+about that, hey? You never can tell in these hick towns—”
+
+“Hello!” I interrupted breathlessly. “Look here—this isn’t Mr.
+Gatsby. Mr. Gatsby’s dead.”
+
+There was a long silence on the other end of the wire, followed by an
+exclamation … then a quick squawk as the connection was broken.
+
+------------------------------------------------------------------------
+
+I think it was on the third day that a telegram signed Henry C. Gatz
+arrived from a town in Minnesota. It said only that the sender was
+leaving immediately and to postpone the funeral until he came.
+
+It was Gatsby’s father, a solemn old man, very helpless and dismayed,
+bundled up in a long cheap ulster against the warm September day. His
+eyes leaked continuously with excitement, and when I took the bag and
+umbrella from his hands he began to pull so incessantly at his sparse
+grey beard that I had difficulty in getting off his coat. He was on
+the point of collapse, so I took him into the music-room and made him
+sit down while I sent for something to eat. But he wouldn’t eat, and
+the glass of milk spilled from his trembling hand.
+
+“I saw it in the Chicago newspaper,” he said. “It was all in the
+Chicago newspaper. I started right away.”
+
+“I didn’t know how to reach you.”
+
+His eyes, seeing nothing, moved ceaselessly about the room.
+
+“It was a madman,” he said. “He must have been mad.”
+
+“Wouldn’t you like some coffee?” I urged him.
+
+“I don’t want anything. I’m all right now, Mr.—”
+
+“Carraway.”
+
+“Well, I’m all right now. Where have they got Jimmy?”
+
+I took him into the drawing-room, where his son lay, and left him
+there. Some little boys had come up on the steps and were looking into
+the hall; when I told them who had arrived, they went reluctantly
+away.
+
+After a little while Mr. Gatz opened the door and came out, his mouth
+ajar, his face flushed slightly, his eyes leaking isolated and
+unpunctual tears. He had reached an age where death no longer has the
+quality of ghastly surprise, and when he looked around him now for the
+first time and saw the height and splendour of the hall and the great
+rooms opening out from it into other rooms, his grief began to be
+mixed with an awed pride. I helped him to a bedroom upstairs; while he
+took off his coat and vest I told him that all arrangements had been
+deferred until he came.
+
+“I didn’t know what you’d want, Mr. Gatsby—”
+
+“Gatz is my name.”
+
+“—Mr. Gatz. I thought you might want to take the body West.”
+
+He shook his head.
+
+“Jimmy always liked it better down East. He rose up to his position in
+the East. Were you a friend of my boy’s, Mr.—?”
+
+“We were close friends.”
+
+“He had a big future before him, you know. He was only a young man,
+but he had a lot of brain power here.”
+
+He touched his head impressively, and I nodded.
+
+“If he’d of lived, he’d of been a great man. A man like James J.
+Hill. He’d of helped build up the country.”
+
+“That’s true,” I said, uncomfortably.
+
+He fumbled at the embroidered coverlet, trying to take it from the
+bed, and lay down stiffly—was instantly asleep.
+
+That night an obviously frightened person called up, and demanded to
+know who I was before he would give his name.
+
+“This is Mr. Carraway,” I said.
+
+“Oh!” He sounded relieved. “This is Klipspringer.”
+
+I was relieved too, for that seemed to promise another friend at
+Gatsby’s grave. I didn’t want it to be in the papers and draw a
+sightseeing crowd, so I’d been calling up a few people myself. They
+were hard to find.
+
+“The funeral’s tomorrow,” I said. “Three o’clock, here at the house.
+I wish you’d tell anybody who’d be interested.”
+
+“Oh, I will,” he broke out hastily. “Of course I’m not likely to see
+anybody, but if I do.”
+
+His tone made me suspicious.
+
+“Of course you’ll be there yourself.”
+
+“Well, I’ll certainly try. What I called up about is—”
+
+“Wait a minute,” I interrupted. “How about saying you’ll come?”
+
+“Well, the fact is—the truth of the matter is that I’m staying with
+some people up here in Greenwich, and they rather expect me to be with
+them tomorrow. In fact, there’s a sort of picnic or something. Of
+course I’ll do my best to get away.”
+
+I ejaculated an unrestrained “Huh!” and he must have heard me, for he
+went on nervously:
+
+“What I called up about was a pair of shoes I left there. I wonder if
+it’d be too much trouble to have the butler send them on. You see,
+they’re tennis shoes, and I’m sort of helpless without them. My
+address is care of B. F.—”
+
+I didn’t hear the rest of the name, because I hung up the receiver.
+
+After that I felt a certain shame for Gatsby—one gentleman to whom I
+telephoned implied that he had got what he deserved. However, that was
+my fault, for he was one of those who used to sneer most bitterly at
+Gatsby on the courage of Gatsby’s liquor, and I should have known
+better than to call him.
+
+The morning of the funeral I went up to New York to see Meyer
+Wolfshiem; I couldn’t seem to reach him any other way. The door that I
+pushed open, on the advice of an elevator boy, was marked “The
+Swastika Holding Company,” and at first there didn’t seem to be anyone
+inside. But when I’d shouted “hello” several times in vain, an
+argument broke out behind a partition, and presently a lovely Jewess
+appeared at an interior door and scrutinized me with black hostile
+eyes.
+
+“Nobody’s in,” she said. “Mr. Wolfshiem’s gone to Chicago.”
+
+The first part of this was obviously untrue, for someone had begun to
+whistle “The Rosary,” tunelessly, inside.
+
+“Please say that Mr. Carraway wants to see him.”
+
+“I can’t get him back from Chicago, can I?”
+
+At this moment a voice, unmistakably Wolfshiem’s, called “Stella!”
+from the other side of the door.
+
+“Leave your name on the desk,” she said quickly. “I’ll give it to him
+when he gets back.”
+
+“But I know he’s there.”
+
+She took a step toward me and began to slide her hands indignantly up
+and down her hips.
+
+“You young men think you can force your way in here any time,” she
+scolded. “We’re getting sickantired of it. When I say he’s in Chicago,
+he’s in Chicago.”
+
+I mentioned Gatsby.
+
+“Oh-h!” She looked at me over again. “Will you just—What was your
+name?”
+
+She vanished. In a moment Meyer Wolfshiem stood solemnly in the
+doorway, holding out both hands. He drew me into his office, remarking
+in a reverent voice that it was a sad time for all of us, and offered
+me a cigar.
+
+“My memory goes back to when first I met him,” he said. “A young major
+just out of the army and covered over with medals he got in the war.
+He was so hard up he had to keep on wearing his uniform because he
+couldn’t buy some regular clothes. First time I saw him was when he
+came into Winebrenner’s poolroom at Forty-third Street and asked for a
+job. He hadn’t eat anything for a couple of days. ‘Come on have some
+lunch with me,’ I said. He ate more than four dollars’ worth of food
+in half an hour.”
+
+“Did you start him in business?” I inquired.
+
+“Start him! I made him.”
+
+“Oh.”
+
+“I raised him up out of nothing, right out of the gutter. I saw right
+away he was a fine-appearing, gentlemanly young man, and when he told
+me he was at Oggsford I knew I could use him good. I got him to join
+the American Legion and he used to stand high there. Right off he did
+some work for a client of mine up to Albany. We were so thick like
+that in everything”—he held up two bulbous fingers—“always together.”
+
+I wondered if this partnership had included the World’s Series
+transaction in 1919.
+
+“Now he’s dead,” I said after a moment. “You were his closest friend,
+so I know you’ll want to come to his funeral this afternoon.”
+
+“I’d like to come.”
+
+“Well, come then.”
+
+The hair in his nostrils quivered slightly, and as he shook his head
+his eyes filled with tears.
+
+“I can’t do it—I can’t get mixed up in it,” he said.
+
+“There’s nothing to get mixed up in. It’s all over now.”
+
+“When a man gets killed I never like to get mixed up in it in any
+way. I keep out. When I was a young man it was different—if a friend
+of mine died, no matter how, I stuck with them to the end. You may
+think that’s sentimental, but I mean it—to the bitter end.”
+
+I saw that for some reason of his own he was determined not to come,
+so I stood up.
+
+“Are you a college man?” he inquired suddenly.
+
+For a moment I thought he was going to suggest a “gonnegtion,” but he
+only nodded and shook my hand.
+
+“Let us learn to show our friendship for a man when he is alive and
+not after he is dead,” he suggested. “After that my own rule is to let
+everything alone.”
+
+When I left his office the sky had turned dark and I got back to West
+Egg in a drizzle. After changing my clothes I went next door and found
+Mr. Gatz walking up and down excitedly in the hall. His pride in his
+son and in his son’s possessions was continually increasing and now he
+had something to show me.
+
+“Jimmy sent me this picture.” He took out his wallet with trembling
+fingers. “Look there.”
+
+It was a photograph of the house, cracked in the corners and dirty
+with many hands. He pointed out every detail to me eagerly. “Look
+there!” and then sought admiration from my eyes. He had shown it so
+often that I think it was more real to him now than the house itself.
+
+“Jimmy sent it to me. I think it’s a very pretty picture. It shows up
+well.”
+
+“Very well. Had you seen him lately?”
+
+“He come out to see me two years ago and bought me the house I live in
+now. Of course we was broke up when he run off from home, but I see
+now there was a reason for it. He knew he had a big future in front of
+him. And ever since he made a success he was very generous with me.”
+
+He seemed reluctant to put away the picture, held it for another
+minute, lingeringly, before my eyes. Then he returned the wallet and
+pulled from his pocket a ragged old copy of a book called Hopalong
+Cassidy.
+
+“Look here, this is a book he had when he was a boy. It just shows
+you.”
+
+He opened it at the back cover and turned it around for me to see. On
+the last flyleaf was printed the word schedule, and the date September
+12, 1906. And underneath:
+
+ Rise from bed 6:00 a.m.
+ Dumbell exercise and wall-scaling 6:15-6:30 ”
+ Study electricity, etc. 7:15-8:15 ”
+ Work 8:30-4:30 p.m.
+ Baseball and sports 4:30-5:00 ”
+ Practise elocution, poise and how to attain it 5:00-6:00 ”
+ Study needed inventions 7:00-9:00 ”
+
+ General Resolves
+
+ * No wasting time at Shafters or [a name, indecipherable]
+
+ * No more smokeing or chewing.
+
+ * Bath every other day
+
+ * Read one improving book or magazine per week
+
+ * Save $5.00 [crossed out] $3.00 per week
+
+ * Be better to parents
+
+“I came across this book by accident,” said the old man. “It just
+shows you, don’t it?”
+
+“It just shows you.”
+
+“Jimmy was bound to get ahead. He always had some resolves like this
+or something. Do you notice what he’s got about improving his mind? He
+was always great for that. He told me I et like a hog once, and I beat
+him for it.”
+
+He was reluctant to close the book, reading each item aloud and then
+looking eagerly at me. I think he rather expected me to copy down the
+list for my own use.
+
+A little before three the Lutheran minister arrived from Flushing, and
+I began to look involuntarily out the windows for other cars. So did
+Gatsby’s father. And as the time passed and the servants came in and
+stood waiting in the hall, his eyes began to blink anxiously, and he
+spoke of the rain in a worried, uncertain way. The minister glanced
+several times at his watch, so I took him aside and asked him to wait
+for half an hour. But it wasn’t any use. Nobody came.
+
+------------------------------------------------------------------------
+
+About five o’clock our procession of three cars reached the cemetery
+and stopped in a thick drizzle beside the gate—first a motor hearse,
+horribly black and wet, then Mr. Gatz and the minister and me in the
+limousine, and a little later four or five servants and the postman
+from West Egg, in Gatsby’s station wagon, all wet to the skin. As we
+started through the gate into the cemetery I heard a car stop and then
+the sound of someone splashing after us over the soggy ground. I
+looked around. It was the man with owl-eyed glasses whom I had found
+marvelling over Gatsby’s books in the library one night three months
+before.
+
+I’d never seen him since then. I don’t know how he knew about the
+funeral, or even his name. The rain poured down his thick glasses, and
+he took them off and wiped them to see the protecting canvas unrolled
+from Gatsby’s grave.
+
+I tried to think about Gatsby then for a moment, but he was already
+too far away, and I could only remember, without resentment, that
+Daisy hadn’t sent a message or a flower. Dimly I heard someone murmur
+“Blessed are the dead that the rain falls on,” and then the owl-eyed
+man said “Amen to that,” in a brave voice.
+
+We straggled down quickly through the rain to the cars. Owl-eyes spoke
+to me by the gate.
+
+“I couldn’t get to the house,” he remarked.
+
+“Neither could anybody else.”
+
+“Go on!” He started. “Why, my God! they used to go there by the
+hundreds.”
+
+He took off his glasses and wiped them again, outside and in.
+
+“The poor son-of-a-bitch,” he said.
+
+------------------------------------------------------------------------
+
+One of my most vivid memories is of coming back West from prep school
+and later from college at Christmas time. Those who went farther than
+Chicago would gather in the old dim Union Station at six o’clock of a
+December evening, with a few Chicago friends, already caught up into
+their own holiday gaieties, to bid them a hasty goodbye. I remember
+the fur coats of the girls returning from Miss This-or-That’s and the
+chatter of frozen breath and the hands waving overhead as we caught
+sight of old acquaintances, and the matchings of invitations: “Are you
+going to the Ordways’? the Herseys’? the Schultzes’?” and the long
+green tickets clasped tight in our gloved hands. And last the murky
+yellow cars of the Chicago, Milwaukee and St. Paul railroad looking
+cheerful as Christmas itself on the tracks beside the gate.
+
+When we pulled out into the winter night and the real snow, our snow,
+began to stretch out beside us and twinkle against the windows, and
+the dim lights of small Wisconsin stations moved by, a sharp wild
+brace came suddenly into the air. We drew in deep breaths of it as we
+walked back from dinner through the cold vestibules, unutterably aware
+of our identity with this country for one strange hour, before we
+melted indistinguishably into it again.
+
+That’s my Middle West—not the wheat or the prairies or the lost Swede
+towns, but the thrilling returning trains of my youth, and the street
+lamps and sleigh bells in the frosty dark and the shadows of holly
+wreaths thrown by lighted windows on the snow. I am part of that, a
+little solemn with the feel of those long winters, a little complacent
+from growing up in the Carraway house in a city where dwellings are
+still called through decades by a family’s name. I see now that this
+has been a story of the West, after all—Tom and Gatsby, Daisy and
+Jordan and I, were all Westerners, and perhaps we possessed some
+deficiency in common which made us subtly unadaptable to Eastern life.
+
+Even when the East excited me most, even when I was most keenly aware
+of its superiority to the bored, sprawling, swollen towns beyond the
+Ohio, with their interminable inquisitions which spared only the
+children and the very old—even then it had always for me a quality of
+distortion. West Egg, especially, still figures in my more fantastic
+dreams. I see it as a night scene by El Greco: a hundred houses, at
+once conventional and grotesque, crouching under a sullen, overhanging
+sky and a lustreless moon. In the foreground four solemn men in dress
+suits are walking along the sidewalk with a stretcher on which lies a
+drunken woman in a white evening dress. Her hand, which dangles over
+the side, sparkles cold with jewels. Gravely the men turn in at a
+house—the wrong house. But no one knows the woman’s name, and no one
+cares.
+
+After Gatsby’s death the East was haunted for me like that, distorted
+beyond my eyes’ power of correction. So when the blue smoke of brittle
+leaves was in the air and the wind blew the wet laundry stiff on the
+line I decided to come back home.
+
+There was one thing to be done before I left, an awkward, unpleasant
+thing that perhaps had better have been let alone. But I wanted to
+leave things in order and not just trust that obliging and indifferent
+sea to sweep my refuse away. I saw Jordan Baker and talked over and
+around what had happened to us together, and what had happened
+afterward to me, and she lay perfectly still, listening, in a big
+chair.
+
+She was dressed to play golf, and I remember thinking she looked like
+a good illustration, her chin raised a little jauntily, her hair the
+colour of an autumn leaf, her face the same brown tint as the
+fingerless glove on her knee. When I had finished she told me without
+comment that she was engaged to another man. I doubted that, though
+there were several she could have married at a nod of her head, but I
+pretended to be surprised. For just a minute I wondered if I wasn’t
+making a mistake, then I thought it all over again quickly and got up
+to say goodbye.
+
+“Nevertheless you did throw me over,” said Jordan suddenly. “You threw
+me over on the telephone. I don’t give a damn about you now, but it
+was a new experience for me, and I felt a little dizzy for a while.”
+
+We shook hands.
+
+“Oh, and do you remember”—she added—“a conversation we had once about
+driving a car?”
+
+“Why—not exactly.”
+
+“You said a bad driver was only safe until she met another bad driver?
+Well, I met another bad driver, didn’t I? I mean it was careless of me
+to make such a wrong guess. I thought you were rather an honest,
+straightforward person. I thought it was your secret pride.”
+
+“I’m thirty,” I said. “I’m five years too old to lie to myself and
+call it honour.”
+
+She didn’t answer. Angry, and half in love with her, and tremendously
+sorry, I turned away.
+
+------------------------------------------------------------------------
+
+One afternoon late in October I saw Tom Buchanan. He was walking ahead
+of me along Fifth Avenue in his alert, aggressive way, his hands out a
+little from his body as if to fight off interference, his head moving
+sharply here and there, adapting itself to his restless eyes. Just as
+I slowed up to avoid overtaking him he stopped and began frowning into
+the windows of a jewellery store. Suddenly he saw me and walked back,
+holding out his hand.
+
+“What’s the matter, Nick? Do you object to shaking hands with me?”
+
+“Yes. You know what I think of you.”
+
+“You’re crazy, Nick,” he said quickly. “Crazy as hell. I don’t know
+what’s the matter with you.”
+
+“Tom,” I inquired, “what did you say to Wilson that afternoon?”
+
+He stared at me without a word, and I knew I had guessed right about
+those missing hours. I started to turn away, but he took a step after
+me and grabbed my arm.
+
+“I told him the truth,” he said. “He came to the door while we were
+getting ready to leave, and when I sent down word that we weren’t in
+he tried to force his way upstairs. He was crazy enough to kill me if
+I hadn’t told him who owned the car. His hand was on a revolver in his
+pocket every minute he was in the house—” He broke off defiantly.
+“What if I did tell him? That fellow had it coming to him. He threw
+dust into your eyes just like he did in Daisy’s, but he was a tough
+one. He ran over Myrtle like you’d run over a dog and never even
+stopped his car.”
+
+There was nothing I could say, except the one unutterable fact that it
+wasn’t true.
+
+“And if you think I didn’t have my share of suffering—look here, when
+I went to give up that flat and saw that damn box of dog biscuits
+sitting there on the sideboard, I sat down and cried like a baby. By
+God it was awful—”
+
+I couldn’t forgive him or like him, but I saw that what he had done
+was, to him, entirely justified. It was all very careless and
+confused. They were careless people, Tom and Daisy—they smashed up
+things and creatures and then retreated back into their money or their
+vast carelessness, or whatever it was that kept them together, and let
+other people clean up the mess they had made …
+
+I shook hands with him; it seemed silly not to, for I felt suddenly as
+though I were talking to a child. Then he went into the jewellery
+store to buy a pearl necklace—or perhaps only a pair of cuff
+buttons—rid of my provincial squeamishness forever.
+
+------------------------------------------------------------------------
+
+Gatsby’s house was still empty when I left—the grass on his lawn had
+grown as long as mine. One of the taxi drivers in the village never
+took a fare past the entrance gate without stopping for a minute and
+pointing inside; perhaps it was he who drove Daisy and Gatsby over to
+East Egg the night of the accident, and perhaps he had made a story
+about it all his own. I didn’t want to hear it and I avoided him when
+I got off the train.
+
+I spent my Saturday nights in New York because those gleaming,
+dazzling parties of his were with me so vividly that I could still
+hear the music and the laughter, faint and incessant, from his garden,
+and the cars going up and down his drive. One night I did hear a
+material car there, and saw its lights stop at his front steps. But I
+didn’t investigate. Probably it was some final guest who had been away
+at the ends of the earth and didn’t know that the party was over.
+
+On the last night, with my trunk packed and my car sold to the grocer,
+I went over and looked at that huge incoherent failure of a house once
+more. On the white steps an obscene word, scrawled by some boy with a
+piece of brick, stood out clearly in the moonlight, and I erased it,
+drawing my shoe raspingly along the stone. Then I wandered down to the
+beach and sprawled out on the sand.
+
+Most of the big shore places were closed now and there were hardly any
+lights except the shadowy, moving glow of a ferryboat across the
+Sound. And as the moon rose higher the inessential houses began to
+melt away until gradually I became aware of the old island here that
+flowered once for Dutch sailors’ eyes—a fresh, green breast of the new
+world. Its vanished trees, the trees that had made way for Gatsby’s
+house, had once pandered in whispers to the last and greatest of all
+human dreams; for a transitory enchanted moment man must have held his
+breath in the presence of this continent, compelled into an aesthetic
+contemplation he neither understood nor desired, face to face for the
+last time in history with something commensurate to his capacity for
+wonder.
+
+And as I sat there brooding on the old, unknown world, I thought of
+Gatsby’s wonder when he first picked out the green light at the end of
+Daisy’s dock. He had come a long way to this blue lawn, and his dream
+must have seemed so close that he could hardly fail to grasp it. He
+did not know that it was already behind him, somewhere back in that
+vast obscurity beyond the city, where the dark fields of the republic
+rolled on under the night.
+
+Gatsby believed in the green light, the orgastic future that year by
+year recedes before us. It eluded us then, but that’s no
+matter—tomorrow we will run faster, stretch out our arms further … And
+one fine morning—
+
+So we beat on, boats against the current, borne back ceaselessly into
+the past.
\ No newline at end of file
diff --git a/math.ipynb b/math.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..4af1ed1d55249ce2b5d2b9a5e49509324f872da2
--- /dev/null
+++ b/math.ipynb
@@ -0,0 +1,302 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "c0381b39",
+ "metadata": {},
+ "source": [
+ "Notebook to answer a math problem with code.\n",
+ "Adapted from Dust [maths-generate-code](https://dust.tt/spolu/a/d12ac33169)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "d709d448",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:14:11.694164Z",
+ "iopub.status.busy": "2023-02-27T14:14:11.693422Z",
+ "iopub.status.idle": "2023-02-27T14:14:11.909671Z",
+ "shell.execute_reply": "2023-02-27T14:14:11.908948Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "import minichain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8ae06a28",
+ "metadata": {},
+ "source": [
+ "Prompt that asks LLM for code from math."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "89496133",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:14:11.914563Z",
+ "iopub.status.busy": "2023-02-27T14:14:11.913355Z",
+ "iopub.status.idle": "2023-02-27T14:14:11.918659Z",
+ "shell.execute_reply": "2023-02-27T14:14:11.918034Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class MathPrompt(minichain.TemplatePrompt[str]):\n",
+ " template_file = \"math.pmpt.tpl\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "22169567",
+ "metadata": {},
+ "source": [
+ "Ask a question and run it as python code."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "6e122554",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:14:11.923599Z",
+ "iopub.status.busy": "2023-02-27T14:14:11.922332Z",
+ "iopub.status.idle": "2023-02-27T14:14:14.957037Z",
+ "shell.execute_reply": "2023-02-27T14:14:14.956368Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "121\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "with minichain.start_chain(\"math\") as backend:\n",
+ " question = \"What is the sum of the powers of 3 (3^i) that are smaller than 100?\"\n",
+ " prompt = MathPrompt(backend.OpenAI()).chain(minichain.SimplePrompt(backend.Python()))\n",
+ " result = prompt({\"question\": question})\n",
+ " print(result)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c41d0936",
+ "metadata": {},
+ "source": [
+ "View the prompt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "df25f904",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:14:14.960159Z",
+ "iopub.status.busy": "2023-02-27T14:14:14.959694Z",
+ "iopub.status.idle": "2023-02-27T14:14:15.006679Z",
+ "shell.execute_reply": "2023-02-27T14:14:15.006127Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "MathPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'question': 'What is 10 + 12?'}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Question:
What is 37593 * 67?
Code:
37593 * 67
Question:
Janet's ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes muffins for her friends every day with four. She sells the remainder at the farmers' market daily for $2 per fresh duck egg. How much in dollars does she make every day at the farmers' market?
Code:
(16-3-4)*2
Question:
How many of the integers between 0 and 99 inclusive are divisible by 8?
Code:
count = 0
for i in range(0, 99+1):
if i % 8 == 0: count += 1
Question:
A robe takes 2 bolts of blue fiber and half that much white fiber. How many bolts in total does it take?
Code:
2 + 2/2
Question:
What is 10 + 12?
Code:\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " 10 + 12\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nMathPrompt
\\n\\n\\n - Input:
\\n - \\n
{'question': 'What is 10 + 12?'}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Question:
What is 37593 * 67?
Code:
37593 * 67
Question:
Janet\\'s ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes muffins for her friends every day with four. She sells the remainder at the farmers\\' market daily for $2 per fresh duck egg. How much in dollars does she make every day at the farmers\\' market?
Code:
(16-3-4)*2
Question:
How many of the integers between 0 and 99 inclusive are divisible by 8?
Code:
count = 0
for i in range(0, 99+1):
if i % 8 == 0: count += 1
Question:
A robe takes 2 bolts of blue fiber and half that much white fiber. How many bolts in total does it take?
Code:
2 + 2/2
Question:
What is 10 + 12?
Code:\\n \\n \\n\\n - Response:
\\n - \\n 10 + 12\\n
\\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "MathPrompt().show({\"question\": \"What is 10 + 12?\"}, \"10 + 12\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5f726907",
+ "metadata": {},
+ "source": [
+ "View the log"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "0aa84914",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:14:15.009395Z",
+ "iopub.status.busy": "2023-02-27T14:14:15.008955Z",
+ "iopub.status.idle": "2023-02-27T14:14:15.032165Z",
+ "shell.execute_reply": "2023-02-27T14:14:15.031585Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15md962c2e7-4475-4094-bd1d-24f450acac26\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:12Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m2.713s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:12Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.002s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mquestion\u001b[0m: What is the sum of the powers of 3 (3^i) that are smaller than 100?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:12Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:12Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m2.711s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Question:⏎\n",
+ " │ │ What is 37593 * 67?⏎\n",
+ " │ │ Code:⏎\n",
+ " │ │ 37593 * 67⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question:⏎\n",
+ " │ │ Janet's ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes muffins for her friends every day with four. She sells the remainder at the farmers' market daily for $2 per fresh duck egg. How much in dollars does she make every day at the farmers' market?⏎\n",
+ " │ │ Code:⏎\n",
+ " │ │ (16-3-4)*2⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question:⏎\n",
+ " │ │ How many of the integers between 0 and 99 inclusive are divisible by 8?⏎\n",
+ " │ │ Code:⏎\n",
+ " │ │ count = 0⏎\n",
+ " │ │ for i in range(0, 99+1):⏎\n",
+ " │ │ if i % 8 == 0: count += 1⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question:⏎\n",
+ " │ │ A robe takes 2 bolts of blue fiber and half that much white fiber. How many bolts in total does it take?⏎\n",
+ " │ │ Code:⏎\n",
+ " │ │ 2 + 2/2⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question:⏎\n",
+ " │ │ What is the sum of the powers of 3 (3^i) that are smaller than 100?⏎\n",
+ " │ │ Code:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ sum = 0⏎\n",
+ " │ │ for i in range(0, 100):⏎\n",
+ " │ │ if 3**i < 100:⏎\n",
+ " │ │ sum += 3**i⏎\n",
+ " │ │ ⏎\n",
+ " │ │ print(sum)\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m3ce24477-fa41-4ca1-b11e-f7d253a7c511\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: ⏎\n",
+ " │ │ sum = 0⏎\n",
+ " │ │ for i in range(0, 100):⏎\n",
+ " │ │ if 3**i < 100:⏎\n",
+ " │ │ sum += 3**i⏎\n",
+ " │ │ ⏎\n",
+ " │ │ print(sum)\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: ⏎\n",
+ " │ │ sum = 0⏎\n",
+ " │ │ for i in range(0, 100):⏎\n",
+ " │ │ if 3**i < 100:⏎\n",
+ " │ │ sum += 3**i⏎\n",
+ " │ │ ⏎\n",
+ " │ │ print(sum)\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: 121⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m4d75cc49-ca9f-4512-8ca0-9393732c7d14\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mmath\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:14:11Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.028s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mmath\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:14:14Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "minichain.show_log(\"math.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/math.log b/math.log
new file mode 100644
index 0000000000000000000000000000000000000000..b823bdde4dfcd2823e37c6594c36e6701854c7ff
--- /dev/null
+++ b/math.log
@@ -0,0 +1,10 @@
+{"action_status": "started", "timestamp": 1678759606.5984528, "task_uuid": "694c3be6-2b7a-47b3-8d6a-0408b8dc6a26", "action_type": "math", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.5985456, "task_uuid": "694c3be6-2b7a-47b3-8d6a-0408b8dc6a26", "action_type": "math", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.621539, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.6216574, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.6456344, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.645799, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9333436, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.9335442, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/math.pmpt.tpl b/math.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..6e13b7af1a27b6f74f699642d3fe851110ca185d
--- /dev/null
+++ b/math.pmpt.tpl
@@ -0,0 +1,48 @@
+#### Question:
+
+* What is 37593 * 67?
+
+#### Code:
+
+```python
+print(37593 * 67)
+```
+
+#### Question:
+
+* Janet's ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes muffins for her friends every day with four. She sells the remainder at the farmers' market daily for $2 per fresh duck egg. How much in dollars does she make every day at the farmers' market?
+
+#### Code:
+
+```python
+print((16-3-4)*2)
+```
+
+#### Question:
+
+* How many of the integers between 0 and 99 inclusive are divisible by 8?
+
+#### Code:
+
+```python
+count = 0
+for i in range(0, 99+1):
+ if i % 8 == 0: count += 1
+print(count)
+```
+
+#### Question:
+
+* A robe takes 2 bolts of blue fiber and half that much white fiber. How many bolts in total does it take?
+
+#### Code:
+
+```python
+print(2 + 2/2)
+```
+
+#### Question:
+
+* {{question}}
+
+#### Code:
\ No newline at end of file
diff --git a/math_demo.py b/math_demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..2da8a09e85062c2aba231bd6507f828fd98ff229
--- /dev/null
+++ b/math_demo.py
@@ -0,0 +1,38 @@
+# Notebook to answer a math problem with code.
+# Adapted from Dust [maths-generate-code](https://dust.tt/spolu/a/d12ac33169)
+
+import minichain
+
+# Prompt that asks LLM for code from math.
+
+class MathPrompt(minichain.TemplatePrompt[str]):
+ template_file = "math.pmpt.tpl"
+
+
+# Ask a question and run it as python code.
+
+with minichain.start_chain("math") as backend:
+ math_prompt = MathPrompt(backend.OpenAI())
+ code_prompt = minichain.SimplePrompt(backend.Python())
+ prompt = math_prompt.chain(code_prompt)
+ # result = prompt({"question": question})
+ # print(result)
+
+gradio = prompt.to_gradio(fields =["question"],
+ examples=["What is the sum of the powers of 3 (3^i) that are smaller than 100?"],
+ out_type="markdown"
+
+)
+if __name__ == "__main__":
+ gradio.launch()
+
+
+# View the prompt
+
+# + tags=["hide_inp"]
+# MathPrompt().show({"question": "What is 10 + 12?"}, "10 + 12")
+# # -
+
+# # View the log
+
+# minichain.show_log("math.log")
diff --git a/math_prompts.py b/math_prompts.py
new file mode 100644
index 0000000000000000000000000000000000000000..51351dee02797f0c2badf7aa167bb75e000e4f4b
--- /dev/null
+++ b/math_prompts.py
@@ -0,0 +1,165 @@
+# Copyright 2022 PAL Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+MATH_PROMPT = '''
+Q: Olivia has $23. She bought five bagels for $3 each. How much money does she have left?
+
+# solution in Python:
+
+
+def solution():
+ """Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
+ money_initial = 23
+ bagels = 5
+ bagel_cost = 3
+ money_spent = bagels * bagel_cost
+ money_left = money_initial - money_spent
+ result = money_left
+ return result
+
+
+
+
+
+Q: Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?
+
+# solution in Python:
+
+
+def solution():
+ """Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?"""
+ golf_balls_initial = 58
+ golf_balls_lost_tuesday = 23
+ golf_balls_lost_wednesday = 2
+ golf_balls_left = golf_balls_initial - golf_balls_lost_tuesday - golf_balls_lost_wednesday
+ result = golf_balls_left
+ return result
+
+
+
+
+
+Q: There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?
+
+# solution in Python:
+
+
+def solution():
+ """There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?"""
+ computers_initial = 9
+ computers_per_day = 5
+ num_days = 4 # 4 days between monday and thursday
+ computers_added = computers_per_day * num_days
+ computers_total = computers_initial + computers_added
+ result = computers_total
+ return result
+
+
+
+
+
+Q: Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?
+
+# solution in Python:
+
+
+def solution():
+ """Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?"""
+ toys_initial = 5
+ mom_toys = 2
+ dad_toys = 2
+ total_received = mom_toys + dad_toys
+ total_toys = toys_initial + total_received
+ result = total_toys
+ return result
+
+
+
+
+
+Q: Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?
+
+# solution in Python:
+
+
+def solution():
+ """Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?"""
+ jason_lollipops_initial = 20
+ jason_lollipops_after = 12
+ denny_lollipops = jason_lollipops_initial - jason_lollipops_after
+ result = denny_lollipops
+ return result
+
+
+
+
+
+Q: Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?
+
+# solution in Python:
+
+
+def solution():
+ """Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?"""
+ leah_chocolates = 32
+ sister_chocolates = 42
+ total_chocolates = leah_chocolates + sister_chocolates
+ chocolates_eaten = 35
+ chocolates_left = total_chocolates - chocolates_eaten
+ result = chocolates_left
+ return result
+
+
+
+
+
+Q: If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?
+
+# solution in Python:
+
+
+def solution():
+ """If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?"""
+ cars_initial = 3
+ cars_arrived = 2
+ total_cars = cars_initial + cars_arrived
+ result = total_cars
+ return result
+
+
+
+
+
+Q: There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?
+
+# solution in Python:
+
+
+def solution():
+ """There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?"""
+ trees_initial = 15
+ trees_after = 21
+ trees_added = trees_after - trees_initial
+ result = trees_added
+ return result
+
+
+
+
+
+Q: {question}
+
+# solution in Python:
+'''.strip() + '\n\n\n'
\ No newline at end of file
diff --git a/ner.ipynb b/ner.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..93636da69325740be36811637116f14e3f7a9e52
--- /dev/null
+++ b/ner.ipynb
@@ -0,0 +1,284 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "2e16f61f",
+ "metadata": {},
+ "source": [
+ "# NER"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "904e43dd",
+ "metadata": {},
+ "source": [
+ "Notebook implementation of named entity recognition.\n",
+ "Adapted from [promptify](https://github.com/promptslab/Promptify/blob/main/promptify/prompts/nlp/templates/ner.jinja)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "b4b1d58e",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.445242Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.444962Z",
+ "iopub.status.idle": "2023-03-13T23:43:12.450741Z",
+ "shell.execute_reply": "2023-03-13T23:43:12.450139Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import json"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "fdb154d0",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.453113Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.452884Z",
+ "iopub.status.idle": "2023-03-13T23:43:12.649309Z",
+ "shell.execute_reply": "2023-03-13T23:43:12.648483Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "import minichain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d5665917",
+ "metadata": {},
+ "source": [
+ "Prompt to extract NER tags as json"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "1cfe0e75",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.654908Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.653463Z",
+ "iopub.status.idle": "2023-03-13T23:43:12.660078Z",
+ "shell.execute_reply": "2023-03-13T23:43:12.659313Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class NERPrompt(minichain.TemplatePrompt):\n",
+ " template_file = \"ner.pmpt.tpl\"\n",
+ "\n",
+ " def parse(self, response, inp):\n",
+ " return json.loads(response)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "11619d3d",
+ "metadata": {},
+ "source": [
+ "Use NER to ask a simple queston."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "584bef0d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.667113Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.665599Z",
+ "iopub.status.idle": "2023-03-13T23:43:12.673456Z",
+ "shell.execute_reply": "2023-03-13T23:43:12.672558Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class TeamPrompt(minichain.Prompt):\n",
+ " def prompt(self, inp):\n",
+ " return \"Can you describe these basketball teams? \" + \\\n",
+ " \" \".join([i[\"E\"] for i in inp if i[\"T\"] ==\"Team\"])\n",
+ "\n",
+ " def parse(self, response, inp):\n",
+ " return response"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "6ea6c161",
+ "metadata": {},
+ "source": [
+ "Run the system."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "a8ee77f4",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.678805Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.678446Z",
+ "iopub.status.idle": "2023-03-13T23:43:12.682592Z",
+ "shell.execute_reply": "2023-03-13T23:43:12.682060Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "with minichain.start_chain(\"ner\") as backend:\n",
+ " ner_prompt = NERPrompt(backend.OpenAI())\n",
+ " team_prompt = TeamPrompt(backend.OpenAI())\n",
+ " prompt = ner_prompt.chain(team_prompt)\n",
+ " # results = prompt(\n",
+ " # {\"text_input\": \"An NBA playoff pairing a year ago, the 76ers (39-20) meet the Miami Heat (32-29) for the first time this season on Monday night at home.\",\n",
+ " # \"labels\" : [\"Team\", \"Date\"],\n",
+ " # \"domain\": \"Sports\"\n",
+ " # }\n",
+ " # )\n",
+ " # print(results)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "55b9ce94",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.684777Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.684591Z",
+ "iopub.status.idle": "2023-03-13T23:43:12.687815Z",
+ "shell.execute_reply": "2023-03-13T23:43:12.687194Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "ner_prompt.set_display_options(markdown=True)\n",
+ "team_prompt.set_display_options(markdown=True) "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "fe56c4ba",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:12.690233Z",
+ "iopub.status.busy": "2023-03-13T23:43:12.689776Z",
+ "iopub.status.idle": "2023-03-13T23:43:19.799186Z",
+ "shell.execute_reply": "2023-03-13T23:43:19.798652Z"
+ },
+ "lines_to_next_cell": 2
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Running on local URL: http://127.0.0.1:7860\n",
+ "\n",
+ "To create a public link, set `share=True` in `launch()`.\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ ""
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": []
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "prompt.to_gradio(fields =[\"text_input\", \"labels\", \"domain\"],\n",
+ " examples=[[\"An NBA playoff pairing a year ago, the 76ers (39-20) meet the Miami Heat (32-29) for the first time this season on Monday night at home.\", \"Team, Date\", \"Sports\"]]).launch()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0c81d136",
+ "metadata": {},
+ "source": [
+ "View prompt examples."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "d75cba8c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-13T23:43:19.802519Z",
+ "iopub.status.busy": "2023-03-13T23:43:19.802098Z",
+ "iopub.status.idle": "2023-03-13T23:43:19.805558Z",
+ "shell.execute_reply": "2023-03-13T23:43:19.804994Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [],
+ "source": [
+ "# NERPrompt().show(\n",
+ "# {\n",
+ "# \"input\": \"I went to New York\",\n",
+ "# \"domain\": \"Travel\",\n",
+ "# \"labels\": [\"City\"]\n",
+ "# },\n",
+ "# '[{\"T\": \"City\", \"E\": \"New York\"}]',\n",
+ "# )\n",
+ "# # -\n",
+ "\n",
+ "# # View log.\n",
+ "\n",
+ "# minichain.show_log(\"ner.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/ner.log b/ner.log
new file mode 100644
index 0000000000000000000000000000000000000000..ebba0acbbabb4318b0be27c6f61810b14a7d08ff
--- /dev/null
+++ b/ner.log
@@ -0,0 +1,12 @@
+{"action_status": "started", "timestamp": 1678759606.5748045, "task_uuid": "a2181bdc-7e7a-47a7-9a58-6abf2c2e10cd", "action_type": "ner", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.5748866, "task_uuid": "a2181bdc-7e7a-47a7-9a58-6abf2c2e10cd", "action_type": "ner", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.5984528, "task_uuid": "694c3be6-2b7a-47b3-8d6a-0408b8dc6a26", "action_type": "math", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.5985456, "task_uuid": "694c3be6-2b7a-47b3-8d6a-0408b8dc6a26", "action_type": "math", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.621539, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.6216574, "task_uuid": "b1f606f3-d7b6-48bb-a3a5-77e51fda3fa6", "action_type": "bash", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.6456344, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.645799, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9333436, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.9335442, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/ner.pmpt.tpl b/ner.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..bb361fa3df34f3ca9b289aeab79665c38ec9fbb6
--- /dev/null
+++ b/ner.pmpt.tpl
@@ -0,0 +1,8 @@
+You are a highly intelligent and accurate {{ domain }} domain Named-entity recognition(NER) system. You take Passage as input and your task is to recognize and extract specific types of {{ domain }} domain named entities in that given passage and classify into a set of following predefined entity types:
+
+{{labels}}
+
+Your output format is only {{ output_format|default('[{"T": type of entity from predefined entity types, "E": entity in the input text}]') }} form, no other form.
+
+Input: {{ text_input }}
+Output:
\ No newline at end of file
diff --git a/ner.py b/ner.py
new file mode 100644
index 0000000000000000000000000000000000000000..ab8a93bf4e536facbde7f6b0f4377452db52c7a1
--- /dev/null
+++ b/ner.py
@@ -0,0 +1,65 @@
+# # NER
+
+# Notebook implementation of named entity recognition.
+# Adapted from [promptify](https://github.com/promptslab/Promptify/blob/main/promptify/prompts/nlp/templates/ner.jinja).
+
+import json
+
+import minichain
+
+# Prompt to extract NER tags as json
+
+class NERPrompt(minichain.TemplatePrompt):
+ template_file = "ner.pmpt.tpl"
+
+ def parse(self, response, inp):
+ return json.loads(response)
+
+# Use NER to ask a simple queston.
+
+class TeamPrompt(minichain.Prompt):
+ def prompt(self, inp):
+ return "Can you describe these basketball teams? " + \
+ " ".join([i["E"] for i in inp if i["T"] =="Team"])
+
+ def parse(self, response, inp):
+ return response
+
+# Run the system.
+
+with minichain.start_chain("ner") as backend:
+ ner_prompt = NERPrompt(backend.OpenAI())
+ team_prompt = TeamPrompt(backend.OpenAI())
+ prompt = ner_prompt.chain(team_prompt)
+ # results = prompt(
+ # {"text_input": "An NBA playoff pairing a year ago, the 76ers (39-20) meet the Miami Heat (32-29) for the first time this season on Monday night at home.",
+ # "labels" : ["Team", "Date"],
+ # "domain": "Sports"
+ # }
+ # )
+ # print(results)
+
+gradio = prompt.to_gradio(fields =["text_input", "labels", "domain"],
+ examples=[["An NBA playoff pairing a year ago, the 76ers (39-20) meet the Miami Heat (32-29) for the first time this season on Monday night at home.", "Team, Date", "Sports"]])
+
+
+if __name__ == "__main__":
+ gradio.launch()
+
+
+# View prompt examples.
+
+# + tags=["hide_inp"]
+# NERPrompt().show(
+# {
+# "input": "I went to New York",
+# "domain": "Travel",
+# "labels": ["City"]
+# },
+# '[{"T": "City", "E": "New York"}]',
+# )
+# # -
+
+# # View log.
+
+# minichain.show_log("ner.log")
diff --git a/olympics.data/data-00000-of-00001.arrow b/olympics.data/data-00000-of-00001.arrow
new file mode 100644
index 0000000000000000000000000000000000000000..0c23116dd2f9f05779e362ada88e5ca9d4a11d99
--- /dev/null
+++ b/olympics.data/data-00000-of-00001.arrow
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:65d013abf42f4fb498d054ef6fc192592b78e640749b80bb9bdb5521b9651999
+size 51276496
diff --git a/olympics.data/dataset_info.json b/olympics.data/dataset_info.json
new file mode 100644
index 0000000000000000000000000000000000000000..f2196455348ac8e5b9d3f588a2d7409d3b130a01
--- /dev/null
+++ b/olympics.data/dataset_info.json
@@ -0,0 +1,56 @@
+{
+ "builder_name": "csv",
+ "citation": "",
+ "config_name": "default",
+ "dataset_size": 2548363,
+ "description": "",
+ "download_checksums": {
+ "https://cdn.openai.com/API/examples/data/olympics_sections_text.csv": {
+ "num_bytes": 2503410,
+ "checksum": null
+ }
+ },
+ "download_size": 2503410,
+ "features": {
+ "title": {
+ "dtype": "string",
+ "_type": "Value"
+ },
+ "heading": {
+ "dtype": "string",
+ "_type": "Value"
+ },
+ "content": {
+ "dtype": "string",
+ "_type": "Value"
+ },
+ "tokens": {
+ "dtype": "int64",
+ "_type": "Value"
+ },
+ "embeddings": {
+ "feature": {
+ "dtype": "float64",
+ "_type": "Value"
+ },
+ "_type": "Sequence"
+ }
+ },
+ "homepage": "",
+ "license": "",
+ "size_in_bytes": 5051773,
+ "splits": {
+ "train": {
+ "name": "train",
+ "num_bytes": 2548363,
+ "num_examples": 3964,
+ "dataset_name": "csv"
+ }
+ },
+ "version": {
+ "version_str": "0.0.0",
+ "major": 0,
+ "minor": 0,
+ "patch": 0
+ }
+}
\ No newline at end of file
diff --git a/olympics.data/state.json b/olympics.data/state.json
new file mode 100644
index 0000000000000000000000000000000000000000..09d5861f88dec34e929bce9f0da08000b72c164b
--- /dev/null
+++ b/olympics.data/state.json
@@ -0,0 +1,13 @@
+{
+ "_data_files": [
+ {
+ "filename": "data-00000-of-00001.arrow"
+ }
+ ],
+ "_fingerprint": "78ad0f5ec2d98f88",
+ "_format_columns": null,
+ "_format_kwargs": {},
+ "_format_type": null,
+ "_output_all_columns": false,
+ "_split": "train"
+}
\ No newline at end of file
diff --git a/olympics.tar b/olympics.tar
new file mode 100644
index 0000000000000000000000000000000000000000..aa46b6a422a778a8e90ac3273f88c98bb3752aa8
--- /dev/null
+++ b/olympics.tar
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e51ad58da153bc2f290d6a168f394473db4f4e78d57774c2097eddee91e04459
+size 51281920
diff --git a/pal.ipynb b/pal.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..29c3f5e182031c835c182f3cd19f1d90cd58db92
--- /dev/null
+++ b/pal.ipynb
@@ -0,0 +1,546 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "95a637f8",
+ "metadata": {},
+ "source": [
+ "Adapted from Prompt-aided Language Models [PAL](https://arxiv.org/pdf/2211.10435.pdf)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "3eefe2ae",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:43.541342Z",
+ "iopub.status.busy": "2023-02-27T14:15:43.541045Z",
+ "iopub.status.idle": "2023-02-27T14:15:43.740615Z",
+ "shell.execute_reply": "2023-02-27T14:15:43.739910Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "import minichain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "1932de81",
+ "metadata": {},
+ "source": [
+ "PAL Prompt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "8b0f3ba4",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:43.745885Z",
+ "iopub.status.busy": "2023-02-27T14:15:43.744171Z",
+ "iopub.status.idle": "2023-02-27T14:15:43.749926Z",
+ "shell.execute_reply": "2023-02-27T14:15:43.749298Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class PalPrompt(minichain.TemplatePrompt):\n",
+ " template_file = \"pal.pmpt.tpl\""
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5e6b0f1e",
+ "metadata": {},
+ "source": [
+ "Prompt to run and print python code."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "5f5fea2c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:43.754328Z",
+ "iopub.status.busy": "2023-02-27T14:15:43.753171Z",
+ "iopub.status.idle": "2023-02-27T14:15:43.758857Z",
+ "shell.execute_reply": "2023-02-27T14:15:43.758175Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class PyPrompt(minichain.Prompt):\n",
+ " def prompt(self, inp):\n",
+ " return inp + \"\\nprint(solution())\"\n",
+ "\n",
+ " def parse(self, response, inp):\n",
+ " return int(response)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b494356e",
+ "metadata": {},
+ "source": [
+ "Chain the prompts."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "d6e170f7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:43.763969Z",
+ "iopub.status.busy": "2023-02-27T14:15:43.762806Z",
+ "iopub.status.idle": "2023-02-27T14:15:54.833413Z",
+ "shell.execute_reply": "2023-02-27T14:15:54.832851Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "9\n"
+ ]
+ }
+ ],
+ "source": [
+ "with minichain.start_chain(\"pal\") as backend:\n",
+ " question = \"Melanie is a door-to-door saleswoman. She sold a third of her ' \\\n",
+ " 'vacuum cleaners at the green house, 2 more to the red house, and half of ' \\\n",
+ " 'what was left at the orange house. If Melanie has 5 vacuum cleaners left, ' \\\n",
+ " 'how many did she start with?'\"\n",
+ " prompt = PalPrompt(backend.OpenAI()).chain(PyPrompt(backend.Python()))\n",
+ " result = prompt({\"question\": question})\n",
+ " print(result)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "4a631744",
+ "metadata": {},
+ "source": [
+ "View prompt examples."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "729a67c3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:54.835748Z",
+ "iopub.status.busy": "2023-02-27T14:15:54.835484Z",
+ "iopub.status.idle": "2023-02-27T14:15:54.882169Z",
+ "shell.execute_reply": "2023-02-27T14:15:54.881546Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "PalPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'question': 'Joe has 10 cars and Bobby has 12. How many do they have together?'}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Q: Olivia has $23. She bought five bagels for $3 each. How much money does she have left?
# solution in Python:
def solution():
\"\"\"Olivia has $23. She bought five bagels for $3 each. How much money does she have left?\"\"\"
money_initial = 23
bagels = 5
bagel_cost = 3
money_spent = bagels * bagel_cost
money_left = money_initial - money_spent
result = money_left
return result
Q: Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?
# solution in Python:
def solution():
\"\"\"Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?\"\"\"
golf_balls_initial = 58
golf_balls_lost_tuesday = 23
golf_balls_lost_wednesday = 2
golf_balls_left = golf_balls_initial - golf_balls_lost_tuesday - golf_balls_lost_wednesday
result = golf_balls_left
return result
Q: There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?
# solution in Python:
def solution():
\"\"\"There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?\"\"\"
computers_initial = 9
computers_per_day = 5
num_days = 4 # 4 days between monday and thursday
computers_added = computers_per_day * num_days
computers_total = computers_initial + computers_added
result = computers_total
return result
Q: Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?
# solution in Python:
def solution():
\"\"\"Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?\"\"\"
toys_initial = 5
mom_toys = 2
dad_toys = 2
total_received = mom_toys + dad_toys
total_toys = toys_initial + total_received
result = total_toys
return result
Q: Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?
# solution in Python:
def solution():
\"\"\"Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?\"\"\"
jason_lollipops_initial = 20
jason_lollipops_after = 12
denny_lollipops = jason_lollipops_initial - jason_lollipops_after
result = denny_lollipops
return result
Q: Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?
# solution in Python:
def solution():
\"\"\"Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?\"\"\"
leah_chocolates = 32
sister_chocolates = 42
total_chocolates = leah_chocolates + sister_chocolates
chocolates_eaten = 35
chocolates_left = total_chocolates - chocolates_eaten
result = chocolates_left
return result
Q: If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?
# solution in Python:
def solution():
\"\"\"If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?\"\"\"
cars_initial = 3
cars_arrived = 2
total_cars = cars_initial + cars_arrived
result = total_cars
return result
Q: There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?
# solution in Python:
def solution():
\"\"\"There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?\"\"\"
trees_initial = 15
trees_after = 21
trees_added = trees_after - trees_initial
result = trees_added
return result
Q:
Joe has 10 cars and Bobby has 12. How many do they have together?
# solution in Python:\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " def solution():
\treturn 10 + 12\n",
+ " \n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "
def solution():\n",
+ "\treturn 10 + 12\n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nPalPrompt
\\n\\n\\n - Input:
\\n - \\n
{'question': 'Joe has 10 cars and Bobby has 12. How many do they have together?'}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Q: Olivia has $23. She bought five bagels for $3 each. How much money does she have left?
# solution in Python:
def solution():
\"\"\"Olivia has $23. She bought five bagels for $3 each. How much money does she have left?\"\"\"
money_initial = 23
bagels = 5
bagel_cost = 3
money_spent = bagels * bagel_cost
money_left = money_initial - money_spent
result = money_left
return result
Q: Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?
# solution in Python:
def solution():
\"\"\"Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?\"\"\"
golf_balls_initial = 58
golf_balls_lost_tuesday = 23
golf_balls_lost_wednesday = 2
golf_balls_left = golf_balls_initial - golf_balls_lost_tuesday - golf_balls_lost_wednesday
result = golf_balls_left
return result
Q: There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?
# solution in Python:
def solution():
\"\"\"There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?\"\"\"
computers_initial = 9
computers_per_day = 5
num_days = 4 # 4 days between monday and thursday
computers_added = computers_per_day * num_days
computers_total = computers_initial + computers_added
result = computers_total
return result
Q: Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?
# solution in Python:
def solution():
\"\"\"Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?\"\"\"
toys_initial = 5
mom_toys = 2
dad_toys = 2
total_received = mom_toys + dad_toys
total_toys = toys_initial + total_received
result = total_toys
return result
Q: Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?
# solution in Python:
def solution():
\"\"\"Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?\"\"\"
jason_lollipops_initial = 20
jason_lollipops_after = 12
denny_lollipops = jason_lollipops_initial - jason_lollipops_after
result = denny_lollipops
return result
Q: Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?
# solution in Python:
def solution():
\"\"\"Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?\"\"\"
leah_chocolates = 32
sister_chocolates = 42
total_chocolates = leah_chocolates + sister_chocolates
chocolates_eaten = 35
chocolates_left = total_chocolates - chocolates_eaten
result = chocolates_left
return result
Q: If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?
# solution in Python:
def solution():
\"\"\"If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?\"\"\"
cars_initial = 3
cars_arrived = 2
total_cars = cars_initial + cars_arrived
result = total_cars
return result
Q: There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?
# solution in Python:
def solution():
\"\"\"There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?\"\"\"
trees_initial = 15
trees_after = 21
trees_added = trees_after - trees_initial
result = trees_added
return result
Q:
Joe has 10 cars and Bobby has 12. How many do they have together?
# solution in Python:\\n \\n \\n\\n - Response:
\\n - \\n def solution():
\\treturn 10 + 12\\n \\n\\n - Value:
\\n - \\n
def solution():\\n\\treturn 10 + 12\\n
\\n\\n \\n
\\n')"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "PalPrompt().show(\n",
+ " {\"question\": \"Joe has 10 cars and Bobby has 12. How many do they have together?\"},\n",
+ " \"def solution():\\n\\treturn 10 + 12\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "616a782d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:54.884523Z",
+ "iopub.status.busy": "2023-02-27T14:15:54.884246Z",
+ "iopub.status.idle": "2023-02-27T14:15:54.889558Z",
+ "shell.execute_reply": "2023-02-27T14:15:54.889097Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "PyPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
def solution():\n",
+ "\treturn 10 + 12\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " def solution():
\treturn 10 + 12
print(solution())
\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " 22\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nPyPrompt
\\n\\n\\n - Input:
\\n - \\n
def solution():\\n\\treturn 10 + 12\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n def solution():
\\treturn 10 + 12
print(solution())
\\n \\n \\n\\n - Response:
\\n - \\n 22\\n
\\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "PyPrompt().show(\"def solution():\\n\\treturn 10 + 12\", \"22\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5aad5ea7",
+ "metadata": {},
+ "source": [
+ "View the log."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "a4fb48ac",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:15:54.892000Z",
+ "iopub.status.busy": "2023-02-27T14:15:54.891678Z",
+ "iopub.status.idle": "2023-02-27T14:15:54.914877Z",
+ "shell.execute_reply": "2023-02-27T14:15:54.914134Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15m28b775fd-0862-4c8f-aada-b6158be3b664\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m10.739s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.003s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mquestion\u001b[0m: Melanie is a door-to-door saleswoman. She sold a third of her ' 'vacuum cleaners at the green house, 2 more to the red house, and half of ' 'what was left at the orange house. If Melanie has 5 vacuum cleaners left, ' 'how many did she start with?'\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:44Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m10.736s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Q: Olivia has $23. She bought five bagels for $3 each. How much money does she have left?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Olivia has $23. She bought five bagels for $3 each. How much money does she have left?\"\"\"⏎\n",
+ " │ │ money_initial = 23⏎\n",
+ " │ │ bagels = 5⏎\n",
+ " │ │ bagel_cost = 3⏎\n",
+ " │ │ money_spent = bagels * bagel_cost⏎\n",
+ " │ │ money_left = money_initial - money_spent⏎\n",
+ " │ │ result = money_left⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?\"\"\"⏎\n",
+ " │ │ golf_balls_initial = 58⏎\n",
+ " │ │ golf_balls_lost_tuesday = 23⏎\n",
+ " │ │ golf_balls_lost_wednesday = 2⏎\n",
+ " │ │ golf_balls_left = golf_balls_initial - golf_balls_lost_tuesday - golf_balls_lost_wednesday⏎\n",
+ " │ │ result = golf_balls_left⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?\"\"\"⏎\n",
+ " │ │ computers_initial = 9⏎\n",
+ " │ │ computers_per_day = 5⏎\n",
+ " │ │ num_days = 4 # 4 days between monday and thursday⏎\n",
+ " │ │ computers_added = computers_per_day * num_days⏎\n",
+ " │ │ computers_total = computers_initial + computers_added⏎\n",
+ " │ │ result = computers_total⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?\"\"\"⏎\n",
+ " │ │ toys_initial = 5⏎\n",
+ " │ │ mom_toys = 2⏎\n",
+ " │ │ dad_toys = 2⏎\n",
+ " │ │ total_received = mom_toys + dad_toys⏎\n",
+ " │ │ total_toys = toys_initial + total_received⏎\n",
+ " │ │ result = total_toys⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?\"\"\"⏎\n",
+ " │ │ jason_lollipops_initial = 20⏎\n",
+ " │ │ jason_lollipops_after = 12⏎\n",
+ " │ │ denny_lollipops = jason_lollipops_initial - jason_lollipops_after⏎\n",
+ " │ │ result = denny_lollipops⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?\"\"\"⏎\n",
+ " │ │ leah_chocolates = 32⏎\n",
+ " │ │ sister_chocolates = 42⏎\n",
+ " │ │ total_chocolates = leah_chocolates + sister_chocolates⏎\n",
+ " │ │ chocolates_eaten = 35⏎\n",
+ " │ │ chocolates_left = total_chocolates - chocolates_eaten⏎\n",
+ " │ │ result = chocolates_left⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?\"\"\"⏎\n",
+ " │ │ cars_initial = 3⏎\n",
+ " │ │ cars_arrived = 2⏎\n",
+ " │ │ total_cars = cars_initial + cars_arrived⏎\n",
+ " │ │ result = total_cars⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?\"\"\"⏎\n",
+ " │ │ trees_initial = 15⏎\n",
+ " │ │ trees_after = 21⏎\n",
+ " │ │ trees_added = trees_after - trees_initial⏎\n",
+ " │ │ result = trees_added⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: Melanie is a door-to-door saleswoman. She sold a third of her ' 'vacuum cleaners at the green house, 2 more to the red house, and half of ' 'what was left at the orange house. If Melanie has 5 vacuum cleaners left, ' 'how many did she start with?'⏎\n",
+ " │ │ ⏎\n",
+ " │ │ # solution in Python:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Melanie is a door-to-door saleswoman. She sold a third of her vacuum cleaners at the green house, 2 more to the red house, and half of what was left at the orange house. If Melanie has 5 vacuum cleaners left, how many did she start with?\"\"\"⏎\n",
+ " │ │ vacuum_cleaners_left = 5⏎\n",
+ " │ │ vacuum_cleaners_sold_green = vacuum_cleaners_left // 3⏎\n",
+ " │ │ vacuum_cleaners_sold_red = 2⏎\n",
+ " │ │ vacuum_cleaners_sold_orange = (vacuum_cleaners_left - vacuum_cleaners_sold_green - vacuum_cleaners_sold_red) // 2⏎\n",
+ " │ │ vacuum_cleaners_initial = vacuum_cleaners_left + vacuum_cleaners_sold_green + vacuum_cleaners_sold_red + vacuum_cleaners_sold_orange⏎\n",
+ " │ │ result = vacuum_cleaners_initial⏎\n",
+ " │ │ return result\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mf2a0c10a-9d37-45b0-af51-bc18b0da6877\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Melanie is a door-to-door saleswoman. She sold a third of her vacuum cleaners at the green house, 2 more to the red house, and half of what was left at the orange house. If Melanie has 5 vacuum cleaners left, how many did she start with?\"\"\"⏎\n",
+ " │ │ vacuum_cleaners_left = 5⏎\n",
+ " │ │ vacuum_cleaners_sold_green = vacuum_cleaners_left // 3⏎\n",
+ " │ │ vacuum_cleaners_sold_red = 2⏎\n",
+ " │ │ vacuum_cleaners_sold_orange = (vacuum_cleaners_left - vacuum_cleaners_sold_green - vacuum_cleaners_sold_red) // 2⏎\n",
+ " │ │ vacuum_cleaners_initial = vacuum_cleaners_left + vacuum_cleaners_sold_green + vacuum_cleaners_sold_red + vacuum_cleaners_sold_orange⏎\n",
+ " │ │ result = vacuum_cleaners_initial⏎\n",
+ " │ │ return result\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ def solution():⏎\n",
+ " │ │ \"\"\"Melanie is a door-to-door saleswoman. She sold a third of her vacuum cleaners at the green house, 2 more to the red house, and half of what was left at the orange house. If Melanie has 5 vacuum cleaners left, how many did she start with?\"\"\"⏎\n",
+ " │ │ vacuum_cleaners_left = 5⏎\n",
+ " │ │ vacuum_cleaners_sold_green = vacuum_cleaners_left // 3⏎\n",
+ " │ │ vacuum_cleaners_sold_red = 2⏎\n",
+ " │ │ vacuum_cleaners_sold_orange = (vacuum_cleaners_left - vacuum_cleaners_sold_green - vacuum_cleaners_sold_red) // 2⏎\n",
+ " │ │ vacuum_cleaners_initial = vacuum_cleaners_left + vacuum_cleaners_sold_green + vacuum_cleaners_sold_red + vacuum_cleaners_sold_orange⏎\n",
+ " │ │ result = vacuum_cleaners_initial⏎\n",
+ " │ │ return result⏎\n",
+ " │ │ print(solution())\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: 9⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m18cad0c1-8de2-4459-af6c-fd8426cdacad\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mpal\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:15:43Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m11.063s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mpal\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:15:54Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "minichain.show_log(\"pal.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/pal.log b/pal.log
new file mode 100644
index 0000000000000000000000000000000000000000..dba3dafa53439001268ee672569ce3a0f0aa7112
--- /dev/null
+++ b/pal.log
@@ -0,0 +1,6 @@
+{"action_status": "started", "timestamp": 1678759606.6456344, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.645799, "task_uuid": "147ddfba-ef61-4a52-9f0c-1107c3fbaa6a", "action_type": "pal", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9333436, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.9335442, "task_uuid": "3246fe37-fa91-436b-96be-67648cd1ef76", "action_type": "gatsby", "task_level": [2]}
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/pal.pmpt.tpl b/pal.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..8ce41e403717ecc7072c11cdad0088b2e5a7cf32
--- /dev/null
+++ b/pal.pmpt.tpl
@@ -0,0 +1,148 @@
+Q: Olivia has $23. She bought five bagels for $3 each. How much money does she have left?
+
+# solution in Python:
+
+
+def solution():
+ """Olivia has $23. She bought five bagels for $3 each. How much money does she have left?"""
+ money_initial = 23
+ bagels = 5
+ bagel_cost = 3
+ money_spent = bagels * bagel_cost
+ money_left = money_initial - money_spent
+ result = money_left
+ return result
+
+
+
+
+
+Q: Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?
+
+# solution in Python:
+
+
+def solution():
+ """Michael had 58 golf balls. On tuesday, he lost 23 golf balls. On wednesday, he lost 2 more. How many golf balls did he have at the end of wednesday?"""
+ golf_balls_initial = 58
+ golf_balls_lost_tuesday = 23
+ golf_balls_lost_wednesday = 2
+ golf_balls_left = golf_balls_initial - golf_balls_lost_tuesday - golf_balls_lost_wednesday
+ result = golf_balls_left
+ return result
+
+
+
+
+
+Q: There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?
+
+# solution in Python:
+
+
+def solution():
+ """There were nine computers in the server room. Five more computers were installed each day, from monday to thursday. How many computers are now in the server room?"""
+ computers_initial = 9
+ computers_per_day = 5
+ num_days = 4 # 4 days between monday and thursday
+ computers_added = computers_per_day * num_days
+ computers_total = computers_initial + computers_added
+ result = computers_total
+ return result
+
+
+
+
+
+Q: Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?
+
+# solution in Python:
+
+
+def solution():
+ """Shawn has five toys. For Christmas, he got two toys each from his mom and dad. How many toys does he have now?"""
+ toys_initial = 5
+ mom_toys = 2
+ dad_toys = 2
+ total_received = mom_toys + dad_toys
+ total_toys = toys_initial + total_received
+ result = total_toys
+ return result
+
+
+
+
+
+Q: Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?
+
+# solution in Python:
+
+
+def solution():
+ """Jason had 20 lollipops. He gave Denny some lollipops. Now Jason has 12 lollipops. How many lollipops did Jason give to Denny?"""
+ jason_lollipops_initial = 20
+ jason_lollipops_after = 12
+ denny_lollipops = jason_lollipops_initial - jason_lollipops_after
+ result = denny_lollipops
+ return result
+
+
+
+
+
+Q: Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?
+
+# solution in Python:
+
+
+def solution():
+ """Leah had 32 chocolates and her sister had 42. If they ate 35, how many pieces do they have left in total?"""
+ leah_chocolates = 32
+ sister_chocolates = 42
+ total_chocolates = leah_chocolates + sister_chocolates
+ chocolates_eaten = 35
+ chocolates_left = total_chocolates - chocolates_eaten
+ result = chocolates_left
+ return result
+
+
+
+
+
+Q: If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?
+
+# solution in Python:
+
+
+def solution():
+ """If there are 3 cars in the parking lot and 2 more cars arrive, how many cars are in the parking lot?"""
+ cars_initial = 3
+ cars_arrived = 2
+ total_cars = cars_initial + cars_arrived
+ result = total_cars
+ return result
+
+
+
+
+
+Q: There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?
+
+# solution in Python:
+
+
+def solution():
+ """There are 15 trees in the grove. Grove workers will plant trees in the grove today. After they are done, there will be 21 trees. How many trees did the grove workers plant today?"""
+ trees_initial = 15
+ trees_after = 21
+ trees_added = trees_after - trees_initial
+ result = trees_added
+ return result
+
+
+
+
+
+Q: {{question}}
+
+# solution in Python:
\ No newline at end of file
diff --git a/pal.py b/pal.py
new file mode 100644
index 0000000000000000000000000000000000000000..d22696e0c6a76ac4e317a5f660426295ba8a0149
--- /dev/null
+++ b/pal.py
@@ -0,0 +1,50 @@
+# Adapted from Prompt-aided Language Models [PAL](https://arxiv.org/pdf/2211.10435.pdf).
+
+import minichain
+
+# PAL Prompt
+
+class PalPrompt(minichain.TemplatePrompt):
+ template_file = "pal.pmpt.tpl"
+
+# Prompt to run and print python code.
+
+class PyPrompt(minichain.Prompt):
+ def prompt(self, inp):
+ return inp + "\nprint(solution())"
+
+ def parse(self, response, inp):
+ return int(response)
+
+# Chain the prompts.
+
+with minichain.start_chain("pal") as backend:
+ prompt = PalPrompt(backend.OpenAI()).chain(PyPrompt(backend.Python()))
+ # result = prompt({"question": question})
+
+question = "Melanie is a door-to-door saleswoman. She sold a third of her " \
+ "vacuum cleaners at the green house, 2 more to the red house, and half of " \
+ "what was left at the orange house. If Melanie has 5 vacuum cleaners left, " \
+ "how many did she start with?"
+
+gradio = prompt.to_gradio(fields =["question"],
+ examples=[question])
+if __name__ == "__main__":
+ gradio.launch()
+
+# View prompt examples.
+
+# # + tags=["hide_inp"]
+# PalPrompt().show(
+# {"question": "Joe has 10 cars and Bobby has 12. How many do they have together?"},
+# "def solution():\n\treturn 10 + 12",
+# )
+# # -
+
+# # + tags=["hide_inp"]
+# PyPrompt().show("def solution():\n\treturn 10 + 12", "22")
+# # -
+
+# # View the log.
+
+# minichain.show_log("pal.log")
diff --git a/parallel.py b/parallel.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/qa.ipynb b/qa.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..f282bcd28b67a88991e5aa7e643e3abc28106ff3
--- /dev/null
+++ b/qa.ipynb
@@ -0,0 +1,2256 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "82e03251",
+ "metadata": {},
+ "source": [
+ "# QA"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e773337a",
+ "metadata": {},
+ "source": [
+ "Questions answering with embeddings. Adapted from [OpenAI\n",
+ "Notebook](https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "86d12b2c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:42.801781Z",
+ "iopub.status.busy": "2023-02-27T15:19:42.801407Z",
+ "iopub.status.idle": "2023-02-27T15:19:43.539157Z",
+ "shell.execute_reply": "2023-02-27T15:19:43.538385Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import datasets\n",
+ "import numpy as np\n",
+ "from minichain import EmbeddingPrompt, TemplatePrompt, show_log, start_chain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "64a5bf4e",
+ "metadata": {},
+ "source": [
+ "We use Hugging Face Datasets as the database by assigning\n",
+ "a FAISS index."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "320e7cb9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:43.541998Z",
+ "iopub.status.busy": "2023-02-27T15:19:43.541697Z",
+ "iopub.status.idle": "2023-02-27T15:19:43.623765Z",
+ "shell.execute_reply": "2023-02-27T15:19:43.623118Z"
+ },
+ "lines_to_next_cell": 2
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "ba9ee3f061c54bff8b58428a0040bf9b",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/4 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/plain": [
+ "Dataset({\n",
+ " features: ['title', 'heading', 'content', 'tokens', 'embeddings'],\n",
+ " num_rows: 3964\n",
+ "})"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "olympics = datasets.load_from_disk(\"olympics.data\")\n",
+ "olympics.add_faiss_index(\"embeddings\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "cf93dbd4",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "Fast KNN retieval prompt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "dc0ae0e5",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:43.626751Z",
+ "iopub.status.busy": "2023-02-27T15:19:43.626367Z",
+ "iopub.status.idle": "2023-02-27T15:19:43.630279Z",
+ "shell.execute_reply": "2023-02-27T15:19:43.629736Z"
+ },
+ "lines_to_next_cell": 2
+ },
+ "outputs": [],
+ "source": [
+ "class KNNPrompt(EmbeddingPrompt):\n",
+ " def find(self, out, inp):\n",
+ " res = olympics.get_nearest_examples(\"embeddings\", np.array(out), 3)\n",
+ " return {\"question\": inp, \"docs\": res.examples[\"content\"]}"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0d87d002",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "QA prompt to ask question with examples"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "b4f90048",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:43.633024Z",
+ "iopub.status.busy": "2023-02-27T15:19:43.632612Z",
+ "iopub.status.idle": "2023-02-27T15:19:43.636053Z",
+ "shell.execute_reply": "2023-02-27T15:19:43.635457Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "class QAPrompt(TemplatePrompt):\n",
+ " template_file = \"qa.pmpt.tpl\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "51607268",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:43.638631Z",
+ "iopub.status.busy": "2023-02-27T15:19:43.638243Z",
+ "iopub.status.idle": "2023-02-27T15:19:48.087701Z",
+ "shell.execute_reply": "2023-02-27T15:19:48.086901Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Italian athlete Gianmarco Tamberi and Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal.\n"
+ ]
+ }
+ ],
+ "source": [
+ "with start_chain(\"qa\") as backend:\n",
+ " question = \"Who won the 2020 Summer Olympics men's high jump?\"\n",
+ " prompt = KNNPrompt(backend.OpenAIEmbed()).chain(QAPrompt(backend.OpenAI()))\n",
+ " result = prompt(question)\n",
+ " print(result)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "d98b9fce",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:48.092056Z",
+ "iopub.status.busy": "2023-02-27T15:19:48.091273Z",
+ "iopub.status.idle": "2023-02-27T15:19:48.143041Z",
+ "shell.execute_reply": "2023-02-27T15:19:48.142453Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "QAPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'question': 'Who won the race?', 'docs': ['doc1', 'doc2', 'doc3']}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Answer the question as truthfully as possible using the provided context, and if the answer is not contained within the text below, say \"I don't know.\"
Context:
* doc1
* doc2
* doc3
Q:
Who won the race?
A:
\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " Joe Bob\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "\n",
+ "\n",
+ "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nQAPrompt
\\n\\n\\n - Input:
\\n - \\n
{'question': 'Who won the race?', 'docs': ['doc1', 'doc2', 'doc3']}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Answer the question as truthfully as possible using the provided context, and if the answer is not contained within the text below, say \"I don\\'t know.\"
Context:
* doc1
* doc2
* doc3
Q:
Who won the race?
A:
\\n \\n \\n\\n - Response:
\\n - \\n Joe Bob\\n
\\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "QAPrompt().show(\n",
+ " {\"question\": \"Who won the race?\", \"docs\": [\"doc1\", \"doc2\", \"doc3\"]}, \"Joe Bob\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "27d24e28",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T15:19:48.146156Z",
+ "iopub.status.busy": "2023-02-27T15:19:48.145762Z",
+ "iopub.status.idle": "2023-02-27T15:19:48.294393Z",
+ "shell.execute_reply": "2023-02-27T15:19:48.293653Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15m6483e094-0601-4a93-8394-c753301f1a18\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:43Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.570s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:43Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: Who won the 2020 Summer Olympics men's high jump?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:43Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:43Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.565s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Who won the 2020 Summer Olympics men's high jump?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.005s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m0\u001b[0m: 0.011016231030225754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1\u001b[0m: -0.0031887420918792486\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m2\u001b[0m: 0.014024118892848492\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m3\u001b[0m: -0.022197451442480087\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m4\u001b[0m: 0.007824316620826721\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m5\u001b[0m: 0.027616726234555244\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m6\u001b[0m: -0.02050948143005371\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m7\u001b[0m: -0.026829853653907776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m8\u001b[0m: -0.011498508043587208\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m9\u001b[0m: -0.005558881442993879\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m10\u001b[0m: 0.015267887152731419\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m11\u001b[0m: 0.006593239493668079\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m12\u001b[0m: 0.002844484755769372\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m13\u001b[0m: -0.018999191001057625\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m14\u001b[0m: 0.028073621913790703\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m15\u001b[0m: -0.031906455755233765\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m16\u001b[0m: 0.015661323443055153\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m17\u001b[0m: -0.0171843059360981\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m18\u001b[0m: 0.01038800086826086\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m19\u001b[0m: -0.02090291678905487\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m20\u001b[0m: -0.028454367071390152\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m21\u001b[0m: -0.00035179281258024275\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m22\u001b[0m: -0.0003016216796822846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m23\u001b[0m: 0.010077059268951416\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m24\u001b[0m: 0.02153749391436577\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m25\u001b[0m: 0.0013873407151550055\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m26\u001b[0m: 0.039749812334775925\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m27\u001b[0m: -0.018148859962821007\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m28\u001b[0m: 0.023758508265018463\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m29\u001b[0m: -0.03817606344819069\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m30\u001b[0m: 0.015889771282672882\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m31\u001b[0m: 0.022425899282097816\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m32\u001b[0m: -0.019253021106123924\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m33\u001b[0m: -0.009359989315271378\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m34\u001b[0m: -0.027439044788479805\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m35\u001b[0m: -0.010000910609960556\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m36\u001b[0m: -0.026931384578347206\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m37\u001b[0m: -0.002877800026908517\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m38\u001b[0m: 0.031043434515595436\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m39\u001b[0m: -0.02509111538529396\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m40\u001b[0m: 0.0162958987057209\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m41\u001b[0m: 0.011980785988271236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m42\u001b[0m: -0.011828487738966942\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m43\u001b[0m: -0.007957576774060726\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m44\u001b[0m: -0.00014972015924286097\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m45\u001b[0m: -0.020065277814865112\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m46\u001b[0m: 0.02974889986217022\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m47\u001b[0m: -0.02096637524664402\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m48\u001b[0m: -0.010971810668706894\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m49\u001b[0m: 0.019481468945741653\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m50\u001b[0m: -0.0048259468749165535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m51\u001b[0m: 0.018123477697372437\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m52\u001b[0m: -0.015470950864255428\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m53\u001b[0m: -0.013402234762907028\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m54\u001b[0m: -0.01470946054905653\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m55\u001b[0m: -0.022108610719442368\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m56\u001b[0m: 0.007805278990417719\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m57\u001b[0m: 0.0018862757133319974\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m58\u001b[0m: -0.0007579211378470063\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m59\u001b[0m: 0.0027794407214969397\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m60\u001b[0m: 0.003328348509967327\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m61\u001b[0m: 0.013313394039869308\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m62\u001b[0m: -0.01018493715673685\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m63\u001b[0m: 0.022552814334630966\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m64\u001b[0m: 0.00430876761674881\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m65\u001b[0m: -0.0007261923747137189\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m66\u001b[0m: -0.012367877177894115\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m67\u001b[0m: -0.0035663144662976265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m68\u001b[0m: -0.02919047325849533\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m69\u001b[0m: 0.009264802560210228\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m70\u001b[0m: 0.007189740426838398\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m71\u001b[0m: -0.0008376396726816893\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m72\u001b[0m: 0.011796758510172367\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m73\u001b[0m: -0.008344667963683605\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m74\u001b[0m: 0.0290889423340559\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m75\u001b[0m: -0.002057611243799329\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m76\u001b[0m: -0.015978612005710602\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m77\u001b[0m: 0.0033220029436051846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m78\u001b[0m: -0.01272323913872242\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m79\u001b[0m: -0.003233162220567465\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m80\u001b[0m: 0.0076085603795945644\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m81\u001b[0m: -0.027134450152516365\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m82\u001b[0m: -0.013694140128791332\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m83\u001b[0m: 0.005850786343216896\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m84\u001b[0m: 0.000519162102136761\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m85\u001b[0m: -0.0075704860500991344\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m86\u001b[0m: -0.00018184554937761277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m87\u001b[0m: 0.008890403434634209\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m88\u001b[0m: -0.013960661366581917\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m89\u001b[0m: -0.027185214683413506\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m90\u001b[0m: 0.013275319710373878\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m91\u001b[0m: 0.022146685048937798\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m92\u001b[0m: 0.024367699399590492\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m93\u001b[0m: 0.005562054459005594\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m94\u001b[0m: -0.02946968749165535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m95\u001b[0m: -0.00100421579554677\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m96\u001b[0m: -0.026322193443775177\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m97\u001b[0m: -0.01014686282724142\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m98\u001b[0m: -0.015521717257797718\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m99\u001b[0m: -0.0021401059348136187\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m100\u001b[0m: -0.02543378621339798\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m101\u001b[0m: -0.04320190101861954\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m102\u001b[0m: -0.02446923218667507\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m103\u001b[0m: -0.012101355008780956\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m104\u001b[0m: -0.006263260263949633\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m105\u001b[0m: -0.004413472954183817\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m106\u001b[0m: -0.004451547283679247\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m107\u001b[0m: 0.0007840973557904363\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m108\u001b[0m: 0.012196541763842106\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m109\u001b[0m: 0.0032188843470066786\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m110\u001b[0m: -0.01708277314901352\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m111\u001b[0m: 0.013262628577649593\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m112\u001b[0m: 0.004134259652346373\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m113\u001b[0m: -0.052999746054410934\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m114\u001b[0m: -0.011860216036438942\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m115\u001b[0m: -0.003623426193371415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m116\u001b[0m: 0.022755878046154976\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m117\u001b[0m: 0.001676865853369236\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m118\u001b[0m: 0.00012334561324678361\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m119\u001b[0m: -0.013973353430628777\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m120\u001b[0m: 0.027565959841012955\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m121\u001b[0m: -0.0023955225478857756\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m122\u001b[0m: 0.013732214458286762\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m123\u001b[0m: -0.011339864693582058\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m124\u001b[0m: 0.009601127356290817\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m125\u001b[0m: 0.027616726234555244\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m126\u001b[0m: -0.04129817336797714\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m127\u001b[0m: -0.008941168896853924\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m128\u001b[0m: 0.01665126159787178\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m129\u001b[0m: 0.012310764752328396\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m130\u001b[0m: 0.02898740954697132\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m131\u001b[0m: -0.001707008108496666\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m132\u001b[0m: 0.014569854363799095\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m133\u001b[0m: -0.0010541885858401656\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m134\u001b[0m: 0.002201976953074336\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m135\u001b[0m: 0.05355817452073097\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m136\u001b[0m: 0.013935278169810772\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m137\u001b[0m: -0.01014686282724142\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m138\u001b[0m: -0.007767204195261002\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m139\u001b[0m: -0.024342317134141922\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m140\u001b[0m: -0.006437768694013357\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m141\u001b[0m: 0.005190827883780003\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m142\u001b[0m: -0.023466601967811584\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m143\u001b[0m: 0.02090291678905487\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m144\u001b[0m: -0.008839637041091919\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m145\u001b[0m: 0.026322193443775177\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m146\u001b[0m: 0.005720698274672031\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m147\u001b[0m: 0.01036261860281229\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m148\u001b[0m: 0.01458254549652338\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m149\u001b[0m: 0.016130909323692322\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m150\u001b[0m: 0.0034996839240193367\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m151\u001b[0m: -0.002379658166319132\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m152\u001b[0m: 0.0172477625310421\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m153\u001b[0m: 0.014810992404818535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m154\u001b[0m: 0.011492162942886353\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m155\u001b[0m: 0.0015229812124744058\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m156\u001b[0m: -0.015915153548121452\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m157\u001b[0m: 0.01618167571723461\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m158\u001b[0m: -0.009797845967113972\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m159\u001b[0m: -0.0332263745367527\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m160\u001b[0m: 0.020027203485369682\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m161\u001b[0m: -0.005498596932739019\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m162\u001b[0m: 0.0003081657341681421\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m163\u001b[0m: -0.03434322774410248\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m164\u001b[0m: -0.015927845612168312\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m165\u001b[0m: 0.02102983370423317\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m166\u001b[0m: 0.03497780114412308\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m167\u001b[0m: -0.005174963269382715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m168\u001b[0m: -0.00520034646615386\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m169\u001b[0m: 0.0082431361079216\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m170\u001b[0m: -0.0006036399863660336\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m171\u001b[0m: -0.00023241328017320484\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m172\u001b[0m: -0.026398342102766037\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m173\u001b[0m: 0.02570030838251114\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m174\u001b[0m: 0.013694140128791332\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m175\u001b[0m: 0.030713455751538277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m176\u001b[0m: -0.006644005887210369\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m177\u001b[0m: -0.006618622690439224\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m178\u001b[0m: -0.01019128318876028\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m179\u001b[0m: 0.013668756932020187\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m180\u001b[0m: 0.004058110527694225\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m181\u001b[0m: -0.0037852430250495672\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m182\u001b[0m: 0.0213217381387949\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m183\u001b[0m: 0.0034996839240193367\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m184\u001b[0m: -0.006599585525691509\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m185\u001b[0m: 0.015521717257797718\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m186\u001b[0m: 0.024291550740599632\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m187\u001b[0m: -0.009049046784639359\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m188\u001b[0m: -0.0035853516310453415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m189\u001b[0m: -0.007595868781208992\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m190\u001b[0m: 0.015864387154579163\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m191\u001b[0m: 6.59363649901934e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m192\u001b[0m: -0.01646088995039463\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m193\u001b[0m: -0.013656064867973328\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m194\u001b[0m: -0.6327479481697083\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m195\u001b[0m: -0.014481013640761375\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m196\u001b[0m: -0.019088031724095345\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m197\u001b[0m: 0.007722784299403429\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m198\u001b[0m: 0.031144967302680016\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m199\u001b[0m: 0.04142509028315544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m200\u001b[0m: 0.012139429338276386\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m201\u001b[0m: 0.04652707651257515\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m202\u001b[0m: 0.0006456805858761072\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m203\u001b[0m: -0.001285808626562357\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m204\u001b[0m: -0.00026136578526347876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m205\u001b[0m: 0.02097906731069088\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m206\u001b[0m: 0.005000455304980278\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m207\u001b[0m: -0.014354098588228226\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m208\u001b[0m: -0.017818881198763847\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m209\u001b[0m: -0.0169304758310318\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m210\u001b[0m: 0.014569854363799095\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m211\u001b[0m: 0.0033664230722934008\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m212\u001b[0m: -0.00023340480402112007\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m213\u001b[0m: -0.0009423446608707309\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m214\u001b[0m: -0.013782979920506477\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m215\u001b[0m: 0.018072711303830147\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m216\u001b[0m: -0.014430247247219086\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m217\u001b[0m: 0.0004255622043274343\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m218\u001b[0m: 0.003328348509967327\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m219\u001b[0m: -0.01238691434264183\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m220\u001b[0m: 0.0031348031479865313\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m221\u001b[0m: -0.012444025836884975\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m222\u001b[0m: -0.028352834284305573\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m223\u001b[0m: 0.03698306158185005\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m224\u001b[0m: -0.011219295673072338\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m225\u001b[0m: 0.03447014093399048\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m226\u001b[0m: -0.0033632502891123295\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m227\u001b[0m: 0.014354098588228226\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m228\u001b[0m: 0.035206250846385956\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m229\u001b[0m: -0.02878434583544731\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m230\u001b[0m: -0.015242503955960274\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m231\u001b[0m: 0.03012964501976967\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m232\u001b[0m: -0.008833291009068489\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m233\u001b[0m: 0.03454628959298134\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m234\u001b[0m: 0.006834378466010094\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m235\u001b[0m: -0.013389543630182743\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m236\u001b[0m: 0.016130909323692322\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m237\u001b[0m: -0.01686701737344265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m238\u001b[0m: 0.002549407072365284\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m239\u001b[0m: 0.026956768706440926\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m240\u001b[0m: 0.00093837856547907\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m241\u001b[0m: -0.01742544397711754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m242\u001b[0m: 0.007031096611171961\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m243\u001b[0m: -0.022083228453993797\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m244\u001b[0m: -0.004115222487598658\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m245\u001b[0m: -0.017907721921801567\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m246\u001b[0m: 0.013706831261515617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m247\u001b[0m: 0.018123477697372437\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m248\u001b[0m: -0.009271148592233658\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m249\u001b[0m: 0.006218839902430773\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m250\u001b[0m: 0.0008186024497263134\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m251\u001b[0m: -0.006057023536413908\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m252\u001b[0m: -0.0013318153796717525\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m253\u001b[0m: -0.00517813628539443\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m254\u001b[0m: -0.023035092279314995\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m255\u001b[0m: 0.001496011740528047\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m256\u001b[0m: -0.0333532877266407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m257\u001b[0m: 0.0020623705349862576\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m258\u001b[0m: 0.01723507046699524\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m259\u001b[0m: -0.007411842234432697\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m260\u001b[0m: -0.014646003022789955\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m261\u001b[0m: 0.011891945265233517\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m262\u001b[0m: 0.03657693415880203\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m263\u001b[0m: -0.009467867203056812\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m264\u001b[0m: 0.002671562833711505\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m265\u001b[0m: 0.000494968902785331\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m266\u001b[0m: 0.00429290346801281\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m267\u001b[0m: 0.03383556753396988\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m268\u001b[0m: 0.017856955528259277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m269\u001b[0m: 0.020103352144360542\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m270\u001b[0m: 0.006037985906004906\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m271\u001b[0m: -0.01748890057206154\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m272\u001b[0m: -0.011238332837820053\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m273\u001b[0m: -0.0007610940374433994\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m274\u001b[0m: -0.014696769416332245\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m275\u001b[0m: -0.010343581438064575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m276\u001b[0m: 0.021905547007918358\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m277\u001b[0m: -0.02482459507882595\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m278\u001b[0m: 0.018593063578009605\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m279\u001b[0m: 0.010768746957182884\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m280\u001b[0m: -0.04475026577711105\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m281\u001b[0m: 0.008338321931660175\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m282\u001b[0m: 0.013516458682715893\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m283\u001b[0m: 0.0004517384513746947\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m284\u001b[0m: 0.030155029147863388\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m285\u001b[0m: 0.027743641287088394\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m286\u001b[0m: 0.008915785700082779\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m287\u001b[0m: 0.026804469525814056\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m288\u001b[0m: -0.009715351276099682\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m289\u001b[0m: 0.02100444957613945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m290\u001b[0m: -0.011308135464787483\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m291\u001b[0m: -0.004851330071687698\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m292\u001b[0m: 0.022019769996404648\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m293\u001b[0m: -0.022628962993621826\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m294\u001b[0m: 0.015737472102046013\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m295\u001b[0m: -0.012405951507389545\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m296\u001b[0m: -0.011181220412254333\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m297\u001b[0m: -0.02066177874803543\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m298\u001b[0m: -0.002449461491778493\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m299\u001b[0m: 0.006206148769706488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m300\u001b[0m: 0.013694140128791332\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m301\u001b[0m: -0.0017641199519857764\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m302\u001b[0m: 0.02891126088798046\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m303\u001b[0m: -0.03817606344819069\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m304\u001b[0m: 0.01630859076976776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m305\u001b[0m: -0.012837463058531284\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m306\u001b[0m: 0.008877711370587349\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m307\u001b[0m: 0.01035627257078886\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m308\u001b[0m: 0.01694316603243351\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m309\u001b[0m: -0.030561156570911407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m310\u001b[0m: 0.014442939311265945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m311\u001b[0m: 0.0009732802282087505\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m312\u001b[0m: -0.012437679804861546\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m313\u001b[0m: -0.027007535099983215\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m314\u001b[0m: 0.0172477625310421\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m315\u001b[0m: -0.007894119247794151\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m316\u001b[0m: 0.02066177874803543\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m317\u001b[0m: 0.009442484006285667\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m318\u001b[0m: 0.02515457384288311\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m319\u001b[0m: 0.026398342102766037\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m320\u001b[0m: 0.006745537742972374\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m321\u001b[0m: -0.0322110541164875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m322\u001b[0m: -0.019418010488152504\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m323\u001b[0m: 0.0013873407151550055\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m324\u001b[0m: -0.00316177261993289\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m325\u001b[0m: -0.001273910398595035\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m326\u001b[0m: 0.04147585481405258\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m327\u001b[0m: -0.0007341245654970407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m328\u001b[0m: 0.04066359996795654\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m329\u001b[0m: 0.0036837109364569187\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m330\u001b[0m: -0.013351469300687313\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m331\u001b[0m: 0.01069894339889288\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m332\u001b[0m: 0.022248217836022377\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m333\u001b[0m: -0.019912980496883392\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m334\u001b[0m: -0.018681902438402176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m335\u001b[0m: 0.0052923597395420074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m336\u001b[0m: 0.009905723854899406\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m337\u001b[0m: -0.015267887152731419\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m338\u001b[0m: -0.01641012355685234\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m339\u001b[0m: -0.02977428399026394\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m340\u001b[0m: -0.015077514573931694\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m341\u001b[0m: 0.018719978630542755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m342\u001b[0m: 0.013224554248154163\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m343\u001b[0m: 0.015153663232922554\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m344\u001b[0m: 0.019963745027780533\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m345\u001b[0m: -0.015102897770702839\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m346\u001b[0m: 0.0027762679383158684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m347\u001b[0m: -0.009004626423120499\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m348\u001b[0m: -0.008604844100773335\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m349\u001b[0m: -0.013161096721887589\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m350\u001b[0m: 0.015483642928302288\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m351\u001b[0m: -0.01667664386332035\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m352\u001b[0m: -0.0060665421187877655\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m353\u001b[0m: -0.013402234762907028\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m354\u001b[0m: 0.007760858628898859\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m355\u001b[0m: 0.009436137974262238\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m356\u001b[0m: -0.000592931522987783\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m357\u001b[0m: -0.0034489179961383343\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m358\u001b[0m: 0.016016686335206032\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m359\u001b[0m: -0.011009884998202324\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m360\u001b[0m: -0.003962924238294363\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m361\u001b[0m: -0.003394979052245617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m362\u001b[0m: -0.015229812823235989\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m363\u001b[0m: -0.012704201973974705\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m364\u001b[0m: 0.023174697533249855\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m365\u001b[0m: -0.0009137887391261756\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m366\u001b[0m: 0.008065454661846161\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m367\u001b[0m: 0.022743185982108116\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m368\u001b[0m: -0.015585174784064293\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m369\u001b[0m: 0.01644819788634777\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m370\u001b[0m: -0.004578462336212397\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m371\u001b[0m: -0.01746351830661297\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m372\u001b[0m: -0.01474753487855196\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m373\u001b[0m: 0.01703200675547123\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m374\u001b[0m: 0.006479016039520502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m375\u001b[0m: 0.011346210725605488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m376\u001b[0m: -0.027667492628097534\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m377\u001b[0m: -0.017945796251296997\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m378\u001b[0m: 0.016092834994196892\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m379\u001b[0m: 0.015496334061026573\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m380\u001b[0m: -0.019570309668779373\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m381\u001b[0m: 0.018009252846240997\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m382\u001b[0m: 0.0164862722158432\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m383\u001b[0m: 0.0063076806254684925\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m384\u001b[0m: -0.01641012355685234\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m385\u001b[0m: 0.01065452303737402\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m386\u001b[0m: 0.019862214103341103\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m387\u001b[0m: 0.014316023327410221\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m388\u001b[0m: 0.015369419008493423\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m389\u001b[0m: -0.025776457041502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m390\u001b[0m: 0.04576558619737625\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m391\u001b[0m: 0.007107245735824108\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m392\u001b[0m: 0.009182307869195938\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m393\u001b[0m: 0.02148672752082348\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m394\u001b[0m: -0.007316655945032835\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m395\u001b[0m: 0.017945796251296997\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m396\u001b[0m: 0.018999191001057625\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m397\u001b[0m: 0.008509657345712185\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m398\u001b[0m: 0.018136167898774147\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m399\u001b[0m: 0.013161096721887589\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m400\u001b[0m: -0.004883058834820986\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m401\u001b[0m: -0.01745082624256611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m402\u001b[0m: -0.004483276046812534\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m403\u001b[0m: -0.012069626711308956\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m404\u001b[0m: 0.00874445028603077\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m405\u001b[0m: -0.017717348411679268\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m406\u001b[0m: -0.018808819353580475\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m407\u001b[0m: -0.001388927223160863\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m408\u001b[0m: 0.0005195587291382253\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m409\u001b[0m: 0.007189740426838398\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m410\u001b[0m: -0.019659150391817093\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m411\u001b[0m: 0.022578196600079536\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m412\u001b[0m: -0.01628320850431919\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m413\u001b[0m: 0.006412385497242212\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m414\u001b[0m: 0.0078116245567798615\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m415\u001b[0m: -0.0216390248388052\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m416\u001b[0m: 0.008395434357225895\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m417\u001b[0m: -0.03282024711370468\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m418\u001b[0m: -0.007837007753551006\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m419\u001b[0m: 0.01661318726837635\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m420\u001b[0m: 0.0038867751136422157\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m421\u001b[0m: 0.011454088613390923\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m422\u001b[0m: 0.016092834994196892\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m423\u001b[0m: -0.010978156700730324\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m424\u001b[0m: -0.023491986095905304\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m425\u001b[0m: 0.005489078350365162\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m426\u001b[0m: 0.018174242228269577\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m427\u001b[0m: 0.005758773069828749\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m428\u001b[0m: -0.004162815399467945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m429\u001b[0m: -0.03304869309067726\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m430\u001b[0m: 0.005501769948750734\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m431\u001b[0m: -0.010851241648197174\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m432\u001b[0m: 0.007456262595951557\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m433\u001b[0m: 0.000860643049236387\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m434\u001b[0m: 0.024215402081608772\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m435\u001b[0m: -0.002013190882280469\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m436\u001b[0m: 0.006399694364517927\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m437\u001b[0m: -0.011060651391744614\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m438\u001b[0m: 0.023682357743382454\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m439\u001b[0m: -0.024151943624019623\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m440\u001b[0m: 0.018389998003840446\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m441\u001b[0m: -0.007697401102632284\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m442\u001b[0m: -0.027362896129488945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m443\u001b[0m: 0.0032458538189530373\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m444\u001b[0m: 0.002803237410262227\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m445\u001b[0m: -0.004470584448426962\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m446\u001b[0m: -0.01657511293888092\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m447\u001b[0m: -0.003436226397752762\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m448\u001b[0m: 0.012907265685498714\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m449\u001b[0m: -0.020052585750818253\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m450\u001b[0m: -0.0037884158082306385\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m451\u001b[0m: -0.0043753981590271\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m452\u001b[0m: 0.005197173450142145\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m453\u001b[0m: 0.031018052250146866\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m454\u001b[0m: -0.015496334061026573\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m455\u001b[0m: 0.014239874668419361\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m456\u001b[0m: 0.01681625097990036\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m457\u001b[0m: 0.001810126705095172\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m458\u001b[0m: 0.015064822509884834\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m459\u001b[0m: -0.006202975753694773\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m460\u001b[0m: -0.02099175751209259\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m461\u001b[0m: -0.011898291297256947\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m462\u001b[0m: -0.0015785066643729806\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m463\u001b[0m: -0.03718612715601921\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m464\u001b[0m: -0.009461521171033382\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m465\u001b[0m: -0.003128457348793745\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m466\u001b[0m: 0.02128366380929947\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m467\u001b[0m: 0.006266433279961348\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m468\u001b[0m: 0.023200081661343575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m469\u001b[0m: 0.003325175726786256\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m470\u001b[0m: -0.011358901858329773\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m471\u001b[0m: -0.004838638473302126\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m472\u001b[0m: 0.018199626356363297\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m473\u001b[0m: 0.00424848310649395\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m474\u001b[0m: -0.03332790732383728\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m475\u001b[0m: -0.04279577359557152\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m476\u001b[0m: 0.0016943166265264153\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m477\u001b[0m: 0.011987132020294666\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m478\u001b[0m: -0.015166355296969414\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m479\u001b[0m: -0.02870819717645645\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m480\u001b[0m: 0.003801107406616211\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m481\u001b[0m: 0.026119127869606018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m482\u001b[0m: -0.044293370097875595\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m483\u001b[0m: 0.031322646886110306\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m484\u001b[0m: -0.0006782026030123234\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m485\u001b[0m: 0.012272690422832966\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m486\u001b[0m: -0.01745082624256611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m487\u001b[0m: -0.012234616093337536\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m488\u001b[0m: -0.005171790719032288\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m489\u001b[0m: -0.013465692289173603\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m490\u001b[0m: 0.04292268678545952\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m491\u001b[0m: -0.0024066276382654905\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m492\u001b[0m: 0.018719978630542755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m493\u001b[0m: -0.02567492611706257\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m494\u001b[0m: 0.003547277068719268\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m495\u001b[0m: -0.0288351122289896\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m496\u001b[0m: 0.014696769416332245\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m497\u001b[0m: -0.0252687968313694\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m498\u001b[0m: 0.05980239808559418\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m499\u001b[0m: 0.014024118892848492\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m500\u001b[0m: -0.000474741798825562\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m501\u001b[0m: -0.014950599521398544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m502\u001b[0m: 0.0022067364770919085\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m503\u001b[0m: 0.007830661721527576\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m504\u001b[0m: 0.01630859076976776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m505\u001b[0m: -0.030738838016986847\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m506\u001b[0m: -0.026017596945166588\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m507\u001b[0m: 0.01271689310669899\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m508\u001b[0m: 0.009321914054453373\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m509\u001b[0m: -0.013973353430628777\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m510\u001b[0m: -0.01733660325407982\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m511\u001b[0m: -0.02125827968120575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m512\u001b[0m: 0.006485361605882645\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m513\u001b[0m: -0.018288467079401016\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m514\u001b[0m: -0.03261718153953552\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m515\u001b[0m: 0.00023300820612348616\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m516\u001b[0m: -0.010153207927942276\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m517\u001b[0m: -0.01297706924378872\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m518\u001b[0m: 0.12133084237575531\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m519\u001b[0m: 0.022578196600079536\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m520\u001b[0m: -0.00738011347129941\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m521\u001b[0m: 0.02077600173652172\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m522\u001b[0m: 0.00520034646615386\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m523\u001b[0m: 0.020103352144360542\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m524\u001b[0m: -0.008795216679573059\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m525\u001b[0m: -0.010965464636683464\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m526\u001b[0m: 0.0029285659547895193\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m527\u001b[0m: 0.013605299405753613\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m528\u001b[0m: -0.01672741025686264\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m529\u001b[0m: 0.00039621308678761125\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m530\u001b[0m: -0.02490074373781681\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m531\u001b[0m: 0.012996106408536434\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m532\u001b[0m: 0.00733569310978055\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m533\u001b[0m: 0.005727044306695461\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m534\u001b[0m: -0.001138269784860313\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m535\u001b[0m: -0.01509020570665598\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m536\u001b[0m: 0.01611821912229061\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m537\u001b[0m: -0.00520034646615386\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m538\u001b[0m: -0.019595691934227943\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m539\u001b[0m: 0.01687970943748951\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m540\u001b[0m: 0.02472306229174137\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m541\u001b[0m: 0.04698397219181061\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m542\u001b[0m: -0.009594782255589962\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m543\u001b[0m: 0.0005532705108635128\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m544\u001b[0m: 0.005339953117072582\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m545\u001b[0m: 0.019671840593218803\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m546\u001b[0m: 0.02921585738658905\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m547\u001b[0m: -0.006739192176610231\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m548\u001b[0m: -0.012405951507389545\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m549\u001b[0m: -0.004511831793934107\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m550\u001b[0m: 0.01737467758357525\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m551\u001b[0m: 0.013503767549991608\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m552\u001b[0m: 0.005593783222138882\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m553\u001b[0m: -0.002327305730432272\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m554\u001b[0m: -0.00819871574640274\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m555\u001b[0m: -0.00025383022148162127\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m556\u001b[0m: 0.018389998003840446\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m557\u001b[0m: -0.010140516795217991\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m558\u001b[0m: 0.026702938601374626\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m559\u001b[0m: -0.005577918607741594\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m560\u001b[0m: 0.005644549150019884\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m561\u001b[0m: -0.0021290008444339037\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m562\u001b[0m: 0.01036261860281229\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m563\u001b[0m: -0.00324426731094718\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m564\u001b[0m: 0.004534041974693537\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m565\u001b[0m: 0.044217221438884735\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m566\u001b[0m: -0.019621074199676514\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m567\u001b[0m: 0.011555620469152927\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m568\u001b[0m: 0.022489355877041817\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m569\u001b[0m: 0.0013833746779710054\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m570\u001b[0m: -0.022971633821725845\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m571\u001b[0m: -0.02047140710055828\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m572\u001b[0m: -0.030713455751538277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m573\u001b[0m: 0.05030914768576622\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m574\u001b[0m: -0.009385371580719948\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m575\u001b[0m: -0.02519264817237854\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m576\u001b[0m: -0.013211862184107304\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m577\u001b[0m: 0.026119127869606018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m578\u001b[0m: -0.008687338791787624\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m579\u001b[0m: -0.003823317587375641\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m580\u001b[0m: -0.013237245380878448\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m581\u001b[0m: -0.021626334637403488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m582\u001b[0m: -0.01732391119003296\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m583\u001b[0m: -0.023187389597296715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m584\u001b[0m: -0.02147403545677662\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m585\u001b[0m: -0.044090308248996735\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m586\u001b[0m: -0.008649264462292194\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m587\u001b[0m: -0.031906455755233765\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m588\u001b[0m: 0.0007257957477122545\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m589\u001b[0m: -0.01671472005546093\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m590\u001b[0m: -0.02566223405301571\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m591\u001b[0m: 0.0009129955433309078\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m592\u001b[0m: 0.007519720122218132\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m593\u001b[0m: -0.006475843023508787\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m594\u001b[0m: 0.026195278391242027\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m595\u001b[0m: -0.005035356618463993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m596\u001b[0m: 0.0029206338804215193\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m597\u001b[0m: -0.010038984939455986\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m598\u001b[0m: 2.0004001271445304e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m599\u001b[0m: -0.031373415142297745\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m600\u001b[0m: -0.0024764309637248516\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m601\u001b[0m: -0.014392172917723656\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m602\u001b[0m: -0.013224554248154163\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m603\u001b[0m: 0.022324366495013237\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m604\u001b[0m: 0.011181220412254333\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m605\u001b[0m: -0.01450639683753252\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m606\u001b[0m: -0.006463151890784502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m607\u001b[0m: 0.009448829106986523\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m608\u001b[0m: 0.013592607341706753\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m609\u001b[0m: 0.006187111139297485\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m610\u001b[0m: -0.005492251366376877\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m611\u001b[0m: -0.004746624734252691\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m612\u001b[0m: 0.004629228264093399\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m613\u001b[0m: 0.01670202799141407\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m614\u001b[0m: -0.002360621001571417\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m615\u001b[0m: 0.036069273948669434\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m616\u001b[0m: 0.011650806292891502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m617\u001b[0m: -0.0025256106164306402\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m618\u001b[0m: 0.022324366495013237\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m619\u001b[0m: -0.056299541145563126\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m620\u001b[0m: 0.009182307869195938\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m621\u001b[0m: 0.030434241518378258\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m622\u001b[0m: -0.00042595883132889867\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m623\u001b[0m: 0.028428982943296432\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m624\u001b[0m: 0.023035092279314995\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m625\u001b[0m: -0.0013492661528289318\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m626\u001b[0m: -0.022362440824508667\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m627\u001b[0m: -0.002002085791900754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m628\u001b[0m: 0.023707741871476173\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m629\u001b[0m: -0.009518632665276527\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m630\u001b[0m: 0.01737467758357525\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m631\u001b[0m: -0.0004695858806371689\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m632\u001b[0m: 0.03723689168691635\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m633\u001b[0m: 0.018047327175736427\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m634\u001b[0m: 0.0028286203742027283\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m635\u001b[0m: 0.006707463413476944\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m636\u001b[0m: -0.0048640212044119835\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m637\u001b[0m: -0.007932193577289581\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m638\u001b[0m: -0.026093745604157448\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m639\u001b[0m: -0.014442939311265945\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m640\u001b[0m: 0.022717803716659546\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m641\u001b[0m: 0.01707008108496666\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m642\u001b[0m: -0.026829853653907776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m643\u001b[0m: 0.0021004448644816875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m644\u001b[0m: 0.005727044306695461\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m645\u001b[0m: -0.01671472005546093\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m646\u001b[0m: -0.026169894263148308\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m647\u001b[0m: 0.011815796606242657\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m648\u001b[0m: -0.0015523303300142288\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m649\u001b[0m: 0.014316023327410221\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m650\u001b[0m: -0.00630133505910635\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m651\u001b[0m: 0.010140516795217991\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m652\u001b[0m: 0.0016372048994526267\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m653\u001b[0m: -0.027794407680630684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m654\u001b[0m: -0.036297719925642014\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m655\u001b[0m: 0.022273600101470947\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m656\u001b[0m: 0.006371138151735067\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m657\u001b[0m: -0.0031903283670544624\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m658\u001b[0m: -0.015039440244436264\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m659\u001b[0m: -0.003623426193371415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m660\u001b[0m: -0.004403953906148672\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m661\u001b[0m: 0.0014714220305904746\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m662\u001b[0m: -0.031170349568128586\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m663\u001b[0m: -0.02073792740702629\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m664\u001b[0m: -0.005470041185617447\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m665\u001b[0m: 0.01646088995039463\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m666\u001b[0m: -0.017526976764202118\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m667\u001b[0m: -0.0026842544320970774\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m668\u001b[0m: -0.013947970233857632\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m669\u001b[0m: 0.005701661109924316\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m670\u001b[0m: -0.022743185982108116\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m671\u001b[0m: -0.012945340946316719\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m672\u001b[0m: 0.000675822957418859\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m673\u001b[0m: -0.002925393171608448\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m674\u001b[0m: -0.002263848204165697\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m675\u001b[0m: -0.012405951507389545\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m676\u001b[0m: 0.023504678159952164\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m677\u001b[0m: 0.02086484245955944\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m678\u001b[0m: 0.028758961707353592\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m679\u001b[0m: -0.0032474403269588947\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m680\u001b[0m: -0.005463695153594017\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m681\u001b[0m: 0.023123931139707565\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m682\u001b[0m: -0.02104252390563488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m683\u001b[0m: -0.010127825662493706\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m684\u001b[0m: -0.0074626081623137\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m685\u001b[0m: -0.019798755645751953\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m686\u001b[0m: -0.004819601308554411\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m687\u001b[0m: 0.010540299117565155\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m688\u001b[0m: 0.036145422607660294\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m689\u001b[0m: 0.005378027446568012\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m690\u001b[0m: -0.006555165164172649\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m691\u001b[0m: 0.01712084747850895\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m692\u001b[0m: -0.023682357743382454\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m693\u001b[0m: -0.03358173742890358\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m694\u001b[0m: -0.006961293518543243\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m695\u001b[0m: -0.017514284700155258\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m696\u001b[0m: -0.005720698274672031\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m697\u001b[0m: -0.023618901148438454\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m698\u001b[0m: 0.0010978156933560967\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m699\u001b[0m: -0.04218658059835434\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m700\u001b[0m: 0.00820506177842617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m701\u001b[0m: -0.018237700685858727\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m702\u001b[0m: -0.018034636974334717\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m703\u001b[0m: -0.014912525191903114\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m704\u001b[0m: 0.035713911056518555\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m705\u001b[0m: 0.004546733573079109\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m706\u001b[0m: -0.011701572686433792\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m707\u001b[0m: -0.0033220029436051846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m708\u001b[0m: -0.008826945908367634\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m709\u001b[0m: -0.02531956322491169\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m710\u001b[0m: 0.002785786520689726\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m711\u001b[0m: 0.005584264639765024\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m712\u001b[0m: -0.01023570355027914\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m713\u001b[0m: -0.007741821464151144\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m714\u001b[0m: 0.00013603712432086468\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m715\u001b[0m: 0.0019814621191471815\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m716\u001b[0m: 0.027819789946079254\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m717\u001b[0m: 0.02880972810089588\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m718\u001b[0m: -0.026423724368214607\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m719\u001b[0m: 0.012120392173528671\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m720\u001b[0m: -0.009245765395462513\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m721\u001b[0m: -0.00623470451682806\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m722\u001b[0m: -0.00842081755399704\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m723\u001b[0m: 0.04165353626012802\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m724\u001b[0m: -0.0036773651372641325\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m725\u001b[0m: -0.0034552637953311205\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m726\u001b[0m: 0.007024751044809818\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m727\u001b[0m: -0.010965464636683464\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m728\u001b[0m: -0.015724781900644302\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m729\u001b[0m: -0.03710997477173805\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m730\u001b[0m: -0.00358217884786427\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m731\u001b[0m: -0.023200081661343575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m732\u001b[0m: 0.014100268483161926\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m733\u001b[0m: 0.01247575506567955\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m734\u001b[0m: -0.007443570997565985\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m735\u001b[0m: 0.005708006676286459\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m736\u001b[0m: -0.022349750623106956\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m737\u001b[0m: -0.015978612005710602\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m738\u001b[0m: 0.0023875904735177755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m739\u001b[0m: 0.02057293802499771\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m740\u001b[0m: 0.026855235919356346\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m741\u001b[0m: 0.0004731553781311959\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m742\u001b[0m: 0.02967275120317936\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m743\u001b[0m: 0.019671840593218803\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m744\u001b[0m: -0.009004626423120499\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m745\u001b[0m: -0.004648265894502401\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m746\u001b[0m: 0.010546645149588585\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m747\u001b[0m: 0.018339233472943306\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m748\u001b[0m: 0.002903182990849018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m749\u001b[0m: 0.02090291678905487\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m750\u001b[0m: -0.001932282466441393\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m751\u001b[0m: -0.0064441142603755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m752\u001b[0m: -0.02439308352768421\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m753\u001b[0m: 0.005723871290683746\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m754\u001b[0m: -0.014074885286390781\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m755\u001b[0m: -0.03266794607043266\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m756\u001b[0m: -0.006593239493668079\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m757\u001b[0m: 0.023631593212485313\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m758\u001b[0m: -0.0044356826692819595\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m759\u001b[0m: -0.00038431480061262846\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m760\u001b[0m: 0.011193912476301193\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m761\u001b[0m: -0.01488714199513197\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m762\u001b[0m: -0.0034457449801266193\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m763\u001b[0m: 0.039445213973522186\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m764\u001b[0m: -0.032337967306375504\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m765\u001b[0m: -0.012494792230427265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m766\u001b[0m: -0.01647358015179634\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m767\u001b[0m: -0.019405320286750793\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m768\u001b[0m: -0.022717803716659546\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m769\u001b[0m: 0.04477564990520477\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m770\u001b[0m: -0.014646003022789955\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m771\u001b[0m: 0.0068978359922766685\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m772\u001b[0m: 0.010508570820093155\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m773\u001b[0m: -0.03662769868969917\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m774\u001b[0m: -0.0021369331516325474\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m775\u001b[0m: -0.018580371513962746\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m776\u001b[0m: -0.02025565132498741\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m777\u001b[0m: 0.02062370441854\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m778\u001b[0m: -0.005419274792075157\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m779\u001b[0m: 0.018339233472943306\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m780\u001b[0m: 0.004327805247157812\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m781\u001b[0m: -0.009912069886922836\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m782\u001b[0m: 0.019532235339283943\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m783\u001b[0m: 0.01026743184775114\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m784\u001b[0m: -0.019494159147143364\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m785\u001b[0m: -0.00011590918438741937\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m786\u001b[0m: -0.006567856762558222\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m787\u001b[0m: 0.026880618184804916\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m788\u001b[0m: -0.04469950124621391\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m789\u001b[0m: 0.011098725721240044\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m790\u001b[0m: 0.019100723788142204\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m791\u001b[0m: 0.0011795172467827797\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m792\u001b[0m: 0.011333518661558628\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m793\u001b[0m: -0.004676821641623974\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m794\u001b[0m: -0.016016686335206032\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m795\u001b[0m: -0.005520807113498449\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m796\u001b[0m: 0.004492794629186392\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m797\u001b[0m: 0.010038984939455986\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m798\u001b[0m: 0.03363250195980072\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m799\u001b[0m: 0.013072255998849869\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m800\u001b[0m: -0.01742544397711754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m801\u001b[0m: -0.02080138586461544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m802\u001b[0m: -0.003103074384853244\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m803\u001b[0m: 0.0006964466301724315\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m804\u001b[0m: -0.0052352482452988625\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m805\u001b[0m: -0.01741275191307068\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m806\u001b[0m: 0.00041723341564647853\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m807\u001b[0m: -0.022286292165517807\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m808\u001b[0m: -0.015724781900644302\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m809\u001b[0m: -0.02524341456592083\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m810\u001b[0m: 0.0007376940338872373\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m811\u001b[0m: 0.030764222145080566\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m812\u001b[0m: 0.012031551450490952\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m813\u001b[0m: -0.004505486227571964\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m814\u001b[0m: -0.007037442643195391\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m815\u001b[0m: 0.026220660656690598\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m816\u001b[0m: -0.013833746314048767\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m817\u001b[0m: 0.0011811036383733153\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m818\u001b[0m: -0.00842081755399704\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m819\u001b[0m: 0.023149315267801285\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m820\u001b[0m: -0.01675279438495636\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m821\u001b[0m: -0.009873995557427406\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m822\u001b[0m: -0.002079821191728115\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m823\u001b[0m: -0.03700844570994377\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m824\u001b[0m: 0.03312484174966812\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m825\u001b[0m: 0.006057023536413908\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m826\u001b[0m: 0.0018957944121211767\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m827\u001b[0m: -0.021816706284880638\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m828\u001b[0m: -0.003797934390604496\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m829\u001b[0m: -0.009112504310905933\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m830\u001b[0m: 0.004473757464438677\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m831\u001b[0m: -0.006942256353795528\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m832\u001b[0m: 0.012177504599094391\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m833\u001b[0m: -0.013744905591011047\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m834\u001b[0m: -0.011409668251872063\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m835\u001b[0m: -0.0324648842215538\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m836\u001b[0m: 0.008262173272669315\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m837\u001b[0m: 0.0344955250620842\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m838\u001b[0m: 0.004924306180328131\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m839\u001b[0m: 0.02108059823513031\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m840\u001b[0m: -0.007989306002855301\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m841\u001b[0m: -0.018542297184467316\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m842\u001b[0m: 0.0285812821239233\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m843\u001b[0m: 0.018466148525476456\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m844\u001b[0m: -0.000934412470087409\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m845\u001b[0m: 0.006371138151735067\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m846\u001b[0m: -0.04919229447841644\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m847\u001b[0m: -0.02135981246829033\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m848\u001b[0m: 0.028073621913790703\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m849\u001b[0m: -0.008769833482801914\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m850\u001b[0m: 0.01230441965162754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m851\u001b[0m: -0.017856955528259277\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m852\u001b[0m: -0.031779542565345764\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m853\u001b[0m: 0.004461065866053104\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m854\u001b[0m: -0.006171246990561485\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m855\u001b[0m: 0.031424179673194885\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m856\u001b[0m: 0.009544015862047672\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m857\u001b[0m: -0.012615361250936985\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m858\u001b[0m: 0.026829853653907776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m859\u001b[0m: 0.031728774309158325\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m860\u001b[0m: 0.026626788079738617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m861\u001b[0m: 0.012310764752328396\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m862\u001b[0m: -0.009239419363439083\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m863\u001b[0m: -0.03477473929524422\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m864\u001b[0m: 0.02059832215309143\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m865\u001b[0m: 0.00187675713095814\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m866\u001b[0m: -0.012875537388026714\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m867\u001b[0m: -0.04249117523431778\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m868\u001b[0m: 0.005720698274672031\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m869\u001b[0m: 0.03830297663807869\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m870\u001b[0m: 0.01742544397711754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m871\u001b[0m: -0.030307326465845108\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m872\u001b[0m: -0.02180401422083378\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m873\u001b[0m: 0.01241864264011383\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m874\u001b[0m: -0.03302330896258354\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m875\u001b[0m: -0.005320915952324867\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m876\u001b[0m: -0.018440764397382736\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m877\u001b[0m: 0.009321914054453373\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m878\u001b[0m: 0.007526065688580275\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m879\u001b[0m: 0.02568761631846428\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m880\u001b[0m: -0.006463151890784502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m881\u001b[0m: 0.02097906731069088\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m882\u001b[0m: -0.022603580728173256\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m883\u001b[0m: -0.0017974351067095995\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m884\u001b[0m: 0.00035714704426936805\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m885\u001b[0m: -0.019544925540685654\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m886\u001b[0m: 0.022032462060451508\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m887\u001b[0m: 0.0012628053082153201\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m888\u001b[0m: -0.011949056759476662\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m889\u001b[0m: -0.004952861927449703\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m890\u001b[0m: -0.02931738831102848\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m891\u001b[0m: 0.0029825048986822367\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m892\u001b[0m: 0.0056382035836577415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m893\u001b[0m: 0.006650351453572512\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m894\u001b[0m: 0.012177504599094391\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m895\u001b[0m: 0.009169616736471653\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m896\u001b[0m: -0.0023177871480584145\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m897\u001b[0m: 0.0058634779416024685\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m898\u001b[0m: -0.013173787854611874\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m899\u001b[0m: 0.005904725287109613\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m900\u001b[0m: -0.012989761307835579\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m901\u001b[0m: 0.001654655672609806\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m902\u001b[0m: 0.011301790364086628\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m903\u001b[0m: -0.06472670286893845\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m904\u001b[0m: 0.00634575542062521\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m905\u001b[0m: 0.005809538997709751\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m906\u001b[0m: -0.015635941177606583\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m907\u001b[0m: -0.019798755645751953\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m908\u001b[0m: -0.022679729387164116\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m909\u001b[0m: -0.0064917076379060745\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m910\u001b[0m: -0.01657511293888092\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m911\u001b[0m: 0.0005976908141747117\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m912\u001b[0m: -0.0038169717881828547\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m913\u001b[0m: 0.017895029857754707\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m914\u001b[0m: -0.00614586379379034\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m915\u001b[0m: -0.032084137201309204\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m916\u001b[0m: 0.0021702481899410486\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m917\u001b[0m: 0.005470041185617447\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m918\u001b[0m: -0.01717161387205124\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m919\u001b[0m: 0.01703200675547123\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m920\u001b[0m: 0.0064441142603755\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m921\u001b[0m: -0.000555650214664638\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m922\u001b[0m: -0.0250149667263031\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m923\u001b[0m: 0.02061101235449314\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m924\u001b[0m: 0.005447831004858017\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m925\u001b[0m: -0.005577918607741594\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m926\u001b[0m: 0.0038518733344972134\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m927\u001b[0m: 0.009943798184394836\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m928\u001b[0m: 0.01077509205788374\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m929\u001b[0m: -0.02507842518389225\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m930\u001b[0m: 0.03891216963529587\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m931\u001b[0m: -0.026017596945166588\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m932\u001b[0m: -0.01286284625530243\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m933\u001b[0m: -0.027185214683413506\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m934\u001b[0m: -0.027185214683413506\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m935\u001b[0m: -0.03840450942516327\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m936\u001b[0m: 0.02566223405301571\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m937\u001b[0m: -0.007779895793646574\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m938\u001b[0m: -0.004432510118931532\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m939\u001b[0m: 0.010089750401675701\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m940\u001b[0m: -0.003309311345219612\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m941\u001b[0m: -0.027515195310115814\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m942\u001b[0m: 0.001533293048851192\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m943\u001b[0m: -0.010330889374017715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m944\u001b[0m: 0.0007833041599951684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m945\u001b[0m: -0.023821964859962463\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m946\u001b[0m: -0.01745082624256611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m947\u001b[0m: 0.005993566010147333\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m948\u001b[0m: -0.01238691434264183\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m949\u001b[0m: 0.01250748336315155\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m950\u001b[0m: -0.0036583279725164175\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m951\u001b[0m: 0.012361531145870686\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m952\u001b[0m: 0.013732214458286762\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m953\u001b[0m: 0.009499595500528812\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m954\u001b[0m: 0.23900651931762695\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m955\u001b[0m: 0.01647358015179634\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m956\u001b[0m: 0.010921044275164604\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m957\u001b[0m: 0.018098093569278717\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m958\u001b[0m: 0.005533498711884022\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m959\u001b[0m: 0.019544925540685654\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m960\u001b[0m: 0.02939353883266449\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m961\u001b[0m: 0.020319107919931412\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m962\u001b[0m: -0.00725319841876626\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m963\u001b[0m: -0.011238332837820053\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m964\u001b[0m: 0.011060651391744614\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m965\u001b[0m: 0.02559877745807171\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m966\u001b[0m: 0.003506029723212123\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m967\u001b[0m: 0.0005239213933236897\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m968\u001b[0m: 0.018618445843458176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m969\u001b[0m: -0.018910350278019905\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m970\u001b[0m: -0.023745816200971603\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m971\u001b[0m: 0.008782525546848774\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m972\u001b[0m: -0.031221115961670876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m973\u001b[0m: -0.007633943576365709\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m974\u001b[0m: -0.01432871539145708\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m975\u001b[0m: 0.009125196374952793\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m976\u001b[0m: 0.00833197683095932\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m977\u001b[0m: -0.008604844100773335\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m978\u001b[0m: -0.006758229341357946\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m979\u001b[0m: 0.011955402791500092\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m980\u001b[0m: 0.02118213102221489\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m981\u001b[0m: 0.013770288787782192\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m982\u001b[0m: -0.019836829975247383\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m983\u001b[0m: -0.020141426473855972\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m984\u001b[0m: 0.01074336376041174\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m985\u001b[0m: -0.01487444993108511\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m986\u001b[0m: -0.008268519304692745\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m987\u001b[0m: -0.0031078336760401726\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m988\u001b[0m: -0.01686701737344265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m989\u001b[0m: -0.016207057982683182\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m990\u001b[0m: 0.005752427037805319\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m991\u001b[0m: 0.018313849344849586\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m992\u001b[0m: 0.01687970943748951\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m993\u001b[0m: 0.015179046429693699\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m994\u001b[0m: -0.013681448064744473\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m995\u001b[0m: -0.022413207218050957\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m996\u001b[0m: -0.00028159288922324777\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m997\u001b[0m: -0.013059563934803009\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m998\u001b[0m: 0.0027270882856100798\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m999\u001b[0m: 0.019773373380303383\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1000\u001b[0m: 0.008719068020582199\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1001\u001b[0m: -0.013059563934803009\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1002\u001b[0m: -0.013491075485944748\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1003\u001b[0m: 0.018060019239783287\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1004\u001b[0m: -0.035257015377283096\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1005\u001b[0m: -0.006745537742972374\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1006\u001b[0m: 0.03665308281779289\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1007\u001b[0m: 0.027083683758974075\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1008\u001b[0m: 0.015483642928302288\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1009\u001b[0m: -0.007652980741113424\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1010\u001b[0m: 0.04132355749607086\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1011\u001b[0m: -0.018618445843458176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1012\u001b[0m: 0.003870910732075572\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1013\u001b[0m: 0.00208299420773983\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1014\u001b[0m: -0.028251301497220993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1015\u001b[0m: 0.018681902438402176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1016\u001b[0m: 0.0027794407214969397\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1017\u001b[0m: 0.02535763755440712\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1018\u001b[0m: -0.0249515101313591\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1019\u001b[0m: 0.004238964524120092\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1020\u001b[0m: -0.02979966625571251\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1021\u001b[0m: 0.02997734770178795\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1022\u001b[0m: -0.005203519482165575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1023\u001b[0m: 0.0014381067594513297\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1024\u001b[0m: 0.008801562711596489\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1025\u001b[0m: -0.0168035589158535\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1026\u001b[0m: -0.006777266506105661\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1027\u001b[0m: 0.0005005214479751885\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1028\u001b[0m: -0.024202710017561913\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1029\u001b[0m: -0.019265713170170784\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1030\u001b[0m: 0.02949506975710392\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1031\u001b[0m: 0.018237700685858727\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1032\u001b[0m: 0.02141057886183262\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1033\u001b[0m: 0.005888860672712326\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1034\u001b[0m: 0.007659326773136854\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1035\u001b[0m: 0.002807996701449156\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1036\u001b[0m: 0.019582999870181084\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1037\u001b[0m: -0.013326086103916168\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1038\u001b[0m: -0.009518632665276527\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1039\u001b[0m: -0.014468321576714516\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1040\u001b[0m: -0.0036741923540830612\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1041\u001b[0m: 0.0002230929530924186\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1042\u001b[0m: -0.036450017243623734\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1043\u001b[0m: -0.00816064141690731\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1044\u001b[0m: 0.017806189134716988\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1045\u001b[0m: -0.0029095287900418043\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1046\u001b[0m: -0.010908353142440319\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1047\u001b[0m: 0.019100723788142204\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1048\u001b[0m: 0.004594326950609684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1049\u001b[0m: -0.004708550404757261\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1050\u001b[0m: 0.006650351453572512\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1051\u001b[0m: 0.011225640773773193\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1052\u001b[0m: -0.000867782044224441\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1053\u001b[0m: -0.0005445451242849231\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1054\u001b[0m: 0.0002361810766160488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1055\u001b[0m: 0.018948424607515335\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1056\u001b[0m: 0.005400237627327442\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1057\u001b[0m: 0.017514284700155258\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1058\u001b[0m: -0.015445568598806858\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1059\u001b[0m: -0.023339686915278435\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1060\u001b[0m: -0.02964736893773079\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1061\u001b[0m: 0.00815429538488388\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1062\u001b[0m: 0.03279486298561096\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1063\u001b[0m: -0.02568761631846428\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1064\u001b[0m: -0.0028460712637752295\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1065\u001b[0m: -0.01745082624256611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1066\u001b[0m: 0.0058634779416024685\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1067\u001b[0m: -0.021930929273366928\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1068\u001b[0m: -0.006999367848038673\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1069\u001b[0m: 0.009404409676790237\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1070\u001b[0m: -0.009607473388314247\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1071\u001b[0m: -0.019519543275237083\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1072\u001b[0m: 0.010077059268951416\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1073\u001b[0m: -0.011454088613390923\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1074\u001b[0m: 0.002903182990849018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1075\u001b[0m: -0.039800576865673065\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1076\u001b[0m: 0.00021278110216371715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1077\u001b[0m: 0.017628507688641548\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1078\u001b[0m: -0.00811622105538845\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1079\u001b[0m: -0.011377939023077488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1080\u001b[0m: -0.013338777236640453\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1081\u001b[0m: -0.012697855941951275\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1082\u001b[0m: -0.01689239963889122\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1083\u001b[0m: -0.03452090919017792\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1084\u001b[0m: 0.006980330683290958\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1085\u001b[0m: 0.009252111427485943\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1086\u001b[0m: 0.022286292165517807\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1087\u001b[0m: -0.01264709047973156\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1088\u001b[0m: 0.008084491826593876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1089\u001b[0m: -0.0024367698933929205\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1090\u001b[0m: -0.016003994271159172\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1091\u001b[0m: -0.02583991549909115\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1092\u001b[0m: 0.015280578285455704\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1093\u001b[0m: -0.032033372670412064\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1094\u001b[0m: -0.015623249113559723\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1095\u001b[0m: -0.02997734770178795\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1096\u001b[0m: 0.02160095050930977\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1097\u001b[0m: 0.03274409845471382\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1098\u001b[0m: 0.004905268549919128\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1099\u001b[0m: -0.0162958987057209\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1100\u001b[0m: 0.017844263464212418\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1101\u001b[0m: -0.013135713525116444\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1102\u001b[0m: -0.025852607563138008\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1103\u001b[0m: -0.011498508043587208\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1104\u001b[0m: -0.0025240241084247828\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1105\u001b[0m: 0.00026751324185170233\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1106\u001b[0m: -0.013364160433411598\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1107\u001b[0m: -0.013706831261515617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1108\u001b[0m: 0.01630859076976776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1109\u001b[0m: -0.008858674205839634\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1110\u001b[0m: 0.011796758510172367\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1111\u001b[0m: -0.011650806292891502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1112\u001b[0m: -0.030510390177369118\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1113\u001b[0m: 0.010711634531617165\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1114\u001b[0m: -0.017666582018136978\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1115\u001b[0m: 0.012996106408536434\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1116\u001b[0m: 0.02039525657892227\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1117\u001b[0m: -0.03330252319574356\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1118\u001b[0m: -0.03304869309067726\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1119\u001b[0m: 0.0010581547394394875\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1120\u001b[0m: -0.15879617631435394\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1121\u001b[0m: 0.011923674494028091\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1122\u001b[0m: 0.026779087260365486\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1123\u001b[0m: -0.014036810956895351\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1124\u001b[0m: -0.00841447152197361\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1125\u001b[0m: 0.01732391119003296\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1126\u001b[0m: 0.03228720277547836\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1127\u001b[0m: -0.024405773729085922\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1128\u001b[0m: -0.014950599521398544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1129\u001b[0m: 0.010895662009716034\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1130\u001b[0m: 0.027413662523031235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1131\u001b[0m: 0.01761581562459469\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1132\u001b[0m: -0.007475299760699272\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1133\u001b[0m: -0.011396976187825203\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1134\u001b[0m: -0.014214491471648216\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1135\u001b[0m: -0.003956578206270933\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1136\u001b[0m: 0.0067138089798390865\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1137\u001b[0m: -0.006199802737683058\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1138\u001b[0m: 0.005755600053817034\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1139\u001b[0m: 0.022832026705145836\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1140\u001b[0m: 0.021994387730956078\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1141\u001b[0m: -0.019443394616246223\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1142\u001b[0m: -0.0046419198624789715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1143\u001b[0m: 0.010368963703513145\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1144\u001b[0m: -0.0033632502891123295\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1145\u001b[0m: -0.0246976800262928\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1146\u001b[0m: -0.017641199752688408\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1147\u001b[0m: 0.0062886434607207775\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1148\u001b[0m: 0.004990936256945133\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1149\u001b[0m: -0.00509564159438014\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1150\u001b[0m: -0.01454447116702795\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1151\u001b[0m: -0.000590948446188122\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1152\u001b[0m: 0.007113591767847538\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1153\u001b[0m: -2.2036627342458814e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1154\u001b[0m: -0.002788959303870797\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1155\u001b[0m: 0.012037897482514381\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1156\u001b[0m: -0.015534408390522003\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1157\u001b[0m: -0.010870278812944889\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1158\u001b[0m: -0.011777721345424652\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1159\u001b[0m: 0.02155018411576748\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1160\u001b[0m: 0.019582999870181084\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1161\u001b[0m: 0.016042068600654602\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1162\u001b[0m: 0.0016387912910431623\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1163\u001b[0m: 0.013034181669354439\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1164\u001b[0m: -0.005054394248872995\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1165\u001b[0m: 0.010058022104203701\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1166\u001b[0m: 0.015509026125073433\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1167\u001b[0m: 0.006967639084905386\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1168\u001b[0m: 0.003908985294401646\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1169\u001b[0m: 0.0038962936960160732\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1170\u001b[0m: 0.02144865319132805\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1171\u001b[0m: -0.022133994847536087\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1172\u001b[0m: 0.03459705784916878\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1173\u001b[0m: 0.010921044275164604\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1174\u001b[0m: 0.01658780500292778\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1175\u001b[0m: -0.01057202834635973\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1176\u001b[0m: 0.021702483296394348\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1177\u001b[0m: 0.01741275191307068\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1178\u001b[0m: -0.007189740426838398\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1179\u001b[0m: 0.027235981076955795\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1180\u001b[0m: -0.022210143506526947\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1181\u001b[0m: -0.018428072333335876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1182\u001b[0m: 0.01030550617724657\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1183\u001b[0m: -0.028251301497220993\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1184\u001b[0m: -0.013757597655057907\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1185\u001b[0m: 0.023162007331848145\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1186\u001b[0m: -0.01048953365534544\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1187\u001b[0m: -0.018428072333335876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1188\u001b[0m: -0.036170803010463715\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1189\u001b[0m: 0.01453177910298109\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1190\u001b[0m: -0.00807180069386959\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1191\u001b[0m: 0.006726500578224659\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1192\u001b[0m: 0.019367244094610214\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1193\u001b[0m: 0.001924350275658071\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1194\u001b[0m: 0.00630133505910635\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1195\u001b[0m: 0.023111240938305855\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1196\u001b[0m: 0.013288011774420738\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1197\u001b[0m: 0.0033695960883051157\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1198\u001b[0m: -0.018491530790925026\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1199\u001b[0m: -0.006586893927305937\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1200\u001b[0m: -0.041120495647192\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1201\u001b[0m: 0.023022400215268135\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1202\u001b[0m: 0.002019536681473255\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1203\u001b[0m: -0.021778631955385208\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1204\u001b[0m: -0.004594326950609684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1205\u001b[0m: 0.015318653546273708\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1206\u001b[0m: -0.009931107051670551\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1207\u001b[0m: 0.022603580728173256\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1208\u001b[0m: -0.01647358015179634\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1209\u001b[0m: -0.01679086871445179\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1210\u001b[0m: -0.01624513417482376\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1211\u001b[0m: -0.015800930559635162\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1212\u001b[0m: -0.023326996713876724\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1213\u001b[0m: -0.02547186054289341\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1214\u001b[0m: 0.003280755365267396\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1215\u001b[0m: 0.012367877177894115\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1216\u001b[0m: -0.015623249113559723\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1217\u001b[0m: 0.018072711303830147\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1218\u001b[0m: -0.001707008108496666\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1219\u001b[0m: -0.018428072333335876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1220\u001b[0m: 0.004718068987131119\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1221\u001b[0m: -0.0020258822478353977\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1222\u001b[0m: -0.03264256566762924\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1223\u001b[0m: -0.002811169484630227\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1224\u001b[0m: 0.02995196543633938\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1225\u001b[0m: -0.00022348956554196775\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1226\u001b[0m: -0.005422447808086872\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1227\u001b[0m: 0.013084947131574154\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1228\u001b[0m: -0.0014412796590477228\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1229\u001b[0m: 0.011974439956247807\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1230\u001b[0m: -0.05553805083036423\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1231\u001b[0m: 0.018136167898774147\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1232\u001b[0m: -0.006183938588947058\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1233\u001b[0m: 0.043582648038864136\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1234\u001b[0m: -0.007481645327061415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1235\u001b[0m: 0.031855691224336624\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1236\u001b[0m: -0.00631719920784235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1237\u001b[0m: -0.02439308352768421\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1238\u001b[0m: 0.023656975477933884\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1239\u001b[0m: -0.011701572686433792\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1240\u001b[0m: 0.05094372108578682\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1241\u001b[0m: -0.009626510553061962\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1242\u001b[0m: -0.043836478143930435\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1243\u001b[0m: -0.007018405478447676\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1244\u001b[0m: -0.026855235919356346\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1245\u001b[0m: 9.037743438966572e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1246\u001b[0m: -0.05503039062023163\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1247\u001b[0m: -0.007906811311841011\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1248\u001b[0m: 0.019506851211190224\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1249\u001b[0m: 0.03261718153953552\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1250\u001b[0m: 0.026728320866823196\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1251\u001b[0m: 0.015458259731531143\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1252\u001b[0m: 0.012266344390809536\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1253\u001b[0m: -0.0044007813557982445\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1254\u001b[0m: -0.0050099738873541355\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1255\u001b[0m: 0.03205875679850578\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1256\u001b[0m: 0.0029301524627953768\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1257\u001b[0m: -0.022311674430966377\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1258\u001b[0m: 0.03198260813951492\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1259\u001b[0m: -0.00025383022148162127\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1260\u001b[0m: 0.021943621337413788\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1261\u001b[0m: -0.012945340946316719\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1262\u001b[0m: 0.004689513240009546\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1263\u001b[0m: -0.0574163943529129\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1264\u001b[0m: -0.008985589258372784\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1265\u001b[0m: 0.013072255998849869\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1266\u001b[0m: -0.0019640112295746803\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1267\u001b[0m: -0.004626055713742971\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1268\u001b[0m: 0.000502107897773385\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1269\u001b[0m: -0.022705111652612686\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1270\u001b[0m: 0.00857311487197876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1271\u001b[0m: -0.021854780614376068\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1272\u001b[0m: -0.033480204641819\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1273\u001b[0m: 0.0015975438291206956\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1274\u001b[0m: 0.01715892180800438\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1275\u001b[0m: -0.019291095435619354\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1276\u001b[0m: -0.01639743149280548\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1277\u001b[0m: -0.011447742581367493\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1278\u001b[0m: 0.015585174784064293\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1279\u001b[0m: -0.026119127869606018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1280\u001b[0m: 0.012456717900931835\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1281\u001b[0m: 0.004229445941746235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1282\u001b[0m: -0.04195813462138176\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1283\u001b[0m: 0.007392804604023695\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1284\u001b[0m: 0.0018624791409820318\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1285\u001b[0m: -0.01729852892458439\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1286\u001b[0m: 0.005520807113498449\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1287\u001b[0m: 0.010882969945669174\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1288\u001b[0m: 0.0052352482452988625\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1289\u001b[0m: -0.031246498227119446\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1290\u001b[0m: 0.0006000704597681761\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1291\u001b[0m: 0.008224098943173885\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1292\u001b[0m: -0.01038800086826086\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1293\u001b[0m: 0.0028428982477635145\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1294\u001b[0m: 0.01509020570665598\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1295\u001b[0m: -0.0107877841219306\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1296\u001b[0m: -0.02962198480963707\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1297\u001b[0m: 0.028073621913790703\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1298\u001b[0m: -0.007830661721527576\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1299\u001b[0m: -1.0578324690868612e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1300\u001b[0m: 0.012120392173528671\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1301\u001b[0m: -0.0208140779286623\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1302\u001b[0m: 0.00214327871799469\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1303\u001b[0m: 0.003531412687152624\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1304\u001b[0m: -0.0036075618118047714\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1305\u001b[0m: -0.001256459509022534\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1306\u001b[0m: 0.0026842544320970774\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1307\u001b[0m: 0.015064822509884834\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1308\u001b[0m: -0.01719699613749981\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1309\u001b[0m: 0.0015888185007497668\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1310\u001b[0m: 0.0408666618168354\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1311\u001b[0m: 0.0065297819674015045\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1312\u001b[0m: -0.01280573382973671\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1313\u001b[0m: -0.017945796251296997\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1314\u001b[0m: 0.023542752489447594\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1315\u001b[0m: 0.008516003377735615\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1316\u001b[0m: 0.003420362016186118\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1317\u001b[0m: 0.03467320650815964\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1318\u001b[0m: -0.0341147817671299\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1319\u001b[0m: 0.00040513681597076356\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1320\u001b[0m: -0.0167401023209095\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1321\u001b[0m: -0.01676548458635807\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1322\u001b[0m: -0.022121302783489227\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1323\u001b[0m: -0.02172786556184292\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1324\u001b[0m: 0.019976437091827393\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1325\u001b[0m: -0.02153749391436577\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1326\u001b[0m: -0.0046228826977312565\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1327\u001b[0m: -0.01723507046699524\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1328\u001b[0m: 0.028530515730381012\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1329\u001b[0m: 0.0027080511208623648\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1330\u001b[0m: 0.018263082951307297\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1331\u001b[0m: -0.0014293813146650791\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1332\u001b[0m: -0.022476665675640106\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1333\u001b[0m: 0.002346342895179987\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1334\u001b[0m: 0.03688152879476547\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1335\u001b[0m: -0.022324366495013237\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1336\u001b[0m: -0.0146713862195611\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1337\u001b[0m: 0.02531956322491169\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1338\u001b[0m: 0.020242959260940552\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1339\u001b[0m: -0.01723507046699524\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1340\u001b[0m: -0.011041614226996899\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1341\u001b[0m: 0.02067447081208229\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1342\u001b[0m: -0.004556252155452967\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1343\u001b[0m: 0.007075516972690821\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1344\u001b[0m: -0.02172786556184292\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1345\u001b[0m: 0.013199171051383018\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1346\u001b[0m: -0.005520807113498449\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1347\u001b[0m: -0.019316479563713074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1348\u001b[0m: -0.07401689141988754\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1349\u001b[0m: 0.0343686118721962\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1350\u001b[0m: 0.0024320106022059917\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1351\u001b[0m: -0.009347297251224518\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1352\u001b[0m: 0.007481645327061415\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1353\u001b[0m: -0.010502224788069725\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1354\u001b[0m: 0.03327713906764984\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1355\u001b[0m: -0.01276765950024128\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1356\u001b[0m: -0.0004723621532320976\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1357\u001b[0m: 0.009175961837172508\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1358\u001b[0m: -0.0054097562097013\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1359\u001b[0m: -0.002536715706810355\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1360\u001b[0m: 0.011022577062249184\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1361\u001b[0m: 0.009950144216418266\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1362\u001b[0m: -0.005609647836536169\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1363\u001b[0m: -0.01465869415551424\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1364\u001b[0m: 0.018339233472943306\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1365\u001b[0m: 0.019151488319039345\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1366\u001b[0m: 0.001093849539756775\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1367\u001b[0m: -0.002884145826101303\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1368\u001b[0m: 0.005470041185617447\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1369\u001b[0m: 0.004705377388745546\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1370\u001b[0m: 0.019379936158657074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1371\u001b[0m: 0.028099004179239273\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1372\u001b[0m: -0.0020591975189745426\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1373\u001b[0m: -0.0015642286743968725\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1374\u001b[0m: -0.006999367848038673\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1375\u001b[0m: 0.019430702552199364\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1376\u001b[0m: -0.01700662449002266\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1377\u001b[0m: -0.021918239071965218\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1378\u001b[0m: 0.019595691934227943\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1379\u001b[0m: -0.02880972810089588\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1380\u001b[0m: -0.02139788679778576\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1381\u001b[0m: 0.016080142930150032\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1382\u001b[0m: -0.003423535032197833\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1383\u001b[0m: -0.026068363338708878\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1384\u001b[0m: 0.0169939324259758\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1385\u001b[0m: -0.0032188843470066786\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1386\u001b[0m: 0.005996738560497761\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1387\u001b[0m: 0.0005009180749766529\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1388\u001b[0m: -0.006031640339642763\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1389\u001b[0m: -0.009645547717809677\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1390\u001b[0m: -0.0021813532803207636\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1391\u001b[0m: 0.007107245735824108\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1392\u001b[0m: -0.0014436593046411872\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1393\u001b[0m: 0.024494614452123642\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1394\u001b[0m: -0.004775180947035551\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1395\u001b[0m: 0.01237422227859497\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1396\u001b[0m: 0.026449108496308327\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1397\u001b[0m: 0.00048108756891451776\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1398\u001b[0m: -0.000183332827873528\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1399\u001b[0m: 0.006206148769706488\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1400\u001b[0m: 0.0033886332530528307\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1401\u001b[0m: -0.01727314479649067\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1402\u001b[0m: 0.027185214683413506\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1403\u001b[0m: -0.027642110362648964\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1404\u001b[0m: -0.002194044878706336\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1405\u001b[0m: 0.012240962125360966\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1406\u001b[0m: 0.02544647827744484\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1407\u001b[0m: -0.026880618184804916\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1408\u001b[0m: 0.02941892109811306\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1409\u001b[0m: -0.019608383998274803\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1410\u001b[0m: 0.010007255710661411\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1411\u001b[0m: 0.0007107245619408786\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1412\u001b[0m: 0.030485007911920547\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1413\u001b[0m: -0.000461653689853847\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1414\u001b[0m: -0.008395434357225895\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1415\u001b[0m: 0.019189564511179924\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1416\u001b[0m: -0.0032585454173386097\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1417\u001b[0m: 0.007043788209557533\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1418\u001b[0m: -0.027972089126706123\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1419\u001b[0m: -0.0008542973082512617\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1420\u001b[0m: 0.0033632502891123295\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1421\u001b[0m: 0.026855235919356346\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1422\u001b[0m: -0.011745993047952652\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1423\u001b[0m: 0.018072711303830147\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1424\u001b[0m: 0.0027064646128565073\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1425\u001b[0m: -0.00836370512843132\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1426\u001b[0m: -0.035104718059301376\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1427\u001b[0m: 0.004499140661209822\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1428\u001b[0m: -0.01269151084125042\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1429\u001b[0m: -0.000386892759706825\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1430\u001b[0m: -0.030078880488872528\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1431\u001b[0m: 0.01432871539145708\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1432\u001b[0m: -0.003088796278461814\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1433\u001b[0m: -0.011942711658775806\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1434\u001b[0m: -0.012488446198403835\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1435\u001b[0m: 0.007684709504246712\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1436\u001b[0m: -0.013808363117277622\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1437\u001b[0m: 0.023200081661343575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1438\u001b[0m: 0.0054732137359678745\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1439\u001b[0m: 0.020357182249426842\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1440\u001b[0m: 0.009867649525403976\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1441\u001b[0m: 0.0036551549565047026\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1442\u001b[0m: 0.026499873027205467\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1443\u001b[0m: 0.012494792230427265\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1444\u001b[0m: -0.011581003665924072\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1445\u001b[0m: 0.00832563079893589\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1446\u001b[0m: 0.031348031014204025\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1447\u001b[0m: 0.02165171690285206\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1448\u001b[0m: 0.004594326950609684\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1449\u001b[0m: 0.0031316301319748163\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1450\u001b[0m: 0.001799021614715457\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1451\u001b[0m: -0.018263082951307297\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1452\u001b[0m: -0.006063369102776051\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1453\u001b[0m: 0.03312484174966812\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1454\u001b[0m: -0.02483728528022766\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1455\u001b[0m: -0.027159832417964935\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1456\u001b[0m: -0.006574202328920364\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1457\u001b[0m: -0.007887774147093296\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1458\u001b[0m: 0.02034449204802513\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1459\u001b[0m: 0.022083228453993797\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1460\u001b[0m: -0.044648732990026474\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1461\u001b[0m: 0.026677554473280907\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1462\u001b[0m: 0.0006068128277547657\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1463\u001b[0m: -0.007684709504246712\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1464\u001b[0m: -0.005149580538272858\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1465\u001b[0m: -0.0018640656489878893\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1466\u001b[0m: -0.018542297184467316\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1467\u001b[0m: 0.027210598811507225\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1468\u001b[0m: 0.011790413409471512\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1469\u001b[0m: -0.0016292727086693048\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1470\u001b[0m: 0.004413472954183817\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1471\u001b[0m: -0.009118850342929363\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1472\u001b[0m: 0.009175961837172508\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1473\u001b[0m: 0.010679906234145164\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1474\u001b[0m: 0.0030824507120996714\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1475\u001b[0m: -0.02063639648258686\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1476\u001b[0m: 0.01663856953382492\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1477\u001b[0m: 0.007938539609313011\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1478\u001b[0m: 0.010832204483449459\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1479\u001b[0m: -0.00407714769244194\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1480\u001b[0m: -0.020027203485369682\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1481\u001b[0m: -0.018504222854971886\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1482\u001b[0m: 0.007215123623609543\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1483\u001b[0m: -0.011187566444277763\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1484\u001b[0m: -0.0037947616074234247\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1485\u001b[0m: 0.02149941958487034\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1486\u001b[0m: 3.628978811320849e-05\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1487\u001b[0m: 0.052796684205532074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1488\u001b[0m: 0.018428072333335876\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1489\u001b[0m: -0.0043976083397865295\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1490\u001b[0m: 0.020166810601949692\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1491\u001b[0m: -0.0002260675246361643\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1492\u001b[0m: 0.02561146765947342\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1493\u001b[0m: -0.0015317066572606564\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1494\u001b[0m: 0.03414016216993332\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1495\u001b[0m: -0.048836931586265564\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1496\u001b[0m: -0.009068083949387074\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1497\u001b[0m: 0.002593827433884144\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1498\u001b[0m: -0.004245310090482235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1499\u001b[0m: -0.011536583304405212\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1500\u001b[0m: 0.004607018083333969\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1501\u001b[0m: -0.019151488319039345\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1502\u001b[0m: -0.0019782891031354666\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1503\u001b[0m: 0.015610557980835438\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1504\u001b[0m: 0.022387824952602386\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1505\u001b[0m: -0.04741548374295235\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1506\u001b[0m: 0.0008186024497263134\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1507\u001b[0m: 0.0338609516620636\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1508\u001b[0m: -0.004549906589090824\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1509\u001b[0m: 0.009309222921729088\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1510\u001b[0m: 0.021892854943871498\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1511\u001b[0m: -0.001743496279232204\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1512\u001b[0m: 0.012450371868908405\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1513\u001b[0m: 0.02125827968120575\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1514\u001b[0m: 0.00810987502336502\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1515\u001b[0m: -0.004318286199122667\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1516\u001b[0m: -0.011403322219848633\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1517\u001b[0m: 0.004702204838395119\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1518\u001b[0m: -0.005130542907863855\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1519\u001b[0m: -0.018669212237000465\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1520\u001b[0m: -0.013744905591011047\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1521\u001b[0m: 0.03401324898004532\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1522\u001b[0m: -0.03388633206486702\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1523\u001b[0m: 0.0006504399352706969\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1524\u001b[0m: 0.00017609470523893833\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1525\u001b[0m: 0.013046872802078724\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1526\u001b[0m: 0.003867737716063857\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1527\u001b[0m: -0.007297618314623833\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1528\u001b[0m: 0.015674015507102013\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1529\u001b[0m: -0.005381200462579727\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1530\u001b[0m: -0.01728583686053753\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1531\u001b[0m: 0.019760681316256523\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1532\u001b[0m: 0.003734476864337921\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1533\u001b[0m: -0.0210679080337286\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1534\u001b[0m: 0.002953949151560664\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4m1535\u001b[0m: -0.016092834994196892\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m16863091-c5ac-408a-8ccc-46724b433a5d\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.869s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.003s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4mdocs\u001b[0m: \u001b[0m\n",
+ " │ │ │ ├── \u001b[38;5;4m0\u001b[0m: The men's high jump event at the 2020 Summer Olympics took place between 30 July and 1 August 2021 at the Olympic Stadium. 33 athletes from 24 nations competed; the total possible number depended on how many nations would use universality places to enter athletes in addition to the 32 qualifying through mark or ranking (no universality places were used in 2021). Italian athlete Gianmarco Tamberi along with Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal in a rare instance where the athletes of different nations had agreed to share the same medal in the history of Olympics. Barshim in particular was heard to ask a competition official \"Can we have two golds?\" in response to being offered a 'jump off'. Maksim Nedasekau of Belarus took bronze. The medals were the first ever in the men's high jump for Italy and Belarus, the first gold in the men's high jump for Italy and Qatar, and the third consecutive medal in the men's high jump for Qatar (all by Barshim). Barshim became only the second man to earn three medals in high jump, joining Patrik Sjöberg of Sweden (1984 to 1992).\u001b[0m\n",
+ " │ │ │ ├── \u001b[38;5;4m1\u001b[0m: The men's long jump event at the 2020 Summer Olympics took place between 31 July and 2 August 2021 at the Japan National Stadium. Approximately 35 athletes were expected to compete; the exact number was dependent on how many nations use universality places to enter athletes in addition to the 32 qualifying through time or ranking (1 universality place was used in 2016). 31 athletes from 20 nations competed. Miltiadis Tentoglou won the gold medal, Greece's first medal in the men's long jump. Cuban athletes Juan Miguel Echevarría and Maykel Massó earned silver and bronze, respectively, the nation's first medals in the event since 2008.\u001b[0m\n",
+ " │ │ │ └── \u001b[38;5;4m2\u001b[0m: The men's pole vault event at the 2020 Summer Olympics took place between 31 July and 3 August 2021 at the Japan National Stadium. 29 athletes from 18 nations competed. Armand Duplantis of Sweden won gold, with Christopher Nilsen of the United States earning silver and Thiago Braz of Brazil taking bronze. It was Sweden's first victory in the event and first medal of any color in the men's pole vault since 1952. Braz, who had won in 2016, became the ninth man to earn multiple medals in the pole vault.\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mquestion\u001b[0m: Who won the 2020 Summer Olympics men's high jump?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:44Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.865s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Answer the question as truthfully as possible using the provided context, and if the answer is not contained within the text below, say \"I don't know.\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Context:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ * The men's high jump event at the 2020 Summer Olympics took place between 30 July and 1 August 2021 at the Olympic Stadium. 33 athletes from 24 nations competed; the total possible number depended on how many nations would use universality places to enter athletes in addition to the 32 qualifying through mark or ranking (no universality places were used in 2021). Italian athlete Gianmarco Tamberi along with Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal in a rare instance where the athletes of different nations had agreed to share the same medal in the history of Olympics. Barshim in particular was heard to ask a competition official \"Can we have two golds?\" in response to being offered a 'jump off'. Maksim Nedasekau of Belarus took bronze. The medals were the first ever in the men's high jump for Italy and Belarus, the first gold in the men's high jump for Italy and Qatar, and the third consecutive medal in the men's high jump for Qatar (all by Barshim). Barshim became only the second man to earn three medals in high jump, joining Patrik Sjöberg of Sweden (1984 to 1992).⏎\n",
+ " │ │ ⏎\n",
+ " │ │ * The men's long jump event at the 2020 Summer Olympics took place between 31 July and 2 August 2021 at the Japan National Stadium. Approximately 35 athletes were expected to compete; the exact number was dependent on how many nations use universality places to enter athletes in addition to the 32 qualifying through time or ranking (1 universality place was used in 2016). 31 athletes from 20 nations competed. Miltiadis Tentoglou won the gold medal, Greece's first medal in the men's long jump. Cuban athletes Juan Miguel Echevarría and Maykel Massó earned silver and bronze, respectively, the nation's first medals in the event since 2008.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ * The men's pole vault event at the 2020 Summer Olympics took place between 31 July and 3 August 2021 at the Japan National Stadium. 29 athletes from 18 nations competed. Armand Duplantis of Sweden won gold, with Christopher Nilsen of the United States earning silver and Thiago Braz of Brazil taking bronze. It was Sweden's first victory in the event and first medal of any color in the men's pole vault since 1952. Braz, who had won in 2016, became the ninth man to earn multiple medals in the pole vault.⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Q: Who won the 2020 Summer Olympics men's high jump?⏎\n",
+ " │ │ ⏎\n",
+ " │ │ A: ⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:48Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:48Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: Italian athlete Gianmarco Tamberi and Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:48Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:48Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m8f704116-b88c-4e34-a26a-196b09fbe252\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mqa\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 15:19:43Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.445s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mqa\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 15:19:48Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "show_log(\"qa.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ },
+ "widgets": {
+ "application/vnd.jupyter.widget-state+json": {
+ "state": {
+ "1ee1ec3a4c414bd48972ae72e83cb441": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "ProgressStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "ProgressStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "bar_color": null,
+ "description_width": ""
+ }
+ },
+ "21967c4930bd4a16875d93a9dd0b899d": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "44721359c38d4a5e9dff7836beac706b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "513da11a24d94c0e99b31cf62fe1eaf3": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLStyleModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLStyleModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "StyleView",
+ "background": null,
+ "description_width": "",
+ "font_size": null,
+ "text_color": null
+ }
+ },
+ "618fe16604b948389f25bc398b2fbfd1": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "6ddf75aa7e3b45bca6e2f6f180e83313": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_cb06aabf5fc44ddd964a701a3047e75e",
+ "placeholder": "",
+ "style": "IPY_MODEL_44721359c38d4a5e9dff7836beac706b",
+ "tabbable": null,
+ "tooltip": null,
+ "value": "100%"
+ }
+ },
+ "a8f31c28a5794ed5b3374eb18f8413d3": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "ba9ee3f061c54bff8b58428a0040bf9b": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HBoxModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HBoxModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HBoxView",
+ "box_style": "",
+ "children": [
+ "IPY_MODEL_6ddf75aa7e3b45bca6e2f6f180e83313",
+ "IPY_MODEL_e8d2102101a443929565f73b8609083a",
+ "IPY_MODEL_bb921e0d018d4a55be383779c09325c1"
+ ],
+ "layout": "IPY_MODEL_21967c4930bd4a16875d93a9dd0b899d",
+ "tabbable": null,
+ "tooltip": null
+ }
+ },
+ "bb921e0d018d4a55be383779c09325c1": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "HTMLModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "HTMLModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "HTMLView",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_a8f31c28a5794ed5b3374eb18f8413d3",
+ "placeholder": "",
+ "style": "IPY_MODEL_513da11a24d94c0e99b31cf62fe1eaf3",
+ "tabbable": null,
+ "tooltip": null,
+ "value": " 4/4 [00:00<00:00, 75.17it/s]"
+ }
+ },
+ "cb06aabf5fc44ddd964a701a3047e75e": {
+ "model_module": "@jupyter-widgets/base",
+ "model_module_version": "2.0.0",
+ "model_name": "LayoutModel",
+ "state": {
+ "_model_module": "@jupyter-widgets/base",
+ "_model_module_version": "2.0.0",
+ "_model_name": "LayoutModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/base",
+ "_view_module_version": "2.0.0",
+ "_view_name": "LayoutView",
+ "align_content": null,
+ "align_items": null,
+ "align_self": null,
+ "border_bottom": null,
+ "border_left": null,
+ "border_right": null,
+ "border_top": null,
+ "bottom": null,
+ "display": null,
+ "flex": null,
+ "flex_flow": null,
+ "grid_area": null,
+ "grid_auto_columns": null,
+ "grid_auto_flow": null,
+ "grid_auto_rows": null,
+ "grid_column": null,
+ "grid_gap": null,
+ "grid_row": null,
+ "grid_template_areas": null,
+ "grid_template_columns": null,
+ "grid_template_rows": null,
+ "height": null,
+ "justify_content": null,
+ "justify_items": null,
+ "left": null,
+ "margin": null,
+ "max_height": null,
+ "max_width": null,
+ "min_height": null,
+ "min_width": null,
+ "object_fit": null,
+ "object_position": null,
+ "order": null,
+ "overflow": null,
+ "padding": null,
+ "right": null,
+ "top": null,
+ "visibility": null,
+ "width": null
+ }
+ },
+ "e8d2102101a443929565f73b8609083a": {
+ "model_module": "@jupyter-widgets/controls",
+ "model_module_version": "2.0.0",
+ "model_name": "FloatProgressModel",
+ "state": {
+ "_dom_classes": [],
+ "_model_module": "@jupyter-widgets/controls",
+ "_model_module_version": "2.0.0",
+ "_model_name": "FloatProgressModel",
+ "_view_count": null,
+ "_view_module": "@jupyter-widgets/controls",
+ "_view_module_version": "2.0.0",
+ "_view_name": "ProgressView",
+ "bar_style": "success",
+ "description": "",
+ "description_allow_html": false,
+ "layout": "IPY_MODEL_618fe16604b948389f25bc398b2fbfd1",
+ "max": 4.0,
+ "min": 0.0,
+ "orientation": "horizontal",
+ "style": "IPY_MODEL_1ee1ec3a4c414bd48972ae72e83cb441",
+ "tabbable": null,
+ "tooltip": null,
+ "value": 4.0
+ }
+ }
+ },
+ "version_major": 2,
+ "version_minor": 0
+ }
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/qa.log b/qa.log
new file mode 100644
index 0000000000000000000000000000000000000000..93ec1398a7a6d7e92dbbcdd26aba5e0e602bcc47
--- /dev/null
+++ b/qa.log
@@ -0,0 +1,18 @@
+{"action_status": "started", "timestamp": 1677511183.6399937, "task_uuid": "8f704116-b88c-4e34-a26a-196b09fbe252", "action_type": "qa", "task_level": [1]}
+{"action_status": "started", "timestamp": 1677511183.6462893, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "", "task_level": [1]}
+{"input": "Who won the 2020 Summer Olympics men's high jump?", "action_status": "started", "timestamp": 1677511183.64635, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677511183.6463842, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Who won the 2020 Summer Olympics men's high jump?", "action_status": "started", "timestamp": 1677511183.6464071, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677511184.2114058, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": [0.011016231030225754, -0.0031887420918792486, 0.014024118892848492, -0.022197451442480087, 0.007824316620826721, 0.027616726234555244, -0.02050948143005371, -0.026829853653907776, -0.011498508043587208, -0.005558881442993879, 0.015267887152731419, 0.006593239493668079, 0.002844484755769372, -0.018999191001057625, 0.028073621913790703, -0.031906455755233765, 0.015661323443055153, -0.0171843059360981, 0.01038800086826086, -0.02090291678905487, -0.028454367071390152, -0.00035179281258024275, -0.0003016216796822846, 0.010077059268951416, 0.02153749391436577, 0.0013873407151550055, 0.039749812334775925, -0.018148859962821007, 0.023758508265018463, -0.03817606344819069, 0.015889771282672882, 0.022425899282097816, -0.019253021106123924, -0.009359989315271378, -0.027439044788479805, -0.010000910609960556, -0.026931384578347206, -0.002877800026908517, 0.031043434515595436, -0.02509111538529396, 0.0162958987057209, 0.011980785988271236, -0.011828487738966942, -0.007957576774060726, -0.00014972015924286097, -0.020065277814865112, 0.02974889986217022, -0.02096637524664402, -0.010971810668706894, 0.019481468945741653, -0.0048259468749165535, 0.018123477697372437, -0.015470950864255428, -0.013402234762907028, -0.01470946054905653, -0.022108610719442368, 0.007805278990417719, 0.0018862757133319974, -0.0007579211378470063, 0.0027794407214969397, 0.003328348509967327, 0.013313394039869308, -0.01018493715673685, 0.022552814334630966, 0.00430876761674881, -0.0007261923747137189, -0.012367877177894115, -0.0035663144662976265, -0.02919047325849533, 0.009264802560210228, 0.007189740426838398, -0.0008376396726816893, 0.011796758510172367, -0.008344667963683605, 0.0290889423340559, -0.002057611243799329, -0.015978612005710602, 0.0033220029436051846, -0.01272323913872242, -0.003233162220567465, 0.0076085603795945644, -0.027134450152516365, -0.013694140128791332, 0.005850786343216896, 0.000519162102136761, -0.0075704860500991344, -0.00018184554937761277, 0.008890403434634209, -0.013960661366581917, -0.027185214683413506, 0.013275319710373878, 0.022146685048937798, 0.024367699399590492, 0.005562054459005594, -0.02946968749165535, -0.00100421579554677, -0.026322193443775177, -0.01014686282724142, -0.015521717257797718, -0.0021401059348136187, -0.02543378621339798, -0.04320190101861954, -0.02446923218667507, -0.012101355008780956, -0.006263260263949633, -0.004413472954183817, -0.004451547283679247, 0.0007840973557904363, 0.012196541763842106, 0.0032188843470066786, -0.01708277314901352, 0.013262628577649593, 0.004134259652346373, -0.052999746054410934, -0.011860216036438942, -0.003623426193371415, 0.022755878046154976, 0.001676865853369236, 0.00012334561324678361, -0.013973353430628777, 0.027565959841012955, -0.0023955225478857756, 0.013732214458286762, -0.011339864693582058, 0.009601127356290817, 0.027616726234555244, -0.04129817336797714, -0.008941168896853924, 0.01665126159787178, 0.012310764752328396, 0.02898740954697132, -0.001707008108496666, 0.014569854363799095, -0.0010541885858401656, 0.002201976953074336, 0.05355817452073097, 0.013935278169810772, -0.01014686282724142, -0.007767204195261002, -0.024342317134141922, -0.006437768694013357, 0.005190827883780003, -0.023466601967811584, 0.02090291678905487, -0.008839637041091919, 0.026322193443775177, 0.005720698274672031, 0.01036261860281229, 0.01458254549652338, 0.016130909323692322, 0.0034996839240193367, -0.002379658166319132, 0.0172477625310421, 0.014810992404818535, 0.011492162942886353, 0.0015229812124744058, -0.015915153548121452, 0.01618167571723461, -0.009797845967113972, -0.0332263745367527, 0.020027203485369682, -0.005498596932739019, 0.0003081657341681421, -0.03434322774410248, -0.015927845612168312, 0.02102983370423317, 0.03497780114412308, -0.005174963269382715, -0.00520034646615386, 0.0082431361079216, -0.0006036399863660336, -0.00023241328017320484, -0.026398342102766037, 0.02570030838251114, 0.013694140128791332, 0.030713455751538277, -0.006644005887210369, -0.006618622690439224, -0.01019128318876028, 0.013668756932020187, 0.004058110527694225, -0.0037852430250495672, 0.0213217381387949, 0.0034996839240193367, -0.006599585525691509, 0.015521717257797718, 0.024291550740599632, -0.009049046784639359, -0.0035853516310453415, -0.007595868781208992, 0.015864387154579163, 6.59363649901934e-05, -0.01646088995039463, -0.013656064867973328, -0.6327479481697083, -0.014481013640761375, -0.019088031724095345, 0.007722784299403429, 0.031144967302680016, 0.04142509028315544, 0.012139429338276386, 0.04652707651257515, 0.0006456805858761072, -0.001285808626562357, -0.00026136578526347876, 0.02097906731069088, 0.005000455304980278, -0.014354098588228226, -0.017818881198763847, -0.0169304758310318, 0.014569854363799095, 0.0033664230722934008, -0.00023340480402112007, -0.0009423446608707309, -0.013782979920506477, 0.018072711303830147, -0.014430247247219086, 0.0004255622043274343, 0.003328348509967327, -0.01238691434264183, 0.0031348031479865313, -0.012444025836884975, -0.028352834284305573, 0.03698306158185005, -0.011219295673072338, 0.03447014093399048, -0.0033632502891123295, 0.014354098588228226, 0.035206250846385956, -0.02878434583544731, -0.015242503955960274, 0.03012964501976967, -0.008833291009068489, 0.03454628959298134, 0.006834378466010094, -0.013389543630182743, 0.016130909323692322, -0.01686701737344265, 0.002549407072365284, 0.026956768706440926, 0.00093837856547907, -0.01742544397711754, 0.007031096611171961, -0.022083228453993797, -0.004115222487598658, -0.017907721921801567, 0.013706831261515617, 0.018123477697372437, -0.009271148592233658, 0.006218839902430773, 0.0008186024497263134, -0.006057023536413908, -0.0013318153796717525, -0.00517813628539443, -0.023035092279314995, 0.001496011740528047, -0.0333532877266407, 0.0020623705349862576, 0.01723507046699524, -0.007411842234432697, -0.014646003022789955, 0.011891945265233517, 0.03657693415880203, -0.009467867203056812, 0.002671562833711505, 0.000494968902785331, 0.00429290346801281, 0.03383556753396988, 0.017856955528259277, 0.020103352144360542, 0.006037985906004906, -0.01748890057206154, -0.011238332837820053, -0.0007610940374433994, -0.014696769416332245, -0.010343581438064575, 0.021905547007918358, -0.02482459507882595, 0.018593063578009605, 0.010768746957182884, -0.04475026577711105, 0.008338321931660175, 0.013516458682715893, 0.0004517384513746947, 0.030155029147863388, 0.027743641287088394, 0.008915785700082779, 0.026804469525814056, -0.009715351276099682, 0.02100444957613945, -0.011308135464787483, -0.004851330071687698, 0.022019769996404648, -0.022628962993621826, 0.015737472102046013, -0.012405951507389545, -0.011181220412254333, -0.02066177874803543, -0.002449461491778493, 0.006206148769706488, 0.013694140128791332, -0.0017641199519857764, 0.02891126088798046, -0.03817606344819069, 0.01630859076976776, -0.012837463058531284, 0.008877711370587349, 0.01035627257078886, 0.01694316603243351, -0.030561156570911407, 0.014442939311265945, 0.0009732802282087505, -0.012437679804861546, -0.027007535099983215, 0.0172477625310421, -0.007894119247794151, 0.02066177874803543, 0.009442484006285667, 0.02515457384288311, 0.026398342102766037, 0.006745537742972374, -0.0322110541164875, -0.019418010488152504, 0.0013873407151550055, -0.00316177261993289, -0.001273910398595035, 0.04147585481405258, -0.0007341245654970407, 0.04066359996795654, 0.0036837109364569187, -0.013351469300687313, 0.01069894339889288, 0.022248217836022377, -0.019912980496883392, -0.018681902438402176, 0.0052923597395420074, 0.009905723854899406, -0.015267887152731419, -0.01641012355685234, -0.02977428399026394, -0.015077514573931694, 0.018719978630542755, 0.013224554248154163, 0.015153663232922554, 0.019963745027780533, -0.015102897770702839, 0.0027762679383158684, -0.009004626423120499, -0.008604844100773335, -0.013161096721887589, 0.015483642928302288, -0.01667664386332035, -0.0060665421187877655, -0.013402234762907028, 0.007760858628898859, 0.009436137974262238, -0.000592931522987783, -0.0034489179961383343, 0.016016686335206032, -0.011009884998202324, -0.003962924238294363, -0.003394979052245617, -0.015229812823235989, -0.012704201973974705, 0.023174697533249855, -0.0009137887391261756, 0.008065454661846161, 0.022743185982108116, -0.015585174784064293, 0.01644819788634777, -0.004578462336212397, -0.01746351830661297, -0.01474753487855196, 0.01703200675547123, 0.006479016039520502, 0.011346210725605488, -0.027667492628097534, -0.017945796251296997, 0.016092834994196892, 0.015496334061026573, -0.019570309668779373, 0.018009252846240997, 0.0164862722158432, 0.0063076806254684925, -0.01641012355685234, 0.01065452303737402, 0.019862214103341103, 0.014316023327410221, 0.015369419008493423, -0.025776457041502, 0.04576558619737625, 0.007107245735824108, 0.009182307869195938, 0.02148672752082348, -0.007316655945032835, 0.017945796251296997, 0.018999191001057625, 0.008509657345712185, 0.018136167898774147, 0.013161096721887589, -0.004883058834820986, -0.01745082624256611, -0.004483276046812534, -0.012069626711308956, 0.00874445028603077, -0.017717348411679268, -0.018808819353580475, -0.001388927223160863, 0.0005195587291382253, 0.007189740426838398, -0.019659150391817093, 0.022578196600079536, -0.01628320850431919, 0.006412385497242212, 0.0078116245567798615, -0.0216390248388052, 0.008395434357225895, -0.03282024711370468, -0.007837007753551006, 0.01661318726837635, 0.0038867751136422157, 0.011454088613390923, 0.016092834994196892, -0.010978156700730324, -0.023491986095905304, 0.005489078350365162, 0.018174242228269577, 0.005758773069828749, -0.004162815399467945, -0.03304869309067726, 0.005501769948750734, -0.010851241648197174, 0.007456262595951557, 0.000860643049236387, 0.024215402081608772, -0.002013190882280469, 0.006399694364517927, -0.011060651391744614, 0.023682357743382454, -0.024151943624019623, 0.018389998003840446, -0.007697401102632284, -0.027362896129488945, 0.0032458538189530373, 0.002803237410262227, -0.004470584448426962, -0.01657511293888092, -0.003436226397752762, 0.012907265685498714, -0.020052585750818253, -0.0037884158082306385, -0.0043753981590271, 0.005197173450142145, 0.031018052250146866, -0.015496334061026573, 0.014239874668419361, 0.01681625097990036, 0.001810126705095172, 0.015064822509884834, -0.006202975753694773, -0.02099175751209259, -0.011898291297256947, -0.0015785066643729806, -0.03718612715601921, -0.009461521171033382, -0.003128457348793745, 0.02128366380929947, 0.006266433279961348, 0.023200081661343575, 0.003325175726786256, -0.011358901858329773, -0.004838638473302126, 0.018199626356363297, 0.00424848310649395, -0.03332790732383728, -0.04279577359557152, 0.0016943166265264153, 0.011987132020294666, -0.015166355296969414, -0.02870819717645645, 0.003801107406616211, 0.026119127869606018, -0.044293370097875595, 0.031322646886110306, -0.0006782026030123234, 0.012272690422832966, -0.01745082624256611, -0.012234616093337536, -0.005171790719032288, -0.013465692289173603, 0.04292268678545952, -0.0024066276382654905, 0.018719978630542755, -0.02567492611706257, 0.003547277068719268, -0.0288351122289896, 0.014696769416332245, -0.0252687968313694, 0.05980239808559418, 0.014024118892848492, -0.000474741798825562, -0.014950599521398544, 0.0022067364770919085, 0.007830661721527576, 0.01630859076976776, -0.030738838016986847, -0.026017596945166588, 0.01271689310669899, 0.009321914054453373, -0.013973353430628777, -0.01733660325407982, -0.02125827968120575, 0.006485361605882645, -0.018288467079401016, -0.03261718153953552, 0.00023300820612348616, -0.010153207927942276, -0.01297706924378872, 0.12133084237575531, 0.022578196600079536, -0.00738011347129941, 0.02077600173652172, 0.00520034646615386, 0.020103352144360542, -0.008795216679573059, -0.010965464636683464, 0.0029285659547895193, 0.013605299405753613, -0.01672741025686264, 0.00039621308678761125, -0.02490074373781681, 0.012996106408536434, 0.00733569310978055, 0.005727044306695461, -0.001138269784860313, -0.01509020570665598, 0.01611821912229061, -0.00520034646615386, -0.019595691934227943, 0.01687970943748951, 0.02472306229174137, 0.04698397219181061, -0.009594782255589962, 0.0005532705108635128, 0.005339953117072582, 0.019671840593218803, 0.02921585738658905, -0.006739192176610231, -0.012405951507389545, -0.004511831793934107, 0.01737467758357525, 0.013503767549991608, 0.005593783222138882, -0.002327305730432272, -0.00819871574640274, -0.00025383022148162127, 0.018389998003840446, -0.010140516795217991, 0.026702938601374626, -0.005577918607741594, 0.005644549150019884, -0.0021290008444339037, 0.01036261860281229, -0.00324426731094718, 0.004534041974693537, 0.044217221438884735, -0.019621074199676514, 0.011555620469152927, 0.022489355877041817, 0.0013833746779710054, -0.022971633821725845, -0.02047140710055828, -0.030713455751538277, 0.05030914768576622, -0.009385371580719948, -0.02519264817237854, -0.013211862184107304, 0.026119127869606018, -0.008687338791787624, -0.003823317587375641, -0.013237245380878448, -0.021626334637403488, -0.01732391119003296, -0.023187389597296715, -0.02147403545677662, -0.044090308248996735, -0.008649264462292194, -0.031906455755233765, 0.0007257957477122545, -0.01671472005546093, -0.02566223405301571, 0.0009129955433309078, 0.007519720122218132, -0.006475843023508787, 0.026195278391242027, -0.005035356618463993, 0.0029206338804215193, -0.010038984939455986, 2.0004001271445304e-05, -0.031373415142297745, -0.0024764309637248516, -0.014392172917723656, -0.013224554248154163, 0.022324366495013237, 0.011181220412254333, -0.01450639683753252, -0.006463151890784502, 0.009448829106986523, 0.013592607341706753, 0.006187111139297485, -0.005492251366376877, -0.004746624734252691, 0.004629228264093399, 0.01670202799141407, -0.002360621001571417, 0.036069273948669434, 0.011650806292891502, -0.0025256106164306402, 0.022324366495013237, -0.056299541145563126, 0.009182307869195938, 0.030434241518378258, -0.00042595883132889867, 0.028428982943296432, 0.023035092279314995, -0.0013492661528289318, -0.022362440824508667, -0.002002085791900754, 0.023707741871476173, -0.009518632665276527, 0.01737467758357525, -0.0004695858806371689, 0.03723689168691635, 0.018047327175736427, 0.0028286203742027283, 0.006707463413476944, -0.0048640212044119835, -0.007932193577289581, -0.026093745604157448, -0.014442939311265945, 0.022717803716659546, 0.01707008108496666, -0.026829853653907776, 0.0021004448644816875, 0.005727044306695461, -0.01671472005546093, -0.026169894263148308, 0.011815796606242657, -0.0015523303300142288, 0.014316023327410221, -0.00630133505910635, 0.010140516795217991, 0.0016372048994526267, -0.027794407680630684, -0.036297719925642014, 0.022273600101470947, 0.006371138151735067, -0.0031903283670544624, -0.015039440244436264, -0.003623426193371415, -0.004403953906148672, 0.0014714220305904746, -0.031170349568128586, -0.02073792740702629, -0.005470041185617447, 0.01646088995039463, -0.017526976764202118, -0.0026842544320970774, -0.013947970233857632, 0.005701661109924316, -0.022743185982108116, -0.012945340946316719, 0.000675822957418859, -0.002925393171608448, -0.002263848204165697, -0.012405951507389545, 0.023504678159952164, 0.02086484245955944, 0.028758961707353592, -0.0032474403269588947, -0.005463695153594017, 0.023123931139707565, -0.02104252390563488, -0.010127825662493706, -0.0074626081623137, -0.019798755645751953, -0.004819601308554411, 0.010540299117565155, 0.036145422607660294, 0.005378027446568012, -0.006555165164172649, 0.01712084747850895, -0.023682357743382454, -0.03358173742890358, -0.006961293518543243, -0.017514284700155258, -0.005720698274672031, -0.023618901148438454, 0.0010978156933560967, -0.04218658059835434, 0.00820506177842617, -0.018237700685858727, -0.018034636974334717, -0.014912525191903114, 0.035713911056518555, 0.004546733573079109, -0.011701572686433792, -0.0033220029436051846, -0.008826945908367634, -0.02531956322491169, 0.002785786520689726, 0.005584264639765024, -0.01023570355027914, -0.007741821464151144, 0.00013603712432086468, 0.0019814621191471815, 0.027819789946079254, 0.02880972810089588, -0.026423724368214607, 0.012120392173528671, -0.009245765395462513, -0.00623470451682806, -0.00842081755399704, 0.04165353626012802, -0.0036773651372641325, -0.0034552637953311205, 0.007024751044809818, -0.010965464636683464, -0.015724781900644302, -0.03710997477173805, -0.00358217884786427, -0.023200081661343575, 0.014100268483161926, 0.01247575506567955, -0.007443570997565985, 0.005708006676286459, -0.022349750623106956, -0.015978612005710602, 0.0023875904735177755, 0.02057293802499771, 0.026855235919356346, 0.0004731553781311959, 0.02967275120317936, 0.019671840593218803, -0.009004626423120499, -0.004648265894502401, 0.010546645149588585, 0.018339233472943306, 0.002903182990849018, 0.02090291678905487, -0.001932282466441393, -0.0064441142603755, -0.02439308352768421, 0.005723871290683746, -0.014074885286390781, -0.03266794607043266, -0.006593239493668079, 0.023631593212485313, -0.0044356826692819595, -0.00038431480061262846, 0.011193912476301193, -0.01488714199513197, -0.0034457449801266193, 0.039445213973522186, -0.032337967306375504, -0.012494792230427265, -0.01647358015179634, -0.019405320286750793, -0.022717803716659546, 0.04477564990520477, -0.014646003022789955, 0.0068978359922766685, 0.010508570820093155, -0.03662769868969917, -0.0021369331516325474, -0.018580371513962746, -0.02025565132498741, 0.02062370441854, -0.005419274792075157, 0.018339233472943306, 0.004327805247157812, -0.009912069886922836, 0.019532235339283943, 0.01026743184775114, -0.019494159147143364, -0.00011590918438741937, -0.006567856762558222, 0.026880618184804916, -0.04469950124621391, 0.011098725721240044, 0.019100723788142204, 0.0011795172467827797, 0.011333518661558628, -0.004676821641623974, -0.016016686335206032, -0.005520807113498449, 0.004492794629186392, 0.010038984939455986, 0.03363250195980072, 0.013072255998849869, -0.01742544397711754, -0.02080138586461544, -0.003103074384853244, 0.0006964466301724315, -0.0052352482452988625, -0.01741275191307068, 0.00041723341564647853, -0.022286292165517807, -0.015724781900644302, -0.02524341456592083, 0.0007376940338872373, 0.030764222145080566, 0.012031551450490952, -0.004505486227571964, -0.007037442643195391, 0.026220660656690598, -0.013833746314048767, 0.0011811036383733153, -0.00842081755399704, 0.023149315267801285, -0.01675279438495636, -0.009873995557427406, -0.002079821191728115, -0.03700844570994377, 0.03312484174966812, 0.006057023536413908, 0.0018957944121211767, -0.021816706284880638, -0.003797934390604496, -0.009112504310905933, 0.004473757464438677, -0.006942256353795528, 0.012177504599094391, -0.013744905591011047, -0.011409668251872063, -0.0324648842215538, 0.008262173272669315, 0.0344955250620842, 0.004924306180328131, 0.02108059823513031, -0.007989306002855301, -0.018542297184467316, 0.0285812821239233, 0.018466148525476456, -0.000934412470087409, 0.006371138151735067, -0.04919229447841644, -0.02135981246829033, 0.028073621913790703, -0.008769833482801914, 0.01230441965162754, -0.017856955528259277, -0.031779542565345764, 0.004461065866053104, -0.006171246990561485, 0.031424179673194885, 0.009544015862047672, -0.012615361250936985, 0.026829853653907776, 0.031728774309158325, 0.026626788079738617, 0.012310764752328396, -0.009239419363439083, -0.03477473929524422, 0.02059832215309143, 0.00187675713095814, -0.012875537388026714, -0.04249117523431778, 0.005720698274672031, 0.03830297663807869, 0.01742544397711754, -0.030307326465845108, -0.02180401422083378, 0.01241864264011383, -0.03302330896258354, -0.005320915952324867, -0.018440764397382736, 0.009321914054453373, 0.007526065688580275, 0.02568761631846428, -0.006463151890784502, 0.02097906731069088, -0.022603580728173256, -0.0017974351067095995, 0.00035714704426936805, -0.019544925540685654, 0.022032462060451508, 0.0012628053082153201, -0.011949056759476662, -0.004952861927449703, -0.02931738831102848, 0.0029825048986822367, 0.0056382035836577415, 0.006650351453572512, 0.012177504599094391, 0.009169616736471653, -0.0023177871480584145, 0.0058634779416024685, -0.013173787854611874, 0.005904725287109613, -0.012989761307835579, 0.001654655672609806, 0.011301790364086628, -0.06472670286893845, 0.00634575542062521, 0.005809538997709751, -0.015635941177606583, -0.019798755645751953, -0.022679729387164116, -0.0064917076379060745, -0.01657511293888092, 0.0005976908141747117, -0.0038169717881828547, 0.017895029857754707, -0.00614586379379034, -0.032084137201309204, 0.0021702481899410486, 0.005470041185617447, -0.01717161387205124, 0.01703200675547123, 0.0064441142603755, -0.000555650214664638, -0.0250149667263031, 0.02061101235449314, 0.005447831004858017, -0.005577918607741594, 0.0038518733344972134, 0.009943798184394836, 0.01077509205788374, -0.02507842518389225, 0.03891216963529587, -0.026017596945166588, -0.01286284625530243, -0.027185214683413506, -0.027185214683413506, -0.03840450942516327, 0.02566223405301571, -0.007779895793646574, -0.004432510118931532, 0.010089750401675701, -0.003309311345219612, -0.027515195310115814, 0.001533293048851192, -0.010330889374017715, 0.0007833041599951684, -0.023821964859962463, -0.01745082624256611, 0.005993566010147333, -0.01238691434264183, 0.01250748336315155, -0.0036583279725164175, 0.012361531145870686, 0.013732214458286762, 0.009499595500528812, 0.23900651931762695, 0.01647358015179634, 0.010921044275164604, 0.018098093569278717, 0.005533498711884022, 0.019544925540685654, 0.02939353883266449, 0.020319107919931412, -0.00725319841876626, -0.011238332837820053, 0.011060651391744614, 0.02559877745807171, 0.003506029723212123, 0.0005239213933236897, 0.018618445843458176, -0.018910350278019905, -0.023745816200971603, 0.008782525546848774, -0.031221115961670876, -0.007633943576365709, -0.01432871539145708, 0.009125196374952793, 0.00833197683095932, -0.008604844100773335, -0.006758229341357946, 0.011955402791500092, 0.02118213102221489, 0.013770288787782192, -0.019836829975247383, -0.020141426473855972, 0.01074336376041174, -0.01487444993108511, -0.008268519304692745, -0.0031078336760401726, -0.01686701737344265, -0.016207057982683182, 0.005752427037805319, 0.018313849344849586, 0.01687970943748951, 0.015179046429693699, -0.013681448064744473, -0.022413207218050957, -0.00028159288922324777, -0.013059563934803009, 0.0027270882856100798, 0.019773373380303383, 0.008719068020582199, -0.013059563934803009, -0.013491075485944748, 0.018060019239783287, -0.035257015377283096, -0.006745537742972374, 0.03665308281779289, 0.027083683758974075, 0.015483642928302288, -0.007652980741113424, 0.04132355749607086, -0.018618445843458176, 0.003870910732075572, 0.00208299420773983, -0.028251301497220993, 0.018681902438402176, 0.0027794407214969397, 0.02535763755440712, -0.0249515101313591, 0.004238964524120092, -0.02979966625571251, 0.02997734770178795, -0.005203519482165575, 0.0014381067594513297, 0.008801562711596489, -0.0168035589158535, -0.006777266506105661, 0.0005005214479751885, -0.024202710017561913, -0.019265713170170784, 0.02949506975710392, 0.018237700685858727, 0.02141057886183262, 0.005888860672712326, 0.007659326773136854, 0.002807996701449156, 0.019582999870181084, -0.013326086103916168, -0.009518632665276527, -0.014468321576714516, -0.0036741923540830612, 0.0002230929530924186, -0.036450017243623734, -0.00816064141690731, 0.017806189134716988, -0.0029095287900418043, -0.010908353142440319, 0.019100723788142204, 0.004594326950609684, -0.004708550404757261, 0.006650351453572512, 0.011225640773773193, -0.000867782044224441, -0.0005445451242849231, 0.0002361810766160488, 0.018948424607515335, 0.005400237627327442, 0.017514284700155258, -0.015445568598806858, -0.023339686915278435, -0.02964736893773079, 0.00815429538488388, 0.03279486298561096, -0.02568761631846428, -0.0028460712637752295, -0.01745082624256611, 0.0058634779416024685, -0.021930929273366928, -0.006999367848038673, 0.009404409676790237, -0.009607473388314247, -0.019519543275237083, 0.010077059268951416, -0.011454088613390923, 0.002903182990849018, -0.039800576865673065, 0.00021278110216371715, 0.017628507688641548, -0.00811622105538845, -0.011377939023077488, -0.013338777236640453, -0.012697855941951275, -0.01689239963889122, -0.03452090919017792, 0.006980330683290958, 0.009252111427485943, 0.022286292165517807, -0.01264709047973156, 0.008084491826593876, -0.0024367698933929205, -0.016003994271159172, -0.02583991549909115, 0.015280578285455704, -0.032033372670412064, -0.015623249113559723, -0.02997734770178795, 0.02160095050930977, 0.03274409845471382, 0.004905268549919128, -0.0162958987057209, 0.017844263464212418, -0.013135713525116444, -0.025852607563138008, -0.011498508043587208, -0.0025240241084247828, 0.00026751324185170233, -0.013364160433411598, -0.013706831261515617, 0.01630859076976776, -0.008858674205839634, 0.011796758510172367, -0.011650806292891502, -0.030510390177369118, 0.010711634531617165, -0.017666582018136978, 0.012996106408536434, 0.02039525657892227, -0.03330252319574356, -0.03304869309067726, 0.0010581547394394875, -0.15879617631435394, 0.011923674494028091, 0.026779087260365486, -0.014036810956895351, -0.00841447152197361, 0.01732391119003296, 0.03228720277547836, -0.024405773729085922, -0.014950599521398544, 0.010895662009716034, 0.027413662523031235, 0.01761581562459469, -0.007475299760699272, -0.011396976187825203, -0.014214491471648216, -0.003956578206270933, 0.0067138089798390865, -0.006199802737683058, 0.005755600053817034, 0.022832026705145836, 0.021994387730956078, -0.019443394616246223, -0.0046419198624789715, 0.010368963703513145, -0.0033632502891123295, -0.0246976800262928, -0.017641199752688408, 0.0062886434607207775, 0.004990936256945133, -0.00509564159438014, -0.01454447116702795, -0.000590948446188122, 0.007113591767847538, -2.2036627342458814e-05, -0.002788959303870797, 0.012037897482514381, -0.015534408390522003, -0.010870278812944889, -0.011777721345424652, 0.02155018411576748, 0.019582999870181084, 0.016042068600654602, 0.0016387912910431623, 0.013034181669354439, -0.005054394248872995, 0.010058022104203701, 0.015509026125073433, 0.006967639084905386, 0.003908985294401646, 0.0038962936960160732, 0.02144865319132805, -0.022133994847536087, 0.03459705784916878, 0.010921044275164604, 0.01658780500292778, -0.01057202834635973, 0.021702483296394348, 0.01741275191307068, -0.007189740426838398, 0.027235981076955795, -0.022210143506526947, -0.018428072333335876, 0.01030550617724657, -0.028251301497220993, -0.013757597655057907, 0.023162007331848145, -0.01048953365534544, -0.018428072333335876, -0.036170803010463715, 0.01453177910298109, -0.00807180069386959, 0.006726500578224659, 0.019367244094610214, 0.001924350275658071, 0.00630133505910635, 0.023111240938305855, 0.013288011774420738, 0.0033695960883051157, -0.018491530790925026, -0.006586893927305937, -0.041120495647192, 0.023022400215268135, 0.002019536681473255, -0.021778631955385208, -0.004594326950609684, 0.015318653546273708, -0.009931107051670551, 0.022603580728173256, -0.01647358015179634, -0.01679086871445179, -0.01624513417482376, -0.015800930559635162, -0.023326996713876724, -0.02547186054289341, 0.003280755365267396, 0.012367877177894115, -0.015623249113559723, 0.018072711303830147, -0.001707008108496666, -0.018428072333335876, 0.004718068987131119, -0.0020258822478353977, -0.03264256566762924, -0.002811169484630227, 0.02995196543633938, -0.00022348956554196775, -0.005422447808086872, 0.013084947131574154, -0.0014412796590477228, 0.011974439956247807, -0.05553805083036423, 0.018136167898774147, -0.006183938588947058, 0.043582648038864136, -0.007481645327061415, 0.031855691224336624, -0.00631719920784235, -0.02439308352768421, 0.023656975477933884, -0.011701572686433792, 0.05094372108578682, -0.009626510553061962, -0.043836478143930435, -0.007018405478447676, -0.026855235919356346, 9.037743438966572e-05, -0.05503039062023163, -0.007906811311841011, 0.019506851211190224, 0.03261718153953552, 0.026728320866823196, 0.015458259731531143, 0.012266344390809536, -0.0044007813557982445, -0.0050099738873541355, 0.03205875679850578, 0.0029301524627953768, -0.022311674430966377, 0.03198260813951492, -0.00025383022148162127, 0.021943621337413788, -0.012945340946316719, 0.004689513240009546, -0.0574163943529129, -0.008985589258372784, 0.013072255998849869, -0.0019640112295746803, -0.004626055713742971, 0.000502107897773385, -0.022705111652612686, 0.00857311487197876, -0.021854780614376068, -0.033480204641819, 0.0015975438291206956, 0.01715892180800438, -0.019291095435619354, -0.01639743149280548, -0.011447742581367493, 0.015585174784064293, -0.026119127869606018, 0.012456717900931835, 0.004229445941746235, -0.04195813462138176, 0.007392804604023695, 0.0018624791409820318, -0.01729852892458439, 0.005520807113498449, 0.010882969945669174, 0.0052352482452988625, -0.031246498227119446, 0.0006000704597681761, 0.008224098943173885, -0.01038800086826086, 0.0028428982477635145, 0.01509020570665598, -0.0107877841219306, -0.02962198480963707, 0.028073621913790703, -0.007830661721527576, -1.0578324690868612e-05, 0.012120392173528671, -0.0208140779286623, 0.00214327871799469, 0.003531412687152624, -0.0036075618118047714, -0.001256459509022534, 0.0026842544320970774, 0.015064822509884834, -0.01719699613749981, 0.0015888185007497668, 0.0408666618168354, 0.0065297819674015045, -0.01280573382973671, -0.017945796251296997, 0.023542752489447594, 0.008516003377735615, 0.003420362016186118, 0.03467320650815964, -0.0341147817671299, 0.00040513681597076356, -0.0167401023209095, -0.01676548458635807, -0.022121302783489227, -0.02172786556184292, 0.019976437091827393, -0.02153749391436577, -0.0046228826977312565, -0.01723507046699524, 0.028530515730381012, 0.0027080511208623648, 0.018263082951307297, -0.0014293813146650791, -0.022476665675640106, 0.002346342895179987, 0.03688152879476547, -0.022324366495013237, -0.0146713862195611, 0.02531956322491169, 0.020242959260940552, -0.01723507046699524, -0.011041614226996899, 0.02067447081208229, -0.004556252155452967, 0.007075516972690821, -0.02172786556184292, 0.013199171051383018, -0.005520807113498449, -0.019316479563713074, -0.07401689141988754, 0.0343686118721962, 0.0024320106022059917, -0.009347297251224518, 0.007481645327061415, -0.010502224788069725, 0.03327713906764984, -0.01276765950024128, -0.0004723621532320976, 0.009175961837172508, -0.0054097562097013, -0.002536715706810355, 0.011022577062249184, 0.009950144216418266, -0.005609647836536169, -0.01465869415551424, 0.018339233472943306, 0.019151488319039345, 0.001093849539756775, -0.002884145826101303, 0.005470041185617447, 0.004705377388745546, 0.019379936158657074, 0.028099004179239273, -0.0020591975189745426, -0.0015642286743968725, -0.006999367848038673, 0.019430702552199364, -0.01700662449002266, -0.021918239071965218, 0.019595691934227943, -0.02880972810089588, -0.02139788679778576, 0.016080142930150032, -0.003423535032197833, -0.026068363338708878, 0.0169939324259758, -0.0032188843470066786, 0.005996738560497761, 0.0005009180749766529, -0.006031640339642763, -0.009645547717809677, -0.0021813532803207636, 0.007107245735824108, -0.0014436593046411872, 0.024494614452123642, -0.004775180947035551, 0.01237422227859497, 0.026449108496308327, 0.00048108756891451776, -0.000183332827873528, 0.006206148769706488, 0.0033886332530528307, -0.01727314479649067, 0.027185214683413506, -0.027642110362648964, -0.002194044878706336, 0.012240962125360966, 0.02544647827744484, -0.026880618184804916, 0.02941892109811306, -0.019608383998274803, 0.010007255710661411, 0.0007107245619408786, 0.030485007911920547, -0.000461653689853847, -0.008395434357225895, 0.019189564511179924, -0.0032585454173386097, 0.007043788209557533, -0.027972089126706123, -0.0008542973082512617, 0.0033632502891123295, 0.026855235919356346, -0.011745993047952652, 0.018072711303830147, 0.0027064646128565073, -0.00836370512843132, -0.035104718059301376, 0.004499140661209822, -0.01269151084125042, -0.000386892759706825, -0.030078880488872528, 0.01432871539145708, -0.003088796278461814, -0.011942711658775806, -0.012488446198403835, 0.007684709504246712, -0.013808363117277622, 0.023200081661343575, 0.0054732137359678745, 0.020357182249426842, 0.009867649525403976, 0.0036551549565047026, 0.026499873027205467, 0.012494792230427265, -0.011581003665924072, 0.00832563079893589, 0.031348031014204025, 0.02165171690285206, 0.004594326950609684, 0.0031316301319748163, 0.001799021614715457, -0.018263082951307297, -0.006063369102776051, 0.03312484174966812, -0.02483728528022766, -0.027159832417964935, -0.006574202328920364, -0.007887774147093296, 0.02034449204802513, 0.022083228453993797, -0.044648732990026474, 0.026677554473280907, 0.0006068128277547657, -0.007684709504246712, -0.005149580538272858, -0.0018640656489878893, -0.018542297184467316, 0.027210598811507225, 0.011790413409471512, -0.0016292727086693048, 0.004413472954183817, -0.009118850342929363, 0.009175961837172508, 0.010679906234145164, 0.0030824507120996714, -0.02063639648258686, 0.01663856953382492, 0.007938539609313011, 0.010832204483449459, -0.00407714769244194, -0.020027203485369682, -0.018504222854971886, 0.007215123623609543, -0.011187566444277763, -0.0037947616074234247, 0.02149941958487034, 3.628978811320849e-05, 0.052796684205532074, 0.018428072333335876, -0.0043976083397865295, 0.020166810601949692, -0.0002260675246361643, 0.02561146765947342, -0.0015317066572606564, 0.03414016216993332, -0.048836931586265564, -0.009068083949387074, 0.002593827433884144, -0.004245310090482235, -0.011536583304405212, 0.004607018083333969, -0.019151488319039345, -0.0019782891031354666, 0.015610557980835438, 0.022387824952602386, -0.04741548374295235, 0.0008186024497263134, 0.0338609516620636, -0.004549906589090824, 0.009309222921729088, 0.021892854943871498, -0.001743496279232204, 0.012450371868908405, 0.02125827968120575, 0.00810987502336502, -0.004318286199122667, -0.011403322219848633, 0.004702204838395119, -0.005130542907863855, -0.018669212237000465, -0.013744905591011047, 0.03401324898004532, -0.03388633206486702, 0.0006504399352706969, 0.00017609470523893833, 0.013046872802078724, 0.003867737716063857, -0.007297618314623833, 0.015674015507102013, -0.005381200462579727, -0.01728583686053753, 0.019760681316256523, 0.003734476864337921, -0.0210679080337286, 0.002953949151560664, -0.016092834994196892], "action_status": "started", "timestamp": 1677511184.2114692, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677511184.216066, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677511184.2161038, "task_uuid": "6483e094-0601-4a93-8394-c753301f1a18", "action_type": "", "task_level": [5]}
+{"action_status": "started", "timestamp": 1677511184.2161624, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "", "task_level": [1]}
+{"input": {"question": "Who won the 2020 Summer Olympics men's high jump?", "docs": ["The men's high jump event at the 2020 Summer Olympics took place between 30 July and 1 August 2021 at the Olympic Stadium. 33 athletes from 24 nations competed; the total possible number depended on how many nations would use universality places to enter athletes in addition to the 32 qualifying through mark or ranking (no universality places were used in 2021). Italian athlete Gianmarco Tamberi along with Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal in a rare instance where the athletes of different nations had agreed to share the same medal in the history of Olympics. Barshim in particular was heard to ask a competition official \"Can we have two golds?\" in response to being offered a 'jump off'. Maksim Nedasekau of Belarus took bronze. The medals were the first ever in the men's high jump for Italy and Belarus, the first gold in the men's high jump for Italy and Qatar, and the third consecutive medal in the men's high jump for Qatar (all by Barshim). Barshim became only the second man to earn three medals in high jump, joining Patrik Sj\u00f6berg of Sweden (1984 to 1992).", "The men's long jump event at the 2020 Summer Olympics took place between 31 July and 2 August 2021 at the Japan National Stadium. Approximately 35 athletes were expected to compete; the exact number was dependent on how many nations use universality places to enter athletes in addition to the 32 qualifying through time or ranking (1 universality place was used in 2016). 31 athletes from 20 nations competed. Miltiadis Tentoglou won the gold medal, Greece's first medal in the men's long jump. Cuban athletes Juan Miguel Echevarr\u00eda and Maykel Mass\u00f3 earned silver and bronze, respectively, the nation's first medals in the event since 2008.", "The men's pole vault event at the 2020 Summer Olympics took place between 31 July and 3 August 2021 at the Japan National Stadium. 29 athletes from 18 nations competed. Armand Duplantis of Sweden won gold, with Christopher Nilsen of the United States earning silver and Thiago Braz of Brazil taking bronze. It was Sweden's first victory in the event and first medal of any color in the men's pole vault since 1952. Braz, who had won in 2016, became the ninth man to earn multiple medals in the pole vault."]}, "action_status": "started", "timestamp": 1677511184.216189, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677511184.2190657, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Answer the question as truthfully as possible using the provided context, and if the answer is not contained within the text below, say \"I don't know.\"\n\nContext:\n\n\n* The men's high jump event at the 2020 Summer Olympics took place between 30 July and 1 August 2021 at the Olympic Stadium. 33 athletes from 24 nations competed; the total possible number depended on how many nations would use universality places to enter athletes in addition to the 32 qualifying through mark or ranking (no universality places were used in 2021). Italian athlete Gianmarco Tamberi along with Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal in a rare instance where the athletes of different nations had agreed to share the same medal in the history of Olympics. Barshim in particular was heard to ask a competition official \"Can we have two golds?\" in response to being offered a 'jump off'. Maksim Nedasekau of Belarus took bronze. The medals were the first ever in the men's high jump for Italy and Belarus, the first gold in the men's high jump for Italy and Qatar, and the third consecutive medal in the men's high jump for Qatar (all by Barshim). Barshim became only the second man to earn three medals in high jump, joining Patrik Sj\u00f6berg of Sweden (1984 to 1992).\n\n* The men's long jump event at the 2020 Summer Olympics took place between 31 July and 2 August 2021 at the Japan National Stadium. Approximately 35 athletes were expected to compete; the exact number was dependent on how many nations use universality places to enter athletes in addition to the 32 qualifying through time or ranking (1 universality place was used in 2016). 31 athletes from 20 nations competed. Miltiadis Tentoglou won the gold medal, Greece's first medal in the men's long jump. Cuban athletes Juan Miguel Echevarr\u00eda and Maykel Mass\u00f3 earned silver and bronze, respectively, the nation's first medals in the event since 2008.\n\n* The men's pole vault event at the 2020 Summer Olympics took place between 31 July and 3 August 2021 at the Japan National Stadium. 29 athletes from 18 nations competed. Armand Duplantis of Sweden won gold, with Christopher Nilsen of the United States earning silver and Thiago Braz of Brazil taking bronze. It was Sweden's first victory in the event and first medal of any color in the men's pole vault since 1952. Braz, who had won in 2016, became the ninth man to earn multiple medals in the pole vault.\n\n\n Q: Who won the 2020 Summer Olympics men's high jump?\n\n A: \n", "action_status": "started", "timestamp": 1677511184.2191062, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677511188.0845268, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "Italian athlete Gianmarco Tamberi and Qatari athlete Mutaz Essa Barshim emerged as joint winners of the event following a tie between both of them as they cleared 2.37m. Both Tamberi and Barshim agreed to share the gold medal.", "action_status": "started", "timestamp": 1677511188.084622, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677511188.0846646, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677511188.0846934, "task_uuid": "16863091-c5ac-408a-8ccc-46724b433a5d", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677511188.0849996, "task_uuid": "8f704116-b88c-4e34-a26a-196b09fbe252", "action_type": "qa", "task_level": [2]}
diff --git a/qa.pmpt.tpl b/qa.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..618e74047c9f88a5616b7a655bca924cb918f035
--- /dev/null
+++ b/qa.pmpt.tpl
@@ -0,0 +1,12 @@
+Answer the question as truthfully as possible using the provided context, and if the answer is not contained within the text below, say "I don't know."
+
+Context:
+
+{% for doc in docs %}
+* {{doc}}
+{% endfor %}
+
+ Q: {{question}}
+
+ A:
+
diff --git a/qa.py b/qa.py
new file mode 100644
index 0000000000000000000000000000000000000000..21029b529876bbc9ad24aac119772929aa156e7d
--- /dev/null
+++ b/qa.py
@@ -0,0 +1,46 @@
+# # QA
+
+# Questions answering with embeddings. Adapted from [OpenAI
+# Notebook](https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb).
+
+import datasets
+import numpy as np
+
+from minichain import EmbeddingPrompt, TemplatePrompt, show_log, start_chain
+
+# We use Hugging Face Datasets as the database by assigning
+# a FAISS index.
+
+olympics = datasets.load_from_disk("olympics.data")
+olympics.add_faiss_index("embeddings")
+
+
+# Fast KNN retieval prompt
+
+
+class KNNPrompt(EmbeddingPrompt):
+ def find(self, out, inp):
+ res = olympics.get_nearest_examples("embeddings", np.array(out), 3)
+ return {"question": inp, "docs": res.examples["content"]}
+
+
+# QA prompt to ask question with examples
+
+
+class QAPrompt(TemplatePrompt):
+ template_file = "qa.pmpt.tpl"
+
+
+with start_chain("qa") as backend:
+ question = "Who won the 2020 Summer Olympics men's high jump?"
+ prompt = KNNPrompt(backend.OpenAIEmbed()).chain(QAPrompt(backend.OpenAI()))
+ result = prompt(question)
+ print(result)
+
+# + tags=["hide_inp"]
+QAPrompt().show(
+ {"question": "Who won the race?", "docs": ["doc1", "doc2", "doc3"]}, "Joe Bob"
+)
+# -
+
+show_log("qa.log")
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000000000000000000000000000000000000..c82d29079c034f2cbfb0fde994a85c19bab11469
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,3 @@
+gradio
+git+https://github.com/srush/minichain@gradio
+manifest-ml
diff --git a/selfask.html b/selfask.html
new file mode 100644
index 0000000000000000000000000000000000000000..5b95b1f2a69e235f960638c1b2bd4156055999b8
--- /dev/null
+++ b/selfask.html
@@ -0,0 +1,15063 @@
+
+
+
+
+
+selfask
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Out[6]:
+
+
+
+
+
+
+
+
+SelfAsk
+
+
+ - Input:
+ -
+
{'input': 'What is the zip code of the city where George Washington was born?', 'agent_scratchpad': True}
+
+
+
+
+
+ - Full Prompt:
+ -
+
+
+ Question: Who lived longer, Muhammad Ali or Alan Turing?
Are follow up questions needed here: Yes.
Follow up: How old was Muhammad Ali when he died?
Intermediate answer: Muhammad Ali was 74 years old when he died.
Follow up: How old was Alan Turing when he died?
Intermediate answer: Alan Turing was 41 years old when he died.
So the final answer is: Muhammad Ali
Question: When was the founder of craigslist born?
Are follow up questions needed here: Yes.
Follow up: Who was the founder of craigslist?
Intermediate answer: Craigslist was founded by Craig Newmark.
Follow up: When was Craig Newmark born?
Intermediate answer: Craig Newmark was born on December 6, 1952.
So the final answer is: December 6, 1952
Question: Who was the maternal grandfather of George Washington?
Are follow up questions needed here: Yes.
Follow up: Who was the mother of George Washington?
Intermediate answer: The mother of George Washington was Mary Ball Washington.
Follow up: Who was the father of Mary Ball Washington?
Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
So the final answer is: Joseph Ball
Question: Are both the directors of Jaws and Casino Royale from the same country?
Are follow up questions needed here: Yes.
Follow up: Who is the director of Jaws?
Intermediate answer: The director of Jaws is Steven Spielberg.
Follow up: Where is Steven Spielberg from?
Intermediate answer: The United States.
Follow up: Who is the director of Casino Royale?
Intermediate answer: The director of Casino Royale is Martin Campbell.
Follow up: Where is Martin Campbell from?
Intermediate answer: New Zealand.
So the final answer is: No
Question:
What is the zip code of the city where George Washington was born?
Are followup questions needed here: Yes.
+
+
+
+ - Response:
+ -
+ Follow up: Where was George Washington born?
+
+
+ - Value:
+ -
+
IntermediateState(s='Where was George Washington born?')
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
7ddbd0c1-8097-4462-be99-111df5d2d298
+
+64d9f8ad-084a-4216-987a-4c74e4162cb8
+ │ ├── input: What is the zip code of Virginia?
+ │ ├── prompt: What is the zip code of Virginia?
+ │ ├── result: 12312
+ │ │ └── returned: 12312
+
+e9d4f97d-0b3f-4303-9c98-d904c1aa8f24
+ │ ├── input:
+ │ │ ├── agent_scratchpad: True
+ │ │ ├── input: What is the zip code of the city where George Washington was born?
+ │ │ └── suffix: ⏎
+ │ │ Intermediate answer:Where was George Washington born?Virginia⏎
+ │ │ Intermediate answer:What is the zip code of Virginia?12312
+ │ ├── prompt: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: How old was Muhammad Ali when he died?⏎
+ │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎
+ │ │ Follow up: How old was Alan Turing when he died?⏎
+ │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎
+ │ │ So the final answer is: Muhammad Ali⏎
+ │ │ ⏎
+ │ │ Question: When was the founder of craigslist born?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who was the founder of craigslist?⏎
+ │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎
+ │ │ Follow up: When was Craig Newmark born?⏎
+ │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎
+ │ │ So the final answer is: December 6, 1952⏎
+ │ │ ⏎
+ │ │ Question: Who was the maternal grandfather of George Washington?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who was the mother of George Washington?⏎
+ │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎
+ │ │ Follow up: Who was the father of Mary Ball Washington?⏎
+ │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎
+ │ │ So the final answer is: Joseph Ball⏎
+ │ │ ⏎
+ │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who is the director of Jaws?⏎
+ │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎
+ │ │ Follow up: Where is Steven Spielberg from?⏎
+ │ │ Intermediate answer: The United States.⏎
+ │ │ Follow up: Who is the director of Casino Royale?⏎
+ │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎
+ │ │ Follow up: Where is Martin Campbell from?⏎
+ │ │ Intermediate answer: New Zealand.⏎
+ │ │ So the final answer is: No⏎
+ │ │ ⏎
+ │ │ Question: What is the zip code of the city where George Washington was born?⏎
+ │ │ Are followup questions needed here: Yes.⏎
+ │ │ ⏎
+ │ │ Intermediate answer:Where was George Washington born?Virginia⏎
+ │ │ Intermediate answer:What is the zip code of Virginia?12312
+ │ ├── result: So the final answer is: 12312
+ │ ├── eliot:destination_failure/4/3 2023-02-23 22:29:49Z
+ │ │ ├── exception: builtins.TypeError
+ │ │ └── reason: Object of type FinalState is not JSON serializable
+
+4a574952-6198-446a-a637-7697eede2043
+ │ ├── input:
+ │ │ ├── agent_scratchpad: True
+ │ │ ├── input: What is the zip code of the city where George Washington was born?
+ │ │ └── suffix:
+ │ ├── prompt: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: How old was Muhammad Ali when he died?⏎
+ │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎
+ │ │ Follow up: How old was Alan Turing when he died?⏎
+ │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎
+ │ │ So the final answer is: Muhammad Ali⏎
+ │ │ ⏎
+ │ │ Question: When was the founder of craigslist born?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who was the founder of craigslist?⏎
+ │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎
+ │ │ Follow up: When was Craig Newmark born?⏎
+ │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎
+ │ │ So the final answer is: December 6, 1952⏎
+ │ │ ⏎
+ │ │ Question: Who was the maternal grandfather of George Washington?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who was the mother of George Washington?⏎
+ │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎
+ │ │ Follow up: Who was the father of Mary Ball Washington?⏎
+ │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎
+ │ │ So the final answer is: Joseph Ball⏎
+ │ │ ⏎
+ │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who is the director of Jaws?⏎
+ │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎
+ │ │ Follow up: Where is Steven Spielberg from?⏎
+ │ │ Intermediate answer: The United States.⏎
+ │ │ Follow up: Who is the director of Casino Royale?⏎
+ │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎
+ │ │ Follow up: Where is Martin Campbell from?⏎
+ │ │ Intermediate answer: New Zealand.⏎
+ │ │ So the final answer is: No⏎
+ │ │ ⏎
+ │ │ Question: What is the zip code of the city where George Washington was born?⏎
+ │ │ Are followup questions needed here: Yes.⏎
+ │ │
+ │ ├── result: Follow up: Where was George Washington born?
+ │ ├── eliot:destination_failure/4/3 2023-02-23 22:29:49Z
+ │ │ ├── exception: builtins.TypeError
+ │ │ └── reason: Object of type IntermediateState is not JSON serializable
+
+d364fca6-fe3e-40df-8996-b5b24ca32c75
+ │ ├── input:
+ │ │ ├── agent_scratchpad: True
+ │ │ ├── input: What is the zip code of the city where George Washington was born?
+ │ │ └── suffix: ⏎
+ │ │ Intermediate answer:Where was George Washington born?Virginia
+ │ ├── prompt: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: How old was Muhammad Ali when he died?⏎
+ │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎
+ │ │ Follow up: How old was Alan Turing when he died?⏎
+ │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎
+ │ │ So the final answer is: Muhammad Ali⏎
+ │ │ ⏎
+ │ │ Question: When was the founder of craigslist born?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who was the founder of craigslist?⏎
+ │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎
+ │ │ Follow up: When was Craig Newmark born?⏎
+ │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎
+ │ │ So the final answer is: December 6, 1952⏎
+ │ │ ⏎
+ │ │ Question: Who was the maternal grandfather of George Washington?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who was the mother of George Washington?⏎
+ │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎
+ │ │ Follow up: Who was the father of Mary Ball Washington?⏎
+ │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎
+ │ │ So the final answer is: Joseph Ball⏎
+ │ │ ⏎
+ │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎
+ │ │ Are follow up questions needed here: Yes.⏎
+ │ │ Follow up: Who is the director of Jaws?⏎
+ │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎
+ │ │ Follow up: Where is Steven Spielberg from?⏎
+ │ │ Intermediate answer: The United States.⏎
+ │ │ Follow up: Who is the director of Casino Royale?⏎
+ │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎
+ │ │ Follow up: Where is Martin Campbell from?⏎
+ │ │ Intermediate answer: New Zealand.⏎
+ │ │ So the final answer is: No⏎
+ │ │ ⏎
+ │ │ Question: What is the zip code of the city where George Washington was born?⏎
+ │ │ Are followup questions needed here: Yes.⏎
+ │ │ ⏎
+ │ │ Intermediate answer:Where was George Washington born?Virginia
+ │ ├── result: Follow up: What is the zip code of Virginia?
+ │ ├── eliot:destination_failure/4/3 2023-02-23 22:29:49Z
+ │ │ ├── exception: builtins.TypeError
+ │ │ └── reason: Object of type IntermediateState is not JSON serializable
+
+09dba4ca-0839-4cd8-a9da-f5815e126bb7
+ │ ├── input: Where was George Washington born?
+ │ ├── prompt: Where was George Washington born?
+ │ ├── result: Virginia
+ │ │ └── returned: Virginia
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/selfask.ipynb b/selfask.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..20d4a815a31f7a43242c2df3d03f2bb873d7cb5f
--- /dev/null
+++ b/selfask.ipynb
@@ -0,0 +1,872 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "75955211",
+ "metadata": {},
+ "source": [
+ "Notebook implementation of the self-ask + Google tool use prompt.\n",
+ "Adapted from https://github.com/ofirpress/self-ask"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "169ca46b",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:09.920122Z",
+ "iopub.status.busy": "2023-02-27T14:18:09.919101Z",
+ "iopub.status.idle": "2023-02-27T14:18:10.134246Z",
+ "shell.execute_reply": "2023-02-27T14:18:10.133531Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from dataclasses import dataclass\n",
+ "from parsita import *\n",
+ "import minichain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "2fe40b57",
+ "metadata": {},
+ "source": [
+ "Define the state of the bot."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "8ddc7e21",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:10.138241Z",
+ "iopub.status.busy": "2023-02-27T14:18:10.137766Z",
+ "iopub.status.idle": "2023-02-27T14:18:10.142368Z",
+ "shell.execute_reply": "2023-02-27T14:18:10.141610Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "@dataclass\n",
+ "class IntermediateState:\n",
+ " s: str"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "54712784",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:10.147601Z",
+ "iopub.status.busy": "2023-02-27T14:18:10.146906Z",
+ "iopub.status.idle": "2023-02-27T14:18:10.151336Z",
+ "shell.execute_reply": "2023-02-27T14:18:10.150687Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "@dataclass\n",
+ "class FinalState:\n",
+ " s: str"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "73090cad",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:10.154745Z",
+ "iopub.status.busy": "2023-02-27T14:18:10.154227Z",
+ "iopub.status.idle": "2023-02-27T14:18:10.159429Z",
+ "shell.execute_reply": "2023-02-27T14:18:10.158706Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "@dataclass\n",
+ "class Out:\n",
+ " echo: str\n",
+ " state: FinalState | IntermediateState"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "32806a89",
+ "metadata": {},
+ "source": [
+ "Self Ask Prompt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "df10486c",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:10.163227Z",
+ "iopub.status.busy": "2023-02-27T14:18:10.162804Z",
+ "iopub.status.idle": "2023-02-27T14:18:10.169291Z",
+ "shell.execute_reply": "2023-02-27T14:18:10.168542Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class SelfAsk(minichain.TemplatePrompt[Out]):\n",
+ " template_file = \"selfask.pmpt.tpl\"\n",
+ " stop_template = \"\\nIntermediate answer:\"\n",
+ "\n",
+ " # Parsita parser.\n",
+ " class Parser(TextParsers):\n",
+ " follow = (lit(\"Follow up:\") >> reg(r\".*\")) > IntermediateState\n",
+ " finish = (lit(\"So the final answer is: \") >> reg(r\".*\")) > FinalState\n",
+ " response = follow | finish\n",
+ "\n",
+ " def parse(self, response: str, inp) -> Out:\n",
+ " return Out(\n",
+ " self.prompt(inp).prompt + response,\n",
+ " self.Parser.response.parse(response).or_die(),\n",
+ " )"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "dc1d64e4",
+ "metadata": {},
+ "source": [
+ "Runtime loop"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "4e6cbde7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:10.173090Z",
+ "iopub.status.busy": "2023-02-27T14:18:10.172615Z",
+ "iopub.status.idle": "2023-02-27T14:18:10.177647Z",
+ "shell.execute_reply": "2023-02-27T14:18:10.177069Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def selfask(inp: str, openai, google) -> str:\n",
+ " prompt1 = SelfAsk(openai)\n",
+ " prompt2 = minichain.SimplePrompt(google)\n",
+ " suffix = \"\"\n",
+ " for i in range(3):\n",
+ " out = prompt1(dict(input=inp, suffix=suffix, agent_scratchpad=True))\n",
+ "\n",
+ " if isinstance(out.state, FinalState):\n",
+ " break\n",
+ " suffix += out.echo\n",
+ " out2 = prompt2(out.state.s)\n",
+ " suffix += \"\\nIntermediate answer: \" + out2 + \"\\n\"\n",
+ " return out.state.s"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "3c63885f",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:10.180368Z",
+ "iopub.status.busy": "2023-02-27T14:18:10.180071Z",
+ "iopub.status.idle": "2023-02-27T14:18:28.393212Z",
+ "shell.execute_reply": "2023-02-27T14:18:28.390894Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "https://serpapi.com/search\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "https://serpapi.com/search\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "22443, 22520, 22469, 22488, 22442, 22524, 22529, 22558\n"
+ ]
+ }
+ ],
+ "source": [
+ "with minichain.start_chain(\"selfask\") as backend:\n",
+ " result = selfask(\n",
+ " \"What is the zip code of the city where George Washington was born?\",\n",
+ " backend.OpenAI(),\n",
+ " backend.Google(),\n",
+ " )\n",
+ " print(result)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "05aacb6b",
+ "metadata": {},
+ "source": [
+ "View prompt examples."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "a32b72d9",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:28.402802Z",
+ "iopub.status.busy": "2023-02-27T14:18:28.401742Z",
+ "iopub.status.idle": "2023-02-27T14:18:28.460279Z",
+ "shell.execute_reply": "2023-02-27T14:18:28.459814Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "SelfAsk
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'input': 'What is the zip code of the city where George Washington was born?', 'agent_scratchpad': True}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Question: Who lived longer, Muhammad Ali or Alan Turing?
Are follow up questions needed here: Yes.
Follow up: How old was Muhammad Ali when he died?
Intermediate answer: Muhammad Ali was 74 years old when he died.
Follow up: How old was Alan Turing when he died?
Intermediate answer: Alan Turing was 41 years old when he died.
So the final answer is: Muhammad Ali
Question: When was the founder of craigslist born?
Are follow up questions needed here: Yes.
Follow up: Who was the founder of craigslist?
Intermediate answer: Craigslist was founded by Craig Newmark.
Follow up: When was Craig Newmark born?
Intermediate answer: Craig Newmark was born on December 6, 1952.
So the final answer is: December 6, 1952
Question: Who was the maternal grandfather of George Washington?
Are follow up questions needed here: Yes.
Follow up: Who was the mother of George Washington?
Intermediate answer: The mother of George Washington was Mary Ball Washington.
Follow up: Who was the father of Mary Ball Washington?
Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
So the final answer is: Joseph Ball
Question: Are both the directors of Jaws and Casino Royale from the same country?
Are follow up questions needed here: Yes.
Follow up: Who is the director of Jaws?
Intermediate answer: The director of Jaws is Steven Spielberg.
Follow up: Where is Steven Spielberg from?
Intermediate answer: The United States.
Follow up: Who is the director of Casino Royale?
Intermediate answer: The director of Casino Royale is Martin Campbell.
Follow up: Where is Martin Campbell from?
Intermediate answer: New Zealand.
So the final answer is: No
Question:
What is the zip code of the city where George Washington was born?
Are followup questions needed here: Yes.
\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " Follow up: Where was George Washington born?\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "
Out(echo='Question: Who lived longer, Muhammad Ali or Alan Turing?\\nAre follow up questions needed here: Yes.\\nFollow up: How old was Muhammad Ali when he died?\\nIntermediate answer: Muhammad Ali was 74 years old when he died.\\nFollow up: How old was Alan Turing when he died?\\nIntermediate answer: Alan Turing was 41 years old when he died.\\nSo the final answer is: Muhammad Ali\\n\\nQuestion: When was the founder of craigslist born?\\nAre follow up questions needed here: Yes.\\nFollow up: Who was the founder of craigslist?\\nIntermediate answer: Craigslist was founded by Craig Newmark.\\nFollow up: When was Craig Newmark born?\\nIntermediate answer: Craig Newmark was born on December 6, 1952.\\nSo the final answer is: December 6, 1952\\n\\nQuestion: Who was the maternal grandfather of George Washington?\\nAre follow up questions needed here: Yes.\\nFollow up: Who was the mother of George Washington?\\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\\nFollow up: Who was the father of Mary Ball Washington?\\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\\nSo the final answer is: Joseph Ball\\n\\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\\nAre follow up questions needed here: Yes.\\nFollow up: Who is the director of Jaws?\\nIntermediate answer: The director of Jaws is Steven Spielberg.\\nFollow up: Where is Steven Spielberg from?\\nIntermediate answer: The United States.\\nFollow up: Who is the director of Casino Royale?\\nIntermediate answer: The director of Casino Royale is Martin Campbell.\\nFollow up: Where is Martin Campbell from?\\nIntermediate answer: New Zealand.\\nSo the final answer is: No\\n\\nQuestion: What is the zip code of the city where George Washington was born?\\nAre followup questions needed here: Yes.\\nFollow up: Where was George Washington born?', state=IntermediateState(s='Where was George Washington born?'))\n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nSelfAsk
\\n\\n\\n - Input:
\\n - \\n
{'input': 'What is the zip code of the city where George Washington was born?', 'agent_scratchpad': True}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Question: Who lived longer, Muhammad Ali or Alan Turing?
Are follow up questions needed here: Yes.
Follow up: How old was Muhammad Ali when he died?
Intermediate answer: Muhammad Ali was 74 years old when he died.
Follow up: How old was Alan Turing when he died?
Intermediate answer: Alan Turing was 41 years old when he died.
So the final answer is: Muhammad Ali
Question: When was the founder of craigslist born?
Are follow up questions needed here: Yes.
Follow up: Who was the founder of craigslist?
Intermediate answer: Craigslist was founded by Craig Newmark.
Follow up: When was Craig Newmark born?
Intermediate answer: Craig Newmark was born on December 6, 1952.
So the final answer is: December 6, 1952
Question: Who was the maternal grandfather of George Washington?
Are follow up questions needed here: Yes.
Follow up: Who was the mother of George Washington?
Intermediate answer: The mother of George Washington was Mary Ball Washington.
Follow up: Who was the father of Mary Ball Washington?
Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
So the final answer is: Joseph Ball
Question: Are both the directors of Jaws and Casino Royale from the same country?
Are follow up questions needed here: Yes.
Follow up: Who is the director of Jaws?
Intermediate answer: The director of Jaws is Steven Spielberg.
Follow up: Where is Steven Spielberg from?
Intermediate answer: The United States.
Follow up: Who is the director of Casino Royale?
Intermediate answer: The director of Casino Royale is Martin Campbell.
Follow up: Where is Martin Campbell from?
Intermediate answer: New Zealand.
So the final answer is: No
Question:
What is the zip code of the city where George Washington was born?
Are followup questions needed here: Yes.
\\n \\n \\n\\n - Response:
\\n - \\n Follow up: Where was George Washington born?\\n
\\n\\n - Value:
\\n - \\n
Out(echo='Question: Who lived longer, Muhammad Ali or Alan Turing?\\\\nAre follow up questions needed here: Yes.\\\\nFollow up: How old was Muhammad Ali when he died?\\\\nIntermediate answer: Muhammad Ali was 74 years old when he died.\\\\nFollow up: How old was Alan Turing when he died?\\\\nIntermediate answer: Alan Turing was 41 years old when he died.\\\\nSo the final answer is: Muhammad Ali\\\\n\\\\nQuestion: When was the founder of craigslist born?\\\\nAre follow up questions needed here: Yes.\\\\nFollow up: Who was the founder of craigslist?\\\\nIntermediate answer: Craigslist was founded by Craig Newmark.\\\\nFollow up: When was Craig Newmark born?\\\\nIntermediate answer: Craig Newmark was born on December 6, 1952.\\\\nSo the final answer is: December 6, 1952\\\\n\\\\nQuestion: Who was the maternal grandfather of George Washington?\\\\nAre follow up questions needed here: Yes.\\\\nFollow up: Who was the mother of George Washington?\\\\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\\\\nFollow up: Who was the father of Mary Ball Washington?\\\\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\\\\nSo the final answer is: Joseph Ball\\\\n\\\\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\\\\nAre follow up questions needed here: Yes.\\\\nFollow up: Who is the director of Jaws?\\\\nIntermediate answer: The director of Jaws is Steven Spielberg.\\\\nFollow up: Where is Steven Spielberg from?\\\\nIntermediate answer: The United States.\\\\nFollow up: Who is the director of Casino Royale?\\\\nIntermediate answer: The director of Casino Royale is Martin Campbell.\\\\nFollow up: Where is Martin Campbell from?\\\\nIntermediate answer: New Zealand.\\\\nSo the final answer is: No\\\\n\\\\nQuestion: What is the zip code of the city where George Washington was born?\\\\nAre followup questions needed here: Yes.\\\\nFollow up: Where was George Washington born?', state=IntermediateState(s='Where was George Washington born?'))\\n
\\n\\n \\n
\\n')"
+ ]
+ },
+ "execution_count": 8,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "SelfAsk().show(\n",
+ " {\n",
+ " \"input\": \"What is the zip code of the city where George Washington was born?\",\n",
+ " \"agent_scratchpad\": True,\n",
+ " },\n",
+ " \"Follow up: Where was George Washington born?\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "d69d913c",
+ "metadata": {},
+ "source": [
+ "View log."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "2ce2a55a",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-27T14:18:28.488652Z",
+ "iopub.status.busy": "2023-02-27T14:18:28.486297Z",
+ "iopub.status.idle": "2023-02-27T14:18:28.551300Z",
+ "shell.execute_reply": "2023-02-27T14:18:28.550712Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15ma1394473-6f63-4eda-a13c-b04d79cc2ad4\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.268s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.004s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4magent_scratchpad\u001b[0m: True\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4minput\u001b[0m: What is the zip code of the city where George Washington was born?\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4msuffix\u001b[0m: \u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:10Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.258s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.006s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: Follow up: What city was George Washington born in?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mffe25034-5698-4de3-9cea-dc45d7c5bbbb\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m6.168s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: What city was George Washington born in?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:11Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m6.167s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: What city was George Washington born in?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: Westmoreland County, VA\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mbb2f39a3-d025-4c15-a564-f2c33f48d14f\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.734s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.006s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4magent_scratchpad\u001b[0m: True\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4minput\u001b[0m: What is the zip code of the city where George Washington was born?\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4msuffix\u001b[0m: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Follow up: What city was George Washington born in?⏎\n",
+ " │ │ Intermediate answer: Westmoreland County, VA⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:17Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.725s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Follow up: What city was George Washington born in?⏎\n",
+ " │ │ Intermediate answer: Westmoreland County, VA⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.002s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: Follow up: What is the zip code of Westmoreland County, VA?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15ma350a6f0-d210-474f-bc35-30326fba706d\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m6.291s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: What is the zip code of Westmoreland County, VA?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m6.290s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: What is the zip code of Westmoreland County, VA?\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ZIP Codes in Westmoreland County VA · 22443 · 22520 · 22469 · 22488 · 22442 · 22524 · 22529 · 22558 ...\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m76cb4bce-847c-4867-ad34-804cbf25324f\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m2.419s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.006s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4magent_scratchpad\u001b[0m: True\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4minput\u001b[0m: What is the zip code of the city where George Washington was born?\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4msuffix\u001b[0m: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Follow up: What city was George Washington born in?⏎\n",
+ " │ │ Intermediate answer: Westmoreland County, VA⏎\n",
+ " │ │ Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Follow up: What city was George Washington born in?⏎\n",
+ " │ │ Intermediate answer: Westmoreland County, VA⏎\n",
+ " │ │ Follow up: What is the zip code of Westmoreland County, VA?⏎\n",
+ " │ │ Intermediate answer: ZIP Codes in Westmoreland County VA · 22443 · 22520 · 22469 · 22488 · 22442 · 22524 · 22529 · 22558 ...⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:25Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m2.407s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Follow up: What city was George Washington born in?⏎\n",
+ " │ │ Intermediate answer: Westmoreland County, VA⏎\n",
+ " │ │ Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Question: Who lived longer, Muhammad Ali or Alan Turing?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: How old was Muhammad Ali when he died?⏎\n",
+ " │ │ Intermediate answer: Muhammad Ali was 74 years old when he died.⏎\n",
+ " │ │ Follow up: How old was Alan Turing when he died?⏎\n",
+ " │ │ Intermediate answer: Alan Turing was 41 years old when he died.⏎\n",
+ " │ │ So the final answer is: Muhammad Ali⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: When was the founder of craigslist born?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the founder of craigslist?⏎\n",
+ " │ │ Intermediate answer: Craigslist was founded by Craig Newmark.⏎\n",
+ " │ │ Follow up: When was Craig Newmark born?⏎\n",
+ " │ │ Intermediate answer: Craig Newmark was born on December 6, 1952.⏎\n",
+ " │ │ So the final answer is: December 6, 1952⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Who was the maternal grandfather of George Washington?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who was the mother of George Washington?⏎\n",
+ " │ │ Intermediate answer: The mother of George Washington was Mary Ball Washington.⏎\n",
+ " │ │ Follow up: Who was the father of Mary Ball Washington?⏎\n",
+ " │ │ Intermediate answer: The father of Mary Ball Washington was Joseph Ball.⏎\n",
+ " │ │ So the final answer is: Joseph Ball⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: Are both the directors of Jaws and Casino Royale from the same country?⏎\n",
+ " │ │ Are follow up questions needed here: Yes.⏎\n",
+ " │ │ Follow up: Who is the director of Jaws?⏎\n",
+ " │ │ Intermediate answer: The director of Jaws is Steven Spielberg.⏎\n",
+ " │ │ Follow up: Where is Steven Spielberg from?⏎\n",
+ " │ │ Intermediate answer: The United States.⏎\n",
+ " │ │ Follow up: Who is the director of Casino Royale?⏎\n",
+ " │ │ Intermediate answer: The director of Casino Royale is Martin Campbell.⏎\n",
+ " │ │ Follow up: Where is Martin Campbell from?⏎\n",
+ " │ │ Intermediate answer: New Zealand.⏎\n",
+ " │ │ So the final answer is: No⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: What is the zip code of the city where George Washington was born?⏎\n",
+ " │ │ Are followup questions needed here: Yes.⏎\n",
+ " │ │ Follow up: What city was George Washington born in?⏎\n",
+ " │ │ Intermediate answer: Westmoreland County, VA⏎\n",
+ " │ │ Follow up: What is the zip code of Westmoreland County, VA?⏎\n",
+ " │ │ Intermediate answer: ZIP Codes in Westmoreland County VA · 22443 · 22520 · 22469 · 22488 · 22442 · 22524 · 22529 · 22558 ...⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:28Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:28Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.006s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: So the final answer is: 22443, 22520, 22469, 22488, 22442, 22524, 22529, 22558\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:28Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:28Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m17a9eb4a-7068-479d-a6f5-3204940ce3f6\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mselfask\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:18:10Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m18.204s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mselfask\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:18:28Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "minichain.show_log(\"selfask.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/selfask.log b/selfask.log
new file mode 100644
index 0000000000000000000000000000000000000000..d8da7214002848ce675d55efa73ca92a04d09fe3
--- /dev/null
+++ b/selfask.log
@@ -0,0 +1,42 @@
+{"action_status": "started", "timestamp": 1677507490.1828454, "task_uuid": "17a9eb4a-7068-479d-a6f5-3204940ce3f6", "action_type": "selfask", "task_level": [1]}
+{"action_status": "started", "timestamp": 1677507490.5062928, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "", "task_level": [1]}
+{"input": {"input": "What is the zip code of the city where George Washington was born?", "suffix": "", "agent_scratchpad": true}, "action_status": "started", "timestamp": 1677507490.5063727, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677507490.5099194, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Question: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\n", "action_status": "started", "timestamp": 1677507490.5099747, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677507491.7682626, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "Follow up: What city was George Washington born in?", "action_status": "started", "timestamp": 1677507491.7684474, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677507491.7741306, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677507491.7742665, "task_uuid": "a1394473-6f63-4eda-a13c-b04d79cc2ad4", "action_type": "", "task_level": [5]}
+{"action_status": "started", "timestamp": 1677507491.774431, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "", "task_level": [1]}
+{"input": "What city was George Washington born in?", "action_status": "started", "timestamp": 1677507491.7745311, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677507491.7746096, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "What city was George Washington born in?", "action_status": "started", "timestamp": 1677507491.7747374, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677507497.9417536, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "Westmoreland County, VA", "action_status": "started", "timestamp": 1677507497.9420028, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677507497.942118, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677507497.9422014, "task_uuid": "ffe25034-5698-4de3-9cea-dc45d7c5bbbb", "action_type": "", "task_level": [5]}
+{"action_status": "started", "timestamp": 1677507497.9423742, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "", "task_level": [1]}
+{"input": {"input": "What is the zip code of the city where George Washington was born?", "suffix": "Question: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nFollow up: What city was George Washington born in?\nIntermediate answer: Westmoreland County, VA\n", "agent_scratchpad": true}, "action_status": "started", "timestamp": 1677507497.9424758, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677507497.9489567, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Question: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nQuestion: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nFollow up: What city was George Washington born in?\nIntermediate answer: Westmoreland County, VA\n", "action_status": "started", "timestamp": 1677507497.9491816, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677507499.674529, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "Follow up: What is the zip code of Westmoreland County, VA?", "action_status": "started", "timestamp": 1677507499.6746047, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677507499.6762059, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677507499.6762424, "task_uuid": "bb2f39a3-d025-4c15-a564-f2c33f48d14f", "action_type": "", "task_level": [5]}
+{"action_status": "started", "timestamp": 1677507499.6762943, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "", "task_level": [1]}
+{"input": "What is the zip code of Westmoreland County, VA?", "action_status": "started", "timestamp": 1677507499.6763287, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677507499.6763496, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "What is the zip code of Westmoreland County, VA?", "action_status": "started", "timestamp": 1677507499.6763678, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677507505.9668486, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "ZIP Codes in Westmoreland County VA \u00b7 22443 \u00b7 22520 \u00b7 22469 \u00b7 22488 \u00b7 22442 \u00b7 22524 \u00b7 22529 \u00b7 22558 ...", "action_status": "started", "timestamp": 1677507505.9670618, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677507505.9671662, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677507505.9672434, "task_uuid": "a350a6f0-d210-474f-bc35-30326fba706d", "action_type": "", "task_level": [5]}
+{"action_status": "started", "timestamp": 1677507505.967399, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "", "task_level": [1]}
+{"input": {"input": "What is the zip code of the city where George Washington was born?", "suffix": "Question: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nFollow up: What city was George Washington born in?\nIntermediate answer: Westmoreland County, VA\nQuestion: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nQuestion: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nFollow up: What city was George Washington born in?\nIntermediate answer: Westmoreland County, VA\nFollow up: What is the zip code of Westmoreland County, VA?\nIntermediate answer: ZIP Codes in Westmoreland County VA \u00b7 22443 \u00b7 22520 \u00b7 22469 \u00b7 22488 \u00b7 22442 \u00b7 22524 \u00b7 22529 \u00b7 22558 ...\n", "agent_scratchpad": true}, "action_status": "started", "timestamp": 1677507505.9674897, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677507505.9734888, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Question: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nQuestion: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nFollow up: What city was George Washington born in?\nIntermediate answer: Westmoreland County, VA\nQuestion: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nQuestion: Who lived longer, Muhammad Ali or Alan Turing?\nAre follow up questions needed here: Yes.\nFollow up: How old was Muhammad Ali when he died?\nIntermediate answer: Muhammad Ali was 74 years old when he died.\nFollow up: How old was Alan Turing when he died?\nIntermediate answer: Alan Turing was 41 years old when he died.\nSo the final answer is: Muhammad Ali\n\nQuestion: When was the founder of craigslist born?\nAre follow up questions needed here: Yes.\nFollow up: Who was the founder of craigslist?\nIntermediate answer: Craigslist was founded by Craig Newmark.\nFollow up: When was Craig Newmark born?\nIntermediate answer: Craig Newmark was born on December 6, 1952.\nSo the final answer is: December 6, 1952\n\nQuestion: Who was the maternal grandfather of George Washington?\nAre follow up questions needed here: Yes.\nFollow up: Who was the mother of George Washington?\nIntermediate answer: The mother of George Washington was Mary Ball Washington.\nFollow up: Who was the father of Mary Ball Washington?\nIntermediate answer: The father of Mary Ball Washington was Joseph Ball.\nSo the final answer is: Joseph Ball\n\nQuestion: Are both the directors of Jaws and Casino Royale from the same country?\nAre follow up questions needed here: Yes.\nFollow up: Who is the director of Jaws?\nIntermediate answer: The director of Jaws is Steven Spielberg.\nFollow up: Where is Steven Spielberg from?\nIntermediate answer: The United States.\nFollow up: Who is the director of Casino Royale?\nIntermediate answer: The director of Casino Royale is Martin Campbell.\nFollow up: Where is Martin Campbell from?\nIntermediate answer: New Zealand.\nSo the final answer is: No\n\nQuestion: What is the zip code of the city where George Washington was born?\nAre followup questions needed here: Yes.\nFollow up: What city was George Washington born in?\nIntermediate answer: Westmoreland County, VA\nFollow up: What is the zip code of Westmoreland County, VA?\nIntermediate answer: ZIP Codes in Westmoreland County VA \u00b7 22443 \u00b7 22520 \u00b7 22469 \u00b7 22488 \u00b7 22442 \u00b7 22524 \u00b7 22529 \u00b7 22558 ...\n", "action_status": "started", "timestamp": 1677507505.9736862, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677507508.3805308, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "So the final answer is: 22443, 22520, 22469, 22488, 22442, 22524, 22529, 22558", "action_status": "started", "timestamp": 1677507508.3807206, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677507508.3863213, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677507508.386487, "task_uuid": "76cb4bce-847c-4867-ad34-804cbf25324f", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677507508.386752, "task_uuid": "17a9eb4a-7068-479d-a6f5-3204940ce3f6", "action_type": "selfask", "task_level": [2]}
diff --git a/selfask.pmpt.tpl b/selfask.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..63710baf80d51dc691305615bb832368aa9f1fee
--- /dev/null
+++ b/selfask.pmpt.tpl
@@ -0,0 +1,39 @@
+Question: Who lived longer, Muhammad Ali or Alan Turing?
+Are follow up questions needed here: Yes.
+Follow up: How old was Muhammad Ali when he died?
+Intermediate answer: Muhammad Ali was 74 years old when he died.
+Follow up: How old was Alan Turing when he died?
+Intermediate answer: Alan Turing was 41 years old when he died.
+So the final answer is: Muhammad Ali
+
+Question: When was the founder of craigslist born?
+Are follow up questions needed here: Yes.
+Follow up: Who was the founder of craigslist?
+Intermediate answer: Craigslist was founded by Craig Newmark.
+Follow up: When was Craig Newmark born?
+Intermediate answer: Craig Newmark was born on December 6, 1952.
+So the final answer is: December 6, 1952
+
+Question: Who was the maternal grandfather of George Washington?
+Are follow up questions needed here: Yes.
+Follow up: Who was the mother of George Washington?
+Intermediate answer: The mother of George Washington was Mary Ball Washington.
+Follow up: Who was the father of Mary Ball Washington?
+Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
+So the final answer is: Joseph Ball
+
+Question: Are both the directors of Jaws and Casino Royale from the same country?
+Are follow up questions needed here: Yes.
+Follow up: Who is the director of Jaws?
+Intermediate answer: The director of Jaws is Steven Spielberg.
+Follow up: Where is Steven Spielberg from?
+Intermediate answer: The United States.
+Follow up: Who is the director of Casino Royale?
+Intermediate answer: The director of Casino Royale is Martin Campbell.
+Follow up: Where is Martin Campbell from?
+Intermediate answer: New Zealand.
+So the final answer is: No
+
+Question: {{input}}
+Are followup questions needed here: {% if agent_scratchpad %}Yes{%else%}No{% endif %}.
+{{suffix}}
diff --git a/selfask.py b/selfask.py
new file mode 100644
index 0000000000000000000000000000000000000000..b4499de655f4af9bcbdad463c611c8cb523d82f1
--- /dev/null
+++ b/selfask.py
@@ -0,0 +1,83 @@
+# Notebook implementation of the self-ask + Google tool use prompt.
+# Adapted from https://github.com/ofirpress/self-ask
+
+from dataclasses import dataclass
+
+from parsita import *
+
+import minichain
+
+# Define the state of the bot.
+
+@dataclass
+class IntermediateState:
+ s: str
+
+@dataclass
+class FinalState:
+ s: str
+
+@dataclass
+class Out:
+ echo: str
+ state: FinalState | IntermediateState
+
+
+# Self Ask Prompt
+
+class SelfAsk(minichain.TemplatePrompt[Out]):
+ template_file = "selfask.pmpt.tpl"
+ stop_template = "\nIntermediate answer:"
+
+ # Parsita parser.
+ class Parser(TextParsers):
+ follow = (lit("Follow up:") >> reg(r".*")) > IntermediateState
+ finish = (lit("So the final answer is: ") >> reg(r".*")) > FinalState
+ response = follow | finish
+
+ def parse(self, response: str, inp) -> Out:
+ return Out(
+ self.prompt(inp).prompt + response,
+ self.Parser.response.parse(response).or_die(),
+ )
+
+# Runtime loop
+
+def selfask(inp: str, openai, google) -> str:
+ prompt1 = SelfAsk(openai)
+ prompt2 = minichain.SimplePrompt(google)
+ suffix = ""
+ for i in range(3):
+ out = prompt1(dict(input=inp, suffix=suffix, agent_scratchpad=True))
+
+ if isinstance(out.state, FinalState):
+ break
+ suffix += out.echo
+ out2 = prompt2(out.state.s)
+ suffix += "\nIntermediate answer: " + out2 + "\n"
+ return out.state.s
+
+
+with minichain.start_chain("selfask") as backend:
+ result = selfask(
+ "What is the zip code of the city where George Washington was born?",
+ backend.OpenAI(),
+ backend.Google(),
+ )
+ print(result)
+
+# View prompt examples.
+
+# + tags=["hide_inp"]
+SelfAsk().show(
+ {
+ "input": "What is the zip code of the city where George Washington was born?",
+ "agent_scratchpad": True,
+ },
+ "Follow up: Where was George Washington born?",
+)
+# -
+
+# View log.
+
+minichain.show_log("selfask.log")
diff --git a/selfask/#base.py# b/selfask/#base.py#
new file mode 100644
index 0000000000000000000000000000000000000000..158b28131ff9c0a61baa6ad40c5c16777eaa2fef
--- /dev/null
+++ b/selfask/#base.py#
@@ -0,0 +1,95 @@
+# Prompt from ...
+#
+from dataclasses import dataclass
+
+from jinja2 import Template
+from parsita import *
+
+
+self_ask_prompt = """
+Question: Who lived longer, Muhammad Ali or Alan Turing?
+Are follow up questions needed here: Yes.
+Follow up: How old was Muhammad Ali when he died?
+Intermediate answer: Muhammad Ali was 74 years old when he died.
+Follow up: How old was Alan Turing when he died?
+Intermediate answer: Alan Turing was 41 years old when he died.
+So the final answer is: Muhammad Ali
+
+Question: When was the founder of craigslist born?
+Are follow up questions needed here: Yes.
+Follow up: Who was the founder of craigslist?
+Intermediate answer: Craigslist was founded by Craig Newmark.
+Follow up: When was Craig Newmark born?
+Intermediate answer: Craig Newmark was born on December 6, 1952.
+So the final answer is: December 6, 1952
+
+Question: Who was the maternal grandfather of George Washington?
+Are follow up questions needed here: Yes.
+Follow up: Who was the mother of George Washington?
+Intermediate answer: The mother of George Washington was Mary Ball Washington.
+Follow up: Who was the father of Mary Ball Washington?
+Intermediate answer: The father of Mary Ball Washington was Joseph Ball.
+So the final answer is: Joseph Ball
+
+Question: Are both the directors of Jaws and Casino Royale from the same country?
+Are follow up questions needed here: Yes.
+Follow up: Who is the director of Jaws?
+Intermediate answer: The director of Jaws is Steven Spielberg.
+Follow up: Where is Steven Spielberg from?
+Intermediate answer: The United States.
+Follow up: Who is the director of Casino Royale?
+Intermediate answer: The director of Casino Royale is Martin Campbell.
+Follow up: Where is Martin Campbell from?
+Intermediate answer: New Zealand.
+So the final answer is: No
+
+Question: {{input}}
+Are followup questions needed here: {% if agent_scratchpad %}Yes{%else%}No{% endif %}.
+"""
+
+
+@dataclass
+class Intermediate:
+ val: str
+
+
+@dataclass
+class Final:
+ val: str
+
+
+class SelfAskParser(TextParsers):
+ follow = (lit("Follow up:") >> reg(r".*")) > Intermediate
+ finish = (lit("So the final answer is: ") >> reg(r".*")) > Final
+ response = follow | finish
+
+
+self_ask = Prompt(
+ Template(self_ask_prompt).render,
+ parse(SelfAskParser.response),
+ stop="\nIntermediate answer:",
+)
+
+
+def selfask(inp: str, openai: Backend, google: Backend):
+ echo, result = self_ask.echo_run(openai, input=inp, agent_scratchpad=True)
+ for i in range(3):
+ out = Prompt(result.val).run(google)
+ echo = echo + "\nIntermediate answer:" + out
+ echo, result = Prompt(
+ echo, parse(SelfAskParser.response), stop="\nIntermediate answer:"
+ ).echo_run(openai)
+ if isinstance(result, Final):
+ break
+
+ return result.val
+
+
+if __name__ == "__main__":
+ print(
+ selfask(
+ "What is the zip code of the city where George Washington was born?",
+ OpenAI("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"),
+ Google("593a073fa4c730efe918e592a538b36e80841bc8f8dd4070c1566920f75ba140"),
+ )
+ )
diff --git a/show.py b/show.py
new file mode 100644
index 0000000000000000000000000000000000000000..fe4f5785b3d0f2aae30de2c9dedc27ea65deffd5
--- /dev/null
+++ b/show.py
@@ -0,0 +1,5 @@
+import json, sys
+from eliottree import tasks_from_iterable, render_tasks
+render_tasks(sys.stderr.write,
+ tasks_from_iterable([json.loads(l) for l in open("bash.log")]),
+ colorize=True, human_readable=True)
diff --git a/sixers.txt b/sixers.txt
new file mode 100644
index 0000000000000000000000000000000000000000..05e7be9c45e2dbaf2c3ae59236110c1d3800edca
--- /dev/null
+++ b/sixers.txt
@@ -0,0 +1,7 @@
+The Philadelphia 76ers entered their Christmas Day matinee at Madison Square Garden against the New York Knicks having won seven straight games, all at home. They can now add an eighth victory to that list. Led by a dominant fourth quarter, the 76ers (20-12) defeated the Knicks (18-16), 119-112.
+
+Joel Embiid led the way with 35 points and eight rebounds, while James Harden added 29 points and 13 assists in another dazzling performance. They got a boost off the bench from Georges Niang, who nailed four 3s in the fourth quarter to finish with 16 points.
+
+The Knicks have now lost three straight games following an eight-game unbeaten run. Julius Randle matched Embiid with 35 points.
+
+Follow here for updates and analysis from The Athletic's staff.
diff --git a/stats.ipynb b/stats.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..9b1947c09aa14a3a9c9489ba5815d0868efc89c2
--- /dev/null
+++ b/stats.ipynb
@@ -0,0 +1,316 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "92d83adc",
+ "metadata": {},
+ "source": [
+ "Information extraction from a typed data specification."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "1616bc41",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-02T14:15:54.551033Z",
+ "iopub.status.busy": "2023-03-02T14:15:54.550855Z",
+ "iopub.status.idle": "2023-03-02T14:15:54.747988Z",
+ "shell.execute_reply": "2023-03-02T14:15:54.747137Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "import minichain\n",
+ "from dataclasses import dataclass\n",
+ "from typing import List\n",
+ "from enum import Enum"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "e514df46",
+ "metadata": {},
+ "source": [
+ "Data specification"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "715ea26d",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-02T14:15:54.753667Z",
+ "iopub.status.busy": "2023-03-02T14:15:54.752198Z",
+ "iopub.status.idle": "2023-03-02T14:15:54.760779Z",
+ "shell.execute_reply": "2023-03-02T14:15:54.760045Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "class StatType(Enum):\n",
+ " POINTS = 1\n",
+ " REBOUNDS = 2\n",
+ " ASSISTS = 3\n",
+ " \n",
+ "@dataclass\n",
+ "class Stat:\n",
+ " value: int\n",
+ " stat: StatType\n",
+ " \n",
+ "@dataclass\n",
+ "class Player:\n",
+ " player: str\n",
+ " stats: List[Stat]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "ed9914df",
+ "metadata": {},
+ "source": [
+ "Code"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "446120b3",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-02T14:15:54.766815Z",
+ "iopub.status.busy": "2023-03-02T14:15:54.765321Z",
+ "iopub.status.idle": "2023-03-02T14:15:54.771533Z",
+ "shell.execute_reply": "2023-03-02T14:15:54.770697Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "class ExtractionPrompt(minichain.TypedTemplatePrompt):\n",
+ " template_file = \"stats.pmpt.tpl\"\n",
+ " Out = Player"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "d8afe793",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-02T14:15:54.777068Z",
+ "iopub.status.busy": "2023-03-02T14:15:54.776037Z",
+ "iopub.status.idle": "2023-03-02T14:16:00.217791Z",
+ "shell.execute_reply": "2023-03-02T14:16:00.215586Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Player(player='Joel Embiid', stats=[{'value': 35, 'stat': 'POINTS'}, {'value': 8, 'stat': 'REBOUNDS'}])\n",
+ "Player(player='James Harden', stats=[{'value': 29, 'stat': 'POINTS'}, {'value': 13, 'stat': 'ASSISTS'}])\n",
+ "Player(player='Georges Niang', stats=[{'value': 16, 'stat': 'POINTS'}])\n",
+ "Player(player='Julius Randle', stats=[{'value': 35, 'stat': 'POINTS'}])\n"
+ ]
+ }
+ ],
+ "source": [
+ "with minichain.start_chain(\"stats\") as backend:\n",
+ " p = ExtractionPrompt(backend.OpenAI(max_tokens=512))\n",
+ " article = open(\"sixers.txt\").read()\n",
+ " for player in p({\"passage\": article}):\n",
+ " print(player)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "b45c5e0b",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-02T14:16:00.226271Z",
+ "iopub.status.busy": "2023-03-02T14:16:00.225345Z",
+ "iopub.status.idle": "2023-03-02T14:16:00.292224Z",
+ "shell.execute_reply": "2023-03-02T14:16:00.291672Z"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "ExtractionPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'passage': 'Harden had 10 rebounds.'}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " You are a highly intelligent and accurate information extraction system. You take passage as input and your task is to find parts of the passage to answer questions.
You need to classify in to the following types for key: \"player\":
String
You need to classify in to the following types for key: \"stats\":
List
You need to classify in to the following types for key: \"value\":
Int
You need to classify in to the following types for key: \"stat\":
POINTS
REBOUNDS
ASSISTS
Only select from the above list.
[{ \"player\" : \"player\" , \"stats\" : [{ \"value\" : \"value\" , \"stat\" : \"stat\" }] }, ...]
Make sure every output is exactly seen in the document. Find as many as you can.
You need to output only JSON.
Harden had 10 rebounds.
JSON Output: \n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " [{\"player\": \"Harden\", \"stats\": {\"value\": 10, \"stat\": 2}}]\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "
[Player(player='Harden', stats={'value': 10, 'stat': 2})]\n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nExtractionPrompt
\\n\\n\\n - Input:
\\n - \\n
{'passage': 'Harden had 10 rebounds.'}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n You are a highly intelligent and accurate information extraction system. You take passage as input and your task is to find parts of the passage to answer questions.
You need to classify in to the following types for key: \"player\":
String
You need to classify in to the following types for key: \"stats\":
List
You need to classify in to the following types for key: \"value\":
Int
You need to classify in to the following types for key: \"stat\":
POINTS
REBOUNDS
ASSISTS
Only select from the above list.
[{ \"player\" : \"player\" , \"stats\" : [{ \"value\" : \"value\" , \"stat\" : \"stat\" }] }, ...]
Make sure every output is exactly seen in the document. Find as many as you can.
You need to output only JSON.
Harden had 10 rebounds.
JSON Output: \\n \\n \\n\\n - Response:
\\n - \\n [{\"player\": \"Harden\", \"stats\": {\"value\": 10, \"stat\": 2}}]\\n
\\n\\n - Value:
\\n - \\n
[Player(player='Harden', stats={'value': 10, 'stat': 2})]\\n
\\n\\n \\n
\\n')"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "ExtractionPrompt().show({\"passage\": \"Harden had 10 rebounds.\"},\n",
+ " '[{\"player\": \"Harden\", \"stats\": {\"value\": 10, \"stat\": 2}}]')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b4528305",
+ "metadata": {},
+ "source": [
+ "View the run log."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "9dd688de",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-03-02T14:16:00.294622Z",
+ "iopub.status.busy": "2023-03-02T14:16:00.294433Z",
+ "iopub.status.idle": "2023-03-02T14:16:00.316409Z",
+ "shell.execute_reply": "2023-03-02T14:16:00.315818Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15mfc682a98-f50a-4837-8b6d-87e843c19732\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.531s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.003s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mquestion\u001b[0m: \"go up one directory, and then into the minichain directory,and list the files in the directory\"\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:18Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.528s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: If someone asks you to perform a task, your job is to come up with a series of bash commands that will perform the task. There is no need to put \"#!/bin/bash\" in your answer. Make sure to reason step by step, using this format:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: \"copy the files in the directory named 'target' into a new directory at the same level as target called 'myNewDirectory'\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ I need to take the following actions:⏎\n",
+ " │ │ - List all files in the directory⏎\n",
+ " │ │ - Create a new directory⏎\n",
+ " │ │ - Copy the files from the first directory into the second directory⏎\n",
+ " │ │ ```bash⏎\n",
+ " │ │ ls⏎\n",
+ " │ │ mkdir myNewDirectory⏎\n",
+ " │ │ cp -r target/* myNewDirectory⏎\n",
+ " │ │ ```⏎\n",
+ " │ │ ⏎\n",
+ " │ │ That is the format. Begin!⏎\n",
+ " │ │ ⏎\n",
+ " │ │ Question: \"go up one directory, and then into the minichain directory,and list the files in the directory\"\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ```bash⏎\n",
+ " │ │ cd ..⏎\n",
+ " │ │ cd minichain⏎\n",
+ " │ │ ls⏎\n",
+ " │ │ ```\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m328e2368-6c0f-4a03-ae78-26aa43a517e3\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.006s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m0\u001b[0m: cd ..\u001b[0m\n",
+ " │ │ ├── \u001b[38;5;4m1\u001b[0m: cd minichain\u001b[0m\n",
+ " │ │ └── \u001b[38;5;4m2\u001b[0m: ls\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.005s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: cd ..;cd minichain;ls\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: #backend.py#⏎\n",
+ " │ │ backend.py⏎\n",
+ " │ │ base.py⏎\n",
+ " │ │ __init__.py⏎\n",
+ " │ │ lang.py⏎\n",
+ " │ │ prompts.py⏎\n",
+ " │ │ __pycache__⏎\n",
+ " │ │ templates⏎\n",
+ " │ │ \u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mca5f4b25-55ca-441d-a0d2-f39ad0bca2d0\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5mbash\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-27 14:12:17Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m1.850s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5mbash\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-27 14:12:19Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "minichain.show_log(\"bash.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/stats.log b/stats.log
new file mode 100644
index 0000000000000000000000000000000000000000..95f97553e88f1d5c88b53efcc9d1aa9b93e7b0e4
--- /dev/null
+++ b/stats.log
@@ -0,0 +1,2 @@
+{"action_status": "started", "timestamp": 1678759606.9647467, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [1]}
+{"action_status": "succeeded", "timestamp": 1678759606.964883, "task_uuid": "86f09cf7-ec3b-41eb-aac0-144426f1a6f4", "action_type": "stats", "task_level": [2]}
diff --git a/stats.pmpt.tpl b/stats.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..3bebd7aae0a4abed1029d30ee5c422b8072ac3bc
--- /dev/null
+++ b/stats.pmpt.tpl
@@ -0,0 +1,6 @@
+{{typ | safe}}
+
+{{passage}}
+
+
+JSON Output:
\ No newline at end of file
diff --git a/stats.py b/stats.py
new file mode 100644
index 0000000000000000000000000000000000000000..e1524c7d44e45753a727688ec2de593f889074c2
--- /dev/null
+++ b/stats.py
@@ -0,0 +1,55 @@
+# Information extraction from a typed data specification.
+
+import minichain
+from dataclasses import dataclass
+from typing import List
+from enum import Enum
+
+# Data specification
+
+# +
+class StatType(Enum):
+ POINTS = 1
+ REBOUNDS = 2
+ ASSISTS = 3
+
+@dataclass
+class Stat:
+ value: int
+ stat: StatType
+
+@dataclass
+class Player:
+ player: str
+ stats: List[Stat]
+# -
+
+
+# Code
+
+class ExtractionPrompt(minichain.TypedTemplatePrompt):
+ template_file = "stats.pmpt.tpl"
+ Out = Player
+
+
+with minichain.start_chain("stats") as backend:
+ prompt = ExtractionPrompt(backend.OpenAI(max_tokens=512))
+
+ # for player in p({"passage": article}):
+ # print(player)
+
+article = open("sixers.txt").read()
+gradio = prompt.to_gradio(fields =["passage"],
+ examples=[article],
+ out_type="json"
+)
+if __name__ == "__main__":
+ gradio.launch()
+
+
+# ExtractionPrompt().show({"passage": "Harden had 10 rebounds."},
+# '[{"player": "Harden", "stats": {"value": 10, "stat": 2}}]')
+
+# # View the run log.
+
+# minichain.show_log("bash.log")
diff --git a/story.py b/story.py
new file mode 100644
index 0000000000000000000000000000000000000000..dccb41181a61c8ee3579ac70c8af234e015b74db
--- /dev/null
+++ b/story.py
@@ -0,0 +1,13 @@
+from asyncio import gather
+
+
+@simple
+def outline():
+ return "What is the outline?"
+
+
+@composite
+async def story(bot: Bot):
+ calls = [bot(outline()), bot(characters())]
+ outline, characters = gather([calls])
+
diff --git a/summary.ipynb b/summary.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..b9dd985b66d47598d2f13c7cd8f77658421109e8
--- /dev/null
+++ b/summary.ipynb
@@ -0,0 +1,744 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "9f2e2ab6",
+ "metadata": {},
+ "source": [
+ "Summarize a long document by chunking and summarizing parts.\n",
+ "Uses aynchronous calls to the API.\n",
+ "Adapted from LangChain [Map-Reduce summary](https://langchain.readthedocs.io/en/stable/_modules/langchain/chains/mapreduce.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "3bd927bd",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:15.831020Z",
+ "iopub.status.busy": "2023-02-26T01:42:15.830584Z",
+ "iopub.status.idle": "2023-02-26T01:42:15.896842Z",
+ "shell.execute_reply": "2023-02-26T01:42:15.896197Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "import trio"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "9cd3cb67",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:15.899476Z",
+ "iopub.status.busy": "2023-02-26T01:42:15.899291Z",
+ "iopub.status.idle": "2023-02-26T01:42:15.950081Z",
+ "shell.execute_reply": "2023-02-26T01:42:15.949433Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from minichain import TemplatePrompt, show_log, start_chain"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "a8d9d96b",
+ "metadata": {
+ "lines_to_next_cell": 2
+ },
+ "source": [
+ "Prompt that asks LLM to produce a bash command."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "bda5ebf7",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:15.952712Z",
+ "iopub.status.busy": "2023-02-26T01:42:15.952495Z",
+ "iopub.status.idle": "2023-02-26T01:42:15.955601Z",
+ "shell.execute_reply": "2023-02-26T01:42:15.955080Z"
+ },
+ "lines_to_next_cell": 1
+ },
+ "outputs": [],
+ "source": [
+ "class SummaryPrompt(TemplatePrompt[str]):\n",
+ " template_file = \"summary.pmpt.tpl\""
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "f451f936",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:15.957639Z",
+ "iopub.status.busy": "2023-02-26T01:42:15.957462Z",
+ "iopub.status.idle": "2023-02-26T01:42:15.961518Z",
+ "shell.execute_reply": "2023-02-26T01:42:15.960983Z"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "def chunk(f):\n",
+ " \"Split a documents into 4800 character overlapping chunks\"\n",
+ " text = open(f).read().replace(\"\\n\\n\", \"\\n\")\n",
+ " chunks = []\n",
+ " W = 4000\n",
+ " O = 800\n",
+ " for i in range(4):\n",
+ " if i * W > len(text):\n",
+ " break\n",
+ " chunks.append({\"text\": text[i * W : (i + 1) * W + O]})\n",
+ " return chunks"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "bebcd7dd",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:15.963729Z",
+ "iopub.status.busy": "2023-02-26T01:42:15.963411Z",
+ "iopub.status.idle": "2023-02-26T01:42:29.326051Z",
+ "shell.execute_reply": "2023-02-26T01:42:29.325114Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[1mINFO \u001b[0m \u001b[32m2023-02-25 20:42:16.679\u001b[0m: \u001b[36masync_openai.client\u001b[0m:\u001b[36m__init__\u001b[0m: \u001b[1mOpenAI Client initialized: https://api.openai.com/v1\u001b[0m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\u001b[1mINFO \u001b[0m \u001b[32m2023-02-25 20:42:16.679\u001b[0m: \u001b[36masync_openai.client\u001b[0m:\u001b[36m__init__\u001b[0m: \u001b[1mOpenAI Client initialized: https://api.openai.com/v1\u001b[0m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " In response to Russia's aggression in Ukraine, President Biden has taken action to provide military, economic, and humanitarian assistance to Ukraine, impose economic sanctions on Russia, and close off American airspace to Russian flights. He has also passed the American Rescue Plan to provide economic relief to Americans and the Bipartisan Innovation Act to level the playing field with China and other competitors. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. President Biden is also fighting inflation by capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.\n"
+ ]
+ }
+ ],
+ "source": [
+ "with start_chain(\"summary\") as backend:\n",
+ " prompt = SummaryPrompt(backend.OpenAI())\n",
+ " list_prompt = prompt.map()\n",
+ "\n",
+ " # Map - Summarize each chunk in parallel\n",
+ " out = trio.run(list_prompt.arun, chunk(\"../state_of_the_union.txt\"))\n",
+ "\n",
+ " # Reduce - Summarize the summarized chunks\n",
+ " print(prompt({\"text\": \"\\n\".join(out)}))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "ae8efff6",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:29.329395Z",
+ "iopub.status.busy": "2023-02-26T01:42:29.329095Z",
+ "iopub.status.idle": "2023-02-26T01:42:29.387107Z",
+ "shell.execute_reply": "2023-02-26T01:42:29.386548Z"
+ },
+ "tags": [
+ "hide_inp"
+ ]
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ "SummaryPrompt
\n",
+ "\n",
+ "\n",
+ " - Input:
\n",
+ " - \n",
+ "
{'text': 'One way to fight inflation is to drive down wages and make Americans poorer.'}\n",
+ "
\n",
+ "\n",
+ "\n",
+ " \n",
+ "\n",
+ " - Full Prompt:
\n",
+ " - \n",
+ "
\n",
+ " Prompt
\n",
+ " Write a concise summary of the following:
\"
One way to fight inflation is to drive down wages and make Americans poorer.
\"
CONCISE SUMMARY:\n",
+ " \n",
+ " \n",
+ "\n",
+ " - Response:
\n",
+ " - \n",
+ " Make Americans poorer\n",
+ "
\n",
+ "\n",
+ " - Value:
\n",
+ " - \n",
+ "
Make Americans poorer\n",
+ "
\n",
+ "\n",
+ " \n",
+ "
\n"
+ ],
+ "text/plain": [
+ "HTML(html='\\n\\n \\n\\nSummaryPrompt
\\n\\n\\n - Input:
\\n - \\n
{'text': 'One way to fight inflation is to drive down wages and make Americans poorer.'}\\n
\\n\\n\\n \\n\\n - Full Prompt:
\\n - \\n
\\n Prompt
\\n Write a concise summary of the following:
\"
One way to fight inflation is to drive down wages and make Americans poorer.
\"
CONCISE SUMMARY:\\n \\n \\n\\n - Response:
\\n - \\n Make Americans poorer\\n
\\n\\n - Value:
\\n - \\n\\n\\n
\\n
\\n')"
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "SummaryPrompt().show(\n",
+ " {\n",
+ " \"text\": \"One way to fight inflation is to drive down wages and make Americans poorer.\"\n",
+ " },\n",
+ " \"Make Americans poorer\",\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "59f0b406",
+ "metadata": {
+ "execution": {
+ "iopub.execute_input": "2023-02-26T01:42:29.389430Z",
+ "iopub.status.busy": "2023-02-26T01:42:29.389170Z",
+ "iopub.status.idle": "2023-02-26T01:42:29.435668Z",
+ "shell.execute_reply": "2023-02-26T01:42:29.434963Z"
+ }
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[38;5;15m6174bdb9-8e7d-4859-9c91-d36235b2ad41\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.979s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.001s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mtext\u001b[0m: r economy. The Ruble has lost 30% of its value. ⏎\n",
+ " │ │ The Russian stock market has lost 40% of its value and trading remains suspended. Russia’s economy is reeling and Putin alone is to blame. ⏎\n",
+ " │ │ Together with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. ⏎\n",
+ " │ │ We are giving more than $1 Billion in direct assistance to Ukraine. ⏎\n",
+ " │ │ And we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. ⏎\n",
+ " │ │ Let me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. ⏎\n",
+ " │ │ Our forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies – in the event that Putin decides to keep moving west. ⏎\n",
+ " │ │ For that purpose we’ve mobilized American ground forces, air squadrons, and ship deployments to protect NATO countries including Poland, Romania, Latvia, Lithuania, and Estonia. ⏎\n",
+ " │ │ As I have made crystal clear the United States and our Allies will defend every inch of territory of NATO countries with the full force of our collective power. ⏎\n",
+ " │ │ And we remain clear-eyed. The Ukrainians are fighting back with pure courage. But the next few days weeks, months, will be hard on them. ⏎\n",
+ " │ │ Putin has unleashed violence and chaos. But while he may make gains on the battlefield – he will pay a continuing high price over the long run. ⏎\n",
+ " │ │ And a proud Ukrainian people, who have known 30 years of independence, have repeatedly shown that they will not tolerate anyone who tries to take their country backwards. ⏎\n",
+ " │ │ To all Americans, I will be honest with you, as I’ve always promised. A Russian dictator, invading a foreign country, has costs around the world. ⏎\n",
+ " │ │ And I’m taking robust action to make sure the pain of our sanctions is targeted at Russia’s economy. And I will use every tool at our disposal to protect American businesses and consumers. ⏎\n",
+ " │ │ Tonight, I can announce that the United States has worked with 30 other countries to release 60 Million barrels of oil from reserves around the world. ⏎\n",
+ " │ │ America will lead that effort, releasing 30 Million barrels from our own Strategic Petroleum Reserve. And we stand ready to do more if necessary, unified with our allies. ⏎\n",
+ " │ │ These steps will help blunt gas prices here at home. And I know the news about what’s happening can seem alarming. ⏎\n",
+ " │ │ But I want you to know that we are going to be okay. ⏎\n",
+ " │ │ When the history of this era is written Putin’s war on Ukraine will have left Russia weaker and the rest of the world stronger. ⏎\n",
+ " │ │ While it shouldn’t have taken something so terrible for people around the world to see what’s at stake now everyone sees it clearly. ⏎\n",
+ " │ │ We see the unity among leaders of nations and a more unified Europe a more unified West. And we see unity among the people who are gathering in cities in large crowds around the world even in Russia to demonstrate their support for Ukraine. ⏎\n",
+ " │ │ In the battle between democracy and autocracy, democracies are rising to the moment, and the world is clearly choosing the side of peace and security. ⏎\n",
+ " │ │ This is a real test. It’s going to take time. So let us continue to draw inspiration from the iron will of the Ukrainian people. ⏎\n",
+ " │ │ To our fellow Ukrainian Americans who forge a deep bond that connects our two nations we stand with you. ⏎\n",
+ " │ │ Putin may circle Kyiv with tanks, but he will never gain the hearts and souls of the Ukrainian people. ⏎\n",
+ " │ │ He will never extinguish their love of freedom. He will never weaken the resolve of the free world. ⏎\n",
+ " │ │ We meet tonight in an America that has lived through two of the hardest years this nation has ever faced. ⏎\n",
+ " │ │ The pandemic has been punishing. ⏎\n",
+ " │ │ And so many families are living paycheck to paycheck, struggling to keep up with the rising cost of food, gas, housing, and so much more. ⏎\n",
+ " │ │ I understand. ⏎\n",
+ " │ │ I remember when my Dad had to leave our home in Scranton, Pennsylvania to find work. I grew up in a family where if the price of food went up, you felt it. ⏎\n",
+ " │ │ That’s why one of the first things I did as President was fight to pass the American Rescue Plan. ⏎\n",
+ " │ │ Because people were hurting. We needed to act, and we did. ⏎\n",
+ " │ │ Few pieces of legislation have done more in a critical moment in our history to lift us out of crisis. ⏎\n",
+ " │ │ It fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. ⏎\n",
+ " │ │ Helped put food on their table, keep a roof over their heads, and cut the cost of health insurance. ⏎\n",
+ " │ │ And as my Dad used to say, it gave people a little breathing room. ⏎\n",
+ " │ │ And unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people—and left no one behind. ⏎\n",
+ " │ │ And it worked. It created jobs. Lots of jobs. ⏎\n",
+ " │ │ In fact—our econ\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m3.978s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Write a concise summary of the following:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ \"r economy. The Ruble has lost 30% of its value. ⏎\n",
+ " │ │ The Russian stock market has lost 40% of its value and trading remains suspended. Russia’s economy is reeling and Putin alone is to blame. ⏎\n",
+ " │ │ Together with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. ⏎\n",
+ " │ │ We are giving more than $1 Billion in direct assistance to Ukraine. ⏎\n",
+ " │ │ And we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. ⏎\n",
+ " │ │ Let me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. ⏎\n",
+ " │ │ Our forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies – in the event that Putin decides to keep moving west. ⏎\n",
+ " │ │ For that purpose we’ve mobilized American ground forces, air squadrons, and ship deployments to protect NATO countries including Poland, Romania, Latvia, Lithuania, and Estonia. ⏎\n",
+ " │ │ As I have made crystal clear the United States and our Allies will defend every inch of territory of NATO countries with the full force of our collective power. ⏎\n",
+ " │ │ And we remain clear-eyed. The Ukrainians are fighting back with pure courage. But the next few days weeks, months, will be hard on them. ⏎\n",
+ " │ │ Putin has unleashed violence and chaos. But while he may make gains on the battlefield – he will pay a continuing high price over the long run. ⏎\n",
+ " │ │ And a proud Ukrainian people, who have known 30 years of independence, have repeatedly shown that they will not tolerate anyone who tries to take their country backwards. ⏎\n",
+ " │ │ To all Americans, I will be honest with you, as I’ve always promised. A Russian dictator, invading a foreign country, has costs around the world. ⏎\n",
+ " │ │ And I’m taking robust action to make sure the pain of our sanctions is targeted at Russia’s economy. And I will use every tool at our disposal to protect American businesses and consumers. ⏎\n",
+ " │ │ Tonight, I can announce that the United States has worked with 30 other countries to release 60 Million barrels of oil from reserves around the world. ⏎\n",
+ " │ │ America will lead that effort, releasing 30 Million barrels from our own Strategic Petroleum Reserve. And we stand ready to do more if necessary, unified with our allies. ⏎\n",
+ " │ │ These steps will help blunt gas prices here at home. And I know the news about what’s happening can seem alarming. ⏎\n",
+ " │ │ But I want you to know that we are going to be okay. ⏎\n",
+ " │ │ When the history of this era is written Putin’s war on Ukraine will have left Russia weaker and the rest of the world stronger. ⏎\n",
+ " │ │ While it shouldn’t have taken something so terrible for people around the world to see what’s at stake now everyone sees it clearly. ⏎\n",
+ " │ │ We see the unity among leaders of nations and a more unified Europe a more unified West. And we see unity among the people who are gathering in cities in large crowds around the world even in Russia to demonstrate their support for Ukraine. ⏎\n",
+ " │ │ In the battle between democracy and autocracy, democracies are rising to the moment, and the world is clearly choosing the side of peace and security. ⏎\n",
+ " │ │ This is a real test. It’s going to take time. So let us continue to draw inspiration from the iron will of the Ukrainian people. ⏎\n",
+ " │ │ To our fellow Ukrainian Americans who forge a deep bond that connects our two nations we stand with you. ⏎\n",
+ " │ │ Putin may circle Kyiv with tanks, but he will never gain the hearts and souls of the Ukrainian people. ⏎\n",
+ " │ │ He will never extinguish their love of freedom. He will never weaken the resolve of the free world. ⏎\n",
+ " │ │ We meet tonight in an America that has lived through two of the hardest years this nation has ever faced. ⏎\n",
+ " │ │ The pandemic has been punishing. ⏎\n",
+ " │ │ And so many families are living paycheck to paycheck, struggling to keep up with the rising cost of food, gas, housing, and so much more. ⏎\n",
+ " │ │ I understand. ⏎\n",
+ " │ │ I remember when my Dad had to leave our home in Scranton, Pennsylvania to find work. I grew up in a family where if the price of food went up, you felt it. ⏎\n",
+ " │ │ That’s why one of the first things I did as President was fight to pass the American Rescue Plan. ⏎\n",
+ " │ │ Because people were hurting. We needed to act, and we did. ⏎\n",
+ " │ │ Few pieces of legislation have done more in a critical moment in our history to lift us out of crisis. ⏎\n",
+ " │ │ It fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. ⏎\n",
+ " │ │ Helped put food on their table, keep a roof over their heads, and cut the cost of health insurance. ⏎\n",
+ " │ │ And as my Dad used to say, it gave people a little breathing room. ⏎\n",
+ " │ │ And unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people—and left no one behind. ⏎\n",
+ " │ │ And it worked. It created jobs. Lots of jobs. ⏎\n",
+ " │ │ In fact—our econ\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ CONCISE SUMMARY:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:20Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:20Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: In response to Russian President Putin's invasion of Ukraine, the US and its allies are providing military, economic, and humanitarian assistance to the Ukrainians. The US is also leading an effort to release 60 million barrels of oil from reserves around the world, including 30 million from the US Strategic Petroleum Reserve, to help blunt gas prices. The US President has also passed the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:20Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:20Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m2d2df820-8a1d-4db7-80ae-c54638c6a067\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.513s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.001s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mtext\u001b[0m: st things I did as President was fight to pass the American Rescue Plan. ⏎\n",
+ " │ │ Because people were hurting. We needed to act, and we did. ⏎\n",
+ " │ │ Few pieces of legislation have done more in a critical moment in our history to lift us out of crisis. ⏎\n",
+ " │ │ It fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. ⏎\n",
+ " │ │ Helped put food on their table, keep a roof over their heads, and cut the cost of health insurance. ⏎\n",
+ " │ │ And as my Dad used to say, it gave people a little breathing room. ⏎\n",
+ " │ │ And unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people—and left no one behind. ⏎\n",
+ " │ │ And it worked. It created jobs. Lots of jobs. ⏎\n",
+ " │ │ In fact—our economy created over 6.5 Million new jobs just last year, more jobs created in one year ⏎\n",
+ " │ │ than ever before in the history of America. ⏎\n",
+ " │ │ Our economy grew at a rate of 5.7% last year, the strongest growth in nearly 40 years, the first step in bringing fundamental change to an economy that hasn’t worked for the working people of this nation for too long. ⏎\n",
+ " │ │ For the past 40 years we were told that if we gave tax breaks to those at the very top, the benefits would trickle down to everyone else. ⏎\n",
+ " │ │ But that trickle-down theory led to weaker economic growth, lower wages, bigger deficits, and the widest gap between those at the top and everyone else in nearly a century. ⏎\n",
+ " │ │ Vice President Harris and I ran for office with a new economic vision for America. ⏎\n",
+ " │ │ Invest in America. Educate Americans. Grow the workforce. Build the economy from the bottom up ⏎\n",
+ " │ │ and the middle out, not from the top down. ⏎\n",
+ " │ │ Because we know that when the middle class grows, the poor have a ladder up and the wealthy do very well. ⏎\n",
+ " │ │ America used to have the best roads, bridges, and airports on Earth. ⏎\n",
+ " │ │ Now our infrastructure is ranked 13th in the world. ⏎\n",
+ " │ │ We won’t be able to compete for the jobs of the 21st Century if we don’t fix that. ⏎\n",
+ " │ │ That’s why it was so important to pass the Bipartisan Infrastructure Law—the most sweeping investment to rebuild America in history. ⏎\n",
+ " │ │ This was a bipartisan effort, and I want to thank the members of both parties who worked to make it happen. ⏎\n",
+ " │ │ We’re done talking about infrastructure weeks. ⏎\n",
+ " │ │ We’re going to have an infrastructure decade. ⏎\n",
+ " │ │ It is going to transform America and put us on a path to win the economic competition of the 21st Century that we face with the rest of the world—particularly with China. ⏎\n",
+ " │ │ As I’ve told Xi Jinping, it is never a good bet to bet against the American people. ⏎\n",
+ " │ │ We’ll create good jobs for millions of Americans, modernizing roads, airports, ports, and waterways all across America. ⏎\n",
+ " │ │ And we’ll do it all to withstand the devastating effects of the climate crisis and promote environmental justice. ⏎\n",
+ " │ │ We’ll build a national network of 500,000 electric vehicle charging stations, begin to replace poisonous lead pipes—so every child—and every American—has clean water to drink at home and at school, provide affordable high-speed internet for every American—urban, suburban, rural, and tribal communities. ⏎\n",
+ " │ │ 4,000 projects have already been announced. ⏎\n",
+ " │ │ And tonight, I’m announcing that this year we will start fixing over 65,000 miles of highway and 1,500 bridges in disrepair. ⏎\n",
+ " │ │ When we use taxpayer dollars to rebuild America – we are going to Buy American: buy American products to support American jobs. ⏎\n",
+ " │ │ The federal government spends about $600 Billion a year to keep the country safe and secure. ⏎\n",
+ " │ │ There’s been a law on the books for almost a century ⏎\n",
+ " │ │ to make sure taxpayers’ dollars support American jobs and businesses. ⏎\n",
+ " │ │ Every Administration says they’ll do it, but we are actually doing it. ⏎\n",
+ " │ │ We will buy American to make sure everything from the deck of an aircraft carrier to the steel on highway guardrails are made in America. ⏎\n",
+ " │ │ But to compete for the best jobs of the future, we also need to level the playing field with China and other competitors. ⏎\n",
+ " │ │ That’s why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. ⏎\n",
+ " │ │ Let me give you one example of why it’s so important to pass it. ⏎\n",
+ " │ │ If you travel 20 miles east of Columbus, Ohio, you’ll find 1,000 empty acres of land. ⏎\n",
+ " │ │ It won’t look like much, but if you stop and look closely, you’ll see a “Field of dreams,” the ground on which America’s future will be built. ⏎\n",
+ " │ │ This is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor “mega site”. ⏎\n",
+ " │ │ Up to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. ⏎\n",
+ " │ │ Some of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that po\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m4.512s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Write a concise summary of the following:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ \"st things I did as President was fight to pass the American Rescue Plan. ⏎\n",
+ " │ │ Because people were hurting. We needed to act, and we did. ⏎\n",
+ " │ │ Few pieces of legislation have done more in a critical moment in our history to lift us out of crisis. ⏎\n",
+ " │ │ It fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. ⏎\n",
+ " │ │ Helped put food on their table, keep a roof over their heads, and cut the cost of health insurance. ⏎\n",
+ " │ │ And as my Dad used to say, it gave people a little breathing room. ⏎\n",
+ " │ │ And unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people—and left no one behind. ⏎\n",
+ " │ │ And it worked. It created jobs. Lots of jobs. ⏎\n",
+ " │ │ In fact—our economy created over 6.5 Million new jobs just last year, more jobs created in one year ⏎\n",
+ " │ │ than ever before in the history of America. ⏎\n",
+ " │ │ Our economy grew at a rate of 5.7% last year, the strongest growth in nearly 40 years, the first step in bringing fundamental change to an economy that hasn’t worked for the working people of this nation for too long. ⏎\n",
+ " │ │ For the past 40 years we were told that if we gave tax breaks to those at the very top, the benefits would trickle down to everyone else. ⏎\n",
+ " │ │ But that trickle-down theory led to weaker economic growth, lower wages, bigger deficits, and the widest gap between those at the top and everyone else in nearly a century. ⏎\n",
+ " │ │ Vice President Harris and I ran for office with a new economic vision for America. ⏎\n",
+ " │ │ Invest in America. Educate Americans. Grow the workforce. Build the economy from the bottom up ⏎\n",
+ " │ │ and the middle out, not from the top down. ⏎\n",
+ " │ │ Because we know that when the middle class grows, the poor have a ladder up and the wealthy do very well. ⏎\n",
+ " │ │ America used to have the best roads, bridges, and airports on Earth. ⏎\n",
+ " │ │ Now our infrastructure is ranked 13th in the world. ⏎\n",
+ " │ │ We won’t be able to compete for the jobs of the 21st Century if we don’t fix that. ⏎\n",
+ " │ │ That’s why it was so important to pass the Bipartisan Infrastructure Law—the most sweeping investment to rebuild America in history. ⏎\n",
+ " │ │ This was a bipartisan effort, and I want to thank the members of both parties who worked to make it happen. ⏎\n",
+ " │ │ We’re done talking about infrastructure weeks. ⏎\n",
+ " │ │ We’re going to have an infrastructure decade. ⏎\n",
+ " │ │ It is going to transform America and put us on a path to win the economic competition of the 21st Century that we face with the rest of the world—particularly with China. ⏎\n",
+ " │ │ As I’ve told Xi Jinping, it is never a good bet to bet against the American people. ⏎\n",
+ " │ │ We’ll create good jobs for millions of Americans, modernizing roads, airports, ports, and waterways all across America. ⏎\n",
+ " │ │ And we’ll do it all to withstand the devastating effects of the climate crisis and promote environmental justice. ⏎\n",
+ " │ │ We’ll build a national network of 500,000 electric vehicle charging stations, begin to replace poisonous lead pipes—so every child—and every American—has clean water to drink at home and at school, provide affordable high-speed internet for every American—urban, suburban, rural, and tribal communities. ⏎\n",
+ " │ │ 4,000 projects have already been announced. ⏎\n",
+ " │ │ And tonight, I’m announcing that this year we will start fixing over 65,000 miles of highway and 1,500 bridges in disrepair. ⏎\n",
+ " │ │ When we use taxpayer dollars to rebuild America – we are going to Buy American: buy American products to support American jobs. ⏎\n",
+ " │ │ The federal government spends about $600 Billion a year to keep the country safe and secure. ⏎\n",
+ " │ │ There’s been a law on the books for almost a century ⏎\n",
+ " │ │ to make sure taxpayers’ dollars support American jobs and businesses. ⏎\n",
+ " │ │ Every Administration says they’ll do it, but we are actually doing it. ⏎\n",
+ " │ │ We will buy American to make sure everything from the deck of an aircraft carrier to the steel on highway guardrails are made in America. ⏎\n",
+ " │ │ But to compete for the best jobs of the future, we also need to level the playing field with China and other competitors. ⏎\n",
+ " │ │ That’s why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. ⏎\n",
+ " │ │ Let me give you one example of why it’s so important to pass it. ⏎\n",
+ " │ │ If you travel 20 miles east of Columbus, Ohio, you’ll find 1,000 empty acres of land. ⏎\n",
+ " │ │ It won’t look like much, but if you stop and look closely, you’ll see a “Field of dreams,” the ground on which America’s future will be built. ⏎\n",
+ " │ │ This is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor “mega site”. ⏎\n",
+ " │ │ Up to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. ⏎\n",
+ " │ │ Some of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that po\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ CONCISE SUMMARY:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:21Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:21Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: President Biden fought to pass the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs. He also passed the Bipartisan Infrastructure Law to rebuild America and the Bipartisan Innovation Act to level the playing field with China and other competitors. An example of this is Intel's $20 billion semiconductor \"mega site\" in Ohio, which will create 10,000 new jobs.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:21Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:21Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mdff81dcf-2073-4ba4-8856-d0f82c213311\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m6.248s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.001s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mtext\u001b[0m: Madam Speaker, Madam Vice President, our First Lady and Second Gentleman. Members of Congress and the Cabinet. Justices of the Supreme Court. My fellow Americans. ⏎\n",
+ " │ │ Last year COVID-19 kept us apart. This year we are finally together again. ⏎\n",
+ " │ │ Tonight, we meet as Democrats Republicans and Independents. But most importantly as Americans. ⏎\n",
+ " │ │ With a duty to one another to the American people to the Constitution. ⏎\n",
+ " │ │ And with an unwavering resolve that freedom will always triumph over tyranny. ⏎\n",
+ " │ │ Six days ago, Russia’s Vladimir Putin sought to shake the foundations of the free world thinking he could make it bend to his menacing ways. But he badly miscalculated. ⏎\n",
+ " │ │ He thought he could roll into Ukraine and the world would roll over. Instead he met a wall of strength he never imagined. ⏎\n",
+ " │ │ He met the Ukrainian people. ⏎\n",
+ " │ │ From President Zelenskyy to every Ukrainian, their fearlessness, their courage, their determination, inspires the world. ⏎\n",
+ " │ │ Groups of citizens blocking tanks with their bodies. Everyone from students to retirees teachers turned soldiers defending their homeland. ⏎\n",
+ " │ │ In this struggle as President Zelenskyy said in his speech to the European Parliament “Light will win over darkness.” The Ukrainian Ambassador to the United States is here tonight. ⏎\n",
+ " │ │ Let each of us here tonight in this Chamber send an unmistakable signal to Ukraine and to the world. ⏎\n",
+ " │ │ Please rise if you are able and show that, Yes, we the United States of America stand with the Ukrainian people. ⏎\n",
+ " │ │ Throughout our history we’ve learned this lesson when dictators do not pay a price for their aggression they cause more chaos. ⏎\n",
+ " │ │ They keep moving. ⏎\n",
+ " │ │ And the costs and the threats to America and the world keep rising. ⏎\n",
+ " │ │ That’s why the NATO Alliance was created to secure peace and stability in Europe after World War 2. ⏎\n",
+ " │ │ The United States is a member along with 29 other nations. ⏎\n",
+ " │ │ It matters. American diplomacy matters. American resolve matters. ⏎\n",
+ " │ │ Putin’s latest attack on Ukraine was premeditated and unprovoked. ⏎\n",
+ " │ │ He rejected repeated efforts at diplomacy. ⏎\n",
+ " │ │ He thought the West and NATO wouldn’t respond. And he thought he could divide us at home. Putin was wrong. We were ready. Here is what we did. ⏎\n",
+ " │ │ We prepared extensively and carefully. ⏎\n",
+ " │ │ We spent months building a coalition of other freedom-loving nations from Europe and the Americas to Asia and Africa to confront Putin. ⏎\n",
+ " │ │ I spent countless hours unifying our European allies. We shared with the world in advance what we knew Putin was planning and precisely how he would try to falsely justify his aggression. ⏎\n",
+ " │ │ We countered Russia’s lies with truth. ⏎\n",
+ " │ │ And now that he has acted the free world is holding him accountable. ⏎\n",
+ " │ │ Along with twenty-seven members of the European Union including France, Germany, Italy, as well as countries like the United Kingdom, Canada, Japan, Korea, Australia, New Zealand, and many others, even Switzerland. ⏎\n",
+ " │ │ We are inflicting pain on Russia and supporting the people of Ukraine. Putin is now isolated from the world more than ever. ⏎\n",
+ " │ │ Together with our allies –we are right now enforcing powerful economic sanctions. ⏎\n",
+ " │ │ We are cutting off Russia’s largest banks from the international financial system. ⏎\n",
+ " │ │ Preventing Russia’s central bank from defending the Russian Ruble making Putin’s $630 Billion “war fund” worthless. ⏎\n",
+ " │ │ We are choking off Russia’s access to technology that will sap its economic strength and weaken its military for years to come. ⏎\n",
+ " │ │ Tonight I say to the Russian oligarchs and corrupt leaders who have bilked billions of dollars off this violent regime no more. ⏎\n",
+ " │ │ The U.S. Department of Justice is assembling a dedicated task force to go after the crimes of Russian oligarchs. ⏎\n",
+ " │ │ We are joining with our European allies to find and seize your yachts your luxury apartments your private jets. We are coming for your ill-begotten gains. ⏎\n",
+ " │ │ And tonight I am announcing that we will join our allies in closing off American air space to all Russian flights – further isolating Russia – and adding an additional squeeze –on their economy. The Ruble has lost 30% of its value. ⏎\n",
+ " │ │ The Russian stock market has lost 40% of its value and trading remains suspended. Russia’s economy is reeling and Putin alone is to blame. ⏎\n",
+ " │ │ Together with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. ⏎\n",
+ " │ │ We are giving more than $1 Billion in direct assistance to Ukraine. ⏎\n",
+ " │ │ And we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. ⏎\n",
+ " │ │ Let me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. ⏎\n",
+ " │ │ Our forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies – in the event that Putin decides to keep moving west. ⏎\n",
+ " │ │ For that pu\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m6.247s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Write a concise summary of the following:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ \"Madam Speaker, Madam Vice President, our First Lady and Second Gentleman. Members of Congress and the Cabinet. Justices of the Supreme Court. My fellow Americans. ⏎\n",
+ " │ │ Last year COVID-19 kept us apart. This year we are finally together again. ⏎\n",
+ " │ │ Tonight, we meet as Democrats Republicans and Independents. But most importantly as Americans. ⏎\n",
+ " │ │ With a duty to one another to the American people to the Constitution. ⏎\n",
+ " │ │ And with an unwavering resolve that freedom will always triumph over tyranny. ⏎\n",
+ " │ │ Six days ago, Russia’s Vladimir Putin sought to shake the foundations of the free world thinking he could make it bend to his menacing ways. But he badly miscalculated. ⏎\n",
+ " │ │ He thought he could roll into Ukraine and the world would roll over. Instead he met a wall of strength he never imagined. ⏎\n",
+ " │ │ He met the Ukrainian people. ⏎\n",
+ " │ │ From President Zelenskyy to every Ukrainian, their fearlessness, their courage, their determination, inspires the world. ⏎\n",
+ " │ │ Groups of citizens blocking tanks with their bodies. Everyone from students to retirees teachers turned soldiers defending their homeland. ⏎\n",
+ " │ │ In this struggle as President Zelenskyy said in his speech to the European Parliament “Light will win over darkness.” The Ukrainian Ambassador to the United States is here tonight. ⏎\n",
+ " │ │ Let each of us here tonight in this Chamber send an unmistakable signal to Ukraine and to the world. ⏎\n",
+ " │ │ Please rise if you are able and show that, Yes, we the United States of America stand with the Ukrainian people. ⏎\n",
+ " │ │ Throughout our history we’ve learned this lesson when dictators do not pay a price for their aggression they cause more chaos. ⏎\n",
+ " │ │ They keep moving. ⏎\n",
+ " │ │ And the costs and the threats to America and the world keep rising. ⏎\n",
+ " │ │ That’s why the NATO Alliance was created to secure peace and stability in Europe after World War 2. ⏎\n",
+ " │ │ The United States is a member along with 29 other nations. ⏎\n",
+ " │ │ It matters. American diplomacy matters. American resolve matters. ⏎\n",
+ " │ │ Putin’s latest attack on Ukraine was premeditated and unprovoked. ⏎\n",
+ " │ │ He rejected repeated efforts at diplomacy. ⏎\n",
+ " │ │ He thought the West and NATO wouldn’t respond. And he thought he could divide us at home. Putin was wrong. We were ready. Here is what we did. ⏎\n",
+ " │ │ We prepared extensively and carefully. ⏎\n",
+ " │ │ We spent months building a coalition of other freedom-loving nations from Europe and the Americas to Asia and Africa to confront Putin. ⏎\n",
+ " │ │ I spent countless hours unifying our European allies. We shared with the world in advance what we knew Putin was planning and precisely how he would try to falsely justify his aggression. ⏎\n",
+ " │ │ We countered Russia’s lies with truth. ⏎\n",
+ " │ │ And now that he has acted the free world is holding him accountable. ⏎\n",
+ " │ │ Along with twenty-seven members of the European Union including France, Germany, Italy, as well as countries like the United Kingdom, Canada, Japan, Korea, Australia, New Zealand, and many others, even Switzerland. ⏎\n",
+ " │ │ We are inflicting pain on Russia and supporting the people of Ukraine. Putin is now isolated from the world more than ever. ⏎\n",
+ " │ │ Together with our allies –we are right now enforcing powerful economic sanctions. ⏎\n",
+ " │ │ We are cutting off Russia’s largest banks from the international financial system. ⏎\n",
+ " │ │ Preventing Russia’s central bank from defending the Russian Ruble making Putin’s $630 Billion “war fund” worthless. ⏎\n",
+ " │ │ We are choking off Russia’s access to technology that will sap its economic strength and weaken its military for years to come. ⏎\n",
+ " │ │ Tonight I say to the Russian oligarchs and corrupt leaders who have bilked billions of dollars off this violent regime no more. ⏎\n",
+ " │ │ The U.S. Department of Justice is assembling a dedicated task force to go after the crimes of Russian oligarchs. ⏎\n",
+ " │ │ We are joining with our European allies to find and seize your yachts your luxury apartments your private jets. We are coming for your ill-begotten gains. ⏎\n",
+ " │ │ And tonight I am announcing that we will join our allies in closing off American air space to all Russian flights – further isolating Russia – and adding an additional squeeze –on their economy. The Ruble has lost 30% of its value. ⏎\n",
+ " │ │ The Russian stock market has lost 40% of its value and trading remains suspended. Russia’s economy is reeling and Putin alone is to blame. ⏎\n",
+ " │ │ Together with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. ⏎\n",
+ " │ │ We are giving more than $1 Billion in direct assistance to Ukraine. ⏎\n",
+ " │ │ And we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. ⏎\n",
+ " │ │ Let me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. ⏎\n",
+ " │ │ Our forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies – in the event that Putin decides to keep moving west. ⏎\n",
+ " │ │ For that pu\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ CONCISE SUMMARY:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:22Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:22Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: In this speech, the speaker addresses the American people and the world, emphasizing the strength of the Ukrainian people in the face of Russia's aggression. The speaker also announces that the US and its allies are imposing economic sanctions on Russia, and providing military, economic, and humanitarian assistance to Ukraine. The US is also joining its allies in closing off American airspace to all Russian flights, and the Department of Justice is assembling a task force to go after the crimes of Russian oligarchs. The speaker also clarifies that US forces are not engaging in conflict with Russian forces in Ukraine, but are there to defend NATO allies.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:22Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:22Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15m2039cff8-944d-4daf-91e1-a78747fce7c0\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m7.129s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.003s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mtext\u001b[0m: why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. ⏎\n",
+ " │ │ Let me give you one example of why it’s so important to pass it. ⏎\n",
+ " │ │ If you travel 20 miles east of Columbus, Ohio, you’ll find 1,000 empty acres of land. ⏎\n",
+ " │ │ It won’t look like much, but if you stop and look closely, you’ll see a “Field of dreams,” the ground on which America’s future will be built. ⏎\n",
+ " │ │ This is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor “mega site”. ⏎\n",
+ " │ │ Up to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. ⏎\n",
+ " │ │ Some of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that power the world and our everyday lives. ⏎\n",
+ " │ │ Smartphones. The Internet. Technology we have yet to invent. ⏎\n",
+ " │ │ But that’s just the beginning. ⏎\n",
+ " │ │ Intel’s CEO, Pat Gelsinger, who is here tonight, told me they are ready to increase their investment from ⏎\n",
+ " │ │ $20 billion to $100 billion. ⏎\n",
+ " │ │ That would be one of the biggest investments in manufacturing in American history. ⏎\n",
+ " │ │ And all they’re waiting for is for you to pass this bill. ⏎\n",
+ " │ │ So let’s not wait any longer. Send it to my desk. I’ll sign it. ⏎\n",
+ " │ │ And we will really take off. ⏎\n",
+ " │ │ And Intel is not alone. ⏎\n",
+ " │ │ There’s something happening in America. ⏎\n",
+ " │ │ Just look around and you’ll see an amazing story. ⏎\n",
+ " │ │ The rebirth of the pride that comes from stamping products “Made In America.” The revitalization of American manufacturing. ⏎\n",
+ " │ │ Companies are choosing to build new factories here, when just a few years ago, they would have built them overseas. ⏎\n",
+ " │ │ That’s what is happening. Ford is investing $11 billion to build electric vehicles, creating 11,000 jobs across the country. ⏎\n",
+ " │ │ GM is making the largest investment in its history—$7 billion to build electric vehicles, creating 4,000 jobs in Michigan. ⏎\n",
+ " │ │ All told, we created 369,000 new manufacturing jobs in America just last year. ⏎\n",
+ " │ │ Powered by people I’ve met like JoJo Burgess, from generations of union steelworkers from Pittsburgh, who’s here with us tonight. ⏎\n",
+ " │ │ As Ohio Senator Sherrod Brown says, “It’s time to bury the label “Rust Belt.” ⏎\n",
+ " │ │ It’s time. ⏎\n",
+ " │ │ But with all the bright spots in our economy, record job growth and higher wages, too many families are struggling to keep up with the bills. ⏎\n",
+ " │ │ Inflation is robbing them of the gains they might otherwise feel. ⏎\n",
+ " │ │ I get it. That’s why my top priority is getting prices under control. ⏎\n",
+ " │ │ Look, our economy roared back faster than most predicted, but the pandemic meant that businesses had a hard time hiring enough workers to keep up production in their factories. ⏎\n",
+ " │ │ The pandemic also disrupted global supply chains. ⏎\n",
+ " │ │ When factories close, it takes longer to make goods and get them from the warehouse to the store, and prices go up. ⏎\n",
+ " │ │ Look at cars. ⏎\n",
+ " │ │ Last year, there weren’t enough semiconductors to make all the cars that people wanted to buy. ⏎\n",
+ " │ │ And guess what, prices of automobiles went up. ⏎\n",
+ " │ │ So—we have a choice. ⏎\n",
+ " │ │ One way to fight inflation is to drive down wages and make Americans poorer. ⏎\n",
+ " │ │ I have a better plan to fight inflation. ⏎\n",
+ " │ │ Lower your costs, not your wages. ⏎\n",
+ " │ │ Make more cars and semiconductors in America. ⏎\n",
+ " │ │ More infrastructure and innovation in America. ⏎\n",
+ " │ │ More goods moving faster and cheaper in America. ⏎\n",
+ " │ │ More jobs where you can earn a good living in America. ⏎\n",
+ " │ │ And instead of relying on foreign supply chains, let’s make it in America. ⏎\n",
+ " │ │ Economists call it “increasing the productive capacity of our economy.” ⏎\n",
+ " │ │ I call it building a better America. ⏎\n",
+ " │ │ My plan to fight inflation will lower your costs and lower the deficit. ⏎\n",
+ " │ │ 17 Nobel laureates in economics say my plan will ease long-term inflationary pressures. Top business leaders and most Americans support my plan. And here’s the plan: ⏎\n",
+ " │ │ First – cut the cost of prescription drugs. Just look at insulin. One in ten Americans has diabetes. In Virginia, I met a 13-year-old boy named Joshua Davis. ⏎\n",
+ " │ │ He and his Dad both have Type 1 diabetes, which means they need insulin every day. Insulin costs about $10 a vial to make. ⏎\n",
+ " │ │ But drug companies charge families like Joshua and his Dad up to 30 times more. I spoke with Joshua’s mom. ⏎\n",
+ " │ │ Imagine what it’s like to look at your child who needs insulin and have no idea how you’re going to pay for it. ⏎\n",
+ " │ │ What it does to your dignity, your ability to look your child in the eye, to be the parent you expect to be. ⏎\n",
+ " │ │ Joshua is here with us tonight. Yesterday was his birthday. Happy birthday, buddy. ⏎\n",
+ " │ │ For Joshua, and for the 200,000 other young people with Type 1 diabetes, let’s cap the cost of insulin at $35 a month so everyone can afford it. ⏎\n",
+ " │ │ Drug companies will still do very well. And while we’re at it let Medicare negotiate lower prices for prescription drugs, like the VA a\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:16Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m7.125s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Write a concise summary of the following:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ \" why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. ⏎\n",
+ " │ │ Let me give you one example of why it’s so important to pass it. ⏎\n",
+ " │ │ If you travel 20 miles east of Columbus, Ohio, you’ll find 1,000 empty acres of land. ⏎\n",
+ " │ │ It won’t look like much, but if you stop and look closely, you’ll see a “Field of dreams,” the ground on which America’s future will be built. ⏎\n",
+ " │ │ This is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor “mega site”. ⏎\n",
+ " │ │ Up to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. ⏎\n",
+ " │ │ Some of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that power the world and our everyday lives. ⏎\n",
+ " │ │ Smartphones. The Internet. Technology we have yet to invent. ⏎\n",
+ " │ │ But that’s just the beginning. ⏎\n",
+ " │ │ Intel’s CEO, Pat Gelsinger, who is here tonight, told me they are ready to increase their investment from ⏎\n",
+ " │ │ $20 billion to $100 billion. ⏎\n",
+ " │ │ That would be one of the biggest investments in manufacturing in American history. ⏎\n",
+ " │ │ And all they’re waiting for is for you to pass this bill. ⏎\n",
+ " │ │ So let’s not wait any longer. Send it to my desk. I’ll sign it. ⏎\n",
+ " │ │ And we will really take off. ⏎\n",
+ " │ │ And Intel is not alone. ⏎\n",
+ " │ │ There’s something happening in America. ⏎\n",
+ " │ │ Just look around and you’ll see an amazing story. ⏎\n",
+ " │ │ The rebirth of the pride that comes from stamping products “Made In America.” The revitalization of American manufacturing. ⏎\n",
+ " │ │ Companies are choosing to build new factories here, when just a few years ago, they would have built them overseas. ⏎\n",
+ " │ │ That’s what is happening. Ford is investing $11 billion to build electric vehicles, creating 11,000 jobs across the country. ⏎\n",
+ " │ │ GM is making the largest investment in its history—$7 billion to build electric vehicles, creating 4,000 jobs in Michigan. ⏎\n",
+ " │ │ All told, we created 369,000 new manufacturing jobs in America just last year. ⏎\n",
+ " │ │ Powered by people I’ve met like JoJo Burgess, from generations of union steelworkers from Pittsburgh, who’s here with us tonight. ⏎\n",
+ " │ │ As Ohio Senator Sherrod Brown says, “It’s time to bury the label “Rust Belt.” ⏎\n",
+ " │ │ It’s time. ⏎\n",
+ " │ │ But with all the bright spots in our economy, record job growth and higher wages, too many families are struggling to keep up with the bills. ⏎\n",
+ " │ │ Inflation is robbing them of the gains they might otherwise feel. ⏎\n",
+ " │ │ I get it. That’s why my top priority is getting prices under control. ⏎\n",
+ " │ │ Look, our economy roared back faster than most predicted, but the pandemic meant that businesses had a hard time hiring enough workers to keep up production in their factories. ⏎\n",
+ " │ │ The pandemic also disrupted global supply chains. ⏎\n",
+ " │ │ When factories close, it takes longer to make goods and get them from the warehouse to the store, and prices go up. ⏎\n",
+ " │ │ Look at cars. ⏎\n",
+ " │ │ Last year, there weren’t enough semiconductors to make all the cars that people wanted to buy. ⏎\n",
+ " │ │ And guess what, prices of automobiles went up. ⏎\n",
+ " │ │ So—we have a choice. ⏎\n",
+ " │ │ One way to fight inflation is to drive down wages and make Americans poorer. ⏎\n",
+ " │ │ I have a better plan to fight inflation. ⏎\n",
+ " │ │ Lower your costs, not your wages. ⏎\n",
+ " │ │ Make more cars and semiconductors in America. ⏎\n",
+ " │ │ More infrastructure and innovation in America. ⏎\n",
+ " │ │ More goods moving faster and cheaper in America. ⏎\n",
+ " │ │ More jobs where you can earn a good living in America. ⏎\n",
+ " │ │ And instead of relying on foreign supply chains, let’s make it in America. ⏎\n",
+ " │ │ Economists call it “increasing the productive capacity of our economy.” ⏎\n",
+ " │ │ I call it building a better America. ⏎\n",
+ " │ │ My plan to fight inflation will lower your costs and lower the deficit. ⏎\n",
+ " │ │ 17 Nobel laureates in economics say my plan will ease long-term inflationary pressures. Top business leaders and most Americans support my plan. And here’s the plan: ⏎\n",
+ " │ │ First – cut the cost of prescription drugs. Just look at insulin. One in ten Americans has diabetes. In Virginia, I met a 13-year-old boy named Joshua Davis. ⏎\n",
+ " │ │ He and his Dad both have Type 1 diabetes, which means they need insulin every day. Insulin costs about $10 a vial to make. ⏎\n",
+ " │ │ But drug companies charge families like Joshua and his Dad up to 30 times more. I spoke with Joshua’s mom. ⏎\n",
+ " │ │ Imagine what it’s like to look at your child who needs insulin and have no idea how you’re going to pay for it. ⏎\n",
+ " │ │ What it does to your dignity, your ability to look your child in the eye, to be the parent you expect to be. ⏎\n",
+ " │ │ Joshua is here with us tonight. Yesterday was his birthday. Happy birthday, buddy. ⏎\n",
+ " │ │ For Joshua, and for the 200,000 other young people with Type 1 diabetes, let’s cap the cost of insulin at $35 a month so everyone can afford it. ⏎\n",
+ " │ │ Drug companies will still do very well. And while we’re at it let Medicare negotiate lower prices for prescription drugs, like the VA a\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ CONCISE SUMMARY:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: The Bipartisan Innovation Act is an important bill that is currently sitting in Congress. It will make record investments in emerging technologies and American manufacturing, such as Intel's $20 billion semiconductor \"mega site\" in Ohio. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. Other companies, such as Ford and GM, are also investing in American manufacturing, creating 369,000 new jobs in the last year. President Biden's plan to fight inflation is to lower costs, not wages, by increasing the productive capacity of the economy. This includes capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15ma2de8aab-500a-4df0-8764-3b3c091db0b9\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5m\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m5.830s\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mInput Function\u001b[0m/2/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.001s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4minput\u001b[0m: \u001b[0m\n",
+ " │ │ └── \u001b[38;5;4mtext\u001b[0m: In this speech, the speaker addresses the American people and the world, emphasizing the strength of the Ukrainian people in the face of Russia's aggression. The speaker also announces that the US and its allies are imposing economic sanctions on Russia, and providing military, economic, and humanitarian assistance to Ukraine. The US is also joining its allies in closing off American airspace to all Russian flights, and the Department of Justice is assembling a task force to go after the crimes of Russian oligarchs. The speaker also clarifies that US forces are not engaging in conflict with Russian forces in Ukraine, but are there to defend NATO allies.⏎\n",
+ " │ │ In response to Russian President Putin's invasion of Ukraine, the US and its allies are providing military, economic, and humanitarian assistance to the Ukrainians. The US is also leading an effort to release 60 million barrels of oil from reserves around the world, including 30 million from the US Strategic Petroleum Reserve, to help blunt gas prices. The US President has also passed the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs.⏎\n",
+ " │ │ President Biden fought to pass the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs. He also passed the Bipartisan Infrastructure Law to rebuild America and the Bipartisan Innovation Act to level the playing field with China and other competitors. An example of this is Intel's $20 billion semiconductor \"mega site\" in Ohio, which will create 10,000 new jobs.⏎\n",
+ " │ │ The Bipartisan Innovation Act is an important bill that is currently sitting in Congress. It will make record investments in emerging technologies and American manufacturing, such as Intel's $20 billion semiconductor \"mega site\" in Ohio. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. Other companies, such as Ford and GM, are also investing in American manufacturing, creating 369,000 new jobs in the last year. President Biden's plan to fight inflation is to lower costs, not wages, by increasing the productive capacity of the economy. This includes capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mInput Function\u001b[0m/2/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mPrompted\u001b[0m/3/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:23Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m5.828s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mprompt\u001b[0m: Write a concise summary of the following:⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ \" In this speech, the speaker addresses the American people and the world, emphasizing the strength of the Ukrainian people in the face of Russia's aggression. The speaker also announces that the US and its allies are imposing economic sanctions on Russia, and providing military, economic, and humanitarian assistance to Ukraine. The US is also joining its allies in closing off American airspace to all Russian flights, and the Department of Justice is assembling a task force to go after the crimes of Russian oligarchs. The speaker also clarifies that US forces are not engaging in conflict with Russian forces in Ukraine, but are there to defend NATO allies.⏎\n",
+ " │ │ In response to Russian President Putin's invasion of Ukraine, the US and its allies are providing military, economic, and humanitarian assistance to the Ukrainians. The US is also leading an effort to release 60 million barrels of oil from reserves around the world, including 30 million from the US Strategic Petroleum Reserve, to help blunt gas prices. The US President has also passed the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs.⏎\n",
+ " │ │ President Biden fought to pass the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs. He also passed the Bipartisan Infrastructure Law to rebuild America and the Bipartisan Innovation Act to level the playing field with China and other competitors. An example of this is Intel's $20 billion semiconductor \"mega site\" in Ohio, which will create 10,000 new jobs.⏎\n",
+ " │ │ The Bipartisan Innovation Act is an important bill that is currently sitting in Congress. It will make record investments in emerging technologies and American manufacturing, such as Intel's $20 billion semiconductor \"mega site\" in Ohio. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. Other companies, such as Ford and GM, are also investing in American manufacturing, creating 369,000 new jobs in the last year. President Biden's plan to fight inflation is to lower costs, not wages, by increasing the productive capacity of the economy. This includes capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.\"⏎\n",
+ " │ │ ⏎\n",
+ " │ │ ⏎\n",
+ " │ │ CONCISE SUMMARY:\u001b[0m\n",
+ " │ └── \u001b[38;5;5mPrompted\u001b[0m/3/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:29Z\u001b[2m\u001b[0m\n",
+ " ├── \u001b[38;5;5mResult\u001b[0m/4/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:29Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m0.000s\u001b[2m\u001b[0m\n",
+ " │ ├── \u001b[38;5;4mresult\u001b[0m: In response to Russia's aggression in Ukraine, President Biden has taken action to provide military, economic, and humanitarian assistance to Ukraine, impose economic sanctions on Russia, and close off American airspace to Russian flights. He has also passed the American Rescue Plan to provide economic relief to Americans and the Bipartisan Innovation Act to level the playing field with China and other competitors. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. President Biden is also fighting inflation by capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.\u001b[0m\n",
+ " │ └── \u001b[38;5;5mResult\u001b[0m/4/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:29Z\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5m\u001b[0m/5\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:29Z\u001b[2m\u001b[0m\n",
+ "\n",
+ "\u001b[38;5;15mb77ccab5-cdad-4436-a3e1-230da294a528\u001b[1m\u001b[0m\n",
+ "└── \u001b[38;5;5msummary\u001b[0m/1\u001b[0m ⇒ \u001b[38;5;2mstarted\u001b[0m \u001b[38;5;15m2023-02-26 01:42:15Z\u001b[2m\u001b[0m ⧖ \u001b[38;5;4m13.358s\u001b[2m\u001b[0m\n",
+ " └── \u001b[38;5;5msummary\u001b[0m/2\u001b[0m ⇒ \u001b[38;5;2msucceeded\u001b[0m \u001b[38;5;15m2023-02-26 01:42:29Z\u001b[2m\u001b[0m\n",
+ "\n"
+ ]
+ }
+ ],
+ "source": [
+ "show_log(\"summary.log\")"
+ ]
+ }
+ ],
+ "metadata": {
+ "jupytext": {
+ "cell_metadata_filter": "tags,-all"
+ },
+ "kernelspec": {
+ "display_name": "minichain",
+ "language": "python",
+ "name": "minichain"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.10.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/summary.log b/summary.log
new file mode 100644
index 0000000000000000000000000000000000000000..19c5a7cf8aade3688179419a93ff7118422aef4f
--- /dev/null
+++ b/summary.log
@@ -0,0 +1,42 @@
+{"action_status": "started", "timestamp": 1677375735.9654164, "task_uuid": "b77ccab5-cdad-4436-a3e1-230da294a528", "action_type": "summary", "task_level": [1]}
+{"action_status": "started", "timestamp": 1677375736.3633964, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "", "task_level": [1]}
+{"input": {"text": " why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. \nLet me give you one example of why it\u2019s so important to pass it. \nIf you travel 20 miles east of Columbus, Ohio, you\u2019ll find 1,000 empty acres of land. \nIt won\u2019t look like much, but if you stop and look closely, you\u2019ll see a \u201cField of dreams,\u201d the ground on which America\u2019s future will be built. \nThis is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor \u201cmega site\u201d. \nUp to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. \nSome of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that power the world and our everyday lives. \nSmartphones. The Internet. Technology we have yet to invent. \nBut that\u2019s just the beginning. \nIntel\u2019s CEO, Pat Gelsinger, who is here tonight, told me they are ready to increase their investment from \n$20 billion to $100 billion. \nThat would be one of the biggest investments in manufacturing in American history. \nAnd all they\u2019re waiting for is for you to pass this bill. \nSo let\u2019s not wait any longer. Send it to my desk. I\u2019ll sign it. \nAnd we will really take off. \nAnd Intel is not alone. \nThere\u2019s something happening in America. \nJust look around and you\u2019ll see an amazing story. \nThe rebirth of the pride that comes from stamping products \u201cMade In America.\u201d The revitalization of American manufacturing. \nCompanies are choosing to build new factories here, when just a few years ago, they would have built them overseas. \nThat\u2019s what is happening. Ford is investing $11 billion to build electric vehicles, creating 11,000 jobs across the country. \nGM is making the largest investment in its history\u2014$7 billion to build electric vehicles, creating 4,000 jobs in Michigan. \nAll told, we created 369,000 new manufacturing jobs in America just last year. \nPowered by people I\u2019ve met like JoJo Burgess, from generations of union steelworkers from Pittsburgh, who\u2019s here with us tonight. \nAs Ohio Senator Sherrod Brown says, \u201cIt\u2019s time to bury the label \u201cRust Belt.\u201d \nIt\u2019s time. \nBut with all the bright spots in our economy, record job growth and higher wages, too many families are struggling to keep up with the bills. \nInflation is robbing them of the gains they might otherwise feel. \nI get it. That\u2019s why my top priority is getting prices under control. \nLook, our economy roared back faster than most predicted, but the pandemic meant that businesses had a hard time hiring enough workers to keep up production in their factories. \nThe pandemic also disrupted global supply chains. \nWhen factories close, it takes longer to make goods and get them from the warehouse to the store, and prices go up. \nLook at cars. \nLast year, there weren\u2019t enough semiconductors to make all the cars that people wanted to buy. \nAnd guess what, prices of automobiles went up. \nSo\u2014we have a choice. \nOne way to fight inflation is to drive down wages and make Americans poorer. \nI have a better plan to fight inflation. \nLower your costs, not your wages. \nMake more cars and semiconductors in America. \nMore infrastructure and innovation in America. \nMore goods moving faster and cheaper in America. \nMore jobs where you can earn a good living in America. \nAnd instead of relying on foreign supply chains, let\u2019s make it in America. \nEconomists call it \u201cincreasing the productive capacity of our economy.\u201d \nI call it building a better America. \nMy plan to fight inflation will lower your costs and lower the deficit. \n17 Nobel laureates in economics say my plan will ease long-term inflationary pressures. Top business leaders and most Americans support my plan. And here\u2019s the plan: \nFirst \u2013 cut the cost of prescription drugs. Just look at insulin. One in ten Americans has diabetes. In Virginia, I met a 13-year-old boy named Joshua Davis. \nHe and his Dad both have Type 1 diabetes, which means they need insulin every day. Insulin costs about $10 a vial to make. \nBut drug companies charge families like Joshua and his Dad up to 30 times more. I spoke with Joshua\u2019s mom. \nImagine what it\u2019s like to look at your child who needs insulin and have no idea how you\u2019re going to pay for it. \nWhat it does to your dignity, your ability to look your child in the eye, to be the parent you expect to be. \nJoshua is here with us tonight. Yesterday was his birthday. Happy birthday, buddy. \nFor Joshua, and for the 200,000 other young people with Type 1 diabetes, let\u2019s cap the cost of insulin at $35 a month so everyone can afford it. \nDrug companies will still do very well. And while we\u2019re at it let Medicare negotiate lower prices for prescription drugs, like the VA a"}, "action_status": "started", "timestamp": 1677375736.3634725, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677375736.3660543, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Write a concise summary of the following:\n\n\n\" why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. \nLet me give you one example of why it\u2019s so important to pass it. \nIf you travel 20 miles east of Columbus, Ohio, you\u2019ll find 1,000 empty acres of land. \nIt won\u2019t look like much, but if you stop and look closely, you\u2019ll see a \u201cField of dreams,\u201d the ground on which America\u2019s future will be built. \nThis is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor \u201cmega site\u201d. \nUp to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. \nSome of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that power the world and our everyday lives. \nSmartphones. The Internet. Technology we have yet to invent. \nBut that\u2019s just the beginning. \nIntel\u2019s CEO, Pat Gelsinger, who is here tonight, told me they are ready to increase their investment from \n$20 billion to $100 billion. \nThat would be one of the biggest investments in manufacturing in American history. \nAnd all they\u2019re waiting for is for you to pass this bill. \nSo let\u2019s not wait any longer. Send it to my desk. I\u2019ll sign it. \nAnd we will really take off. \nAnd Intel is not alone. \nThere\u2019s something happening in America. \nJust look around and you\u2019ll see an amazing story. \nThe rebirth of the pride that comes from stamping products \u201cMade In America.\u201d The revitalization of American manufacturing. \nCompanies are choosing to build new factories here, when just a few years ago, they would have built them overseas. \nThat\u2019s what is happening. Ford is investing $11 billion to build electric vehicles, creating 11,000 jobs across the country. \nGM is making the largest investment in its history\u2014$7 billion to build electric vehicles, creating 4,000 jobs in Michigan. \nAll told, we created 369,000 new manufacturing jobs in America just last year. \nPowered by people I\u2019ve met like JoJo Burgess, from generations of union steelworkers from Pittsburgh, who\u2019s here with us tonight. \nAs Ohio Senator Sherrod Brown says, \u201cIt\u2019s time to bury the label \u201cRust Belt.\u201d \nIt\u2019s time. \nBut with all the bright spots in our economy, record job growth and higher wages, too many families are struggling to keep up with the bills. \nInflation is robbing them of the gains they might otherwise feel. \nI get it. That\u2019s why my top priority is getting prices under control. \nLook, our economy roared back faster than most predicted, but the pandemic meant that businesses had a hard time hiring enough workers to keep up production in their factories. \nThe pandemic also disrupted global supply chains. \nWhen factories close, it takes longer to make goods and get them from the warehouse to the store, and prices go up. \nLook at cars. \nLast year, there weren\u2019t enough semiconductors to make all the cars that people wanted to buy. \nAnd guess what, prices of automobiles went up. \nSo\u2014we have a choice. \nOne way to fight inflation is to drive down wages and make Americans poorer. \nI have a better plan to fight inflation. \nLower your costs, not your wages. \nMake more cars and semiconductors in America. \nMore infrastructure and innovation in America. \nMore goods moving faster and cheaper in America. \nMore jobs where you can earn a good living in America. \nAnd instead of relying on foreign supply chains, let\u2019s make it in America. \nEconomists call it \u201cincreasing the productive capacity of our economy.\u201d \nI call it building a better America. \nMy plan to fight inflation will lower your costs and lower the deficit. \n17 Nobel laureates in economics say my plan will ease long-term inflationary pressures. Top business leaders and most Americans support my plan. And here\u2019s the plan: \nFirst \u2013 cut the cost of prescription drugs. Just look at insulin. One in ten Americans has diabetes. In Virginia, I met a 13-year-old boy named Joshua Davis. \nHe and his Dad both have Type 1 diabetes, which means they need insulin every day. Insulin costs about $10 a vial to make. \nBut drug companies charge families like Joshua and his Dad up to 30 times more. I spoke with Joshua\u2019s mom. \nImagine what it\u2019s like to look at your child who needs insulin and have no idea how you\u2019re going to pay for it. \nWhat it does to your dignity, your ability to look your child in the eye, to be the parent you expect to be. \nJoshua is here with us tonight. Yesterday was his birthday. Happy birthday, buddy. \nFor Joshua, and for the 200,000 other young people with Type 1 diabetes, let\u2019s cap the cost of insulin at $35 a month so everyone can afford it. \nDrug companies will still do very well. And while we\u2019re at it let Medicare negotiate lower prices for prescription drugs, like the VA a\"\n\n\nCONCISE SUMMARY:", "action_status": "started", "timestamp": 1677375736.3661082, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "started", "timestamp": 1677375736.7374547, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "", "task_level": [1]}
+{"input": {"text": "st things I did as President was fight to pass the American Rescue Plan. \nBecause people were hurting. We needed to act, and we did. \nFew pieces of legislation have done more in a critical moment in our history to lift us out of crisis. \nIt fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. \nHelped put food on their table, keep a roof over their heads, and cut the cost of health insurance. \nAnd as my Dad used to say, it gave people a little breathing room. \nAnd unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people\u2014and left no one behind. \nAnd it worked. It created jobs. Lots of jobs. \nIn fact\u2014our economy created over 6.5 Million new jobs just last year, more jobs created in one year \nthan ever before in the history of America. \nOur economy grew at a rate of 5.7% last year, the strongest growth in nearly 40 years, the first step in bringing fundamental change to an economy that hasn\u2019t worked for the working people of this nation for too long. \nFor the past 40 years we were told that if we gave tax breaks to those at the very top, the benefits would trickle down to everyone else. \nBut that trickle-down theory led to weaker economic growth, lower wages, bigger deficits, and the widest gap between those at the top and everyone else in nearly a century. \nVice President Harris and I ran for office with a new economic vision for America. \nInvest in America. Educate Americans. Grow the workforce. Build the economy from the bottom up \nand the middle out, not from the top down. \nBecause we know that when the middle class grows, the poor have a ladder up and the wealthy do very well. \nAmerica used to have the best roads, bridges, and airports on Earth. \nNow our infrastructure is ranked 13th in the world. \nWe won\u2019t be able to compete for the jobs of the 21st Century if we don\u2019t fix that. \nThat\u2019s why it was so important to pass the Bipartisan Infrastructure Law\u2014the most sweeping investment to rebuild America in history. \nThis was a bipartisan effort, and I want to thank the members of both parties who worked to make it happen. \nWe\u2019re done talking about infrastructure weeks. \nWe\u2019re going to have an infrastructure decade. \nIt is going to transform America and put us on a path to win the economic competition of the 21st Century that we face with the rest of the world\u2014particularly with China. \nAs I\u2019ve told Xi Jinping, it is never a good bet to bet against the American people. \nWe\u2019ll create good jobs for millions of Americans, modernizing roads, airports, ports, and waterways all across America. \nAnd we\u2019ll do it all to withstand the devastating effects of the climate crisis and promote environmental justice. \nWe\u2019ll build a national network of 500,000 electric vehicle charging stations, begin to replace poisonous lead pipes\u2014so every child\u2014and every American\u2014has clean water to drink at home and at school, provide affordable high-speed internet for every American\u2014urban, suburban, rural, and tribal communities. \n4,000 projects have already been announced. \nAnd tonight, I\u2019m announcing that this year we will start fixing over 65,000 miles of highway and 1,500 bridges in disrepair. \nWhen we use taxpayer dollars to rebuild America \u2013 we are going to Buy American: buy American products to support American jobs. \nThe federal government spends about $600 Billion a year to keep the country safe and secure. \nThere\u2019s been a law on the books for almost a century \nto make sure taxpayers\u2019 dollars support American jobs and businesses. \nEvery Administration says they\u2019ll do it, but we are actually doing it. \nWe will buy American to make sure everything from the deck of an aircraft carrier to the steel on highway guardrails are made in America. \nBut to compete for the best jobs of the future, we also need to level the playing field with China and other competitors. \nThat\u2019s why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. \nLet me give you one example of why it\u2019s so important to pass it. \nIf you travel 20 miles east of Columbus, Ohio, you\u2019ll find 1,000 empty acres of land. \nIt won\u2019t look like much, but if you stop and look closely, you\u2019ll see a \u201cField of dreams,\u201d the ground on which America\u2019s future will be built. \nThis is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor \u201cmega site\u201d. \nUp to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. \nSome of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that po"}, "action_status": "started", "timestamp": 1677375736.7375212, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677375736.7382529, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Write a concise summary of the following:\n\n\n\"st things I did as President was fight to pass the American Rescue Plan. \nBecause people were hurting. We needed to act, and we did. \nFew pieces of legislation have done more in a critical moment in our history to lift us out of crisis. \nIt fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. \nHelped put food on their table, keep a roof over their heads, and cut the cost of health insurance. \nAnd as my Dad used to say, it gave people a little breathing room. \nAnd unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people\u2014and left no one behind. \nAnd it worked. It created jobs. Lots of jobs. \nIn fact\u2014our economy created over 6.5 Million new jobs just last year, more jobs created in one year \nthan ever before in the history of America. \nOur economy grew at a rate of 5.7% last year, the strongest growth in nearly 40 years, the first step in bringing fundamental change to an economy that hasn\u2019t worked for the working people of this nation for too long. \nFor the past 40 years we were told that if we gave tax breaks to those at the very top, the benefits would trickle down to everyone else. \nBut that trickle-down theory led to weaker economic growth, lower wages, bigger deficits, and the widest gap between those at the top and everyone else in nearly a century. \nVice President Harris and I ran for office with a new economic vision for America. \nInvest in America. Educate Americans. Grow the workforce. Build the economy from the bottom up \nand the middle out, not from the top down. \nBecause we know that when the middle class grows, the poor have a ladder up and the wealthy do very well. \nAmerica used to have the best roads, bridges, and airports on Earth. \nNow our infrastructure is ranked 13th in the world. \nWe won\u2019t be able to compete for the jobs of the 21st Century if we don\u2019t fix that. \nThat\u2019s why it was so important to pass the Bipartisan Infrastructure Law\u2014the most sweeping investment to rebuild America in history. \nThis was a bipartisan effort, and I want to thank the members of both parties who worked to make it happen. \nWe\u2019re done talking about infrastructure weeks. \nWe\u2019re going to have an infrastructure decade. \nIt is going to transform America and put us on a path to win the economic competition of the 21st Century that we face with the rest of the world\u2014particularly with China. \nAs I\u2019ve told Xi Jinping, it is never a good bet to bet against the American people. \nWe\u2019ll create good jobs for millions of Americans, modernizing roads, airports, ports, and waterways all across America. \nAnd we\u2019ll do it all to withstand the devastating effects of the climate crisis and promote environmental justice. \nWe\u2019ll build a national network of 500,000 electric vehicle charging stations, begin to replace poisonous lead pipes\u2014so every child\u2014and every American\u2014has clean water to drink at home and at school, provide affordable high-speed internet for every American\u2014urban, suburban, rural, and tribal communities. \n4,000 projects have already been announced. \nAnd tonight, I\u2019m announcing that this year we will start fixing over 65,000 miles of highway and 1,500 bridges in disrepair. \nWhen we use taxpayer dollars to rebuild America \u2013 we are going to Buy American: buy American products to support American jobs. \nThe federal government spends about $600 Billion a year to keep the country safe and secure. \nThere\u2019s been a law on the books for almost a century \nto make sure taxpayers\u2019 dollars support American jobs and businesses. \nEvery Administration says they\u2019ll do it, but we are actually doing it. \nWe will buy American to make sure everything from the deck of an aircraft carrier to the steel on highway guardrails are made in America. \nBut to compete for the best jobs of the future, we also need to level the playing field with China and other competitors. \nThat\u2019s why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing. \nLet me give you one example of why it\u2019s so important to pass it. \nIf you travel 20 miles east of Columbus, Ohio, you\u2019ll find 1,000 empty acres of land. \nIt won\u2019t look like much, but if you stop and look closely, you\u2019ll see a \u201cField of dreams,\u201d the ground on which America\u2019s future will be built. \nThis is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor \u201cmega site\u201d. \nUp to eight state-of-the-art factories in one place. 10,000 new good-paying jobs. \nSome of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that po\"\n\n\nCONCISE SUMMARY:", "action_status": "started", "timestamp": 1677375736.7382874, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "started", "timestamp": 1677375736.7389073, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "", "task_level": [1]}
+{"input": {"text": "r economy. The Ruble has lost 30% of its value. \nThe Russian stock market has lost 40% of its value and trading remains suspended. Russia\u2019s economy is reeling and Putin alone is to blame. \nTogether with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. \nWe are giving more than $1 Billion in direct assistance to Ukraine. \nAnd we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. \nLet me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. \nOur forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies \u2013 in the event that Putin decides to keep moving west. \nFor that purpose we\u2019ve mobilized American ground forces, air squadrons, and ship deployments to protect NATO countries including Poland, Romania, Latvia, Lithuania, and Estonia. \nAs I have made crystal clear the United States and our Allies will defend every inch of territory of NATO countries with the full force of our collective power. \nAnd we remain clear-eyed. The Ukrainians are fighting back with pure courage. But the next few days weeks, months, will be hard on them. \nPutin has unleashed violence and chaos. But while he may make gains on the battlefield \u2013 he will pay a continuing high price over the long run. \nAnd a proud Ukrainian people, who have known 30 years of independence, have repeatedly shown that they will not tolerate anyone who tries to take their country backwards. \nTo all Americans, I will be honest with you, as I\u2019ve always promised. A Russian dictator, invading a foreign country, has costs around the world. \nAnd I\u2019m taking robust action to make sure the pain of our sanctions is targeted at Russia\u2019s economy. And I will use every tool at our disposal to protect American businesses and consumers. \nTonight, I can announce that the United States has worked with 30 other countries to release 60 Million barrels of oil from reserves around the world. \nAmerica will lead that effort, releasing 30 Million barrels from our own Strategic Petroleum Reserve. And we stand ready to do more if necessary, unified with our allies. \nThese steps will help blunt gas prices here at home. And I know the news about what\u2019s happening can seem alarming. \nBut I want you to know that we are going to be okay. \nWhen the history of this era is written Putin\u2019s war on Ukraine will have left Russia weaker and the rest of the world stronger. \nWhile it shouldn\u2019t have taken something so terrible for people around the world to see what\u2019s at stake now everyone sees it clearly. \nWe see the unity among leaders of nations and a more unified Europe a more unified West. And we see unity among the people who are gathering in cities in large crowds around the world even in Russia to demonstrate their support for Ukraine. \nIn the battle between democracy and autocracy, democracies are rising to the moment, and the world is clearly choosing the side of peace and security. \nThis is a real test. It\u2019s going to take time. So let us continue to draw inspiration from the iron will of the Ukrainian people. \nTo our fellow Ukrainian Americans who forge a deep bond that connects our two nations we stand with you. \nPutin may circle Kyiv with tanks, but he will never gain the hearts and souls of the Ukrainian people. \nHe will never extinguish their love of freedom. He will never weaken the resolve of the free world. \nWe meet tonight in an America that has lived through two of the hardest years this nation has ever faced. \nThe pandemic has been punishing. \nAnd so many families are living paycheck to paycheck, struggling to keep up with the rising cost of food, gas, housing, and so much more. \nI understand. \nI remember when my Dad had to leave our home in Scranton, Pennsylvania to find work. I grew up in a family where if the price of food went up, you felt it. \nThat\u2019s why one of the first things I did as President was fight to pass the American Rescue Plan. \nBecause people were hurting. We needed to act, and we did. \nFew pieces of legislation have done more in a critical moment in our history to lift us out of crisis. \nIt fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. \nHelped put food on their table, keep a roof over their heads, and cut the cost of health insurance. \nAnd as my Dad used to say, it gave people a little breathing room. \nAnd unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people\u2014and left no one behind. \nAnd it worked. It created jobs. Lots of jobs. \nIn fact\u2014our econ"}, "action_status": "started", "timestamp": 1677375736.7389438, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677375736.7394788, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Write a concise summary of the following:\n\n\n\"r economy. The Ruble has lost 30% of its value. \nThe Russian stock market has lost 40% of its value and trading remains suspended. Russia\u2019s economy is reeling and Putin alone is to blame. \nTogether with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. \nWe are giving more than $1 Billion in direct assistance to Ukraine. \nAnd we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. \nLet me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. \nOur forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies \u2013 in the event that Putin decides to keep moving west. \nFor that purpose we\u2019ve mobilized American ground forces, air squadrons, and ship deployments to protect NATO countries including Poland, Romania, Latvia, Lithuania, and Estonia. \nAs I have made crystal clear the United States and our Allies will defend every inch of territory of NATO countries with the full force of our collective power. \nAnd we remain clear-eyed. The Ukrainians are fighting back with pure courage. But the next few days weeks, months, will be hard on them. \nPutin has unleashed violence and chaos. But while he may make gains on the battlefield \u2013 he will pay a continuing high price over the long run. \nAnd a proud Ukrainian people, who have known 30 years of independence, have repeatedly shown that they will not tolerate anyone who tries to take their country backwards. \nTo all Americans, I will be honest with you, as I\u2019ve always promised. A Russian dictator, invading a foreign country, has costs around the world. \nAnd I\u2019m taking robust action to make sure the pain of our sanctions is targeted at Russia\u2019s economy. And I will use every tool at our disposal to protect American businesses and consumers. \nTonight, I can announce that the United States has worked with 30 other countries to release 60 Million barrels of oil from reserves around the world. \nAmerica will lead that effort, releasing 30 Million barrels from our own Strategic Petroleum Reserve. And we stand ready to do more if necessary, unified with our allies. \nThese steps will help blunt gas prices here at home. And I know the news about what\u2019s happening can seem alarming. \nBut I want you to know that we are going to be okay. \nWhen the history of this era is written Putin\u2019s war on Ukraine will have left Russia weaker and the rest of the world stronger. \nWhile it shouldn\u2019t have taken something so terrible for people around the world to see what\u2019s at stake now everyone sees it clearly. \nWe see the unity among leaders of nations and a more unified Europe a more unified West. And we see unity among the people who are gathering in cities in large crowds around the world even in Russia to demonstrate their support for Ukraine. \nIn the battle between democracy and autocracy, democracies are rising to the moment, and the world is clearly choosing the side of peace and security. \nThis is a real test. It\u2019s going to take time. So let us continue to draw inspiration from the iron will of the Ukrainian people. \nTo our fellow Ukrainian Americans who forge a deep bond that connects our two nations we stand with you. \nPutin may circle Kyiv with tanks, but he will never gain the hearts and souls of the Ukrainian people. \nHe will never extinguish their love of freedom. He will never weaken the resolve of the free world. \nWe meet tonight in an America that has lived through two of the hardest years this nation has ever faced. \nThe pandemic has been punishing. \nAnd so many families are living paycheck to paycheck, struggling to keep up with the rising cost of food, gas, housing, and so much more. \nI understand. \nI remember when my Dad had to leave our home in Scranton, Pennsylvania to find work. I grew up in a family where if the price of food went up, you felt it. \nThat\u2019s why one of the first things I did as President was fight to pass the American Rescue Plan. \nBecause people were hurting. We needed to act, and we did. \nFew pieces of legislation have done more in a critical moment in our history to lift us out of crisis. \nIt fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans. \nHelped put food on their table, keep a roof over their heads, and cut the cost of health insurance. \nAnd as my Dad used to say, it gave people a little breathing room. \nAnd unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people\u2014and left no one behind. \nAnd it worked. It created jobs. Lots of jobs. \nIn fact\u2014our econ\"\n\n\nCONCISE SUMMARY:", "action_status": "started", "timestamp": 1677375736.7395115, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "started", "timestamp": 1677375736.7400448, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "", "task_level": [1]}
+{"input": {"text": "Madam Speaker, Madam Vice President, our First Lady and Second Gentleman. Members of Congress and the Cabinet. Justices of the Supreme Court. My fellow Americans. \nLast year COVID-19 kept us apart. This year we are finally together again. \nTonight, we meet as Democrats Republicans and Independents. But most importantly as Americans. \nWith a duty to one another to the American people to the Constitution. \nAnd with an unwavering resolve that freedom will always triumph over tyranny. \nSix days ago, Russia\u2019s Vladimir Putin sought to shake the foundations of the free world thinking he could make it bend to his menacing ways. But he badly miscalculated. \nHe thought he could roll into Ukraine and the world would roll over. Instead he met a wall of strength he never imagined. \nHe met the Ukrainian people. \nFrom President Zelenskyy to every Ukrainian, their fearlessness, their courage, their determination, inspires the world. \nGroups of citizens blocking tanks with their bodies. Everyone from students to retirees teachers turned soldiers defending their homeland. \nIn this struggle as President Zelenskyy said in his speech to the European Parliament \u201cLight will win over darkness.\u201d The Ukrainian Ambassador to the United States is here tonight. \nLet each of us here tonight in this Chamber send an unmistakable signal to Ukraine and to the world. \nPlease rise if you are able and show that, Yes, we the United States of America stand with the Ukrainian people. \nThroughout our history we\u2019ve learned this lesson when dictators do not pay a price for their aggression they cause more chaos. \nThey keep moving. \nAnd the costs and the threats to America and the world keep rising. \nThat\u2019s why the NATO Alliance was created to secure peace and stability in Europe after World War 2. \nThe United States is a member along with 29 other nations. \nIt matters. American diplomacy matters. American resolve matters. \nPutin\u2019s latest attack on Ukraine was premeditated and unprovoked. \nHe rejected repeated efforts at diplomacy. \nHe thought the West and NATO wouldn\u2019t respond. And he thought he could divide us at home. Putin was wrong. We were ready. Here is what we did. \nWe prepared extensively and carefully. \nWe spent months building a coalition of other freedom-loving nations from Europe and the Americas to Asia and Africa to confront Putin. \nI spent countless hours unifying our European allies. We shared with the world in advance what we knew Putin was planning and precisely how he would try to falsely justify his aggression. \nWe countered Russia\u2019s lies with truth. \nAnd now that he has acted the free world is holding him accountable. \nAlong with twenty-seven members of the European Union including France, Germany, Italy, as well as countries like the United Kingdom, Canada, Japan, Korea, Australia, New Zealand, and many others, even Switzerland. \nWe are inflicting pain on Russia and supporting the people of Ukraine. Putin is now isolated from the world more than ever. \nTogether with our allies \u2013we are right now enforcing powerful economic sanctions. \nWe are cutting off Russia\u2019s largest banks from the international financial system. \nPreventing Russia\u2019s central bank from defending the Russian Ruble making Putin\u2019s $630 Billion \u201cwar fund\u201d worthless. \nWe are choking off Russia\u2019s access to technology that will sap its economic strength and weaken its military for years to come. \nTonight I say to the Russian oligarchs and corrupt leaders who have bilked billions of dollars off this violent regime no more. \nThe U.S. Department of Justice is assembling a dedicated task force to go after the crimes of Russian oligarchs. \nWe are joining with our European allies to find and seize your yachts your luxury apartments your private jets. We are coming for your ill-begotten gains. \nAnd tonight I am announcing that we will join our allies in closing off American air space to all Russian flights \u2013 further isolating Russia \u2013 and adding an additional squeeze \u2013on their economy. The Ruble has lost 30% of its value. \nThe Russian stock market has lost 40% of its value and trading remains suspended. Russia\u2019s economy is reeling and Putin alone is to blame. \nTogether with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. \nWe are giving more than $1 Billion in direct assistance to Ukraine. \nAnd we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. \nLet me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. \nOur forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies \u2013 in the event that Putin decides to keep moving west. \nFor that pu"}, "action_status": "started", "timestamp": 1677375736.7401567, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677375736.7406764, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Write a concise summary of the following:\n\n\n\"Madam Speaker, Madam Vice President, our First Lady and Second Gentleman. Members of Congress and the Cabinet. Justices of the Supreme Court. My fellow Americans. \nLast year COVID-19 kept us apart. This year we are finally together again. \nTonight, we meet as Democrats Republicans and Independents. But most importantly as Americans. \nWith a duty to one another to the American people to the Constitution. \nAnd with an unwavering resolve that freedom will always triumph over tyranny. \nSix days ago, Russia\u2019s Vladimir Putin sought to shake the foundations of the free world thinking he could make it bend to his menacing ways. But he badly miscalculated. \nHe thought he could roll into Ukraine and the world would roll over. Instead he met a wall of strength he never imagined. \nHe met the Ukrainian people. \nFrom President Zelenskyy to every Ukrainian, their fearlessness, their courage, their determination, inspires the world. \nGroups of citizens blocking tanks with their bodies. Everyone from students to retirees teachers turned soldiers defending their homeland. \nIn this struggle as President Zelenskyy said in his speech to the European Parliament \u201cLight will win over darkness.\u201d The Ukrainian Ambassador to the United States is here tonight. \nLet each of us here tonight in this Chamber send an unmistakable signal to Ukraine and to the world. \nPlease rise if you are able and show that, Yes, we the United States of America stand with the Ukrainian people. \nThroughout our history we\u2019ve learned this lesson when dictators do not pay a price for their aggression they cause more chaos. \nThey keep moving. \nAnd the costs and the threats to America and the world keep rising. \nThat\u2019s why the NATO Alliance was created to secure peace and stability in Europe after World War 2. \nThe United States is a member along with 29 other nations. \nIt matters. American diplomacy matters. American resolve matters. \nPutin\u2019s latest attack on Ukraine was premeditated and unprovoked. \nHe rejected repeated efforts at diplomacy. \nHe thought the West and NATO wouldn\u2019t respond. And he thought he could divide us at home. Putin was wrong. We were ready. Here is what we did. \nWe prepared extensively and carefully. \nWe spent months building a coalition of other freedom-loving nations from Europe and the Americas to Asia and Africa to confront Putin. \nI spent countless hours unifying our European allies. We shared with the world in advance what we knew Putin was planning and precisely how he would try to falsely justify his aggression. \nWe countered Russia\u2019s lies with truth. \nAnd now that he has acted the free world is holding him accountable. \nAlong with twenty-seven members of the European Union including France, Germany, Italy, as well as countries like the United Kingdom, Canada, Japan, Korea, Australia, New Zealand, and many others, even Switzerland. \nWe are inflicting pain on Russia and supporting the people of Ukraine. Putin is now isolated from the world more than ever. \nTogether with our allies \u2013we are right now enforcing powerful economic sanctions. \nWe are cutting off Russia\u2019s largest banks from the international financial system. \nPreventing Russia\u2019s central bank from defending the Russian Ruble making Putin\u2019s $630 Billion \u201cwar fund\u201d worthless. \nWe are choking off Russia\u2019s access to technology that will sap its economic strength and weaken its military for years to come. \nTonight I say to the Russian oligarchs and corrupt leaders who have bilked billions of dollars off this violent regime no more. \nThe U.S. Department of Justice is assembling a dedicated task force to go after the crimes of Russian oligarchs. \nWe are joining with our European allies to find and seize your yachts your luxury apartments your private jets. We are coming for your ill-begotten gains. \nAnd tonight I am announcing that we will join our allies in closing off American air space to all Russian flights \u2013 further isolating Russia \u2013 and adding an additional squeeze \u2013on their economy. The Ruble has lost 30% of its value. \nThe Russian stock market has lost 40% of its value and trading remains suspended. Russia\u2019s economy is reeling and Putin alone is to blame. \nTogether with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance. \nWe are giving more than $1 Billion in direct assistance to Ukraine. \nAnd we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering. \nLet me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine. \nOur forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies \u2013 in the event that Putin decides to keep moving west. \nFor that pu\"\n\n\nCONCISE SUMMARY:", "action_status": "started", "timestamp": 1677375736.7407105, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677375740.7172883, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": " In response to Russian President Putin's invasion of Ukraine, the US and its allies are providing military, economic, and humanitarian assistance to the Ukrainians. The US is also leading an effort to release 60 million barrels of oil from reserves around the world, including 30 million from the US Strategic Petroleum Reserve, to help blunt gas prices. The US President has also passed the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs.", "action_status": "started", "timestamp": 1677375740.7174945, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677375740.717625, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677375740.717653, "task_uuid": "6174bdb9-8e7d-4859-9c91-d36235b2ad41", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677375741.249878, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": " President Biden fought to pass the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs. He also passed the Bipartisan Infrastructure Law to rebuild America and the Bipartisan Innovation Act to level the playing field with China and other competitors. An example of this is Intel's $20 billion semiconductor \"mega site\" in Ohio, which will create 10,000 new jobs.", "action_status": "started", "timestamp": 1677375741.2500997, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677375741.2502933, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677375741.2503877, "task_uuid": "2d2df820-8a1d-4db7-80ae-c54638c6a067", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677375742.9876738, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": " In this speech, the speaker addresses the American people and the world, emphasizing the strength of the Ukrainian people in the face of Russia's aggression. The speaker also announces that the US and its allies are imposing economic sanctions on Russia, and providing military, economic, and humanitarian assistance to Ukraine. The US is also joining its allies in closing off American airspace to all Russian flights, and the Department of Justice is assembling a task force to go after the crimes of Russian oligarchs. The speaker also clarifies that US forces are not engaging in conflict with Russian forces in Ukraine, but are there to defend NATO allies.", "action_status": "started", "timestamp": 1677375742.987888, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677375742.9880133, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677375742.9881, "task_uuid": "dff81dcf-2073-4ba4-8856-d0f82c213311", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677375743.49151, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": " The Bipartisan Innovation Act is an important bill that is currently sitting in Congress. It will make record investments in emerging technologies and American manufacturing, such as Intel's $20 billion semiconductor \"mega site\" in Ohio. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. Other companies, such as Ford and GM, are also investing in American manufacturing, creating 369,000 new jobs in the last year. President Biden's plan to fight inflation is to lower costs, not wages, by increasing the productive capacity of the economy. This includes capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.", "action_status": "started", "timestamp": 1677375743.4917376, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677375743.4918683, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677375743.4919584, "task_uuid": "2039cff8-944d-4daf-91e1-a78747fce7c0", "action_type": "", "task_level": [5]}
+{"action_status": "started", "timestamp": 1677375743.4930956, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "", "task_level": [1]}
+{"input": {"text": " In this speech, the speaker addresses the American people and the world, emphasizing the strength of the Ukrainian people in the face of Russia's aggression. The speaker also announces that the US and its allies are imposing economic sanctions on Russia, and providing military, economic, and humanitarian assistance to Ukraine. The US is also joining its allies in closing off American airspace to all Russian flights, and the Department of Justice is assembling a task force to go after the crimes of Russian oligarchs. The speaker also clarifies that US forces are not engaging in conflict with Russian forces in Ukraine, but are there to defend NATO allies.\n In response to Russian President Putin's invasion of Ukraine, the US and its allies are providing military, economic, and humanitarian assistance to the Ukrainians. The US is also leading an effort to release 60 million barrels of oil from reserves around the world, including 30 million from the US Strategic Petroleum Reserve, to help blunt gas prices. The US President has also passed the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs.\n President Biden fought to pass the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs. He also passed the Bipartisan Infrastructure Law to rebuild America and the Bipartisan Innovation Act to level the playing field with China and other competitors. An example of this is Intel's $20 billion semiconductor \"mega site\" in Ohio, which will create 10,000 new jobs.\n The Bipartisan Innovation Act is an important bill that is currently sitting in Congress. It will make record investments in emerging technologies and American manufacturing, such as Intel's $20 billion semiconductor \"mega site\" in Ohio. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. Other companies, such as Ford and GM, are also investing in American manufacturing, creating 369,000 new jobs in the last year. President Biden's plan to fight inflation is to lower costs, not wages, by increasing the productive capacity of the economy. This includes capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs."}, "action_status": "started", "timestamp": 1677375743.4931505, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677375743.4941087, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "Write a concise summary of the following:\n\n\n\" In this speech, the speaker addresses the American people and the world, emphasizing the strength of the Ukrainian people in the face of Russia's aggression. The speaker also announces that the US and its allies are imposing economic sanctions on Russia, and providing military, economic, and humanitarian assistance to Ukraine. The US is also joining its allies in closing off American airspace to all Russian flights, and the Department of Justice is assembling a task force to go after the crimes of Russian oligarchs. The speaker also clarifies that US forces are not engaging in conflict with Russian forces in Ukraine, but are there to defend NATO allies.\n In response to Russian President Putin's invasion of Ukraine, the US and its allies are providing military, economic, and humanitarian assistance to the Ukrainians. The US is also leading an effort to release 60 million barrels of oil from reserves around the world, including 30 million from the US Strategic Petroleum Reserve, to help blunt gas prices. The US President has also passed the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs.\n President Biden fought to pass the American Rescue Plan to provide economic relief to tens of millions of Americans and create jobs. He also passed the Bipartisan Infrastructure Law to rebuild America and the Bipartisan Innovation Act to level the playing field with China and other competitors. An example of this is Intel's $20 billion semiconductor \"mega site\" in Ohio, which will create 10,000 new jobs.\n The Bipartisan Innovation Act is an important bill that is currently sitting in Congress. It will make record investments in emerging technologies and American manufacturing, such as Intel's $20 billion semiconductor \"mega site\" in Ohio. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. Other companies, such as Ford and GM, are also investing in American manufacturing, creating 369,000 new jobs in the last year. President Biden's plan to fight inflation is to lower costs, not wages, by increasing the productive capacity of the economy. This includes capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.\"\n\n\nCONCISE SUMMARY:", "action_status": "started", "timestamp": 1677375743.4941628, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677375749.3224697, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": " In response to Russia's aggression in Ukraine, President Biden has taken action to provide military, economic, and humanitarian assistance to Ukraine, impose economic sanctions on Russia, and close off American airspace to Russian flights. He has also passed the American Rescue Plan to provide economic relief to Americans and the Bipartisan Innovation Act to level the playing field with China and other competitors. This bill will create 10,000 new jobs and increase Intel's investment to $100 billion. President Biden is also fighting inflation by capping the cost of insulin at $35 a month and allowing Medicare to negotiate lower prices for prescription drugs.", "action_status": "started", "timestamp": 1677375749.322677, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "Result", "task_level": [4, 1]}
+{"action_status": "succeeded", "timestamp": 1677375749.3227925, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "Result", "task_level": [4, 2]}
+{"action_status": "succeeded", "timestamp": 1677375749.32287, "task_uuid": "a2de8aab-500a-4df0-8764-3b3c091db0b9", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677375749.3230808, "task_uuid": "b77ccab5-cdad-4436-a3e1-230da294a528", "action_type": "summary", "task_level": [2]}
diff --git a/summary.pmpt.tpl b/summary.pmpt.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..0bb7db919474835525d3673989b288725261ff46
--- /dev/null
+++ b/summary.pmpt.tpl
@@ -0,0 +1,7 @@
+Write a concise summary of the following:
+
+
+"{{text}}"
+
+
+CONCISE SUMMARY:
\ No newline at end of file
diff --git a/summary.py b/summary.py
new file mode 100644
index 0000000000000000000000000000000000000000..bb6876fa5d61a579cf60c87a2bd9b90789cfce7d
--- /dev/null
+++ b/summary.py
@@ -0,0 +1,44 @@
+# Summarize a long document by chunking and summarizing parts. Uses
+# aynchronous calls to the API. Adapted from LangChain [Map-Reduce
+# summary](https://langchain.readthedocs.io/en/stable/_modules/langchain/chains/mapreduce.html).
+
+import trio
+
+from minichain import TemplatePrompt, show_log, start_chain
+
+# Prompt that asks LLM to produce a bash command.
+
+
+class SummaryPrompt(TemplatePrompt):
+ template_file = "summary.pmpt.tpl"
+
+
+def chunk(f, width=4000, overlap=800):
+ "Split a documents into 4800 character overlapping chunks"
+ text = open(f).read().replace("\n\n", "\n")
+ chunks = []
+ for i in range(4):
+ if i * width > len(text):
+ break
+ chunks.append({"text": text[i * width : (i + 1) * width + overlap]})
+ return chunks
+
+
+with start_chain("summary") as backend:
+ prompt = SummaryPrompt(backend.OpenAI())
+ list_prompt = prompt.map()
+
+ # Map - Summarize each chunk in parallel
+ out = trio.run(list_prompt.arun, chunk("../state_of_the_union.txt"))
+
+ # Reduce - Summarize the summarized chunks
+ print(prompt({"text": "\n".join(out)}))
+
+# + tags=["hide_inp"]
+SummaryPrompt().show(
+ {"text": "One way to fight is to drive down wages and make Americans poorer."},
+ "Make Americans poorer",
+)
+# -
+
+show_log("summary.log")
diff --git a/temp.log b/temp.log
new file mode 100644
index 0000000000000000000000000000000000000000..f16aee4acbb32f5e1de2020c026cc1e2f1e74764
--- /dev/null
+++ b/temp.log
@@ -0,0 +1,10 @@
+{"action_status": "started", "timestamp": 1677724771.868478, "task_uuid": "bb3cc6a1-02bd-49e7-a168-7c8b38c551b8", "action_type": "temp", "task_level": [1]}
+{"action_status": "started", "timestamp": 1677724772.1710289, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "", "task_level": [1]}
+{"input": {"passage": "The Philadelphia 76ers entered their Christmas Day matinee at Madison Square Garden against the New York Knicks having won seven straight games, all at home. They can now add an eighth victory to that list. Led by a dominant fourth quarter, the 76ers (20-12) defeated the Knicks (18-16), 119-112.\n\nJoel Embiid led the way with 35 points and eight rebounds, while James Harden added 29 points and 13 assists in another dazzling performance. They got a boost off the bench from Georges Niang, who nailed four 3s in the fourth quarter to finish with 16 points.\n\nThe Knicks have now lost three straight games following an eight-game unbeaten run. Julius Randle matched Embiid with 35 points, but only four of those came in the fourth quarter.\n\nFollow here for updates and analysis from The Athletic's staff.\n"}, "action_status": "started", "timestamp": 1677724772.1710904, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "Input Function", "task_level": [2, 1]}
+{"action_status": "succeeded", "timestamp": 1677724772.1713636, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "Input Function", "task_level": [2, 2]}
+{"prompt": "{'passage': \"The Philadelphia 76ers entered their Christmas Day matinee at Madison Square Garden against the New York Knicks having won seven straight games, all at home. They can now add an eighth victory to that list. Led by a dominant fourth quarter, the 76ers (20-12) defeated the Knicks (18-16), 119-112.\\n\\nJoel Embiid led the way with 35 points and eight rebounds, while James Harden added 29 points and 13 assists in another dazzling performance. They got a boost off the bench from Georges Niang, who nailed four 3s in the fourth quarter to finish with 16 points.\\n\\nThe Knicks have now lost three straight games following an eight-game unbeaten run. Julius Randle matched Embiid with 35 points, but only four of those came in the fourth quarter.\\n\\nFollow here for updates and analysis from The Athletic's staff.\\n\", 'typ': 'You are a highly intelligent and accurate information extraction system. You take passage as input and your task is to find parts of the passage to answer questions.\\n\\n\\n\\nYou need to classify in to the following types for key: \"player\":\\n\\n\\nString\\n\\n\\nYou need to classify in to the following types for key: \"value\":\\n\\n\\nInt\\n\\n\\nYou need to classify in to the following types for key: \"stat\":\\n\\n\\n\\n1: POINTS\\n\\n2: REBOUNDS\\n\\n3: ASSISTS\\n\\n\\nOnly select from the above list, or \"Other\".\\n\\n\\n\\n{\\n\\n\"player\" : \"player\",\\n\\n\"value\" : \"value\",\\n\\n\"stat\" : \"stat\",\\n\\n}\\n\\nMake sure every output is exactly seen in the document. Find as many as you can. '}", "action_status": "started", "timestamp": 1677724772.171397, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "Prompted", "task_level": [3, 1]}
+{"action_status": "succeeded", "timestamp": 1677724779.3098886, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "Prompted", "task_level": [3, 2]}
+{"result": "\n\n{\n\"Joel Embiid\": {\n\"player\": \"Joel Embiid\",\n\"value\": 35,\n\"stat\": \"POINTS\"\n},\n\"James Harden\": {\n\"player\": \"James Harden\",\n\"value\": 29,\n\"stat\": \"ASSISTS\"\n},\n\"Georges Niang\": {\n\"player\": \"Georges Niang\",\n\"value\": 16,\n\"stat\": \"POINTS\"\n},\n\"Julius Randle\": {\n\"player\": \"Julius Randle\",\n\"value\": 35,\n\"stat\": \"POINTS\"\n}\n}", "action_status": "started", "timestamp": 1677724779.3099751, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "Result", "task_level": [4, 1]}
+{"exception": "builtins.TypeError", "reason": "Stat.__init__() got an unexpected keyword argument 'Joel Embiid'", "action_status": "failed", "timestamp": 1677724779.310049, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "Result", "task_level": [4, 2]}
+{"exception": "builtins.TypeError", "reason": "Stat.__init__() got an unexpected keyword argument 'Joel Embiid'", "action_status": "failed", "timestamp": 1677724779.3100982, "task_uuid": "9a47acfa-44e7-4fee-8a57-bc56b3dd244a", "action_type": "", "task_level": [5]}
+{"action_status": "succeeded", "timestamp": 1677724779.3101304, "task_uuid": "bb3cc6a1-02bd-49e7-a168-7c8b38c551b8", "action_type": "temp", "task_level": [2]}
diff --git a/temp.py b/temp.py
new file mode 100644
index 0000000000000000000000000000000000000000..ff758853aa8c05f62b7037c1946e62bca7fa5642
--- /dev/null
+++ b/temp.py
@@ -0,0 +1,66 @@
+import minichain
+from dataclasses import fields, dataclass, is_dataclass
+from typing import List
+from enum import Enum
+
+class ColorType(Enum):
+ RED = 1
+ GREEN = 2
+ BLUE = 3
+
+@dataclass
+class Color:
+ color: ColorType
+ object: str
+ explanation: str
+
+
+
+# class StatType(Enum):
+# POINTS = 1
+# REBOUNDS = 2
+# ASSISTS = 3
+
+# @dataclass
+# class Stat:
+# value: int
+# stat: StatType
+
+# @dataclass
+# class Player:
+# player: str
+# stats: List[Stat]
+
+class T(minichain.TypedTemplatePrompt):
+ template_file = "stats.pmpt.tpl"
+ Out = Color
+
+# print(T().show({"passage": "hello"}, '[{"player": "Harden", "stats": {"value": 10, "stat": 2}}]'))
+
+with minichain.start_chain("stats") as backend:
+ p = T(backend.OpenAI(max_tokens=512))
+ print(p({"passage": open("sixers.txt").read()}))
+
+# def enum(x):
+# d = {e.name: e.value for e in x}
+# # d["__enum__"] = True
+# return d
+
+
+# def walk(x):
+# print(x)
+# if issubclass(x, Enum):
+# return enum(x)
+# if is_dataclass(x):
+# return {y.name: walk(y.type) for y in fields(x)}
+# return x.__name__
+# # return [x for x in fields(B)]
+# # print(x.name)
+# # print(x.type)
+# # if issubclass(x.type, Enum):
+# # for e in x.type:
+# # print(e.value)
+# # print(e.name)
+# # print(x)]
+
+# print(walk(B))