Compare commits

...
1374 Commits
Author SHA1 Message Date
William Fu-Hinthorn 2f47d98b34 Update error message for missing dev command 2025-01-14 11:28:51 -08:00
Vadym BardaandGitHub b989502c24 checkpoint-sqlite/postgres: handle calling .list on async checkpointer (#3019) 2025-01-14 19:06:11 +00:00
Eugene YurtsevandGitHub 8507dc33f0 FIx docs: Update MULTIPLE_SUBGRAPHS.md (#3016) 2025-01-14 13:41:50 -05:00
Vadym BardaandGitHub a11ba2b38a docs: update replay in the concept docs (#3017) 2025-01-14 11:53:53 -05:00
Cesar William AlvarengaandGitHub a61ea101f6 fix: add missing END constant import (#3011) 2025-01-13 19:40:40 -05:00
Andrew NguonlyandGitHub c86155d3d3 docs: Add note about LangGraph Platform UI not available for self-hosted deployments (#3009)
Example screenshot:

![image](https://github.com/user-attachments/assets/8304b08d-bc9b-4cd3-8ff4-ed2471d3d6c7)
2025-01-13 13:05:18 -08:00
William FHandGitHub a03f1f7469 Bullseye (#3008) 2025-01-13 10:01:36 -08:00
Jimmy SambuoandGitHub d7199e5874 docs: use InjectedStore in semantic search guide (#2995)
When I tried to follow the How-to guide for [How to add semantic search
to your agent's
memory](https://langchain-ai.github.io/langgraph/how-tos/memory/semantic-search/#using-in-create_react_agent)
using `create_react_agent`, I got this error message when my agent used
the tool:

```python
1 validation error for upsert_memory
store
  Field required [type=missing, input_value={'content': '@jimmy works...ny.', 'memory_id': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missingTraceback (most recent call last):

  File "/usr/local/lib/python3.9/site-packages/langchain_core/tools/base.py", line 688, in run
    tool_args, tool_kwargs = self._to_args_and_kwargs(tool_input, tool_call_id)

  File "/usr/local/lib/python3.9/site-packages/langchain_core/tools/base.py", line 611, in _to_args_and_kwargs
    tool_input = self._parse_input(tool_input, tool_call_id)

  File "/usr/local/lib/python3.9/site-packages/langchain_core/tools/base.py", line 532, in _parse_input
    result = input_args.model_validate(tool_input)

  File "/usr/local/lib/python3.9/site-packages/pydantic/main.py", line 627, in model_validate
    return cls.__pydantic_validator__.validate_python(

pydantic_core._pydantic_core.ValidationError: 1 validation error for upsert_memory
store
  Field required [type=missing, input_value={'content': '@jimmy works...ny.', 'memory_id': None}, input_type=dict]
    For further information visit https://errors.pydantic.dev/2.10/v/missing
```

I believe it’s because the graph did not inject the store into the tool
if we use `InjectedToolArg`.

When looking at the guide for [How to pass runtime values to
tools](https://langchain-ai.github.io/langgraph/how-tos/pass-run-time-values-to-tools/),
it suggests to use `InjectedStore` with `create_react_agent`. After
changing my code to use `InjectedStore`, my agent was able to save to
the store.
2025-01-13 09:59:46 -05:00
Siddhesh dosiandGitHub 61f2151df7 Update customer-support.ipynb minor spell (#3002)
There was spelling mistake.
2025-01-13 09:52:19 -05:00
William FHandGitHub 713528ffc3 Add admonition regarding dockerfile usage (#3001) 2025-01-12 09:52:13 -08:00
Andrew NguonlyandGitHub 7bd79c2509 docs: Add docs for LANGCHAIN_ENDPOINT for self-hosted deployments (#2988)
@langchain-infra, is this correct? Is this needed or is it
redundant/unnecessary?
2025-01-10 15:24:38 -08:00
Andrew NguonlyandGitHub 9974787df6 docs: Add API docs for POST /v1/projects/{project_id}/revisions/{revision_id}/deploy endpoint (#2994) 2025-01-10 15:16:48 -08:00
William FHandGitHub 638712a73b Add support for custom fetch implementation (#2993) 2025-01-10 23:08:33 +00:00
Vadym BardaandGitHub b8a54f6294 langgraph: release 0.2.62 (#2990) 2025-01-10 14:33:54 -05:00
Brace SproulandGitHub f2913fbcb6 fix(sdk-js): Release 0.0.35 (#2989) 2025-01-10 10:52:32 -08:00
bracesproul 8045e89e09 fix(sdk-js): Release 0.0.35 2025-01-10 10:43:44 -08:00
Brace SproulandGitHub 8355a1720a fix: Cron response types (#2987)
technically a breaking change, however the old response type was
incorrect.
2025-01-10 10:15:03 -08:00
bracesproul c302724394 fix cron create for thread return type 2025-01-10 10:05:57 -08:00
bracesproul c624ff69e1 fix: Cron response types 2025-01-10 10:01:51 -08:00
Vadym BardaandGitHub 10d46acc60 langgraph: add structured output to create_react_agent (#2848)
```python
class WeatherResponse(BaseModel):
    """Respond to the user with this"""

    temperature: float = Field(description="The temperature in fahrenheit")
    wind_direction: str = Field(
        description="The direction of the wind in abbreviated form"
    )
    wind_speed: float = Field(description="The speed of the wind in mph")

@tool
def get_weather(city: Literal["nyc", "sf"]):
    """Use this to get weather information."""
    if city == "nyc":
        return "It is cloudy in NYC, with 5 mph winds in the North-East direction and a temperature of 70 degrees"
    elif city == "sf":
        return "It is 75 degrees and sunny in SF, with 3 mph winds in the South-East direction"
    else:
        raise AssertionError("Unknown city")

model = ChatOpenAI()
tools = [get_weather]
agent_with_structured_output = create_react_agent(model, tools, response_format=WeatherResponse)
agent_with_structured_output.invoke({"messages": [("user", "what's the weather in nyc?")]})
```

```pycon
{
    'messages': [...],
    'structured_response': WeatherResponse(temperature=70.0, wind_directon='NE', wind_speed=5.0)
}
```
2025-01-10 16:06:59 +00:00
Vadym BardaandGitHub 35c3ba0104 docs: update how to for passing config to tools (#2986) 2025-01-10 11:05:15 -05:00
Hongbin MaoandGitHub 0e2cd9e289 Fix typo (#2984) 2025-01-10 10:52:52 -05:00
William FHandGitHub f4bd02da72 Make admonition more admonitiony (#2982) 2025-01-10 01:46:42 +00:00
William FHandGitHub ecfbfa1b90 Update auth docstrings (#2977) 2025-01-09 16:58:19 -08:00
William FHandGitHub e5b5f9510b Fix empty migration (#2978) 2025-01-09 23:14:02 +00:00
Andrew NguonlyandGitHub c6d7c80a99 docs: Add documentation for LANGSMITH_RUNS_ENDPOINTS env var (#2976) 2025-01-09 13:24:41 -08:00
William FHandGitHub 909190cede Update SDK registration (#2974) 2025-01-09 09:20:54 -08:00
William FHandGitHub 43c8578eef Unify type-naming of search param (#2973) 2025-01-09 08:56:05 -08:00
William Fu-Hinthorn 56f5edb9ba Unify naming of search param 2025-01-09 08:46:17 -08:00
William FHandGitHub 41f0fd504e Add store auth types (#2971) 2025-01-09 08:32:54 -08:00
William FHandGitHub 6357d496af Merge branch 'main' into wfh/auth/store 2025-01-09 08:08:04 -08:00
William Fu-Hinthorn 52bd5b13a7 Add store auth types 2025-01-09 08:03:30 -08:00
Andrew NguonlyandGitHub b633e0a4ed docs: Add docs for POSTGRES_URI_CUSTOM environment variable (#2951) 2025-01-08 15:27:32 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
c14bcb6e9f build(deps-dev): bump jinja2 from 3.1.4 to 3.1.5 in /libs/langgraph (#2960)
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/jinja/releases">jinja2's
releases</a>.</em></p>
<blockquote>
<h2>3.1.5</h2>
<p>This is the Jinja 3.1.5 security fix release, which fixes security
issues and bugs but does not otherwise change behavior and should not
result in breaking changes compared to the latest feature release.</p>
<p>PyPI: <a
href="https://pypi.org/project/Jinja2/3.1.5/">https://pypi.org/project/Jinja2/3.1.5/</a>
Changes: <a
href="https://jinja.palletsprojects.com/changes/#version-3-1-5">https://jinja.palletsprojects.com/changes/#version-3-1-5</a>
Milestone: <a
href="https://github.com/pallets/jinja/milestone/16?closed=1">https://github.com/pallets/jinja/milestone/16?closed=1</a></p>
<ul>
<li>The sandboxed environment handles indirect calls to
<code>str.format</code>, such as by passing a stored reference to a
filter that calls its argument. <a
href="https://github.com/pallets/jinja/security/advisories/GHSA-q2x7-8rv6-6q7h">GHSA-q2x7-8rv6-6q7h</a></li>
<li>Escape template name before formatting it into error messages, to
avoid issues with names that contain f-string syntax. <a
href="https://redirect.github.com/pallets/jinja/issues/1792">#1792</a>,
<a
href="https://github.com/pallets/jinja/security/advisories/GHSA-gmj6-6f8f-6699">GHSA-gmj6-6f8f-6699</a></li>
<li>Sandbox does not allow <code>clear</code> and <code>pop</code> on
known mutable sequence types. <a
href="https://redirect.github.com/pallets/jinja/issues/2032">#2032</a></li>
<li>Calling sync <code>render</code> for an async template uses
<code>asyncio.run</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1952">#1952</a></li>
<li>Avoid unclosed <code>auto_aiter</code> warnings. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>Return an <code>aclose</code>-able <code>AsyncGenerator</code> from
<code>Template.generate_async</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>Avoid leaving <code>root_render_func()</code> unclosed in
<code>Template.generate_async</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>Avoid leaving async generators unclosed in blocks, includes and
extends. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>The runtime uses the correct <code>concat</code> function for the
current environment when calling block references. <a
href="https://redirect.github.com/pallets/jinja/issues/1701">#1701</a></li>
<li>Make <code>|unique</code> async-aware, allowing it to be used after
another async-aware filter. <a
href="https://redirect.github.com/pallets/jinja/issues/1781">#1781</a></li>
<li><code>|int</code> filter handles <code>OverflowError</code> from
scientific notation. <a
href="https://redirect.github.com/pallets/jinja/issues/1921">#1921</a></li>
<li>Make compiling deterministic for tuple unpacking in a <code>{% set
... %}</code> call. <a
href="https://redirect.github.com/pallets/jinja/issues/2021">#2021</a></li>
<li>Fix dunder protocol (<code>copy</code>/<code>pickle</code>/etc)
interaction with <code>Undefined</code> objects. <a
href="https://redirect.github.com/pallets/jinja/issues/2025">#2025</a></li>
<li>Fix <code>copy</code>/<code>pickle</code> support for the internal
<code>missing</code> object. <a
href="https://redirect.github.com/pallets/jinja/issues/2027">#2027</a></li>
<li><code>Environment.overlay(enable_async)</code> is applied correctly.
<a
href="https://redirect.github.com/pallets/jinja/issues/2061">#2061</a></li>
<li>The error message from <code>FileSystemLoader</code> includes the
paths that were searched. <a
href="https://redirect.github.com/pallets/jinja/issues/1661">#1661</a></li>
<li><code>PackageLoader</code> shows a clearer error message when the
package does not contain the templates directory. <a
href="https://redirect.github.com/pallets/jinja/issues/1705">#1705</a></li>
<li>Improve annotations for methods returning copies. <a
href="https://redirect.github.com/pallets/jinja/issues/1880">#1880</a></li>
<li><code>urlize</code> does not add <code>mailto:</code> to values like
<code>@a@b</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1870">#1870</a></li>
<li>Tests decorated with <code>@pass_context</code> can be used with the
<code>|select</code> filter. <a
href="https://redirect.github.com/pallets/jinja/issues/1624">#1624</a></li>
<li>Using <code>set</code> for multiple assignment (<code>a, b = 1,
2</code>) does not fail when the target is a namespace attribute. <a
href="https://redirect.github.com/pallets/jinja/issues/1413">#1413</a></li>
<li>Using <code>set</code> in all branches of <code>{% if %}{% elif %}{%
else %}</code> blocks does not cause the variable to be considered
initially undefined. <a
href="https://redirect.github.com/pallets/jinja/issues/1253">#1253</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/jinja/blob/main/CHANGES.rst">jinja2's
changelog</a>.</em></p>
<blockquote>
<h2>Version 3.1.5</h2>
<p>Released 2024-12-21</p>
<ul>
<li>The sandboxed environment handles indirect calls to
<code>str.format</code>, such as
by passing a stored reference to a filter that calls its argument.
:ghsa:<code>q2x7-8rv6-6q7h</code></li>
<li>Escape template name before formatting it into error messages, to
avoid
issues with names that contain f-string syntax.
:issue:<code>1792</code>, :ghsa:<code>gmj6-6f8f-6699</code></li>
<li>Sandbox does not allow <code>clear</code> and <code>pop</code> on
known mutable sequence
types. :issue:<code>2032</code></li>
<li>Calling sync <code>render</code> for an async template uses
<code>asyncio.run</code>.
:pr:<code>1952</code></li>
<li>Avoid unclosed <code>auto_aiter</code> warnings.
:pr:<code>1960</code></li>
<li>Return an <code>aclose</code>-able <code>AsyncGenerator</code> from
<code>Template.generate_async</code>. :pr:<code>1960</code></li>
<li>Avoid leaving <code>root_render_func()</code> unclosed in
<code>Template.generate_async</code>. :pr:<code>1960</code></li>
<li>Avoid leaving async generators unclosed in blocks, includes and
extends.
:pr:<code>1960</code></li>
<li>The runtime uses the correct <code>concat</code> function for the
current environment
when calling block references. :issue:<code>1701</code></li>
<li>Make <code>|unique</code> async-aware, allowing it to be used after
another
async-aware filter. :issue:<code>1781</code></li>
<li><code>|int</code> filter handles <code>OverflowError</code> from
scientific notation.
:issue:<code>1921</code></li>
<li>Make compiling deterministic for tuple unpacking in a <code>{% set
... %}</code>
call. :issue:<code>2021</code></li>
<li>Fix dunder protocol (<code>copy</code>/<code>pickle</code>/etc)
interaction with <code>Undefined</code>
objects. :issue:<code>2025</code></li>
<li>Fix <code>copy</code>/<code>pickle</code> support for the internal
<code>missing</code> object.
:issue:<code>2027</code></li>
<li><code>Environment.overlay(enable_async)</code> is applied correctly.
:pr:<code>2061</code></li>
<li>The error message from <code>FileSystemLoader</code> includes the
paths that were
searched. :issue:<code>1661</code></li>
<li><code>PackageLoader</code> shows a clearer error message when the
package does not
contain the templates directory. :issue:<code>1705</code></li>
<li>Improve annotations for methods returning copies.
:pr:<code>1880</code></li>
<li><code>urlize</code> does not add <code>mailto:</code> to values like
<code>@a@b</code>. :pr:<code>1870</code></li>
<li>Tests decorated with <code>@pass_context`` can be used with the
``|select`` filter. :issue:</code>1624`</li>
<li>Using <code>set</code> for multiple assignment (<code>a, b = 1,
2</code>) does not fail when the
target is a namespace attribute. :issue:<code>1413</code></li>
<li>Using <code>set</code> in all branches of <code>{% if %}{% elif %}{%
else %}</code> blocks
does not cause the variable to be considered initially undefined.
:issue:<code>1253</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pallets/jinja/commit/877f6e51be8e1765b06d911cfaa9033775f051d1"><code>877f6e5</code></a>
release version 3.1.5</li>
<li><a
href="https://github.com/pallets/jinja/commit/8d588592653b052f957b720e1fc93196e06f207f"><code>8d58859</code></a>
remove test pypi</li>
<li><a
href="https://github.com/pallets/jinja/commit/eda8fe86fd716dfce24910294e9f1fc81fbc740c"><code>eda8fe8</code></a>
update dev dependencies</li>
<li><a
href="https://github.com/pallets/jinja/commit/c8fdce1e0333f1122b244b03a48535fdd7b03d91"><code>c8fdce1</code></a>
Fix bug involving calling set on a template parameter within all
branches of ...</li>
<li><a
href="https://github.com/pallets/jinja/commit/66587ce989e5a478e0bb165371fa2b9d42b7040f"><code>66587ce</code></a>
Fix bug where set would sometimes fail within if</li>
<li><a
href="https://github.com/pallets/jinja/commit/fbc3a696c729d177340cc089531de7e2e5b6f065"><code>fbc3a69</code></a>
Add support for namespaces in tuple parsing (<a
href="https://redirect.github.com/pallets/jinja/issues/1664">#1664</a>)</li>
<li><a
href="https://github.com/pallets/jinja/commit/b8f4831d41e6a7cb5c40d42f074ffd92d2daccfc"><code>b8f4831</code></a>
more comments about nsref assignment</li>
<li><a
href="https://github.com/pallets/jinja/commit/ee832194cd9f55f75e5a51359b709d535efe957f"><code>ee83219</code></a>
Add support for namespaces in tuple assignment</li>
<li><a
href="https://github.com/pallets/jinja/commit/1d55cddbb28e433779511f28f13a2d8c4ec45826"><code>1d55cdd</code></a>
Triple quotes in docs (<a
href="https://redirect.github.com/pallets/jinja/issues/2064">#2064</a>)</li>
<li><a
href="https://github.com/pallets/jinja/commit/8a8eafc6b992ba177f1d3dd483f8465f18a11116"><code>8a8eafc</code></a>
edit block assignment section</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/jinja/compare/3.1.4...3.1.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jinja2&package-manager=pip&previous-version=3.1.4&new-version=3.1.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-08 17:31:13 -05:00
Vadym BardaandGitHub 8b29dc81e0 sdk-js: release 0.0.34 (#2959) 2025-01-08 10:59:40 -05:00
Vadym BardaandGitHub 1546eddfbe sdk-js: add stream mode and stream subgraphs to runs.create (#2958) 2025-01-08 10:58:07 -05:00
Vadym BardaandGitHub 9680e35beb docs: update tool in customer support tutorial (#2956)
Fixes #2952
2025-01-08 09:33:25 -05:00
Andrew NguonlyandGitHub 837f215857 docs: Rename Deploy Logs to Server Logs (#2922) 2025-01-07 17:13:06 -08:00
Vadym BardaandGitHub e13261ac0a ci: update langsmith and patch urllib3 vcr issues for notebook runner (#2949) 2025-01-07 20:09:57 -05:00
8ab206043c langgraph[patch]: fix create_react_agent inspectability (#2948)
Co-authored-by: vbarda <vadym@langchain.dev>
2025-01-07 18:47:31 +00:00
BagaturandGitHub 3dbe37041a docs: readme nit (#2899)
When looking at [docs](https://langchain-ai.github.io/langgraph/) this
sentence is confusing, not clear there's two separate links or why one
of them would lead to repo
2025-01-07 11:00:14 -05:00
e00284b386 Clarifying the docstring for the add_edge function (#2782)
Revised docstring for StateGraph's add_edge method to clarify recurring
confusion #2775 #1462

---------

Co-authored-by: ashirgaokar <abhishek.shirgaokar@zee.com>
Co-authored-by: vbarda <vadym@langchain.dev>
2025-01-07 10:04:50 -05:00
merdanandGitHub a36d2ac77d Update langgraph_agentic_rag.ipynb (#2885)
add missing package
2025-01-07 09:51:29 -05:00
tomo-abeandGitHub 2a46534286 Fix typo introduction.ipynb (#2894)
Fixing typo
2025-01-07 09:47:23 -05:00
VItto RivabellaandGitHub 4b06791b8c Update agent_supervisor.ipynb (#2888) 2025-01-07 09:45:41 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
661e20eec4 build(deps-dev): bump jinja2 from 3.1.4 to 3.1.5 (#2914)
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/jinja/releases">jinja2's
releases</a>.</em></p>
<blockquote>
<h2>3.1.5</h2>
<p>This is the Jinja 3.1.5 security fix release, which fixes security
issues and bugs but does not otherwise change behavior and should not
result in breaking changes compared to the latest feature release.</p>
<p>PyPI: <a
href="https://pypi.org/project/Jinja2/3.1.5/">https://pypi.org/project/Jinja2/3.1.5/</a>
Changes: <a
href="https://jinja.palletsprojects.com/changes/#version-3-1-5">https://jinja.palletsprojects.com/changes/#version-3-1-5</a>
Milestone: <a
href="https://github.com/pallets/jinja/milestone/16?closed=1">https://github.com/pallets/jinja/milestone/16?closed=1</a></p>
<ul>
<li>The sandboxed environment handles indirect calls to
<code>str.format</code>, such as by passing a stored reference to a
filter that calls its argument. <a
href="https://github.com/pallets/jinja/security/advisories/GHSA-q2x7-8rv6-6q7h">GHSA-q2x7-8rv6-6q7h</a></li>
<li>Escape template name before formatting it into error messages, to
avoid issues with names that contain f-string syntax. <a
href="https://redirect.github.com/pallets/jinja/issues/1792">#1792</a>,
<a
href="https://github.com/pallets/jinja/security/advisories/GHSA-gmj6-6f8f-6699">GHSA-gmj6-6f8f-6699</a></li>
<li>Sandbox does not allow <code>clear</code> and <code>pop</code> on
known mutable sequence types. <a
href="https://redirect.github.com/pallets/jinja/issues/2032">#2032</a></li>
<li>Calling sync <code>render</code> for an async template uses
<code>asyncio.run</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1952">#1952</a></li>
<li>Avoid unclosed <code>auto_aiter</code> warnings. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>Return an <code>aclose</code>-able <code>AsyncGenerator</code> from
<code>Template.generate_async</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>Avoid leaving <code>root_render_func()</code> unclosed in
<code>Template.generate_async</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>Avoid leaving async generators unclosed in blocks, includes and
extends. <a
href="https://redirect.github.com/pallets/jinja/issues/1960">#1960</a></li>
<li>The runtime uses the correct <code>concat</code> function for the
current environment when calling block references. <a
href="https://redirect.github.com/pallets/jinja/issues/1701">#1701</a></li>
<li>Make <code>|unique</code> async-aware, allowing it to be used after
another async-aware filter. <a
href="https://redirect.github.com/pallets/jinja/issues/1781">#1781</a></li>
<li><code>|int</code> filter handles <code>OverflowError</code> from
scientific notation. <a
href="https://redirect.github.com/pallets/jinja/issues/1921">#1921</a></li>
<li>Make compiling deterministic for tuple unpacking in a <code>{% set
... %}</code> call. <a
href="https://redirect.github.com/pallets/jinja/issues/2021">#2021</a></li>
<li>Fix dunder protocol (<code>copy</code>/<code>pickle</code>/etc)
interaction with <code>Undefined</code> objects. <a
href="https://redirect.github.com/pallets/jinja/issues/2025">#2025</a></li>
<li>Fix <code>copy</code>/<code>pickle</code> support for the internal
<code>missing</code> object. <a
href="https://redirect.github.com/pallets/jinja/issues/2027">#2027</a></li>
<li><code>Environment.overlay(enable_async)</code> is applied correctly.
<a
href="https://redirect.github.com/pallets/jinja/issues/2061">#2061</a></li>
<li>The error message from <code>FileSystemLoader</code> includes the
paths that were searched. <a
href="https://redirect.github.com/pallets/jinja/issues/1661">#1661</a></li>
<li><code>PackageLoader</code> shows a clearer error message when the
package does not contain the templates directory. <a
href="https://redirect.github.com/pallets/jinja/issues/1705">#1705</a></li>
<li>Improve annotations for methods returning copies. <a
href="https://redirect.github.com/pallets/jinja/issues/1880">#1880</a></li>
<li><code>urlize</code> does not add <code>mailto:</code> to values like
<code>@a@b</code>. <a
href="https://redirect.github.com/pallets/jinja/issues/1870">#1870</a></li>
<li>Tests decorated with <code>@pass_context</code> can be used with the
<code>|select</code> filter. <a
href="https://redirect.github.com/pallets/jinja/issues/1624">#1624</a></li>
<li>Using <code>set</code> for multiple assignment (<code>a, b = 1,
2</code>) does not fail when the target is a namespace attribute. <a
href="https://redirect.github.com/pallets/jinja/issues/1413">#1413</a></li>
<li>Using <code>set</code> in all branches of <code>{% if %}{% elif %}{%
else %}</code> blocks does not cause the variable to be considered
initially undefined. <a
href="https://redirect.github.com/pallets/jinja/issues/1253">#1253</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pallets/jinja/blob/main/CHANGES.rst">jinja2's
changelog</a>.</em></p>
<blockquote>
<h2>Version 3.1.5</h2>
<p>Released 2024-12-21</p>
<ul>
<li>The sandboxed environment handles indirect calls to
<code>str.format</code>, such as
by passing a stored reference to a filter that calls its argument.
:ghsa:<code>q2x7-8rv6-6q7h</code></li>
<li>Escape template name before formatting it into error messages, to
avoid
issues with names that contain f-string syntax.
:issue:<code>1792</code>, :ghsa:<code>gmj6-6f8f-6699</code></li>
<li>Sandbox does not allow <code>clear</code> and <code>pop</code> on
known mutable sequence
types. :issue:<code>2032</code></li>
<li>Calling sync <code>render</code> for an async template uses
<code>asyncio.run</code>.
:pr:<code>1952</code></li>
<li>Avoid unclosed <code>auto_aiter</code> warnings.
:pr:<code>1960</code></li>
<li>Return an <code>aclose</code>-able <code>AsyncGenerator</code> from
<code>Template.generate_async</code>. :pr:<code>1960</code></li>
<li>Avoid leaving <code>root_render_func()</code> unclosed in
<code>Template.generate_async</code>. :pr:<code>1960</code></li>
<li>Avoid leaving async generators unclosed in blocks, includes and
extends.
:pr:<code>1960</code></li>
<li>The runtime uses the correct <code>concat</code> function for the
current environment
when calling block references. :issue:<code>1701</code></li>
<li>Make <code>|unique</code> async-aware, allowing it to be used after
another
async-aware filter. :issue:<code>1781</code></li>
<li><code>|int</code> filter handles <code>OverflowError</code> from
scientific notation.
:issue:<code>1921</code></li>
<li>Make compiling deterministic for tuple unpacking in a <code>{% set
... %}</code>
call. :issue:<code>2021</code></li>
<li>Fix dunder protocol (<code>copy</code>/<code>pickle</code>/etc)
interaction with <code>Undefined</code>
objects. :issue:<code>2025</code></li>
<li>Fix <code>copy</code>/<code>pickle</code> support for the internal
<code>missing</code> object.
:issue:<code>2027</code></li>
<li><code>Environment.overlay(enable_async)</code> is applied correctly.
:pr:<code>2061</code></li>
<li>The error message from <code>FileSystemLoader</code> includes the
paths that were
searched. :issue:<code>1661</code></li>
<li><code>PackageLoader</code> shows a clearer error message when the
package does not
contain the templates directory. :issue:<code>1705</code></li>
<li>Improve annotations for methods returning copies.
:pr:<code>1880</code></li>
<li><code>urlize</code> does not add <code>mailto:</code> to values like
<code>@a@b</code>. :pr:<code>1870</code></li>
<li>Tests decorated with <code>@pass_context`` can be used with the
``|select`` filter. :issue:</code>1624`</li>
<li>Using <code>set</code> for multiple assignment (<code>a, b = 1,
2</code>) does not fail when the
target is a namespace attribute. :issue:<code>1413</code></li>
<li>Using <code>set</code> in all branches of <code>{% if %}{% elif %}{%
else %}</code> blocks
does not cause the variable to be considered initially undefined.
:issue:<code>1253</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pallets/jinja/commit/877f6e51be8e1765b06d911cfaa9033775f051d1"><code>877f6e5</code></a>
release version 3.1.5</li>
<li><a
href="https://github.com/pallets/jinja/commit/8d588592653b052f957b720e1fc93196e06f207f"><code>8d58859</code></a>
remove test pypi</li>
<li><a
href="https://github.com/pallets/jinja/commit/eda8fe86fd716dfce24910294e9f1fc81fbc740c"><code>eda8fe8</code></a>
update dev dependencies</li>
<li><a
href="https://github.com/pallets/jinja/commit/c8fdce1e0333f1122b244b03a48535fdd7b03d91"><code>c8fdce1</code></a>
Fix bug involving calling set on a template parameter within all
branches of ...</li>
<li><a
href="https://github.com/pallets/jinja/commit/66587ce989e5a478e0bb165371fa2b9d42b7040f"><code>66587ce</code></a>
Fix bug where set would sometimes fail within if</li>
<li><a
href="https://github.com/pallets/jinja/commit/fbc3a696c729d177340cc089531de7e2e5b6f065"><code>fbc3a69</code></a>
Add support for namespaces in tuple parsing (<a
href="https://redirect.github.com/pallets/jinja/issues/1664">#1664</a>)</li>
<li><a
href="https://github.com/pallets/jinja/commit/b8f4831d41e6a7cb5c40d42f074ffd92d2daccfc"><code>b8f4831</code></a>
more comments about nsref assignment</li>
<li><a
href="https://github.com/pallets/jinja/commit/ee832194cd9f55f75e5a51359b709d535efe957f"><code>ee83219</code></a>
Add support for namespaces in tuple assignment</li>
<li><a
href="https://github.com/pallets/jinja/commit/1d55cddbb28e433779511f28f13a2d8c4ec45826"><code>1d55cdd</code></a>
Triple quotes in docs (<a
href="https://redirect.github.com/pallets/jinja/issues/2064">#2064</a>)</li>
<li><a
href="https://github.com/pallets/jinja/commit/8a8eafc6b992ba177f1d3dd483f8465f18a11116"><code>8a8eafc</code></a>
edit block assignment section</li>
<li>Additional commits viewable in <a
href="https://github.com/pallets/jinja/compare/3.1.4...3.1.5">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=jinja2&package-manager=pip&previous-version=3.1.4&new-version=3.1.5)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-07 09:41:37 -05:00
William FHandGitHub a486eb5e75 0.2.61 (#2933) 2025-01-05 14:43:43 -08:00
William Fu-Hinthorn e9d62944d3 0.2.61 2025-01-05 14:42:25 -08:00
William FHandGitHub cbd09abe58 fix formatting (#2880) 2025-01-04 04:59:04 -08:00
William FHandGitHub 4798443e31 Import TypedDict from typing_extensions, add ruff rule (#2910)
Within `libs/langgraph`, change all `TypedDict` imports to come from
`typing_extensions` rather than `typing`, as `pydantic` doesn't like the
latter.

Additionally, add a ruff rule to ban these imports too (so this doesn't
regress).

Solves  #2909.
2025-01-04 04:58:43 -08:00
William FHandGitHub ce900864fa Fix typo in client.py (#2925)
Typo change in function doc
2025-01-04 04:58:23 -08:00
Ramón VargasandGitHub 577f95bd50 Merge branch 'main' into patch-1 2025-01-04 13:26:54 +01:00
William FHandGitHub 59a11c63b0 Support multiple args in @task's (#2923)
Also add support for just `@task` without the ()'s
2025-01-04 04:25:49 -08:00
Andrew NguonlyandGitHub 08098688d4 docs: Update docs for POST /v1/projects/{project_id}/revisions endpoint (#2926) 2025-01-03 10:36:38 -08:00
Ramón VargasandGitHub 687ee02509 Update client.py
Typo change in function doc
2025-01-03 18:40:15 +01:00
William Fu-Hinthorn 451bc038b6 Support multiple args in @task's 2025-01-03 07:56:27 -08:00
Nuno CamposandGitHub c865e8c070 Update README.md 2025-01-02 10:01:35 +00:00
Nuno CamposandGitHub d74ec2c2de Bubble up stack close task (#2913) 2025-01-02 09:54:43 +00:00
Nuno CamposandGitHub f70bfc6d87 Fix stream_mode=updates for cases where one node returns multiple updates for same key (#2903) 2025-01-02 09:54:06 +00:00
David DuongandGitHub c86f0af107 fix(sdk): Fix SDK Command.update type (#2901)
Align typing with JS:


https://github.com/langchain-ai/langgraphjs/blob/main/libs/langgraph/src/constants.ts#L226
2025-01-01 15:55:58 +01:00
William Fu-Hinthorn c6ee807de5 Bubble up stack close task 2025-01-01 05:41:57 -08:00
Johannes Mario Meissner 7256752f48 Import TypedDict from typing_extensions, add ruff rule 2024-12-31 22:14:16 +09:00
Nuno Campos dac84951aa Fix stream_mode=updates for cases where one node returns multiple updates for same key 2024-12-30 20:10:59 +00:00
Nuno CamposandGitHub 3aaa3e38a0 Add more tests for async cancellation (#2902) 2024-12-30 20:10:14 +00:00
Nuno Campos 400d83708a Fix 2024-12-30 20:01:35 +00:00
Nuno Campos 1d9c7ef461 Fix 2024-12-30 19:29:14 +00:00
Nuno Campos 01e5ecedfd Remove assertion of order 2024-12-30 19:26:18 +00:00
Nuno Campos 76199701b0 Add more tests for async cancellation 2024-12-30 18:56:56 +00:00
jacoblee93 2766fccb5b Bump Python version 2024-12-30 10:30:50 -08:00
jacoblee93 6aef3e0117 Update Python types too 2024-12-30 10:29:01 -08:00
jacoblee93 c5023ba147 Modify type 2024-12-30 10:22:06 -08:00
jacoblee93 9a9fe2fdec Update JS SDK command types 2024-12-30 10:14:51 -08:00
Andrew NguonlyandGitHub effddca494 docs: LangGraph Control Plane API (#2881) 2024-12-26 16:15:18 -08:00
Harrison Chase 2ab59840e7 cr 2024-12-26 12:48:08 -08:00
Eugene YurtsevandGitHub 0fb65f6e67 docs: fix accidental nav bar change (#2865) 2024-12-23 21:47:14 -05:00
Eugene Yurtsev 0ecd23eec6 fix accidental commit 2024-12-23 21:38:16 -05:00
Eugene YurtsevandGitHub e137dabf22 docs: memoize class resolution (#2861)
Main purpose is to avoid all the repeated log warnings which make the
builds hare to understand
2024-12-23 14:24:16 -05:00
Eugene YurtsevandGitHub fdc1e47aa1 docs: add edit uri (#2860) 2024-12-23 14:20:17 -05:00
Eugene Yurtsev 866780b477 x 2024-12-23 14:11:38 -05:00
Eugene Yurtsev 18d3fa2e15 x 2024-12-23 14:06:25 -05:00
Eugene YurtsevandGitHub 4b0c53fb5c docs: improve api reference generation in code blocks (#2857)
Generate api references from any markdown -- this will handle markdown
files in notebooks as well as code blocks in plain markdown
2024-12-23 13:35:08 -05:00
Eugene Yurtsev 5183484322 x 2024-12-22 22:10:29 -05:00
Eugene Yurtsev 8213e4719b qx 2024-12-22 22:10:06 -05:00
Eugene Yurtsev f993dfcfcb x 2024-12-22 22:07:59 -05:00
Eugene YurtsevandGitHub 9e31b82d8d docs: Add highlight-next-line (#2850)
Add highlight next line


![image](https://github.com/user-attachments/assets/cda3c9f2-1f98-489a-a487-d1ad9c6a1186)


![image](https://github.com/user-attachments/assets/bfa05f4d-50cc-490a-9598-5076068d8f4b)
2024-12-20 21:10:51 -05:00
Vadym BardaandGitHub a3c5b8fc37 checkpoint-postgres: release 2.0.9 (#2849) 2024-12-20 17:47:20 -05:00
Eugene Yurtsev 1e0aebc3ec x 2024-12-20 17:38:20 -05:00
Eugene Yurtsev 056f581342 x 2024-12-20 17:29:10 -05:00
Eugene Yurtsev a0d7323bec x 2024-12-20 17:14:22 -05:00
Vadym BardaandGitHub 44ee0199fd checkpoint postgres: add a shallow checkpointer (#2826)
This PR adds a "shallow" version of `PostgresSaver` checkpointer that
ONLY stores the most recent checkpoint and does NOT retain any history.
It is meant to be a light-weight drop-in replacement for the
PostgresSaver that supports most of the LangGraph persistence
functionality with the exception of time travel.
2024-12-20 17:51:20 +00:00
1de61f6fce docs: Improve explanation and fix grammar mistakes in agentic concepts guide (#2541)
Made some of the explanations more clear by rephrasing certain parts of
the sentence.

Fixed minor grammar mistakes also.

---------

Co-authored-by: Vadym Barda <vadim.barda@gmail.com>
2024-12-20 11:20:27 -05:00
Vadym BardaandGitHub f33db6cec4 docs: remove langgraph up references (#2847) 2024-12-20 11:00:04 -05:00
Vadym BardaandGitHub c72107177b docs: update custom agent in handoffs doc (#2846) 2024-12-20 14:59:38 +00:00
Yassin NouhandGitHub f520a38d30 docs: missing docstring for aupdate_state method (#2435) 2024-12-20 09:06:29 -05:00
Andrew NguonlyandGitHub d0278f520c docs: Update CPU for Production type deployments (#2845) 2024-12-19 21:04:31 -08:00
Vadym BardaandGitHub 506539ac9d langgraph: actually run test_large_cases_async (#2843) 2024-12-19 22:25:22 +00:00
JasonJandGitHub d6c6516f16 fix: minor modification, syntax error (#1905) 2024-12-19 15:29:10 -05:00
Sarthak GuptaandGitHub 6f5d6d9993 docs: remove Literal as it is not being used (#2149)
This PR removes the use of `from typing import Literal` since it is not
being used in the code implementation
2024-12-19 15:25:27 -05:00
Neeraj GandGitHub 8dcd058404 Formatting inconsistency in low_level.md (#1342) 2024-12-19 15:21:49 -05:00
William FHandGitHub e3050b3a3e [Docs] Show example payloads (#2839) 2024-12-19 10:38:17 -08:00
William Fu-Hinthorn 9e767afad7 Link 2024-12-19 09:09:36 -08:00
William Fu-Hinthorn 62b35277ec Warning more obvious 2024-12-19 09:01:50 -08:00
William Fu-Hinthorn 931419909b rm 2024-12-19 08:59:11 -08:00
William Fu-Hinthorn e849c869cc [Docs] Add example payloads to code 2024-12-19 08:52:31 -08:00
William FHandGitHub 5a580ae5ec [Docs] Add diagrams (#2834) 2024-12-19 06:37:55 -08:00
William Fu-Hinthorn 47a0e09513 Add prereq 2024-12-19 06:28:56 -08:00
William Fu-Hinthorn f37486efe2 Add images 2024-12-19 06:26:52 -08:00
William FHandGitHub fa61be9fbc [Docs] Bullet points (#2830) 2024-12-18 23:10:13 -08:00
William Fu-Hinthorn 08097a78bd [Docs] Bullet points 2024-12-18 23:09:06 -08:00
William FHandGitHub 43f610e9a6 [Doc] Fix env var name (#2828) 2024-12-18 21:32:08 -08:00
William Fu-Hinthorn aa1ddee67e [Doc] Fix env var name 2024-12-18 21:30:12 -08:00
William FHandGitHub 12b46e8a69 [Docs] Make example more illustrative (#2827) 2024-12-18 18:58:26 -08:00
William Fu-Hinthorn d90f69105a missed 2024-12-18 18:49:49 -08:00
William Fu-Hinthorn fbd3b67183 [Docs] Make example more illustrative 2024-12-18 18:47:35 -08:00
William FHandGitHub 6d8be543e7 Update syntax highlighting (#2825) 2024-12-18 17:53:33 -08:00
William Fu-Hinthorn 1c1772f7ec Update syntax highlighting 2024-12-18 17:51:07 -08:00
William FHandGitHub ce239c784a [Docs] Ignore linkcheck localhost on main (#2824) 2024-12-18 16:48:02 -08:00
William Fu-Hinthorn c14c978824 [Docs] Ignore localhost on main 2024-12-18 16:46:34 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Vadym Barda
ebb2823be0 build(deps-dev): bump tornado from 6.4.1 to 6.4.2 in /libs/langgraph (#2814)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.1 to
6.4.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tornadoweb/tornado/blob/v6.4.2/docs/releases.rst">tornado's
changelog</a>.</em></p>
<blockquote>
<h1>Release notes</h1>
<p>.. toctree::
:maxdepth: 2</p>
<p>releases/v6.4.2
releases/v6.4.1
releases/v6.4.0
releases/v6.3.3
releases/v6.3.2
releases/v6.3.1
releases/v6.3.0
releases/v6.2.0
releases/v6.1.0
releases/v6.0.4
releases/v6.0.3
releases/v6.0.2
releases/v6.0.1
releases/v6.0.0
releases/v5.1.1
releases/v5.1.0
releases/v5.0.2
releases/v5.0.1
releases/v5.0.0
releases/v4.5.3
releases/v4.5.2
releases/v4.5.1
releases/v4.5.0
releases/v4.4.3
releases/v4.4.2
releases/v4.4.1
releases/v4.4.0
releases/v4.3.0
releases/v4.2.1
releases/v4.2.0
releases/v4.1.0
releases/v4.0.2
releases/v4.0.1
releases/v4.0.0
releases/v3.2.2
releases/v3.2.1
releases/v3.2.0
releases/v3.1.1
releases/v3.1.0
releases/v3.0.2
releases/v3.0.1
releases/v3.0.0
releases/v2.4.1
releases/v2.4.0</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tornadoweb/tornado/commit/a5ecfab15e52202a46d34638aad93cddca86d87b"><code>a5ecfab</code></a>
Bump version to 6.4.2</li>
<li><a
href="https://github.com/tornadoweb/tornado/commit/bc7df6bafdec61155e7bf385081feb205463857d"><code>bc7df6b</code></a>
Fix tests with Twisted 24.7.0</li>
<li><a
href="https://github.com/tornadoweb/tornado/commit/d5ba4a1695fbf7c6a3e54313262639b198291533"><code>d5ba4a1</code></a>
httputil: Fix quadratic performance of cookie parsing</li>
<li>See full diff in <a
href="https://github.com/tornadoweb/tornado/compare/v6.4.1...v6.4.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tornado&package-manager=pip&previous-version=6.4.1&new-version=6.4.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-12-18 19:36:20 -05:00
William FHandGitHub 25f0224f97 [Docs] Link glob (#2823) 2024-12-18 16:35:09 -08:00
William FHandGitHub fdf9b0ad48 Merge branch 'main' into wfh/expand_link_glob 2024-12-18 16:34:58 -08:00
William FHandGitHub 00ecccfd81 [docs] Remove show source: true in ref docs (#2821) 2024-12-18 16:34:46 -08:00
William Fu-Hinthorn 7d5452d039 [Docs] Link glob 2024-12-18 16:32:02 -08:00
William FHandGitHub 2d8de54e80 [Docs] Ignore 127.0.0 links (#2822) 2024-12-18 16:16:42 -08:00
William Fu-Hinthorn 32abc62bc1 [Docs] Ignore 127.0.0 links 2024-12-18 16:14:54 -08:00
William Fu-Hinthorn e36cf4111d [docs] Remove show source: true in ref docs 2024-12-18 16:04:35 -08:00
William FHandGitHub 53a2c2bdcd [Docs] Fix mkdocs.yml paths (#2820) 2024-12-18 15:58:30 -08:00
William Fu-Hinthorn 2cae9337a7 Fix broken index 2024-12-18 15:56:35 -08:00
William Fu-Hinthorn b056e17b38 Linkcheck 2024-12-18 15:46:45 -08:00
William FHandGitHub 2855caa3eb Fix config cli type from Path -> str (#2771)
Config parameter in `dev` was typed as pathlib.Path, but it is actually
a string. We need to manually create a Path from the string when parsing
the config.

FIxes #2647
2024-12-18 15:25:15 -08:00
William FHandGitHub 140566e662 [Docs] Add auth docs (#2797) 2024-12-18 15:22:26 -08:00
William FH b7f57b1375 Merge branch 'main' into wfh/docs/auth 2024-12-18 15:09:15 -08:00
Vadym BardaandGitHub 121c5863db docs: add a banner for langchain academy (#2818) 2024-12-18 23:08:51 +00:00
William Fu-Hinthorn 1709cd3fb5 concept 2024-12-18 15:08:19 -08:00
William Fu-Hinthorn d4a1fe5a03 concept 2024-12-18 15:03:13 -08:00
William Fu-Hinthorn 06e1e4ed12 Update cross-linking 2024-12-18 14:52:02 -08:00
Vadym BardaandGitHub 1e62b175ba docs: make the studio web UI docs more clear (#2812) 2024-12-18 22:40:22 +00:00
William FHandGitHub f89fe49f99 Merge branch 'main' into wfh/docs/auth 2024-12-18 14:26:39 -08:00
William Fu-Hinthorn 2e1971baf3 Remaining feedback 2024-12-18 14:25:25 -08:00
William Fu-Hinthorn 948027aef2 Notebook style 2024-12-18 14:22:15 -08:00
William Fu-Hinthorn 6954e63671 Numbering 2024-12-18 14:16:35 -08:00
William Fu-Hinthorn 7f0bfdc139 Feedback 2024-12-18 14:15:54 -08:00
William FHandGitHub 0496128e6b [CLI] Bump min-bound for langgraph-api (#2816) 2024-12-18 12:38:37 -08:00
William FHandGitHub d79b1a61e8 Merge branch 'main' into fix-cli-path 2024-12-18 12:34:39 -08:00
William Fu-Hinthorn e227f6ce83 Bump version 2024-12-18 12:30:06 -08:00
William Fu-Hinthorn 8a1a11fde5 [CLI] Update min bound for langgraph-api 2024-12-18 12:29:17 -08:00
Andrew NguonlyandGitHub c47fd171c6 docs(cloud): Add note about GitHub org/acc owner (#2815)
### Summary
Clarifying that in order to install the `hosted-langserve` GitHub app,
the GitHub user must be an owner of the organization or account.
2024-12-18 11:45:30 -08:00
William Fu-Hinthorn 1e07a9ac97 Add admonition 2024-12-18 11:41:52 -08:00
William Fu-Hinthorn d9cc227e75 Unpin install command in doc 2024-12-18 11:41:52 -08:00
6b45a281c1 fix example in docs of state_schema in create_react_agent (#2109)
because in
```python
    def call_model(
        state: AgentState,
        config: RunnableConfig,
    )
...
        if (
            (
                "remaining_steps" not in state
                and state["is_last_step"]
                and has_tool_calls
            )
```

https://github.com/langchain-ai/langgraph/blob/c0b56bf60d84ed435609c35b0691cd0305ceae78/libs/langgraph/langgraph/prebuilt/chat_agent_executor.py#L543
the AgentState requires is_last_step to have a default value, like
`False`, and `IsLastStep` can satisfy it.

---------

Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-12-18 11:41:52 -08:00
BagaturandWilliam Fu-Hinthorn 532bc71c11 langgraph[patch]: format messages in state (#2199)
Add `format` flag to `add_messages` which allows you to specify if the
contents of messages in state should be formatted in a particular way.
PR only adds support for OpenAI style contents. Helpful if you're using
different models at different nodes and want a unified messages format
to interact with when you manually update messages.
2024-12-18 11:41:52 -08:00
dependabot[bot]William Fu-Hinthorndependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Vadym Barda
dabd75f1f9 build(deps-dev): bump tornado from 6.4.1 to 6.4.2 (#2519)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.1 to
6.4.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tornadoweb/tornado/blob/v6.4.2/docs/releases.rst">tornado's
changelog</a>.</em></p>
<blockquote>
<h1>Release notes</h1>
<p>.. toctree::
:maxdepth: 2</p>
<p>releases/v6.4.2
releases/v6.4.1
releases/v6.4.0
releases/v6.3.3
releases/v6.3.2
releases/v6.3.1
releases/v6.3.0
releases/v6.2.0
releases/v6.1.0
releases/v6.0.4
releases/v6.0.3
releases/v6.0.2
releases/v6.0.1
releases/v6.0.0
releases/v5.1.1
releases/v5.1.0
releases/v5.0.2
releases/v5.0.1
releases/v5.0.0
releases/v4.5.3
releases/v4.5.2
releases/v4.5.1
releases/v4.5.0
releases/v4.4.3
releases/v4.4.2
releases/v4.4.1
releases/v4.4.0
releases/v4.3.0
releases/v4.2.1
releases/v4.2.0
releases/v4.1.0
releases/v4.0.2
releases/v4.0.1
releases/v4.0.0
releases/v3.2.2
releases/v3.2.1
releases/v3.2.0
releases/v3.1.1
releases/v3.1.0
releases/v3.0.2
releases/v3.0.1
releases/v3.0.0
releases/v2.4.1
releases/v2.4.0</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tornadoweb/tornado/commit/a5ecfab15e52202a46d34638aad93cddca86d87b"><code>a5ecfab</code></a>
Bump version to 6.4.2</li>
<li><a
href="https://github.com/tornadoweb/tornado/commit/bc7df6bafdec61155e7bf385081feb205463857d"><code>bc7df6b</code></a>
Fix tests with Twisted 24.7.0</li>
<li><a
href="https://github.com/tornadoweb/tornado/commit/d5ba4a1695fbf7c6a3e54313262639b198291533"><code>d5ba4a1</code></a>
httputil: Fix quadratic performance of cookie parsing</li>
<li>See full diff in <a
href="https://github.com/tornadoweb/tornado/compare/v6.4.1...v6.4.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tornado&package-manager=pip&previous-version=6.4.1&new-version=6.4.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-12-18 11:41:52 -08:00
Nuno CamposandWilliam Fu-Hinthorn ef88b805a7 0.2.60 2024-12-18 11:41:52 -08:00
Nuno CamposandWilliam Fu-Hinthorn 7e8a68f0f0 Fix 2024-12-18 11:41:52 -08:00
Nuno CamposandWilliam Fu-Hinthorn e20bd15580 lib: Fix incorrect default for Command.update
- this should not default to empty tuple, it should default to None
2024-12-18 11:41:52 -08:00
William Fu-Hinthorn 51c57cc819 [SDK] Add studio user object 2024-12-18 11:41:52 -08:00
William FHandGitHub 09a6450eed [SDK] Add studio user object (#2813) 2024-12-18 11:33:50 -08:00
William FHandGitHub 77fba7a571 Merge branch 'main' into wfh/sdk/studio_user 2024-12-18 11:28:21 -08:00
William Fu-Hinthorn 60232eadc4 [SDK] Add studio user object 2024-12-18 11:21:13 -08:00
83e4e6c4c2 Update docs/docs/tutorials/auth/add_auth_server.md
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-12-18 11:15:38 -08:00
William FHandGitHub a6f0c665af Unpin install command in doc (#2811) 2024-12-18 10:13:29 -08:00
William Fu-Hinthorn f1a2e19144 Add admonition 2024-12-18 10:04:57 -08:00
William Fu-Hinthorn b28e9d0a87 Unpin install command in doc 2024-12-18 10:03:16 -08:00
William Fu-Hinthorn b3230cf6d1 More guidance 2024-12-18 10:01:56 -08:00
1a6c3114f3 fix example in docs of state_schema in create_react_agent (#2109)
because in
```python
    def call_model(
        state: AgentState,
        config: RunnableConfig,
    )
...
        if (
            (
                "remaining_steps" not in state
                and state["is_last_step"]
                and has_tool_calls
            )
```

https://github.com/langchain-ai/langgraph/blob/c0b56bf60d84ed435609c35b0691cd0305ceae78/libs/langgraph/langgraph/prebuilt/chat_agent_executor.py#L543
the AgentState requires is_last_step to have a default value, like
`False`, and `IsLastStep` can satisfy it.

---------

Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-12-18 12:46:33 -05:00
BagaturandGitHub 4f1bf4fa7a langgraph[patch]: format messages in state (#2199)
Add `format` flag to `add_messages` which allows you to specify if the
contents of messages in state should be formatted in a particular way.
PR only adds support for OpenAI style contents. Helpful if you're using
different models at different nodes and want a unified messages format
to interact with when you manually update messages.
2024-12-18 17:19:04 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>Vadym Barda
22fa673872 build(deps-dev): bump tornado from 6.4.1 to 6.4.2 (#2519)
Bumps [tornado](https://github.com/tornadoweb/tornado) from 6.4.1 to
6.4.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/tornadoweb/tornado/blob/v6.4.2/docs/releases.rst">tornado's
changelog</a>.</em></p>
<blockquote>
<h1>Release notes</h1>
<p>.. toctree::
:maxdepth: 2</p>
<p>releases/v6.4.2
releases/v6.4.1
releases/v6.4.0
releases/v6.3.3
releases/v6.3.2
releases/v6.3.1
releases/v6.3.0
releases/v6.2.0
releases/v6.1.0
releases/v6.0.4
releases/v6.0.3
releases/v6.0.2
releases/v6.0.1
releases/v6.0.0
releases/v5.1.1
releases/v5.1.0
releases/v5.0.2
releases/v5.0.1
releases/v5.0.0
releases/v4.5.3
releases/v4.5.2
releases/v4.5.1
releases/v4.5.0
releases/v4.4.3
releases/v4.4.2
releases/v4.4.1
releases/v4.4.0
releases/v4.3.0
releases/v4.2.1
releases/v4.2.0
releases/v4.1.0
releases/v4.0.2
releases/v4.0.1
releases/v4.0.0
releases/v3.2.2
releases/v3.2.1
releases/v3.2.0
releases/v3.1.1
releases/v3.1.0
releases/v3.0.2
releases/v3.0.1
releases/v3.0.0
releases/v2.4.1
releases/v2.4.0</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/tornadoweb/tornado/commit/a5ecfab15e52202a46d34638aad93cddca86d87b"><code>a5ecfab</code></a>
Bump version to 6.4.2</li>
<li><a
href="https://github.com/tornadoweb/tornado/commit/bc7df6bafdec61155e7bf385081feb205463857d"><code>bc7df6b</code></a>
Fix tests with Twisted 24.7.0</li>
<li><a
href="https://github.com/tornadoweb/tornado/commit/d5ba4a1695fbf7c6a3e54313262639b198291533"><code>d5ba4a1</code></a>
httputil: Fix quadratic performance of cookie parsing</li>
<li>See full diff in <a
href="https://github.com/tornadoweb/tornado/compare/v6.4.1...v6.4.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tornado&package-manager=pip&previous-version=6.4.1&new-version=6.4.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-12-18 10:04:05 -05:00
Nuno Campos 3d85f2296c 0.2.60 2024-12-18 13:45:32 +00:00
Nuno CamposandGitHub 5ad9cfa030 lib: Fix incorrect default for Command.update (#2809)
- this should not default to empty tuple, it should default to None
2024-12-18 13:35:53 +00:00
Nuno Campos 39281c866d Fix 2024-12-18 13:28:22 +00:00
Nuno Campos 4c3a38d324 lib: Fix incorrect default for Command.update
- this should not default to empty tuple, it should default to None
2024-12-18 13:15:38 +00:00
William Fu-Hinthorn 8fc3f204ea Add pt 2 and 3 2024-12-18 01:10:33 -08:00
William FH 2df2f41dc7 Merge branch 'main' into wfh/docs/auth 2024-12-18 01:08:41 -08:00
William Fu-Hinthorn 30e647abce Add links 2024-12-18 01:06:01 -08:00
William Fu-Hinthorn b85c9961d7 Split into 3 2024-12-18 00:50:38 -08:00
William Fu-Hinthorn 1c97bddc14 Fix cross linking 2024-12-17 18:22:56 -08:00
William Fu-Hinthorn 97b3d1b9ac Simplify tutorial 2024-12-17 17:43:09 -08:00
Vadym BardaandGitHub 8b70da6a0f docs: update howtos nav (#2805) 2024-12-17 19:50:00 -05:00
William Fu-Hinthorn 7904fdc928 Update explanations 2024-12-17 16:41:00 -08:00
William Fu-Hinthorn ba56ba1b2a Add langgraph reference 2024-12-17 16:31:13 -08:00
William Fu-Hinthorn 12f2a480cd Add concepts 2024-12-17 16:25:48 -08:00
Vadym BardaandGitHub 532cb0a691 docs: reorg multi-agent howtos (#2784) 2024-12-18 00:01:28 +00:00
William Fu-Hinthorn 23e18e8c1b Add how-tos 2024-12-17 14:50:09 -08:00
William Fu-Hinthorn 6d160a2865 Merge branch 'main' into wfh/docs/auth 2024-12-17 14:04:31 -08:00
e0b4eb6454 doc: fixed typo in interrupt_concurrent.md (#2791)
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-12-17 15:49:44 -05:00
Eugene YurtsevandGitHub 608ff41e78 ci: fix link checker (#2803) 2024-12-17 15:41:10 -05:00
Eugene YurtsevandGitHub 9280e3411b docs: update why langgraph and other typos (#2799) 2024-12-17 15:36:41 -05:00
William FHandGitHub 36fa8e0097 Update ref docs (#2802) 2024-12-17 11:54:32 -08:00
Eugene Yurtsev f63217794d qx 2024-12-17 14:50:26 -05:00
William Fu-Hinthorn bcb11640a5 Update AuthContext 2024-12-17 11:46:30 -08:00
William Fu-Hinthorn b6c3a0d0fd Update wording 2024-12-17 11:37:25 -08:00
Luke JangandGitHub 8b14b6a9f0 docs: removed redundant import from the example (#2794)
there were two same import
"from langchain_openai import ChatOpenAI"
2024-12-17 14:33:35 -05:00
William Fu-Hinthorn 8c63cc1778 Add excption docs 2024-12-17 11:22:54 -08:00
William Fu-Hinthorn 6756e91ffc Authenticate return single type 2024-12-17 11:01:54 -08:00
William Fu-Hinthorn 3dd1e67977 Add mermaid 2024-12-17 10:54:18 -08:00
Eugene YurtsevandGitHub fc5d919aee docs: fix some typos (#2790) 2024-12-17 13:53:57 -05:00
Eugene Yurtsev 0369300160 update 2024-12-17 12:24:15 -05:00
William Fu-Hinthorn 245cf83b20 [Docs] Add auth tutorial 2024-12-17 08:59:04 -08:00
Vadym BardaandGitHub 9bd351b80f docs: small fixes (#2798) 2024-12-17 11:58:38 -05:00
Eugene YurtsevandGitHub 83c3f86159 docs: fix port
Fix port from 8123 (was the default for langgraph up) to 2024 (the default for langgraph dev)
2024-12-17 10:29:12 -05:00
Eugene Yurtsev 3a41a2addc q 2024-12-16 22:04:21 -05:00
Eugene Yurtsev 3eca363c23 x 2024-12-16 22:01:53 -05:00
Eugene Yurtsev 2f1e864570 x 2024-12-16 22:00:41 -05:00
Eugene Yurtsev 79a1ce6804 x 2024-12-16 21:47:32 -05:00
Eugene YurtsevandGitHub deb99a9acb docs: Update langgraph cloud deploy quickstart
docs: update langgraph cloud deploy quickstart
2024-12-16 20:39:58 -05:00
William FHandGitHub 781d0cf27a [CLI] Handle dependencies js up --watch 2024-12-16 16:27:56 -08:00
William Fu-Hinthorn 8a02ddd868 [CLI] Handle dependencies js up --watch 2024-12-16 16:19:23 -08:00
Eugene Yurtsev 5f7dcbb07a x 2024-12-16 17:57:01 -05:00
Eugene Yurtsev 9615580a66 x 2024-12-16 17:55:29 -05:00
Eugene Yurtsev d45eb0f9f2 x 2024-12-16 17:49:38 -05:00
William FHandGitHub 4caa483478 [SDK] relax response typehint
So you can return a dict with extra args
2024-12-16 14:02:46 -08:00
William Fu-Hinthorn 006305f6a8 [SDK] relax response typehint 2024-12-16 11:28:21 -08:00
Vadym BardaandGitHub d9b7aaa5cc langgraph: relax constraints in ToolNode Command validation (#2778) 2024-12-16 14:00:45 -05:00
Vadym BardaandGitHub d2794eda0a langgraph: relax type annotation for Command.update (#2777)
Addresses #2758 , #2747
2024-12-16 14:00:23 -05:00
William FHandGitHub 9cbef9b542 [SDK] Add HTTPException type
To make it easier to raise exceptions with custom status codes in the imported file.
2024-12-16 09:01:15 -08:00
William Fu-Hinthorn 343dc2d37a [SDK] Add HTTPException type 2024-12-16 08:45:44 -08:00
David DuongandGitHub ca0ff1d334 Merge pull request #2774 from langchain-ai/dqbd/studio-datasets-navigation
docs: update studio index to add datasets
2024-12-16 20:14:46 +04:00
Tat Dat Duong f5663ffa49 docs: update studio index to add datasets 2024-12-16 16:44:43 +01:00
David DuongandGitHub e7477a9315 Merge pull request #2680 from langchain-ai/dqbd/add-to-dataset-docs
feat(studio): add Add to Dataset docs
2024-12-16 19:31:49 +04:00
Tat Dat Duong 18c083b60a Use S3 for assets 2024-12-16 16:24:05 +01:00
Vadym BardaandGitHub 2f0e3c66d1 docs: update structured output how-to guide (#2773)
Fixes #2760
2024-12-16 09:51:12 -05:00
ZapironandGitHub d9ec185e72 docs: Update correct ID for initial ToolNode hyperlink (#2767)
Automatically leads to the correct `ToolNode` section instead of the top
2024-12-16 09:15:34 -05:00
Denis Capkovic 721945b5ce Fix config cli type from Path -> str
Config parameter in `dev` was typed as pathlib.Path, but it is actually
a string. We need to manually create a Path from the string when parsing
the config.
2024-12-16 10:52:02 +01:00
William FHandGitHub 87fba0ecd0 [CLI] Add openapi param to config
For langraph api
2024-12-14 07:33:07 -08:00
William FHandGitHub 30e6b5482f Merge branch 'main' into wfh/cli/add_auth_env_var 2024-12-14 07:26:34 -08:00
William Fu-Hinthorn 77b42e0867 [CLI] Add openapi param to config 2024-12-14 07:25:14 -08:00
William FHandGitHub cbe92e3e55 [CLI] Add auth param to langgraph.json
Preliminary for supporting custom auth.
2024-12-13 17:09:09 -08:00
William Fu-Hinthorn 70f2efc9a1 Update dev 2024-12-13 17:01:01 -08:00
William Fu-Hinthorn dbf5b4920e [CLI] Add auth env var 2024-12-13 16:36:35 -08:00
William FHandGitHub 9291ae8646 Merge pull request #2761 from langchain-ai/wfh/auth/types
[SDK] Add auth types
2024-12-13 16:25:41 -08:00
William Fu-Hinthorn 2713082707 [SDK] Add auth types 2024-12-13 16:17:35 -08:00
Eugene YurtsevandGitHub 89eb938b30 docs: fix typo in example
Fix typo in thread config
2024-12-13 12:47:30 -05:00
Eugene Yurtsev 26e97492b7 add missing thread config 2024-12-13 12:39:26 -05:00
Vadym BardaandGitHub 4c3958f0be docs: update custom tool call snippet (#2754) 2024-12-13 09:42:13 -05:00
980b592631 Fixed the code snippet in the Update State From Tools tutorial (#2752)
Hi,

While reading the [update state from
tools](https://langchain-ai.github.io/langgraph/how-tos/update-state-from-tools/)
tutorial. I noticed that this code snippet contains a syntax error:

```python
def call_tools(state):
    ...
    commands = [tools_by_name[call["name"].invoke(call, config={"coerce_tool_content": False}) for tool_call in tool_calls]
    return commands
```

There is a missing closing bracket `]` in the list comprehension.
Additionally, the variable `call` inside the list comprehension is
undefined, it should be `tool_call`.

Here is a corrected version of the code:

```python
def call_tools(state):
    ...
    commands = [tools_by_name[tool_call["name"]].invoke(tool_call, config={"coerce_tool_content": False}) for tool_call in tool_calls]
    return commands
```

---------

Co-authored-by: Vadym Barda <vadim.barda@gmail.com>
2024-12-13 09:40:18 -05:00
Imad SaddikandGitHub e494869c72 Fixed the documentation for the persistence concept (#2750)
Hi,

I was reading the
[persistence](https://langchain-ai.github.io/langgraph/concepts/persistence/#update-state)
concept in LangGraph and found a sentence with a missing verb, so I
fixed it.
2024-12-13 09:38:17 -05:00
da0aac7556 Updating MongoDB checkpointer docs (#2743)
This PR updates the [How-to
guide](https://langchain-ai.github.io/langgraph/how-tos/persistence_mongodb/)
on using the MongoDB checkpointer.

The guide currently explains how to create a custom MongoDB
checkpointer, but we now have a checkpointer implementation available
via the `langgraph-checkpoint-mongodb` library. This PR updates the
current resource to guide users on how to use this implementation.

---------

Co-authored-by: ajosh0504 <apoorva.joshi@mongodb.com>
Co-authored-by: vbarda <vadym@langchain.dev>
2024-12-12 15:31:57 -05:00
Vadym BardaandGitHub a200027cda checkpoint: release 2.0.9 (#2744) 2024-12-12 15:06:54 -05:00
Eugene YurtsevandGitHub 8cd57f7457 Merge pull request #2742 from langchain-ai/eugene/more_info_in_human_in_the_loop
concepts: HIL add more context to interrupt section
2024-12-12 14:55:00 -05:00
Nuno Campos 26c1f1ee7a sdk-py 0.1.44 2024-12-12 11:48:20 -08:00
Eugene Yurtsev 33af251a09 x 2024-12-12 14:01:33 -05:00
Eugene YurtsevandGitHub 17dc588c81 docs: concepts HIL add example w/ subgraph call
Add an example with subgraph call to illustrate the flow
2024-12-12 12:02:36 -05:00
Eugene Yurtsev 258060593b x 2024-12-12 11:54:04 -05:00
Vadym BardaandGitHub fbe513835f docs: update type annotations (#2739) 2024-12-12 11:53:55 -05:00
Eugene Yurtsev f319b1e107 x 2024-12-12 11:50:09 -05:00
Nuno CamposandGitHub cbb7348998 Merge pull request #2736 from langchain-ai/nc/12dec/sdk-command-keys
sdk-py: Strip out unused keys in command parameter
2024-12-12 08:18:19 -08:00
Nuno CamposandGitHub 2d8246e7c4 Merge pull request #2735 from langchain-ai/vb/relax-strict-keys
checkpoint: set strict_map_key=False in serde
2024-12-12 08:15:48 -08:00
Nuno Campos e5ea4f51c7 sdk-py: Strip out unused keys in command parameter 2024-12-12 08:10:43 -08:00
vbarda a031f8294e all lines 2024-12-12 11:06:45 -05:00
vbarda 7d940a4a96 lint 2024-12-12 10:58:50 -05:00
vbarda 6ae0c83c83 checkpoint: set strict_map_key=False in serde 2024-12-12 10:58:07 -05:00
Vadym BardaandGitHub 083a14c2c5 docs: update how-to to remove agent wrapper (#2721) 2024-12-12 08:15:17 -05:00
Nuno CamposandGitHub e4db5c2ca4 Merge pull request #2728 from langchain-ai/nc/11dec/more-tests
lib: Add more tests
2024-12-11 17:41:47 -08:00
Nuno Campos 1d2b50e438 Fix 2024-12-11 17:34:21 -08:00
Nuno Campos 5146c9fcdf Disable for old py 2024-12-11 17:04:58 -08:00
Nuno Campos e8a2f7ef92 lib: Add more tests
- add more unit tests (courtesy of claude)
- move tests with large assertions to separate file
2024-12-11 16:20:53 -08:00
Vadym BardaandGitHub 0400c5236e docs: update redis how-to (#2727)
Fixes #2712
2024-12-11 23:22:47 +00:00
Vadym BardaandGitHub 67f96063e2 docs: update min lib version for howto (#2726) 2024-12-11 17:11:57 -05:00
Vadym BardaandGitHub 44cdbc781f langgraph: release 0.2.59 (#2725) 2024-12-11 16:45:13 -05:00
Vadym BardaandGitHub f642fb6545 langgraph[fix]: pass config to tools (#2724)
Fixes #2723
2024-12-11 21:43:29 +00:00
Andrew NguonlyandGitHub ff3bc2f982 docs: Add details about Cloud SaaS deployment time (#2722) 2024-12-11 13:19:19 -08:00
William FHandGitHub e1925a8dcb Merge pull request #2720 from langchain-ai/wfh/docs/missing_backticks 2024-12-11 12:34:51 -08:00
William FHandGitHub fe83a151bb Merge branch 'main' into wfh/docs/missing_backticks 2024-12-11 12:34:38 -08:00
William Fu-Hinthorn d18c9449ec [docs] Add missing backicks 2024-12-11 12:33:33 -08:00
Eugene YurtsevandGitHub 12a15c3cb4 docs: document interrupt & HIL
- Document interrupt reference
- Update conceptual guides for HIL
- Split time-travel conceptual guide
- Split breakpoints into separate conceptual guide
- Update relevant how-tos
- Update how-to index page for HIL with more information and recommendations
- New how-to for multi turn conversation
2024-12-11 14:00:21 -05:00
Eugene Yurtsev 189358cb91 one more link fix 2024-12-11 13:22:17 -05:00
Eugene YurtsevandGitHub d16004c0b6 Merge branch 'main' into eugene/document_interrupt 2024-12-11 13:14:01 -05:00
Eugene Yurtsev fdf19a5be9 x 2024-12-11 13:12:29 -05:00
Eugene Yurtsev d24ce62c3f x 2024-12-11 13:10:42 -05:00
Eugene Yurtsev 3ffed8d38d x 2024-12-11 13:08:57 -05:00
vbarda 25d4512744 update cassettes 2024-12-11 13:03:27 -05:00
Eugene Yurtsev 630195a108 fix one more link 2024-12-11 12:50:32 -05:00
Eugene YurtsevandGitHub 475e16b8ed Merge pull request #2718 from langchain-ai/eugene/fix_links
fix links
2024-12-11 12:43:19 -05:00
Eugene Yurtsev 32702dea08 x 2024-12-11 12:42:54 -05:00
Eugene Yurtsev 3db266bb93 x 2024-12-11 12:41:03 -05:00
Eugene Yurtsev 11ce54d7e4 x 2024-12-11 12:39:53 -05:00
Eugene Yurtsev 54a5e45d21 x 2024-12-11 12:37:54 -05:00
vbarda 0ad470162c fix links 2024-12-11 11:54:19 -05:00
Eugene YurtsevandGitHub 37436c5cd6 Merge pull request #2717 from langchain-ai/eugene/breakpoints_take_one_hundred
re-org concepts
2024-12-11 11:42:15 -05:00
Eugene Yurtsev 7f48428d16 x 2024-12-11 11:41:00 -05:00
Eugene Yurtsev d9c0a5d827 x 2024-12-11 11:40:09 -05:00
Eugene Yurtsev 6907d1b775 x 2024-12-11 11:32:33 -05:00
Eugene YurtsevandGitHub bec3055561 Merge pull request #2714 from langchain-ai/eugene/add_more_hil_patterns
Beef up concept, remove how to
2024-12-11 11:09:05 -05:00
Eugene YurtsevandGitHub 2f535a803c Merge pull request #2716 from langchain-ai/eugene/document_command
concepts: document command as HIL
2024-12-11 11:08:57 -05:00
Eugene Yurtsev fbb11a6d2e x 2024-12-11 11:08:24 -05:00
Eugene YurtsevandGitHub 3f348e3268 Merge pull request #2715 from langchain-ai/eugene/fix_typo_123
fix typo
2024-12-11 11:05:14 -05:00
Eugene Yurtsev 6b80fa6718 x 2024-12-11 11:02:28 -05:00
Eugene Yurtsev 82fa597e84 x 2024-12-11 10:58:58 -05:00
Eugene Yurtsev f6c44ec154 x 2024-12-11 10:58:10 -05:00
vbarda a03900be7a minor fix 2024-12-11 09:56:20 -05:00
vbarda 7144f7db41 typos 2024-12-11 09:24:48 -05:00
Eugene YurtsevandGitHub 8f1db66c17 Merge pull request #2711 from langchain-ai/eugene/more_changes
more changes
2024-12-10 23:54:57 -05:00
Eugene Yurtsev c2556aa2fe x 2024-12-10 23:54:15 -05:00
Eugene YurtsevandGitHub d468655f62 Merge pull request #2710 from langchain-ai/eugene/more_concept_work
more concepts changes
2024-12-10 23:25:01 -05:00
Eugene Yurtsev 6153c777fb x 2024-12-10 23:24:26 -05:00
Eugene Yurtsev a4d49b4e77 x 2024-12-10 23:23:58 -05:00
Eugene Yurtsev 789c732866 x 2024-12-10 22:52:17 -05:00
Eugene YurtsevandGitHub 51f85ffa84 Merge pull request #2709 from langchain-ai/eugene/update_index_page
langgraph: update index page
2024-12-10 22:21:42 -05:00
Eugene Yurtsev 31dd6c65a9 x 2024-12-10 22:20:55 -05:00
Eugene YurtsevandGitHub cb225dde7f Merge pull request #2708 from langchain-ai/eugene/wait_for_user_input_improve
wait for user input improvements
2024-12-10 21:53:52 -05:00
Eugene Yurtsev 0cb530e588 x 2024-12-10 21:53:19 -05:00
Eugene YurtsevandGitHub f0f3e11b0e Merge pull request #2707 from langchain-ai/eugene/fix_typos
fix typo
2024-12-10 21:39:09 -05:00
Eugene YurtsevandGitHub 55fbff89f4 Merge pull request #2706 from langchain-ai/eugene/update_breakpoints_2
docs: update resume link
2024-12-10 21:38:43 -05:00
Eugene Yurtsev 327bb369d7 x 2024-12-10 21:38:20 -05:00
Eugene YurtsevandGitHub 30eb2d00e2 Merge pull request #2703 from langchain-ai/vb/update-wait-for-input
docs: update wait for user input how-to
2024-12-10 21:34:46 -05:00
Eugene Yurtsev 45d1033092 x 2024-12-10 21:32:31 -05:00
Eugene Yurtsev 5a0ae2157c update resume link 2024-12-10 21:22:00 -05:00
Eugene YurtsevandGitHub e001b7a35f Merge pull request #2702 from langchain-ai/eugene/update_more_docs
eugene/update more docs
2024-12-10 21:18:49 -05:00
Eugene YurtsevandGitHub a41b9bb83c Merge pull request #2704 from langchain-ai/eugene/update_glossary 2024-12-10 21:18:34 -05:00
vbarda 04f6a6ccd1 update 2024-12-10 21:13:38 -05:00
Andrew NguonlyandGitHub ce15790210 docs: Add section about Cloud SaaS autoscaling (#2705) 2024-12-10 16:58:25 -08:00
Eugene Yurtsev 04b76f55a0 x 2024-12-10 18:23:51 -05:00
vbarda f52a8728ff docs: update wait for user input how-to 2024-12-10 18:19:33 -05:00
Eugene Yurtsev 686ee31b75 x 2024-12-10 18:10:55 -05:00
Eugene Yurtsev 47dcb2d105 x 2024-12-10 18:10:14 -05:00
Eugene Yurtsev 3a611fb20d update dynamic breakpoints 2024-12-10 18:09:07 -05:00
Eugene Yurtsev baa88f3c97 x 2024-12-10 17:56:48 -05:00
Vadym BardaandGitHub 79aa88812d docs: update reivew tool calls how-to (#2700) 2024-12-10 17:38:48 -05:00
Eugene Yurtsev 81436ceef8 x 2024-12-10 17:22:22 -05:00
Nuno Campos 2b70dba0e0 0.2.58 2024-12-10 14:09:11 -08:00
Eugene Yurtsev e14a6cf98b Add multi turn conversation input 2024-12-10 17:06:08 -05:00
Nuno CamposandGitHub dc0398efd1 Merge pull request #2661 from langchain-ai/nc/5dec/perf
lib: Performance improvements
2024-12-10 14:04:02 -08:00
David DuongandGitHub 02f1904ba7 Merge pull request #2699 from langchain-ai/dqbd/sdk-js-0.0.32
feat(sdk-js): bump to 0.0.32
2024-12-11 02:00:21 +04:00
Nuno Campos 30f852e7b2 Fix 2024-12-10 13:56:26 -08:00
Tat Dat Duong 7fc6c4b1fa feat(sdk-js): bump to 0.0.32 2024-12-10 22:52:51 +01:00
Nuno Campos 7f8ec2c590 Fix 2024-12-10 13:46:45 -08:00
Vadym BardaandGitHub 611588613d docs: add an FAQ note for command vs cond edge (#2697) 2024-12-10 15:16:02 -05:00
Nuno Campos 11e80210a2 lib: Performance improvements
- don't create contextvars.Context/asyncio.Task in RunnableSeq (not needed as each step creates it if necessary)
- don't run in-memory-saver methods in background threads (no point as they hold the gil)
- avoid calling should_interrupt when no interrupts set
2024-12-10 11:40:24 -08:00
Nuno CamposandGitHub 60d742ea48 Merge pull request #2683 from langchain-ai/nc/9dec/invoke-command-goto
lib: Add support for invoke(Command(goto=<str>))
2024-12-10 11:39:10 -08:00
Nuno Campos a7ac9ffd4e Update test 2024-12-10 11:31:41 -08:00
Vadym BardaandGitHub 3d97b97c86 fix typo (#2696) 2024-12-10 14:19:23 -05:00
Nuno CamposandGitHub a7d1ecbb74 Merge pull request #2693 from langchain-ai/eugene/fix_test
langgraph[patch]: Fix unit test for Command(update)
2024-12-10 11:09:11 -08:00
vbarda 61f362f16e update dynamic breakpoints 2024-12-10 14:07:08 -05:00
Eugene YurtsevandNuno Campos 7cabc0a3dc reformat 2024-12-10 11:04:07 -08:00
Eugene YurtsevandNuno Campos f9cdfd3ac4 x 2024-12-10 11:03:56 -08:00
Eugene YurtsevandNuno Campos dd778f8ed6 qxqx 2024-12-10 11:03:56 -08:00
Nuno Campos df5d08f689 Fix 2024-12-10 11:03:01 -08:00
Nuno Campos a9b94f93ee Update again 2024-12-10 11:03:01 -08:00
Nuno Campos 5f869b9e75 Update test 2024-12-10 11:03:01 -08:00
Nuno Campos 79562f3f37 lib: Add support for invoke(Command(goto=<str>)) 2024-12-10 11:03:01 -08:00
Nuno Campos 081b2cbdcf Fix 2024-12-10 11:01:25 -08:00
Eugene YurtsevandNuno Campos 70eeb2a670 x 2024-12-10 11:00:58 -08:00
Nuno CamposandGitHub 0f287d986b Merge pull request #2695 from langchain-ai/nc/10dec/multistep-plan
lib: Add unit test for multistep planner graph
2024-12-10 10:54:37 -08:00
Nuno CamposandGitHub 1fd9da6718 Merge pull request #2691 from langchain-ai/dqbd/enhanced-config-type-extraction
fix(config): extract default values, description from pydantic models, typeddict and dataclass
2024-12-10 10:44:24 -08:00
Nuno Campos ef6c5b4711 lib: Add unit test for multistep planner graph 2024-12-10 10:40:49 -08:00
Eugene Yurtsev 77fe51fbe4 Merge branch 'main' into eugene/document_interrupt 2024-12-10 13:17:47 -05:00
Vadym BardaandGitHub 70a5ef6713 docs: small updates (#2694) 2024-12-10 12:02:24 -05:00
Tat Dat Duong 17c1a8db46 Fix lint 2024-12-10 17:42:01 +01:00
Vadym BardaandGitHub 97a51014c3 docs: add a how-to on updating state from tools (#2670) 2024-12-10 11:20:50 -05:00
Tat Dat Duong 5a30fc6a87 Handle PydanticUndefined, add tests 2024-12-10 17:06:37 +01:00
Tat Dat Duong 1f68bd0d83 Move to langgraph.utils.fields 2024-12-10 16:49:05 +01:00
vbarda fdfc5d9cda Revert "langgraph: release 0.2.58 (#2692)"
This reverts commit a9f5507006.
2024-12-10 10:35:01 -05:00
Vadym BardaandGitHub 1c3f65c931 docs: add tool use for Command concepts (#2669)
To be merged after #2656
2024-12-10 10:22:17 -05:00
Vadym BardaandGitHub a9f5507006 langgraph: release 0.2.58 (#2692) 2024-12-10 10:19:59 -05:00
Vadym BardaandGitHub 59bfa5d009 langgraph: allow tools to return Command in tool node (#2656) 2024-12-10 10:18:04 -05:00
Tat Dat Duong b4f11929f8 fix(config): extract default values, description from pydantic models, typeddict and dataclass 2024-12-10 15:24:56 +01:00
Vadym BardaandGitHub 038bec2e78 update callout (#2689) 2024-12-09 23:27:44 -05:00
Eugene Yurtsev 01cdb60b5d x 2024-12-09 23:14:19 -05:00
Eugene Yurtsev 5bfb9af5fe x 2024-12-09 22:53:35 -05:00
Eugene Yurtsev ac48612abb x 2024-12-09 22:51:06 -05:00
Eugene Yurtsev 73fb725f0c add pngs 2024-12-09 22:50:33 -05:00
Eugene Yurtsev b98a1337a5 x 2024-12-09 22:50:16 -05:00
Vadym BardaandGitHub c2a41039de docs: remove GraphCommand references (#2688) 2024-12-09 22:44:47 -05:00
33fe467d1f lib: Treat Command as "resuming" signal (#2682)
- so it works w interrupt_before/after

---------

Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-12-09 21:22:53 -05:00
Vadym BardaandGitHub 43b6c06f5c docs: update Command concept doc (#2686) 2024-12-09 21:19:16 -05:00
Vadym BardaandGitHub d81dec653d docs: temporarily fix link (#2685) 2024-12-09 21:09:32 -05:00
Vadym BardaandGitHub e1d8c6b113 docs: update multi-agent concept doc (#2684) 2024-12-09 21:01:14 -05:00
Vadym BardaandGitHub a64f9f80c0 docs: add a how to for multi-agent network (#2675) 2024-12-09 20:18:29 -05:00
Eugene Yurtsev a879de51f1 x 2024-12-09 18:13:39 -05:00
Eugene Yurtsev 60ab76c3e9 x 2024-12-09 18:12:17 -05:00
Eugene Yurtsev 09e9117674 x 2024-12-09 17:24:59 -05:00
Eugene Yurtsev acac19b95b x 2024-12-09 16:49:51 -05:00
Eugene Yurtsev 723bcfeaa2 x 2024-12-09 15:27:00 -05:00
Eugene Yurtsev c279421cbf x 2024-12-09 14:46:06 -05:00
Tat Dat Duong df1e48154a feat(studio): add Add to Dataset docs 2024-12-09 19:22:41 +01:00
Eugene Yurtsev d0bf7837bd x 2024-12-09 11:25:21 -05:00
Nuno CamposandGitHub a403e802fa Merge pull request #2679 from langchain-ai/nc/9dec/imperative-generator
lib: imperative api: Generators use yield to publish stream_mode=custom events
2024-12-09 08:22:31 -08:00
Nuno Campos e0a0958a60 lib: imperative api: Generators use yield to publish stream_mode=custom events 2024-12-09 08:14:41 -08:00
William FHandGitHub 3f1bdb9ebf Add sync support for the AsyncPostgresStore (#2673) 2024-12-09 07:12:52 -08:00
Nuno Campos b37c9d8a01 0.2.57 2024-12-07 11:49:10 -08:00
Nuno CamposandGitHub 1af1911aad Merge pull request #2378 from langchain-ai/nc/8nov/send-future
Imperative API
2024-12-07 11:48:45 -08:00
Eugene Yurtsev b4f7e06a1d x 2024-12-06 22:42:41 -05:00
Eugene Yurtsev 1dda28f8fb x 2024-12-06 22:31:28 -05:00
Eugene Yurtsev cc4718c5cb x 2024-12-06 22:31:18 -05:00
Eugene Yurtsev 0d580bdac7 x 2024-12-06 22:31:11 -05:00
Eugene Yurtsev a19d06e18c x 2024-12-06 17:00:18 -05:00
Eugene Yurtsev e16312da3f x 2024-12-06 16:52:33 -05:00
Nuno CamposandGitHub 6784a5a5b1 Merge pull request #2667 from langchain-ai/nc/6dec/support-mixed-list
lib: Support returning mixed list of commands and state updates
2024-12-06 08:31:03 -08:00
Nuno Campos 4e0e9a4eff Fix 2024-12-06 08:20:41 -08:00
Nuno Campos 015bf5e0a6 Add tests, missing return stmt 2024-12-06 08:17:50 -08:00
Nuno Campos 85fc26db43 lib: Support returning mixed list of commands and state updates 2024-12-06 08:03:26 -08:00
Vadym BardaandGitHub 5fa80e2a92 docs: update multi-agent tutorials to use Command (#2643) 2024-12-06 15:18:12 +00:00
Eugene Yurtsev 5e13460604 x 2024-12-05 23:31:54 -05:00
Eugene Yurtsev 750b97349e x 2024-12-05 21:32:10 -05:00
Eugene Yurtsev 6230c46830 x 2024-12-05 21:27:18 -05:00
William FHandGitHub 93e4c8cc1f Create index concurrently (#2659) 2024-12-05 15:56:39 -08:00
Nuno CamposandGitHub b7e441d781 Merge pull request #2658 from langchain-ai/nc/5dec/return-multiple-commands
lib: Add support for returning multiple commands from a node
2024-12-05 15:16:06 -08:00
Nuno Campos ccd8920eef Lint 2024-12-05 15:09:13 -08:00
Vadym BardaandGitHub 0c379d6cc7 fix docstring (#2660) 2024-12-05 17:55:25 -05:00
Eugene Yurtsev 01b1080b6e x 2024-12-05 17:26:55 -05:00
Eugene Yurtsev 62ff2eb32d x 2024-12-05 17:16:34 -05:00
Nuno Campos 1f745ca017 Lint 2024-12-05 13:50:42 -08:00
Nuno Campos aa4fea48dd lib: Add support for returning multiple commands from a node 2024-12-05 13:47:38 -08:00
Eugene Yurtsev 4fd261765a x 2024-12-05 15:46:26 -05:00
William FHandGitHub 0f0e31df24 Nicer item repr (#2655) 2024-12-05 10:52:44 -08:00
Nuno CamposandGitHub a275ab26d3 Merge pull request #2468 from cab938/issue2159
feat: Make CompiledGraph displayable in Jupyter with display()
2024-12-05 10:03:40 -08:00
William FHandGitHub b3bf4dd43c [docs] Update guidance on min bounds for deployment (#2652) 2024-12-05 17:50:36 +00:00
David DuongandGitHub b7fd391811 Merge pull request #2653 from langchain-ai/dqbd/sdk-command
fix(sdk-js): rename Command["send"] to `goto`
2024-12-05 20:49:47 +04:00
Tat Dat Duong cf961a286c fix(sdk-js): rename Command["send"] to goto 2024-12-05 17:14:07 +01:00
Vadym BardaandGitHub 4b83103cf2 docs: relax pinned version in langgraph server tutorial (#2651) 2024-12-05 09:11:00 -05:00
William FHandGitHub 1a46537c3a Codeblock ref rendering (#2649) 2024-12-05 05:48:00 -08:00
Eugene Yurtsev 0a49f3003b x 2024-12-04 22:57:48 -05:00
Eugene Yurtsev e80098e297 x 2024-12-04 22:38:55 -05:00
Eugene Yurtsev 3d3647cd85 x 2024-12-04 22:36:43 -05:00
Eugene Yurtsev 291379dfb9 x 2024-12-04 22:32:11 -05:00
Eugene Yurtsev 9f93e48a67 x 2024-12-04 22:19:32 -05:00
Eugene Yurtsev de123d66a5 Merge branch 'main' into eugene/document_interrupt 2024-12-04 21:30:55 -05:00
Nuno CamposandGitHub 759a712f57 Merge pull request #2502 from langchain-ai/vb/fix-annotation
langgraph: fix issue w/ type annotations in tools_condition
2024-12-04 20:47:21 -05:00
Nuno Campos 9f73dfa8d5 Fix 2024-12-04 17:43:05 -08:00
Nuno CamposandGitHub 4459952e72 Merge branch 'main' into issue2159 2024-12-04 20:42:03 -05:00
Nuno Campos 8ef82f3578 Update 2024-12-04 17:40:27 -08:00
Nuno CamposandGitHub 73e3f5a5b0 Merge pull request #2517 from langchain-ai/eugene/how_to_use_tempalte
docs: Add template quickstart
2024-12-04 20:37:04 -05:00
Nuno Campos a54587cff5 Remove unknown arg 2024-12-04 17:33:54 -08:00
Nuno Campos 63ea71548b sdk-py 0.1.43 2024-12-04 17:27:24 -08:00
Nuno CamposandGitHub f32cf5e984 Merge pull request #2642 from langchain-ai/nc/4dec/fix-stream-params
sdk-py: Handle stream(params=)
2024-12-04 20:26:59 -05:00
Nuno Campos d1aaa9de8c sdk-py: Handle stream(params=) 2024-12-04 17:25:51 -08:00
Nuno Campos f40a2d71ec lib 0.2.56 2024-12-04 17:15:17 -08:00
Nuno CamposandGitHub b5a9e9da55 Merge pull request #2635 from langchain-ai/vb/add-graph-command-docs
docs: add Command docs
2024-12-04 20:14:35 -05:00
vbarda 1eeb90ae0d cr 2024-12-04 19:41:21 -05:00
William FHandGitHub cd875291ad Link to conceptual doc (#2641) 2024-12-05 00:21:01 +00:00
e9cd216887 Update docs/docs/concepts/low_level.md
Co-authored-by: Nuno Campos <nuno@langchain.dev>
2024-12-04 19:18:37 -05:00
7651f1ab1c Update libs/langgraph/langgraph/types.py
Co-authored-by: Nuno Campos <nuno@langchain.dev>
2024-12-04 19:17:22 -05:00
1a492f727c Update libs/langgraph/langgraph/types.py
Co-authored-by: Nuno Campos <nuno@langchain.dev>
2024-12-04 19:16:33 -05:00
6caaa8cea7 Update libs/langgraph/langgraph/types.py
Co-authored-by: Nuno Campos <nuno@langchain.dev>
2024-12-04 19:16:26 -05:00
Vadym BardaandGitHub f028984b2e langgraph: remove print (#2640) 2024-12-04 19:07:50 -05:00
vbarda 085395c824 rename 2024-12-04 19:04:42 -05:00
vbarda 19a6e894eb more updates 2024-12-04 19:02:49 -05:00
vbarda 5570121c83 update 2024-12-04 18:56:46 -05:00
vbarda 257e44ccb4 update 2024-12-04 18:54:57 -05:00
Eugene YurtsevandGitHub dad0f39fa4 concepts: reword network architecture (#2625) 2024-12-04 23:49:17 +00:00
Nuno Campos 7a326ef768 lib 0.2.55 2024-12-04 15:44:24 -08:00
Nuno Campos 2fa2469967 Update 2024-12-04 15:39:16 -08:00
Nuno Campos de86a46b3d Comment 2024-12-04 15:39:16 -08:00
Nuno Campos 9733db03c5 Wait until next tick to start send task 2024-12-04 15:39:16 -08:00
Nuno Campos e1f65012e6 Fix 2024-12-04 15:39:16 -08:00
Nuno Campos eb593d47dd Fix writes for task being saved against next checkpoint id 2024-12-04 15:39:16 -08:00
Nuno Campos 4e8f4ce440 Update 2024-12-04 15:39:16 -08:00
Nuno Campos 007d7e72b1 Add test for cancellation 2024-12-04 15:39:16 -08:00
Nuno Campos 2b77fdabee Lint 2024-12-04 15:39:16 -08:00
Nuno Campos 40d16593c7 Lint 2024-12-04 15:39:16 -08:00
Nuno Campos ec7bbe14b2 Lint 2024-12-04 15:39:16 -08:00
Nuno Campos 4c6323c585 Lint 2024-12-04 15:39:16 -08:00
Nuno Campos 2fe38f3940 Fix get_state 2024-12-04 15:39:16 -08:00
Nuno Campos 09ca964714 Wire up retry policy 2024-12-04 15:39:16 -08:00
Nuno Campos 0663d46c47 Rename 2024-12-04 15:39:16 -08:00
Nuno Campos a91dbf9b70 Lint 2024-12-04 15:38:43 -08:00
Nuno Campos d93be914c7 Fix stream order 2024-12-04 15:38:43 -08:00
Nuno Campos 287c29fbdc Fix async 2024-12-04 15:38:15 -08:00
Nuno Campos 90dd2b01b6 Comment 2024-12-04 15:38:15 -08:00
Nuno Campos a443b3b256 Fix 2024-12-04 15:38:15 -08:00
Nuno Campos 2e9aea6fc8 Lint 2024-12-04 15:38:15 -08:00
Nuno Campos 2895a69678 Lint 2024-12-04 15:38:15 -08:00
Nuno Campos 76a209835f Comments 2024-12-04 15:37:56 -08:00
Nuno Campos 872f54adf1 Get it working with interrupt (sync) 2024-12-04 15:37:56 -08:00
Nuno Campos 01a3c23a29 WIP 2024-12-04 15:37:56 -08:00
Nuno Campos 0461d45d76 Finish impl 2024-12-04 15:37:31 -08:00
Nuno Campos 7d8205633d Add call function to call a node and get a future
- Whereas Send is for fire-and-forget type of calls, new `call` and `acall` functions are for flows where you want to wait for the node to finish before doing something else
- Because we return regular python future objects (concurrent.futures.Future or asyncio.Future) all the python primitives for working with futures work, eg. wait, gather, etc
2024-12-04 15:37:31 -08:00
vbarda 797b919cf9 Merge branch 'main' into vb/add-graph-command-docs 2024-12-04 18:37:20 -05:00
Nuno CamposandGitHub 574ffb02fc Merge pull request #2639 from langchain-ai/nc/4dec/speed-up-tests
Speed up tests
2024-12-04 18:37:03 -05:00
Nuno Campos 771b9b28cd Speed up tests 2024-12-04 15:29:51 -08:00
Nuno CamposandGitHub dcc2617396 Merge pull request #2638 from langchain-ai/nc/4dec/command
lib: Merge GraphCommand and Command
2024-12-04 18:26:11 -05:00
Nuno Campos df70e91dae Lint 2024-12-04 15:13:55 -08:00
Nuno Campos b4b3ac6f57 lib: Merge GraphCommand and Command
- Now we have only Command
- Command(goto=) combines the previous functionality of Command(send=) and Command(goto=)
2024-12-04 15:12:03 -08:00
Nuno CamposandGitHub 78e6b36b1a Merge pull request #2636 from langchain-ai/nc/4dec/interrupt-loop
lib: Add support for multiple interrupts per node
2024-12-04 17:58:26 -05:00
William FHandGitHub d457ad3cc2 Clean up code snippet (#2637) 2024-12-04 14:50:23 -08:00
Nuno Campos 5c7a6689af Update tests 2024-12-04 14:41:30 -08:00
Nuno Campos fb01d65dc0 Lint 2024-12-04 14:31:22 -08:00
Eugene Yurtsev c75bfc1032 x 2024-12-04 17:22:09 -05:00
Eugene Yurtsev 6dc70b703d x 2024-12-04 17:21:47 -05:00
Eugene Yurtsev eb09909c22 x 2024-12-04 17:21:31 -05:00
Nuno Campos ea5ccd7a80 lib: Add support for multiple interrupts per node
- Includes support for interrupt loops
2024-12-04 14:15:30 -08:00
vbarda d52bb911a4 lint 2024-12-04 16:50:56 -05:00
Vadym BardaandGitHub 89a739e12b Merge branch 'main' into vb/add-graph-command-docs 2024-12-04 16:48:05 -05:00
vbarda 0fdf3c9daf cr 2024-12-04 16:47:51 -05:00
vbarda 90eab07ded docs: add Command/GraphCommand docs 2024-12-04 15:46:40 -05:00
William FHandGitHub 962a969fba Update link (#2634) 2024-12-04 12:09:04 -08:00
William FHandGitHub c89e84fb6a nit: Spelling (#2633) 2024-12-04 10:24:35 -08:00
William FHandGitHub 3ff1f81333 Add doc to index (#2632) 2024-12-04 18:19:14 +00:00
Vadym BardaandGitHub 851e6d1d4c issue template: replace langchain w/ langgraph (#2631) 2024-12-04 12:51:00 -05:00
William FHandGitHub e5e659c590 Add langgraph.json snippet to concept doc (#2630) 2024-12-04 17:11:13 +00:00
Eugene YurtsevandGitHub 8db6a78ad9 ci: update bug template (#2626) 2024-12-04 12:08:21 -05:00
Nuno CamposandGitHub 9ab5fbc0f8 Merge pull request #2627 from langchain-ai/nc/4dec/state-ensure-config
lib: Call ensure_config in state crud methods
2024-12-04 11:53:03 -05:00
William FHandGitHub c141f0fdf0 Add memory how-to (#2629) 2024-12-04 08:39:53 -08:00
William FHandGitHub 830557d6b7 Clarify behavior in docstring (#2628) 2024-12-04 16:38:09 +00:00
Nuno Campos e5b00cdd1e Fix 2024-12-04 08:30:10 -08:00
Nuno Campos 8eea7ac401 lib: Call ensure_config in state crud methods
- this ensures that config from context vars is merged in
2024-12-04 08:15:01 -08:00
William FHandGitHub c322f7ffa6 Add Memory Store conceptual doc section (#2624)
On semantic search
2024-12-04 15:19:49 +00:00
William FHandGitHub e6c83abecd Fix ref doc formatting (#2623) 2024-12-04 06:55:15 -08:00
ACMCMCandGitHub a8db511e24 Fix typo (#2620) 2024-12-04 06:30:05 -08:00
湛露先生andGitHub 84d33f9621 Fix typos in langgraph_sdk client. (#2621)
Fix typos in langgraph_sdk client.

Signed-off-by: zhanluxianshen <zhanluxianshen@163.com>
2024-12-04 06:29:28 -08:00
William FHandGitHub 9220049b35 Add store langgraph.json config ref (#2622) 2024-12-04 06:28:54 -08:00
William FHandGitHub 879df6b52c [JS] Update SDK version (#2619) 2024-12-03 23:01:19 -08:00
William FHandGitHub 9b8bf70d9e Add link to local studio testing (#2617) 2024-12-04 04:36:59 +00:00
Phoenix LoganandGitHub aca67107c1 fix: make database saver classes inheritance-friendly (#2615)
Replace hardcoded database saver class names with `cls` in
`from_conn_string` factory methods to improve subclassing support

## Changes
* Replaced direct class instantiations with `cls(conn)` in
`from_conn_string` classmethods across all database implementations
* Updated both synchronous and asynchronous variants for DuckDB,
PostgreSQL, and SQLite savers

## Why
This refactor makes the database saver classes more extensible by
following Python's convention of using `cls` in class methods. This
enables proper inheritance patterns where subclasses can reuse the
factory methods without needing to override them. Previously, the
hardcoded class names would always instantiate the parent class, even
when called from a subclass.

## Testing
The change is backward compatible and doesn't alter existing
functionality. All existing tests should continue to pass as this is
purely a structural refactoring that preserves the current behavior
while improving extensibility.

## Notes
This PR addresses follow up on comments from #2518 - AsyncPostgresSaver
didn't need to be fixed but many of the other DB saver classes did.
2024-12-03 20:26:06 -08:00
William FHandGitHub 5fa196ab38 Update docstrings for store classes (#2616) 2024-12-03 19:51:25 -08:00
Nuno CamposandGitHub 584d9271ce Merge pull request #2614 from langchain-ai/nc/3dec/handle-command
Handle Command returned from node (in addition to GraphCommand)
2024-12-03 19:05:05 -05:00
Nuno Campos 1bee33db3a Fix 2024-12-03 15:52:41 -08:00
Nuno Campos a203ddecf7 Handle Command returned from node (in addition to GraphCommand) 2024-12-03 15:48:59 -08:00
Vadym BardaandGitHub 5e3c326424 langgraph: bump sdk, release 0.2.54 (#2613) 2024-12-03 16:38:59 -05:00
Nuno CamposandGitHub 86407aa6e8 Merge pull request #2071 from langchain-ai/brace/doc-nits
fix(docs): Small nits & typo fixes
2024-12-03 16:38:36 -05:00
Vadym BardaandGitHub 7a80d6cb87 sdk-py: release 0.1.42 (#2612) 2024-12-03 16:34:08 -05:00
Nuno Campos 70f323779e Update persistence.md 2024-12-03 16:26:36 -05:00
23d5162945 Update human_in_the_loop.md
Co-authored-by: Vadym Barda <vadym@langchain.dev>
2024-12-03 16:26:36 -05:00
bracesproulandNuno Campos 9d755f54e4 fix(docs): Small nits & typo fixes 2024-12-03 16:26:36 -05:00
Nuno CamposandGitHub 75cccc4fc4 Merge pull request #2589 from stneng/main
fix: get correct reducer when type has multiple metadata.
2024-12-03 16:23:33 -05:00
Nuno CamposandGitHub dd010e9230 Merge pull request #2593 from langchain-ai/nc/2dec/sdk-sse
sdk-py: Fix SSE parsing to split lines only \n \r , remove httpx-sse, fix missing decoder flush
2024-12-03 16:23:11 -05:00
Nuno CamposandGitHub 2d87195b59 Merge pull request #2611 from langchain-ai/vb/remote-graph-kwargs
langgraph: allow passing kwargs to SDK methods in RemoteGraph's invoke/stream
2024-12-03 16:21:09 -05:00
vbarda 515242d0ba langgraph: allow passing kwargs to SDK methods in RemoteGraph's invoke/stream 2024-12-03 15:40:18 -05:00
Nuno Campos 3bf92d0b03 Fix 2024-12-03 11:04:28 -08:00
William FHandGitHub 36b6cd1493 fix: Handle empty store similarity (numpy) (#2602) 2024-12-02 18:20:19 -08:00
William FHandGitHub 0361554fcf Bump Checkpoint Postgres (#2601) 2024-12-02 17:56:23 -08:00
4332a9515d Fixup initial provisioning of aio postgres db (#2571) (#2600)
fixes #2570

---------

Co-authored-by: Tai Groot <tai@taigrr.com>
2024-12-03 01:55:26 +00:00
Nuno CamposandGitHub 64b99c187a Merge pull request #2544 from langchain-ai/brace/type-interrupts-py
fix(sdk-py): Add typing for interrupts
2024-12-02 20:52:19 -05:00
Nuno CamposandGitHub afa37d2059 Merge pull request #2552 from langchain-ai/vb/remove-assertion
langgraph: relax graph validation to handle nodes without return typehints
2024-12-02 20:51:50 -05:00
Nuno CamposandGitHub b80933c5fb Merge branch 'main' into main 2024-12-02 20:50:44 -05:00
Nuno CamposandGitHub d70b659adb Merge pull request #2430 from langchain-ai/nc/15nov/command-subgraph
Handle interrupt/resume for subgraphs
2024-12-02 20:45:40 -05:00
William FHandGitHub 15f0765d60 Add IVFFlat and HNSW support (#2598)
It seems that actually once i moved the operators & other things out,
the query planner does do reasonable things and do sequential scanning
if filtered N < some size but the index otherwise, even with namespace
filtering.
2024-12-02 17:42:29 -08:00
fe538d4bcb docs: Use edit mode as default to install template (#2590)
Small change to install the dependencies with `edit` mode so that users
or freshman can see the effect immediately when they change the template
code. As below,
`pip install -e .`

It's very good to evaluate how agent works and easy to test &
re-develop!

---------

Signed-off-by: Mingqi Hu <mingqi.hu@intel.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2024-12-02 17:36:13 -08:00
Nuno CamposandGitHub 4e26a5cf2e Merge pull request #2597 from langchain-ai/nc/2dec/remote-command
lib: Handle Command in RemoteGraph
2024-12-02 20:34:08 -05:00
William FHandGitHub 20f091a277 [postgres] Sort Ascending (#2594)
Adds a few of preliminaries:
1. Makes the returned "score" actually the result of the requested
operation (cosine, inner_product, l2)
2. Sorts asc, etc. so that if you were to add an HNSW index (and not
have any WHERE filters), it would be used
3. Drop the inner WHERE statement if no namespace or other filters are
provided. See (2) for why.
I don't yet add an index to the migrations since I think we need to
agree on the right balance to ensure it's actually used in common query
patterns.
2024-12-03 01:08:24 +00:00
Nuno Campos 0071bd1e1c Lint 2024-12-02 17:01:12 -08:00
Nuno Campos d36e6ceaaf Fix 2024-12-02 16:59:38 -08:00
Nuno Campos a3feaef2eb lib: Handle Command in RemoteGraph 2024-12-02 16:45:07 -08:00
David DuongandGitHub c6fe26510e Merge pull request #2596 from langchain-ai/dqbd/sdk-cancel-on-disconnect
feat(sdk): pass cancel on disconnect when joining stream
2024-12-03 04:45:00 +04:00
Nuno Campos efbd02a27d Implement support for interrupt/resume in subgraphs 2024-12-02 16:43:35 -08:00
Tat Dat Duong a91bf116cb Bump to 0.1.41 2024-12-03 01:31:55 +01:00
Tat Dat Duong 6a6c3ed84c Bump to 0.0.30 2024-12-03 01:31:11 +01:00
Tat Dat Duong 988dd237d2 feat(sdk): pass cancel on disconnect when joining stream 2024-12-03 01:17:15 +01:00
David DuongandGitHub 63f5f15c04 Merge pull request #2592 from langchain-ai/dqbd/sdk-list-runs-by-status
feat(sdk): add ability to search runs via status
2024-12-03 04:03:29 +04:00
Nuno Campos 6fc1c602ab Add one more 2024-12-02 13:53:44 -08:00
Nuno Campos 2b65308508 WIP: Handle commands for subgraphs 2024-12-02 13:53:44 -08:00
Nuno Campos 3cee1d5087 Remove httpx_sse, fix missing flush of sse decoder 2024-12-02 12:03:31 -08:00
Nuno Campos 2ce2021c39 Revert "Revert "sdk-py: Fix SSE parsing to split lines only \n \r \r\n per SSE spec""
This reverts commit 53ec7c41b2.
2024-12-02 11:29:06 -08:00
Tat Dat Duong 46dd424a7e feat(sdk): add ability to search runs via status 2024-12-02 19:53:58 +01:00
stneng 363c6e2e4c fix 2024-12-01 16:07:15 -08:00
Vadym BardaandGitHub 784821705b checkpoint-postgres: pin psycopg >= 3.2.0 (#2580) 2024-11-29 11:30:19 -05:00
William FHandGitHub 65172c2a43 [CLI] Nonblocking debugpy mode (#2573) 2024-11-28 12:24:00 -08:00
William FHandGitHub 1130c3accb [CLI] Add Store config to CLI (#2548) 2024-11-28 01:58:18 -08:00
William FHandGitHub ee8653d1c5 [SDK] Add SearchItem (#2567) 2024-11-27 22:50:52 -08:00
William FHandGitHub 12486d977a Update postgres-checkpoint min bounds (#2564) 2024-11-27 22:31:16 -08:00
William FHandGitHub c87f9ab6b1 Fix sentence fragment (#2566) 2024-11-27 22:31:03 -08:00
William FHandGitHub 855a3d21ff Update Checkpoint Version (#2565) 2024-11-27 20:50:11 -08:00
William FHandGitHub d767af421b feat: Add vector search (#2535)
- Initializing the store with an 'embedding config' -> this contains the
'dims' (used to create the table) and the encoder object (rn langchain
embeddings object, though that is ......)
- Call setup() -> creates the vector table.

Each document has 1 or more vectors associated with it for each json
path in the embedding config.

Would welcome critique and requests! 

Leaving the params as the defaults for pgvector but open to feedback if
you think it's important to be able to more transparently configure that
in setup()

```python
from typing import TypedDict, List, Dict, Any, Optional

from langchain_openai import OpenAIEmbeddings
from langgraph.graph import StateGraph
from langgraph.store.postgres import PostgresStore

emb_config = {
    "dims": 1536,  # OpenAI embedding dimensions
    "embed": OpenAIEmbeddings(model="text-embedding-3-small"),
    "distance_type": "cosine",
}
with PostgresStore.from_conn_string(
    "postgres://postgres:postgres@localhost:5441",
    embedding=emb_config,
) as store:
    store.setup()


# Define the state type for our graph
class State(TypedDict):
    query: str
    results: Optional[List[Dict[str, Any]]]


def put_stuff(state: State) -> State:
    docs = [
        ("doc1", {"text": "red apple in kitchen"}),
        ("doc2", {"text": "blue car in garage"}),
        ("doc3", {"text": "green apple on table"}),
    ]
    for key, value in docs:
        store.put(("docs",), key, value)


def search_stuff(state: State) -> State:
    """Search for documents using vector similarity."""
    results = store.search(("docs",), query=state["query"])

    return {"results": results}


builder = StateGraph(State)
builder.add_node(put_stuff)
builder.add_node(search_stuff)
builder.add_edge("__start__", "put_stuff")
builder.add_edge("put_stuff", "search_stuff")
# Compile
with PostgresStore.from_conn_string(
    "postgres://postgres:postgres@localhost:5441",
    embedding=emb_config,
) as store:
    chain = builder.compile(store=store)

    result = chain.invoke({"query": "sour apple"})

# Print results
for doc in result["results"]:
    print(doc.key)
    print(doc.value)
    print(doc.response_metadata)

```
2024-11-28 04:40:12 +00:00
Nuno CamposandGitHub 07ac016e60 Merge pull request #2562 from langchain-ai/nc/27nov/revert-sdk
Revert "sdk-py: Fix SSE parsing to split lines only \n \r \r\n per SSE spec"
2024-11-27 17:36:07 -08:00
Nuno Campos 4576a259dd sdk-py 0.1.39 2024-11-27 17:32:07 -08:00
Nuno Campos 53ec7c41b2 Revert "sdk-py: Fix SSE parsing to split lines only \n \r \r\n per SSE spec"
This reverts commit dc09b13400.
2024-11-27 17:31:21 -08:00
Nuno Campos 769f6a1925 Fix 2024-11-27 15:59:48 -08:00
William FHandGitHub 62a36befd5 Add in-mem vector search (#2547) 2024-11-27 14:53:24 -08:00
Andrew NguonlyandGitHub dfaff2511b docs: Update API docs and remove unused pages (#2561) 2024-11-27 14:39:12 -08:00
Nuno Campos 1d9a0d1e4e sdk-py 0.1.37 2024-11-27 14:17:15 -08:00
Nuno CamposandGitHub 35c7eb18ee Merge pull request #2560 from langchain-ai/nc/27nov/fix-sse-parser
sdk-py: Fix SSE parsing to split lines only \n \r \r\n per SSE spec
2024-11-27 14:16:43 -08:00
Nuno Campos dc09b13400 sdk-py: Fix SSE parsing to split lines only \n \r \r\n per SSE spec 2024-11-27 14:10:50 -08:00
Nuno CamposandGitHub b2d8acffc4 Merge pull request #2558 from langchain-ai/nc/27nov/exc-note
lib: Add exception note identify node/task
2024-11-27 12:57:03 -08:00
Nuno Campos 1031e54860 lib: Add exception note identify node/task 2024-11-27 12:44:31 -08:00
Jacob LeeandGitHub 7ac365ea84 fix(sdk-js): Avoid retrying 402s (#2554) 2024-11-27 19:33:23 +00:00
Vadym BardaandGitHub 5144b8f374 langgraph: allow create_react_agent to take empty tools (#2553) 2024-11-27 12:54:59 -05:00
Vadym BardaandGitHub f4a9d17d24 Merge branch 'main' into vb/remove-assertion 2024-11-27 10:02:24 -05:00
vbarda f416480e9d nit 2024-11-27 10:01:24 -05:00
vbarda 61e47cb137 langgraph: relax graph validation to handle nodes without return typehints 2024-11-27 09:56:04 -05:00
Brace SproulandGitHub d4bbb66963 Merge branch 'main' into brace/type-interrupts-py 2024-11-26 13:01:41 -08:00
Nuno CamposandGitHub 4b1b3cecb4 Merge pull request #2546 from langchain-ai/jacob/jsenv
fix(js): Adds fallback for fetching environment variables
2024-11-26 12:34:18 -08:00
jacoblee93 c6a953c02a Bump version 2024-11-26 12:31:00 -08:00
jacoblee93 16b955dee2 Adds fallback for fetching environment variables 2024-11-26 12:30:33 -08:00
Brace SproulandGitHub 877124f7df Merge pull request #2545 from langchain-ai/release
release(sdk-js): 0.0.27
2024-11-26 11:54:45 -08:00
bracesproul d3a4865c0e release(sdk-js): 0.0.27 2024-11-26 11:42:20 -08:00
Brace SproulandGitHub 45b5f386e5 Merge branch 'main' into brace/type-interrupts-py 2024-11-26 11:41:07 -08:00
bracesproul a1ec55abc5 fix(sdk-py): Add typing for interrupts 2024-11-26 11:40:47 -08:00
Brace SproulandGitHub a3761ac522 Merge pull request #2543 from langchain-ai/brace/type-interrupts
fix(sdk-js): Add typing for interrupts on threads
2024-11-26 11:40:34 -08:00
bracesproul 376c58ff3b expose interupt type 2024-11-26 11:28:50 -08:00
bracesproul 58b99c899e cr 2024-11-26 11:28:19 -08:00
bracesproul 2ee279a977 fix(sdk-js): Add typing for interrupts on threads 2024-11-26 11:26:18 -08:00
William FHandGitHub f04ce5d1ee [CLI] Add python-dotenv for inmem group (#2540) 2024-11-26 07:56:57 -08:00
William FHandGitHub 8f649abd0a Release PG Checkpointer (#2536) 2024-11-26 01:44:45 +00:00
William FHandGitHub 1febec7c0d Dedup store batch operations (#2534) 2024-11-25 16:31:26 -08:00
Nuno CamposandGitHub a4eb4c6942 Merge pull request #2520 from langchain-ai/nc/22nov/parent-command
lib: Add Command(graph=Command.PARENT, ...)
2024-11-25 15:39:51 -08:00
Nuno Campos 8e1cd0e225 Add test 2024-11-25 14:11:20 -08:00
98935e1ffd fix: Fix race condition in PostgresSaver (#2494)
Signed-off-by: Tyler Ball <tyleraball@gmail.com>
Co-authored-by: Phoenix Logan <plogan@chanzuckerberg.com>
Co-authored-by: Tyler Ball <2481463+tyler-ball@users.noreply.github.com>
2024-11-25 20:19:52 +00:00
William FHandGitHub 328ef609af [CLI] Python path (#2531) 2024-11-25 11:59:49 -08:00
Talha MunirandGitHub 486d5412af docs: Fix grammatical mistake in introduction.ipynb (#2521) 2024-11-23 14:37:55 -05:00
Nuno Campos abc0c8c223 Fix 2024-11-22 16:35:20 -08:00
Nuno Campos 5bbb9dae57 Fix 2024-11-22 16:34:55 -08:00
Nuno Campos fed60e713c lib: Add Command(graph=Command.PARENT, ...)
- This makes the command bubble up out of the current graph and be handled by the calling graph (the immediate parent)
- This could be extended to support eg. ROOT graph, or some other level
2024-11-22 16:28:43 -08:00
Eugene YurtsevandGitHub 4f4e7a6981 docs: more fixes for python version (#2515) 2024-11-22 19:50:31 +00:00
Eugene Yurtsev f08155d60b x 2024-11-22 14:43:28 -05:00
Eugene Yurtsev 24b16908b7 x 2024-11-22 14:43:08 -05:00
Eugene Yurtsev c1c2ce8f1b x 2024-11-22 14:42:36 -05:00
Eugene Yurtsev 3efd4f3406 Merge branch 'main' into eugene/how_to_use_tempalte 2024-11-22 14:21:07 -05:00
Eugene Yurtsev f122ae2eb1 qxqx 2024-11-22 14:20:56 -05:00
3351d4f6c5 docs: fix typo (#2510)
`python-dotenv` not `python-dot-env`

Signed-off-by: Mingqi <mingqi.hu@intel.com>
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-11-22 14:17:59 -05:00
Eugene YurtsevandGitHub b4900341e4 docs: fix broken link (#2514)
We need to check later why CI didn't fail with original PR that broke
the link
2024-11-22 14:07:54 -05:00
Eugene Yurtsev 05791f5dfc qxqx 2024-11-22 13:26:46 -05:00
Eugene Yurtsev 416dfe95da qxqx 2024-11-22 13:16:41 -05:00
Eugene YurtsevandGitHub 65f515e020 docs: add helm chart link (#2512) 2024-11-22 17:17:36 +00:00
Eugene YurtsevandGitHub 0d0665a6e3 docs: Add resource allocation (#2511) 2024-11-22 11:56:16 -05:00
Eugene YurtsevandGitHub 93b8525dc1 docs: fix link checker (#2508)
3rd attempt to fix localhost link
2024-11-21 21:59:43 -05:00
Eugene YurtsevandGitHub aeb6f784e1 docs: fix link checking? (#2506) 2024-11-21 21:21:30 -05:00
Nuno Campos 3eedeac0d4 Not red 2024-11-21 15:31:52 -08:00
Eugene YurtsevandGitHub b09e7b20b0 docs: do not check localhost links (#2505) 2024-11-21 23:28:24 +00:00
Eugene YurtsevandGitHub 26ce731eab docs: update README.md (#2474) 2024-11-21 22:48:12 +00:00
Eugene YurtsevandGitHub 55593446f8 docs: get started with langgraph platform (#2469) 2024-11-21 17:41:03 -05:00
vbarda 2d6ddd0a1d langgraph: fix issue w/ type annotations in tools_condition 2024-11-21 14:31:34 -05:00
William FHandGitHub 7082e2613e [CLI] Dotenv support (#2501) 2024-11-21 16:28:53 +00:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>William FH
ceeb9636ee build(deps-dev): bump notebook from 7.0.7 to 7.2.2 in /libs/langgraph (#2411)
Bumps [notebook](https://github.com/jupyter/notebook) from 7.0.7 to
7.2.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jupyter/notebook/releases">notebook's
releases</a>.</em></p>
<blockquote>
<h2>v7.2.2</h2>
<h2>7.2.2</h2>
<p>(<a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.1...0426a897ad6b5708d73e6e49ea424076de2906a1">Full
Changelog</a>)</p>
<h3>Maintenance and upkeep improvements</h3>
<ul>
<li>Upgrade JupyterLab dependencies to v4.2.5 <a
href="https://redirect.github.com/jupyter/notebook/pull/7447">#7447</a>
(<a
href="https://github.com/krassowski"><code>@​krassowski</code></a>)</li>
</ul>
<h3>Contributors to this release</h3>
<p>(<a
href="https://github.com/jupyter/notebook/graphs/contributors?from=2024-06-07&amp;to=2024-08-27&amp;type=c">GitHub
contributors page for this release</a>)</p>
<p><a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-06-07..2024-08-27&amp;type=Issues"><code>@​github-actions</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-06-07..2024-08-27&amp;type=Issues"><code>@​krassowski</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-06-07..2024-08-27&amp;type=Issues"><code>@​RRosio</code></a></p>
<h2>v7.2.1</h2>
<h2>7.2.1</h2>
<p>(<a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.0...e881745c98ea0a0ea585df78f1ca8950a0edeaa2">Full
Changelog</a>)</p>
<h3>Bugs fixed</h3>
<ul>
<li>Remove pseudoelement obstructing the cell collapser <a
href="https://redirect.github.com/jupyter/notebook/pull/7392">#7392</a>
(<a
href="https://github.com/krassowski"><code>@​krassowski</code></a>)</li>
</ul>
<h3>Contributors to this release</h3>
<p>(<a
href="https://github.com/jupyter/notebook/graphs/contributors?from=2024-05-16&amp;to=2024-06-07&amp;type=c">GitHub
contributors page for this release</a>)</p>
<p><a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-05-16..2024-06-07&amp;type=Issues"><code>@​github-actions</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-05-16..2024-06-07&amp;type=Issues"><code>@​jtpio</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ameeseeksmachine+updated%3A2024-05-16..2024-06-07&amp;type=Issues"><code>@​meeseeksmachine</code></a></p>
<h2>v7.2.0</h2>
<h2>7.2.0</h2>
<p>(<a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.2...31bf294e85175bbf39816a90dc8858dedaf73bde">Full
Changelog</a>)</p>
<h3>Enhancements made</h3>
<ul>
<li>Update to JupyterLab 4.2.0 <a
href="https://redirect.github.com/jupyter/notebook/pull/7357">#7357</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Update to JupyterLab 4.2.0rc0 <a
href="https://redirect.github.com/jupyter/notebook/pull/7333">#7333</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Add <code>@jupyterlab/theme-dark-high-contrast-extension</code> <a
href="https://redirect.github.com/jupyter/notebook/pull/7331">#7331</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Update to JupyterLab 4.2.0a2 <a
href="https://redirect.github.com/jupyter/notebook/pull/7307">#7307</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
</ul>
<h3>Bugs fixed</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jupyter/notebook/blob/@jupyter-notebook/tree@7.2.2/CHANGELOG.md">notebook's
changelog</a>.</em></p>
<blockquote>
<h2>7.2.2</h2>
<p>(<a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.1...0426a897ad6b5708d73e6e49ea424076de2906a1">Full
Changelog</a>)</p>
<h3>Maintenance and upkeep improvements</h3>
<ul>
<li>Upgrade JupyterLab dependencies to v4.2.5 <a
href="https://redirect.github.com/jupyter/notebook/pull/7447">#7447</a>
(<a
href="https://github.com/krassowski"><code>@​krassowski</code></a>)</li>
</ul>
<h3>Contributors to this release</h3>
<p>(<a
href="https://github.com/jupyter/notebook/graphs/contributors?from=2024-06-07&amp;to=2024-08-27&amp;type=c">GitHub
contributors page for this release</a>)</p>
<p><a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-06-07..2024-08-27&amp;type=Issues"><code>@​github-actions</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Akrassowski+updated%3A2024-06-07..2024-08-27&amp;type=Issues"><code>@​krassowski</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3ARRosio+updated%3A2024-06-07..2024-08-27&amp;type=Issues"><code>@​RRosio</code></a></p>
<!-- raw HTML omitted -->
<h2>7.2.1</h2>
<p>(<a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.2.0...e881745c98ea0a0ea585df78f1ca8950a0edeaa2">Full
Changelog</a>)</p>
<h3>Bugs fixed</h3>
<ul>
<li>Remove pseudoelement obstructing the cell collapser <a
href="https://redirect.github.com/jupyter/notebook/pull/7392">#7392</a>
(<a
href="https://github.com/krassowski"><code>@​krassowski</code></a>)</li>
</ul>
<h3>Contributors to this release</h3>
<p>(<a
href="https://github.com/jupyter/notebook/graphs/contributors?from=2024-05-16&amp;to=2024-06-07&amp;type=c">GitHub
contributors page for this release</a>)</p>
<p><a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Agithub-actions+updated%3A2024-05-16..2024-06-07&amp;type=Issues"><code>@​github-actions</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ajtpio+updated%3A2024-05-16..2024-06-07&amp;type=Issues"><code>@​jtpio</code></a>
| <a
href="https://github.com/search?q=repo%3Ajupyter%2Fnotebook+involves%3Ameeseeksmachine+updated%3A2024-05-16..2024-06-07&amp;type=Issues"><code>@​meeseeksmachine</code></a></p>
<h2>7.2.0</h2>
<p>(<a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/application-extension@7.1.2...31bf294e85175bbf39816a90dc8858dedaf73bde">Full
Changelog</a>)</p>
<h3>Enhancements made</h3>
<ul>
<li>Update to JupyterLab 4.2.0 <a
href="https://redirect.github.com/jupyter/notebook/pull/7357">#7357</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Update to JupyterLab 4.2.0rc0 <a
href="https://redirect.github.com/jupyter/notebook/pull/7333">#7333</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Add <code>@jupyterlab/theme-dark-high-contrast-extension</code> <a
href="https://redirect.github.com/jupyter/notebook/pull/7331">#7331</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Update to JupyterLab 4.2.0a2 <a
href="https://redirect.github.com/jupyter/notebook/pull/7307">#7307</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
</ul>
<h3>Bugs fixed</h3>
<ul>
<li>Add the <code>@jupyterlab/notebook-extension:copy-output</code>
plugin <a
href="https://redirect.github.com/jupyter/notebook/pull/7353">#7353</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Fix CSS for <code>full</code> windowing mode <a
href="https://redirect.github.com/jupyter/notebook/pull/7337">#7337</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Force notebook windowing mode to <code>defer</code> <a
href="https://redirect.github.com/jupyter/notebook/pull/7335">#7335</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Fix scrollbar always showing up by default <a
href="https://redirect.github.com/jupyter/notebook/pull/7327">#7327</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
<li>Default to the <code>full</code> windowing mode <a
href="https://redirect.github.com/jupyter/notebook/pull/7321">#7321</a>
(<a href="https://github.com/jtpio"><code>@​jtpio</code></a>)</li>
</ul>
<h3>Maintenance and upkeep improvements</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jupyter/notebook/commit/d1d232b27c5441c4a040dd3ca491a7cf0fa6c528"><code>d1d232b</code></a>
Publish 7.2.2</li>
<li><a
href="https://github.com/jupyter/notebook/commit/0426a897ad6b5708d73e6e49ea424076de2906a1"><code>0426a89</code></a>
Upgrade JupyterLab dependencies to v4.2.5 (<a
href="https://redirect.github.com/jupyter/notebook/issues/7447">#7447</a>)</li>
<li><a
href="https://github.com/jupyter/notebook/commit/3542421de92c91892d8d8c40ebbd023215c39606"><code>3542421</code></a>
Publish 7.2.1</li>
<li><a
href="https://github.com/jupyter/notebook/commit/e881745c98ea0a0ea585df78f1ca8950a0edeaa2"><code>e881745</code></a>
Backport PR <a
href="https://redirect.github.com/jupyter/notebook/issues/7392">#7392</a>:
Remove pseudoelement obstructing the cell collapser (<a
href="https://redirect.github.com/jupyter/notebook/issues/7393">#7393</a>)</li>
<li><a
href="https://github.com/jupyter/notebook/commit/30587b826a0fe7055a02ea96d43e6305d8b5590b"><code>30587b8</code></a>
Publish 7.2.0</li>
<li><a
href="https://github.com/jupyter/notebook/commit/31bf294e85175bbf39816a90dc8858dedaf73bde"><code>31bf294</code></a>
Add user facing changelog for 7.2 (<a
href="https://redirect.github.com/jupyter/notebook/issues/7372">#7372</a>)</li>
<li><a
href="https://github.com/jupyter/notebook/commit/08fe5c5df12182178280bad5d2fbae02b3486146"><code>08fe5c5</code></a>
Update <code>@jupyterlab/galata</code> (<a
href="https://redirect.github.com/jupyter/notebook/issues/7361">#7361</a>)</li>
<li><a
href="https://github.com/jupyter/notebook/commit/7891117aa9f9cb95c8e301875f9bf74d9496a301"><code>7891117</code></a>
Update config.yml (<a
href="https://redirect.github.com/jupyter/notebook/issues/7363">#7363</a>)</li>
<li><a
href="https://github.com/jupyter/notebook/commit/a1e25b92bf10ef13a760353837114db9b498f242"><code>a1e25b9</code></a>
Publish 7.2.0rc1</li>
<li><a
href="https://github.com/jupyter/notebook/commit/f5d8aea3bdc3eea25213792f9d101738f2a1f627"><code>f5d8aea</code></a>
Default to the <code>full</code> windowing mode (<a
href="https://redirect.github.com/jupyter/notebook/issues/7321">#7321</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/jupyter/notebook/compare/@jupyter-notebook/tree@7.0.7...@jupyter-notebook/tree@7.2.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=notebook&package-manager=pip&previous-version=7.0.7&new-version=7.2.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2024-11-21 08:00:26 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>William FH
f7788abbb6 build(deps-dev): bump starlette from 0.38.6 to 0.40.0 (#2421)
Bumps [starlette](https://github.com/encode/starlette) from 0.38.6 to
0.40.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/encode/starlette/releases">starlette's
releases</a>.</em></p>
<blockquote>
<h2>Version 0.40.0</h2>
<p>This release fixes a Denial of service (DoS) via
<code>multipart/form-data</code> requests.</p>
<p>You can view the full security advisory:
<a
href="https://github.com/encode/starlette/security/advisories/GHSA-f96h-pmfr-66vw">GHSA-f96h-pmfr-66vw</a></p>
<h2>Fixed</h2>
<ul>
<li>Add <code>max_part_size</code> to <code>MultiPartParser</code> to
limit the size of parts in <code>multipart/form-data</code>
requests <a
href="https://github.com/encode/starlette/commit/fd038f3070c302bff17ef7d173dbb0b007617733">fd038f3</a>.</li>
</ul>
<h2>Version 0.39.2</h2>
<h2>Fixed</h2>
<ul>
<li>Allow use of <code>request.url_for</code> when only &quot;app&quot;
scope is available <a
href="https://redirect.github.com/encode/starlette/pull/2672">#2672</a>.</li>
<li>Fix internal type hints to support
<code>python-multipart==0.0.12</code> <a
href="https://redirect.github.com/encode/starlette/pull/2708">#2708</a>.</li>
</ul>
<hr />
<p><strong>Full Changelog</strong>: <a
href="https://github.com/encode/starlette/compare/0.39.1...0.39.2">https://github.com/encode/starlette/compare/0.39.1...0.39.2</a></p>
<h2>Version 0.39.1</h2>
<h2>Fixed</h2>
<ul>
<li>Avoid regex re-compilation in <code>responses.py</code> and
<code>schemas.py</code> <a
href="https://redirect.github.com/encode/starlette/pull/2700">#2700</a>.</li>
<li>Improve performance of <code>get_route_path</code> by removing
regular expression usage <a
href="https://redirect.github.com/encode/starlette/pull/2701">#2701</a>.</li>
<li>Consider <code>FileResponse.chunk_size</code> when handling multiple
ranges <a
href="https://redirect.github.com/encode/starlette/pull/2703">#2703</a>.</li>
<li>Use <code>token_hex</code> for generating multipart boundary strings
<a
href="https://redirect.github.com/encode/starlette/pull/2702">#2702</a>.</li>
</ul>
<hr />
<p><strong>Full Changelog</strong>: <a
href="https://github.com/encode/starlette/compare/0.39.0...0.39.1">https://github.com/encode/starlette/compare/0.39.0...0.39.1</a></p>
<h2>Version 0.39.0</h2>
<h2>Added</h2>
<ul>
<li>Add support for HTTP Range to <code>FileResponse</code> <a
href="https://redirect.github.com/encode/starlette/pull/2697">#2697</a></li>
</ul>
<hr />
<p><strong>Full Changelog</strong>: <a
href="https://github.com/encode/starlette/compare/0.38.6...0.39.0">https://github.com/encode/starlette/compare/0.38.6...0.39.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/encode/starlette/blob/master/docs/release-notes.md">starlette's
changelog</a>.</em></p>
<blockquote>
<h2>0.40.0 (October 15, 2024)</h2>
<p>This release fixes a Denial of service (DoS) via
<code>multipart/form-data</code> requests.</p>
<p>You can view the full security advisory:
<a
href="https://github.com/encode/starlette/security/advisories/GHSA-f96h-pmfr-66vw">GHSA-f96h-pmfr-66vw</a></p>
<h4>Fixed</h4>
<ul>
<li>Add <code>max_part_size</code> to <code>MultiPartParser</code> to
limit the size of parts in <code>multipart/form-data</code>
requests <a
href="https://github.com/encode/starlette/commit/fd038f3070c302bff17ef7d173dbb0b007617733">fd038f3</a>.</li>
</ul>
<h2>0.39.2 (September 29, 2024)</h2>
<h4>Fixed</h4>
<ul>
<li>Allow use of <code>request.url_for</code> when only &quot;app&quot;
scope is available <a
href="https://redirect.github.com/encode/starlette/pull/2672">#2672</a>.</li>
<li>Fix internal type hints to support
<code>python-multipart==0.0.12</code> <a
href="https://redirect.github.com/encode/starlette/pull/2708">#2708</a>.</li>
</ul>
<h2>0.39.1 (September 25, 2024)</h2>
<h4>Fixed</h4>
<ul>
<li>Avoid regex re-compilation in <code>responses.py</code> and
<code>schemas.py</code> <a
href="https://redirect.github.com/encode/starlette/pull/2700">#2700</a>.</li>
<li>Improve performance of <code>get_route_path</code> by removing
regular expression usage
<a
href="https://redirect.github.com/encode/starlette/pull/2701">#2701</a>.</li>
<li>Consider <code>FileResponse.chunk_size</code> when handling multiple
ranges <a
href="https://redirect.github.com/encode/starlette/pull/2703">#2703</a>.</li>
<li>Use <code>token_hex</code> for generating multipart boundary strings
<a
href="https://redirect.github.com/encode/starlette/pull/2702">#2702</a>.</li>
</ul>
<h2>0.39.0 (September 23, 2024)</h2>
<h4>Added</h4>
<ul>
<li>Add support for <a
href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests">HTTP
Range</a> to
<code>FileResponse</code> <a
href="https://redirect.github.com/encode/starlette/pull/2697">#2697</a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/encode/starlette/commit/4ded4b7ac517bd301cee69f5c189b1cb48c069b6"><code>4ded4b7</code></a>
Version 0.40.0 (<a
href="https://redirect.github.com/encode/starlette/issues/2728">#2728</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/fd038f3070c302bff17ef7d173dbb0b007617733"><code>fd038f3</code></a>
Merge commit from fork</li>
<li><a
href="https://github.com/encode/starlette/commit/e11684013fe5ca084f5bd4e54830512a4dff9618"><code>e116840</code></a>
Bump the python-packages group with 6 updates (<a
href="https://redirect.github.com/encode/starlette/issues/2713">#2713</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/0b50b9c4abd992a39d6e32148cc6f577ac3b1c44"><code>0b50b9c</code></a>
Version 0.39.2 (<a
href="https://redirect.github.com/encode/starlette/issues/2710">#2710</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/fe46d99d92da17efe1827f96ad29d748aac870d2"><code>fe46d99</code></a>
Support <code>request.url_for</code> when only &quot;app&quot; scope is
avaialable (<a
href="https://redirect.github.com/encode/starlette/issues/2672">#2672</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/1a6018e08a994c78f5c169b8535408259af0f249"><code>1a6018e</code></a>
Support python-multipart 0.0.12 (<a
href="https://redirect.github.com/encode/starlette/issues/2708">#2708</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/fa7b382a66cd99e3dc18f3baa44dae5ec68be76b"><code>fa7b382</code></a>
Version 0.39.1 (<a
href="https://redirect.github.com/encode/starlette/issues/2706">#2706</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/075efd0c5c9f5e49a4416f3b4a24e24efab135f8"><code>075efd0</code></a>
generate boundary with token_hex (<a
href="https://redirect.github.com/encode/starlette/issues/2702">#2702</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/b8139f9fe3b1acb34ddbe38dc6472a60b621540e"><code>b8139f9</code></a>
Consider <code>FileResponse.chunk_size</code> when handling multiple
ranges (<a
href="https://redirect.github.com/encode/starlette/issues/2703">#2703</a>)</li>
<li><a
href="https://github.com/encode/starlette/commit/4fbf766b3eac4146b86175682cec88d266fd8470"><code>4fbf766</code></a>
test: add tests in <code>test_requests</code> (<a
href="https://redirect.github.com/encode/starlette/issues/2677">#2677</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/encode/starlette/compare/0.38.6...0.40.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=starlette&package-manager=pip&previous-version=0.38.6&new-version=0.40.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2024-11-21 07:58:30 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9bd430142a build(deps-dev): bump aiohttp from 3.10.6 to 3.10.11 (#2454)
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.10.6 to
3.10.11.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiohttp/releases">aiohttp's
releases</a>.</em></p>
<blockquote>
<h2>3.10.11</h2>
<h2>Bug fixes</h2>
<ul>
<li>
<p>Authentication provided by a redirect now takes precedence over
provided <code>auth</code> when making requests with the client -- by
:user:<code>PLPeeters</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9436">#9436</a>.</p>
</li>
<li>
<p>Fixed :py:meth:<code>WebSocketResponse.close()
&lt;aiohttp.web.WebSocketResponse.close&gt;</code> to discard non-close
messages within its timeout window after sending close -- by
:user:<code>lenard-mosys</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9506">#9506</a>.</p>
</li>
<li>
<p>Fixed a deadlock that could occur while attempting to get a new
connection slot after a timeout -- by :user:<code>bdraco</code>.</p>
<p>The connector was not cancellation-safe.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9670">#9670</a>,
<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9671">#9671</a>.</p>
</li>
<li>
<p>Fixed the WebSocket flow control calculation undercounting with
multi-byte data -- by :user:<code>bdraco</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9686">#9686</a>.</p>
</li>
<li>
<p>Fixed incorrect parsing of chunk extensions with the pure Python
parser -- by :user:<code>bdraco</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9851">#9851</a>.</p>
</li>
<li>
<p>Fixed system routes polluting the middleware cache -- by
:user:<code>bdraco</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em></p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst">aiohttp's
changelog</a>.</em></p>
<blockquote>
<h1>3.10.11 (2024-11-13)</h1>
<h2>Bug fixes</h2>
<ul>
<li>
<p>Authentication provided by a redirect now takes precedence over
provided <code>auth</code> when making requests with the client -- by
:user:<code>PLPeeters</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>9436</code>.</p>
</li>
<li>
<p>Fixed :py:meth:<code>WebSocketResponse.close()
&lt;aiohttp.web.WebSocketResponse.close&gt;</code> to discard non-close
messages within its timeout window after sending close -- by
:user:<code>lenard-mosys</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>9506</code>.</p>
</li>
<li>
<p>Fixed a deadlock that could occur while attempting to get a new
connection slot after a timeout -- by :user:<code>bdraco</code>.</p>
<p>The connector was not cancellation-safe.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>9670</code>, :issue:<code>9671</code>.</p>
</li>
<li>
<p>Fixed the WebSocket flow control calculation undercounting with
multi-byte data -- by :user:<code>bdraco</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>9686</code>.</p>
</li>
<li>
<p>Fixed incorrect parsing of chunk extensions with the pure Python
parser -- by :user:<code>bdraco</code>.</p>
<p><em>Related issues and pull requests on GitHub:</em>
:issue:<code>9851</code>.</p>
</li>
<li>
<p>Fixed system routes polluting the middleware cache -- by
:user:<code>bdraco</code>.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/3e09325e4839117df13fbac301f360edf8d3a0ee"><code>3e09325</code></a>
Remove 3.10.11rc0 from 3.10 changelog (<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9858">#9858</a>)</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/beb7b740533b81d75706e6615f07d92fcbf1c325"><code>beb7b74</code></a>
Release 3.10.11 (<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9857">#9857</a>)</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/259edc369075de63e6f3a4eaade058c62af0df71"><code>259edc3</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9851">#9851</a>/541d86d
backport][3.10] Fix incorrect parsing of chunk extensions w...</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/bc15db61615079d1b6327ba42c682f758fa96936"><code>bc15db6</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9852">#9852</a>/249855a
backport][3.10] Fix system routes polluting the middleware ...</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/158bf304bdd8047eec192540fa5bf7fe3862bffd"><code>158bf30</code></a>
Release 3.10.11rc0 (<a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9848">#9848</a>)</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/e5917cd3480b01e7527b6524f9bec954325e1d5f"><code>e5917cd</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9844">#9844</a>/fabf3884
backport][3.10] Fix compressed get request benchmark paylo...</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/68a1f42af90a5beae28c8617e0dfc15c3bd5153c"><code>68a1f42</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9840">#9840</a>/cc5fa316
backport][3.10] Add benchmark for sending compressed paylo...</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/4f4b90fef082fbb37395c394d68ee0ab3fcbc7e6"><code>4f4b90f</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9835">#9835</a>/32ccfc9a
backport][3.10] Adjust client payload benchmarks to better...</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/f3dd0f9fece79dc3cd9d00e2ffddd49c36598361"><code>f3dd0f9</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9832">#9832</a>/006f4070
backport][3.10] Increase allowed import time for Python 3....</li>
<li><a
href="https://github.com/aio-libs/aiohttp/commit/f2aab2e40336848d6a53ea03dc6d072a38c5e7f9"><code>f2aab2e</code></a>
[PR <a
href="https://redirect.github.com/aio-libs/aiohttp/issues/9827">#9827</a>/14fcfd4c
backport][3.10] Adjust client GET read benchmarks to inclu...</li>
<li>Additional commits viewable in <a
href="https://github.com/aio-libs/aiohttp/compare/v3.10.6...v3.10.11">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aiohttp&package-manager=pip&previous-version=3.10.6&new-version=3.10.11)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 07:56:56 -08:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
72dac006f4 build(deps): bump cross-spawn from 7.0.3 to 7.0.6 in /libs/cli/js-examples (#2456)
Bumps [cross-spawn](https://github.com/moxystudio/node-cross-spawn) from
7.0.3 to 7.0.6.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/moxystudio/node-cross-spawn/blob/master/CHANGELOG.md">cross-spawn's
changelog</a>.</em></p>
<blockquote>
<h3><a
href="https://github.com/moxystudio/node-cross-spawn/compare/v7.0.5...v7.0.6">7.0.6</a>
(2024-11-18)</h3>
<h3>Bug Fixes</h3>
<ul>
<li>update cross-spawn version to 7.0.5 in package-lock.json (<a
href="https://github.com/moxystudio/node-cross-spawn/commit/f700743918d901eff92960e15a8dd68f87bd4176">f700743</a>)</li>
</ul>
<h3><a
href="https://github.com/moxystudio/node-cross-spawn/compare/v7.0.4...v7.0.5">7.0.5</a>
(2024-11-07)</h3>
<h3>Bug Fixes</h3>
<ul>
<li>fix escaping bug introduced by backtracking (<a
href="https://github.com/moxystudio/node-cross-spawn/commit/640d391fde65388548601d95abedccc12943374f">640d391</a>)</li>
</ul>
<h3><a
href="https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.4">7.0.4</a>
(2024-11-07)</h3>
<h3>Bug Fixes</h3>
<ul>
<li>disable regexp backtracking (<a
href="https://redirect.github.com/moxystudio/node-cross-spawn/issues/160">#160</a>)
(<a
href="https://github.com/moxystudio/node-cross-spawn/commit/5ff3a07d9add449021d806e45c4168203aa833ff">5ff3a07</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/77cd97f3ca7b62c904a63a698fc4a79bf41977d0"><code>77cd97f</code></a>
chore(release): 7.0.6</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/6717de49ff1e5de49622488dcb9c33fb25370c85"><code>6717de4</code></a>
chore: upgrade standard-version</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/f700743918d901eff92960e15a8dd68f87bd4176"><code>f700743</code></a>
fix: update cross-spawn version to 7.0.5 in package-lock.json</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/9a7e3b2165917367f74b8365faad9873b30d7263"><code>9a7e3b2</code></a>
chore: fix build status badge</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/085268352dcbcad8064c64c5efb25268b4023184"><code>0852683</code></a>
chore(release): 7.0.5</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/640d391fde65388548601d95abedccc12943374f"><code>640d391</code></a>
fix: fix escaping bug introduced by backtracking</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/bff0c87c8b627c4e6d04ec2449e733048bebb464"><code>bff0c87</code></a>
chore: remove codecov</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/a7c6abc6fee79641d45b452fe6217deaa1bd0973"><code>a7c6abc</code></a>
chore: replace travis with github workflows</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/9b9246e0969e86656d7ccd527716bc3c18842a19"><code>9b9246e</code></a>
chore(release): 7.0.4</li>
<li><a
href="https://github.com/moxystudio/node-cross-spawn/commit/5ff3a07d9add449021d806e45c4168203aa833ff"><code>5ff3a07</code></a>
fix: disable regexp backtracking (<a
href="https://redirect.github.com/moxystudio/node-cross-spawn/issues/160">#160</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/moxystudio/node-cross-spawn/compare/v7.0.3...v7.0.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=cross-spawn&package-manager=npm_and_yarn&previous-version=7.0.3&new-version=7.0.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/langchain-ai/langgraph/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 07:56:33 -08:00
William FHandGitHub 54d848913f [CLI] Update Inmem Version (#2500) 2024-11-21 15:49:59 +00:00
Nuno CamposandGitHub 7021e81150 Merge pull request #2496 from langchain-ai/vb/fix-error-message
langgraph: fix error message on invalid update
2024-11-20 18:46:50 -08:00
vbarda b977045679 langgraph: fix error message on invalid update 2024-11-20 21:24:50 -05:00
William FHandGitHub a933776436 [CLI] Validate node version (#2489) 2024-11-20 17:24:34 -08:00
Nuno Campos 588373c2d5 0.2.53 2024-11-20 17:13:42 -08:00
Nuno CamposandGitHub 267962bece Merge pull request #2491 from langchain-ai/nc/20nov/stream-putnowait-loop
lib: For subgraphs / stream modes call stream.put as a callback in the original event loop
2024-11-20 17:11:56 -08:00
Nuno CamposandGitHub 4ae29b6e2a Merge pull request #2492 from langchain-ai/wfh/accept_313
[CLI] Accept 3.13 in build
2024-11-20 17:04:15 -08:00
William Fu-Hinthorn 3c0de26914 Accept 3.13 in build 2024-11-20 16:26:17 -08:00
Nuno Campos a570662773 Lint 2024-11-20 15:43:46 -08:00
Nuno Campos 9766068896 lib: For subgraphs / stream modes call stream.put as a callback in the original event loop
- This is asynchronous, so we shouldn't use for regular writes to the output stream (ie those from PregelLoop)
- For writes from subgraphs / nodes this is fine to use, as we make no guarantees about when those show up anyway
2024-11-20 15:39:30 -08:00
Vadym BardaandGitHub 7e8eef88ca docs: small fix for tutorial (#2487) 2024-11-20 14:36:42 -05:00
Eugene YurtsevandGitHub e3e63c70c9 docs: how-to guide language changes (#2462) 2024-11-19 14:54:08 -05:00
Brace SproulandGitHub 312f0982bc Merge pull request #2476 from langchain-ai/release
(sdk-js): Release 0.0.26
2024-11-19 11:38:11 -08:00
bracesproul 153245145e (sdk-js): Release 0.0.26 2024-11-19 11:32:22 -08:00
Brace SproulandGitHub c95abd88a1 Merge pull request #2117 from langchain-ai/brace/default-assign-api-key
fix(sdk-js): Pass api key in headers by default if in env
2024-11-19 11:26:01 -08:00
Brace SproulandGitHub a2b357bed5 Merge branch 'main' into brace/default-assign-api-key 2024-11-19 11:16:55 -08:00
Nuno Campos 253090f34d lint 2024-11-19 10:29:32 -08:00
Brace SproulandGitHub 7090d7e9a8 Merge pull request #2471 from langchain-ai/brace/drop-trailing-slash
fix(sdk-js): remove trailing slash from url
2024-11-19 09:31:59 -08:00
bracesproul b3fa43e4a6 fix(sdk-js): remove trailing slash from url 2024-11-19 09:23:47 -08:00
Vadym BardaandGitHub b1779cf348 docs: update autogen docs (#2470) 2024-11-19 11:57:26 -05:00
Harrison ChaseandGitHub 26d18d3ca5 add how to guides for autogen integration (#2466) 2024-11-19 08:44:17 -08:00
Christopher BrooksandGitHub 7d80176137 Merge branch 'langchain-ai:main' into issue2159 2024-11-19 11:19:34 -05:00
Christopher Brooks ca7da2fc41 feat: Make CompiledGraph displayable in Juypyter with display() (#2159) 2024-11-19 11:18:53 -05:00
12052d7d26 CLI docs (#2464)
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
2024-11-19 10:57:07 -05:00
Vadym BardaandGitHub e3a30a9b69 docs: fix prompt (#2467) 2024-11-19 09:42:20 -05:00
William FHandGitHub ff1370a9a5 Release CLI (#2465) 2024-11-19 08:41:18 +00:00
William FHandGitHub 679a7365da Add default ns in put_writes (#2404) 2024-11-18 22:55:12 -08:00
b2522ffe19 CLI Dev command (#2463)
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
2024-11-19 05:12:03 +00:00
Eugene YurtsevandGitHub 4212a795a0 docs[minor]: Fix layout issues in available templates (#2452) 2024-11-18 22:53:19 -05:00
Eugene YurtsevandGitHub 517d67aa32 docs: Update to use LANGSMITH_API_KEY throughout (#2461) 2024-11-18 22:51:36 -05:00
Brace SproulandGitHub feaf14765a Merge pull request #2458 from langchain-ai/brace/expose-command-interface
fix(sdk-js): Expose Command interface
2024-11-18 18:54:19 -08:00
Vadym BardaandGitHub cc6063c729 docs: simplify multi-agent tutorials (#2443) 2024-11-19 02:31:12 +00:00
013397042e docs: grammar (#2449)
Co-authored-by: Ian Sullivan <ian@frame.ai>
2024-11-18 21:01:37 -05:00
Nuno Campos 9a775d9c9f 0.2.52 2024-11-18 17:17:40 -08:00
Nuno Campos 2c945ceb68 Copy configurable in ensure_config 2024-11-18 17:17:20 -08:00
Erick FriisandGitHub 39eabd0fb8 Merge pull request #2459 from langchain-ai/erick/docs-self-hosted-plan-links
docs: self-hosted plan links
2024-11-18 16:42:02 -08:00
Erick Friis e5cc2e2044 docs: self-hosted plan links 2024-11-18 16:35:19 -08:00
bracesproul f00c0515e7 add jsdoc 2024-11-18 16:32:32 -08:00
bracesproul d87c0d4d53 fix(sdk-js): Expose Command interface 2024-11-18 16:25:51 -08:00
Nuno Campos fb40a974c8 0.2.51 2024-11-18 16:03:04 -08:00
Nuno Campos d63bfc6879 Add missing property 2024-11-18 16:02:54 -08:00
Nuno CamposandGitHub 97dd30711a Merge pull request #2437 from langchain-ai/nc/16nov/speed-up-find-subgraph
lib: find_subgraph doesn't need to look in both func and afunc
2024-11-18 15:59:58 -08:00
Vadym BardaandGitHub 016a9c1936 checkpoint-postgres: release 2.0.3 (#2455) 2024-11-18 16:55:54 -05:00
Nuno CamposandGitHub a2d6837fba Merge pull request #2413 from langchain-ai/vb/fix-pipeline
checkpoint-postgres: handle cases when conn.pipeline is not supported
2024-11-18 10:39:56 -08:00
Andrew NguonlyandGitHub f5bb2a3b04 docs: Update LangGraph Server API docs (#2451) 2024-11-18 09:38:38 -08:00
vbarda f807b73092 use capabilities 2024-11-18 12:15:18 -05:00
Nuno CamposandGitHub 167405daf2 Merge pull request #2434 from langchain-ai/nc/15nov/update-state-copy-parent
lib: When copying checkpoint, make it a child of the parent
2024-11-18 08:34:34 -08:00
William FHandGitHub c6360e5408 [Checkpoint] 2.0.5 (#2450) 2024-11-18 08:19:17 -08:00
vbarda f0505155a2 cache 2024-11-18 11:12:21 -05:00
886df0fa86 checkpoint: Add option to use persistent dict for in-memory checkpointer (#2439)
- This should only be used in very specific circunstances, sqlite or
postgres adapters much more appropriate in most circunstances

---------

Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
2024-11-18 16:04:05 +00:00
Kevin MarkhamandGitHub 3f1792d6ba docs: fix typo (#2406) 2024-11-18 09:11:57 -05:00
ZapironandGitHub 9208052a94 docs: Update link to LCEL Concept Guide (#2438)
Updated the link to the LCEL concept guide
2024-11-18 09:09:12 -05:00
Nuno Campos 7866bd2718 lib: find_subgraph doesn't need to look in both func and afunc
- if they both exist they're expected to share the same implementation, so looking in both is redundant
2024-11-16 16:57:32 -08:00
Nuno Campos 7c11325e23 Separate 2024-11-15 17:33:01 -08:00
Nuno Campos d99dc7d81b Fix missing writes 2024-11-15 17:23:00 -08:00
Nuno Campos 973ad76a58 Fix 2024-11-15 17:05:18 -08:00
Nuno Campos 36e49eb190 Add distinct source 2024-11-15 17:04:40 -08:00
Nuno Campos 66b9a7dee7 lib: When copying checkpoint, make it a child of the parent 2024-11-15 16:56:17 -08:00
Nuno Campos 5494855ffa 0.2.50 2024-11-15 15:43:37 -08:00
Nuno Campos 38d93a324c 0.2.49 2024-11-15 15:02:31 -08:00
Nuno CamposandGitHub 07c65321c1 Merge pull request #2432 from langchain-ai/nc/15nov/copy-checkpoint
lib: Restore prev behavior for update_state(None)
2024-11-15 15:00:18 -08:00
Nuno Campos 1dbdd7df2e Lint 2024-11-15 14:54:55 -08:00
Nuno Campos dab29ce094 lib: Restore prev behavior for update_state(None)
- update_state(None) copies checkpoint and keeps current (PUSH) tasks, eg for replay
- update_state(None, as_node=END) clears all tasks (PUSH or PULL)
2024-11-15 14:48:56 -08:00
Vadym BardaandGitHub 0388534b9f docs: update double texting how-tos (#2431) 2024-11-15 22:45:36 +00:00
Nuno CamposandGitHub 81077e7c3a Merge pull request #2429 from langchain-ai/nc/15nov/sdk-js-types
sdk-js: Update types for state.task
2024-11-15 11:54:59 -08:00
Nuno Campos 29a0042149 sdk-js: Update types for state.task 2024-11-15 11:54:00 -08:00
William FHandGitHub e9162e2516 Update CLI pyproject.toml (#2428) 2024-11-15 11:00:32 -08:00
Vadym BardaandGitHub 0f6c001c25 docs: update replay in persistence concepts (#2427) 2024-11-15 18:49:20 +00:00
Eugene YurtsevandGitHub 7f26325c87 cli: minor wording change in new command (#2422) 2024-11-15 03:13:53 +00:00
Nuno CamposandGitHub 3c4ce3f945 Merge pull request #2420 from langchain-ai/nc/14nov/js-sdk-command
Nc/14nov/js sdk command
2024-11-14 18:21:38 -08:00
Nuno Campos 84ef939bf4 sdk-js 0.0.24 2024-11-14 18:17:22 -08:00
Nuno Campos bdc22ea127 sdk-js: Accept command when creating run 2024-11-14 18:17:04 -08:00
Vadym BardaandGitHub 5abbb79e1b Merge branch 'main' into vb/fix-pipeline 2024-11-14 19:08:18 -05:00
vbarda 0a5220aa07 code review 2024-11-14 19:06:41 -05:00
Nuno CamposandGitHub 970e68edcc Merge pull request #2417 from langchain-ai/vb/fix-debug-async
langgraph: add debug to AsyncPregelLoop
2024-11-14 06:53:18 -08:00
vbarda da1a80e86d lint 2024-11-14 09:37:39 -05:00
vbarda c4b240e0c2 langgraph: add debug to AsyncPregelLoop 2024-11-14 09:36:33 -05:00
vbarda c2052d11c2 checkpoint-postgres: remove pipeline flag in cursor 2024-11-13 21:42:51 -05:00
Vadym BardaandGitHub dc0281b99c docs: update rollback in double-texting concepts (#2412) 2024-11-13 21:21:12 -05:00
Nuno Campos 3a860ad537 0.2.48 2024-11-13 17:45:04 -08:00
Nuno Campos 7051bccc30 checkpoint 2.0.4 2024-11-13 17:37:01 -08:00
Nuno Campos 199e41b228 sdk py 0.1.36 2024-11-13 17:07:07 -08:00
Nuno Campos 229a9e19a8 sdk-py: Add command arg for creating runs 2024-11-13 17:06:56 -08:00
Nuno Campos 3c3a1a1f35 0.2.47 2024-11-13 14:02:25 -08:00
Nuno CamposandGitHub f11127648e Merge pull request #2346 from langchain-ai/nc/4nov/send-eager
lib: Execute Sends in the superstep that originated them (feature-flagged)
2024-11-13 13:39:50 -08:00
Nuno CamposandGitHub 29f833b1a7 Merge pull request #2393 from langchain-ai/nc/11nov/command-resume
lib: Add interrupt() function
2024-11-13 13:34:19 -08:00
Nuno CamposandGitHub 7a3ea42743 Merge pull request #2410 from langchain-ai/nc/13nov/command-dataclass
Nc/13nov/command dataclass
2024-11-13 13:28:13 -08:00
Nuno Campos a94902db8a Lint 2024-11-13 13:17:02 -08:00
Nuno Campos 9fd152ef3a format 2024-11-13 13:14:03 -08:00
Nuno Campos 03bc9ba6e6 Make Command a dataclass 2024-11-13 13:11:28 -08:00
Nuno Campos 7fe6f88876 Add resumeable/ns properties to Interrupt 2024-11-13 12:51:55 -08:00
Nuno CamposandGitHub 1d88affd29 Merge pull request #2400 from langchain-ai/nc/12nov/command
Make Command accept generic arg for destinations
2024-11-13 10:03:27 -08:00
Eugene YurtsevandGitHub 6906e12edb cli: add ability to output docker compose file (#2379)
* Add ability to output docker compose file `langgraph dockerfile
Dockerfile --add-docker-compose`
* Add emoji in places
2024-11-13 12:42:58 -05:00
William FHandGitHub 7b4c29a20d [Checkpointers] MemorySaver: refrain from overwriting writes (#2399) 2024-11-13 00:20:38 +00:00
Nuno Campos 16bfa80b58 Make Command accept generic arg for destinations 2024-11-12 16:18:23 -08:00
Eugene YurtsevandGitHub cb10437c3f cli: Add default to interactive flow in new command (#2398) 2024-11-12 16:38:15 -05:00
Eugene YurtsevandGitHub 2bcf1c0a20 cli[minor]: Add langgraph new command (#2369)
Adds a "new" command to create langgraph application from a template.
2024-11-12 14:30:51 -05:00
Nuno Campos 00964b18f6 Undo 2024-11-11 18:12:25 -08:00
Nuno Campos 0d5c6201d3 Disable in py 3.10 or below for async 2024-11-11 18:09:58 -08:00
Nuno Campos 86d2847dab Use neg idx 2024-11-11 17:57:45 -08:00
Nuno Campos b3a4eaa967 Remove print 2024-11-11 17:56:10 -08:00
Nuno Campos 87fc519ce7 Remove print 2024-11-11 17:54:56 -08:00
Nuno Campos ef3a1ee997 Undo 2024-11-11 17:54:04 -08:00
Nuno Campos 311e16dffd Remove prints 2024-11-11 17:52:18 -08:00
Nuno Campos c83b8f6d04 Update 2024-11-11 17:49:58 -08:00
Nuno Campos 62d3a85b07 Add sync test 2024-11-11 17:46:54 -08:00
Nuno Campos 810ae0ef51 lib: Add interrupt() function
- This works similarly to the input() function from stdlib
- calling it in a node interrupts execution
- invoking the graph with Command(resume=...) will set ... as the return value of interrupt() so that the node can access the "answer" to the "question"
- This PR also starts the work to control the graph on invoke/stream with Command() input, to be continued in a future PR
2024-11-11 17:44:03 -08:00
Nuno Campos 2ff49d2200 Update 2024-11-11 15:43:20 -08:00
Nuno Campos d0567dc7be Add feature flag (default off) so we can merge this before releasing
- Add additional ci job to test with FF on
2024-11-11 15:38:48 -08:00
Nuno Campos ea64ac5c07 Update 2024-11-11 14:18:14 -08:00
Nuno Campos 090b53ccc1 Lint 2024-11-11 14:14:23 -08:00
Nuno Campos 0e872e7482 Lin t 2024-11-11 14:12:33 -08:00
Nuno Campos 3ad966e057 Update 2024-11-11 14:08:59 -08:00
Nuno CamposandGitHub a73f9affab Merge pull request #2391 from langchain-ai/nc/11nov/control-to-command
lib: Rename Control to GraphCommand
2024-11-11 14:06:17 -08:00
Nuno Campos 89a0859928 Execute Sends in same super step that triggered them
- Keep old code path for compatibility with existing checkpoints
- Keep a similar order of application of updates, in some cases there will be no visible change
- Update task path for Sends to contain the path of all the parent tasks (multiple parents when a Send task creates another Send)
- That lineage path is used to ensure order of application of updates respects their logical lineage (ie updates from parents always applied before their child tasks)
- Move Interrupt writes to use negative indexes, which allow replacing/shadowing (when task is re-run it may interrupt again, or succeed)
- Runner will now attempt to schedule new Send tasks as soon as the write is received (ie while the originating node is still running)
- Update kafka scheduler to support new Send behavior
2024-11-11 14:01:16 -08:00
Nuno Campos 75c502cd93 Lint 2024-11-11 13:59:18 -08:00
Nuno Campos 0cc45f7a35 Lint 2024-11-11 13:04:23 -08:00
Nuno Campos efb1dd6a10 lib: Rename Control to GraphCommand 2024-11-11 13:01:04 -08:00
Nuno CamposandGitHub 6edb213fe7 Merge pull request #2388 from langchain-ai/nc/11nov/update-none-clear-all-tasks
lib: update_state(values=None) should clear all tasks
2024-11-11 12:07:51 -08:00
Nuno Campos c0513076a2 Lint 2024-11-11 11:07:36 -08:00
Nuno Campos c043f148a6 lib: update_state(values=None) should clear all tasks 2024-11-11 10:48:34 -08:00
David DuongandGitHub 366b5e04c7 Merge pull request #2376 from langchain-ai/dqbd/js-0.0.23-lc_build
fix(sdk-js): move to `@langchain/scripts` for building, bump to 0.0.23
2024-11-11 15:33:53 +01:00
Tat Dat Duong 72239d2228 Bump to 0.0.23, use @langchain/scripts 0.1.4 2024-11-11 15:01:12 +01:00
Vadym BardaandGitHub b7f238975a docs: fix nav sidebar (#2382) 2024-11-10 16:32:14 -05:00
Tat Dat Duong a3c45141ee Make sure we actually build the CJS 2024-11-08 20:52:44 +01:00
Tat Dat Duong f7b899a54d fix(sdk-js): move to @langchain/scripts for building 2024-11-08 20:08:38 +01:00
Vadym BardaandGitHub 95477277a2 docs: improve breadcrumbs behavior (#2375) 2024-11-08 18:39:59 +00:00
Andrew NguonlyandGitHub 64b446f671 Update LangGraph server API docs (#2374) 2024-11-08 10:32:17 -08:00
David DuongandGitHub c2d2e44794 Merge pull request #2372 from langchain-ai/dqbd/0.0.22-sdk-js
feat(sdk-js): bump to 0.0.22
2024-11-08 16:17:45 +01:00
Eugene YurtsevandGitHub f60b9f3b43 cli: add --version option (#2373)
- add version option
- add unit test
2024-11-08 02:49:30 +00:00
Tat Dat Duong e3acfa3435 feat(sdk-js): bump to 0.0.22 2024-11-08 03:19:27 +01:00
Vadym BardaandGitHub 0f92c89529 docs: show nav menu for mobile (#2371) 2024-11-07 20:31:49 -05:00
Andrew NguonlyandGitHub 7cba75ec35 sdk-js: Add custom and messages-tuple stream modes (#2370) 2024-11-07 16:32:08 -08:00
Vadym BardaandGitHub 8408ba3a3e docs: add breadcrumbs (#2363) 2024-11-07 21:33:55 +00:00
Nuno CamposandGitHub c8c58b30d5 Merge pull request #2368 from langchain-ai/nc/7nov/control
lib: Rename args in Control object
2024-11-07 13:19:12 -08:00
Nuno Campos b4bed3329c lib: Rename args in Control object
- update_state -> state
- trigger -> goto
2024-11-07 13:12:19 -08:00
Eugene YurtsevandGitHub 4eec3aa69e docs: fix some typos (#2364) 2024-11-07 14:52:47 -05:00
Vadym BardaandGitHub 35e3276e34 langgraph: add add_sequence to StateGraph (#2352) 2024-11-07 13:16:34 -05:00
Nuno CamposandGitHub b346f4ead8 Merge pull request #2358 from langchain-ai/nc/6nov/kafka-missing-task-id
kafka: Add missing task id for TaskNotFound error
2024-11-06 16:48:25 -08:00
Vadym BardaandGitHub fef748e6cc docs: add another ignore url pattern to link check (#2357) 2024-11-07 00:43:22 +00:00
Nuno Campos 19cc95f7b6 kafka: Add missing task id for TaskNotFound error 2024-11-06 16:41:43 -08:00
Vadym BardaandGitHub eef65d94ac docs: fix numbered list in assistant versioning (#2356) 2024-11-06 22:17:01 +00:00
Nuno Campos 72d497e052 Move code 2024-11-06 09:02:06 -08:00
Nuno CamposandGitHub 32f58258aa Merge pull request #2355 from langchain-ai/nc/6nov/loop-match-writes
lib: Split out _match_writes util in PregelLoop
2024-11-06 08:55:10 -08:00
Nuno Campos 87d57b434a lib: Split out _match_writes util in PregelLoop 2024-11-06 08:48:30 -08:00
Nuno CamposandGitHub 4bbbb7d246 Merge pull request #2354 from langchain-ai/nc/6nov/cached-tasks-output-timing
lib: For cached tasks, emit output events after task events
2024-11-06 08:29:38 -08:00
Nuno Campos c1ce3c6b5f lib: For cached tasks, emit output events after task events 2024-11-06 08:22:54 -08:00
Nuno CamposandGitHub 511de6f5f6 Merge pull request #2353 from langchain-ai/dqbd/runnable-passthrough-test
fix(graph): invalid graph representation if RunnablePassthrough is used
2024-11-06 08:14:19 -08:00
Nuno Campos 4dc08cd724 Fix 2024-11-06 08:07:48 -08:00
Tat Dat Duong d7b9b3b01d fix(graph): invalid graph representation if RunnablePassthrough is used 2024-11-06 16:34:29 +01:00
Vadym BardaandGitHub a82ded65c6 docs: fix install/env cell for customer support tutorial (#2350) 2024-11-05 19:50:05 -05:00
Brace SproulandGitHub 1ca49fa568 Merge pull request #2348 from langchain-ai/brace/filter-status-js
feat(js-sdk): Add status field in search args
2024-11-05 16:40:23 -08:00
bracesproul 4eb3cd32fa cr 2024-11-05 16:04:52 -08:00
Brace SproulandGitHub 80d2a315aa Merge branch 'main' into brace/filter-status-js 2024-11-05 16:03:58 -08:00
bracesproul 82c9aa8485 feat(js-sdk): Add status field in search args 2024-11-05 16:03:24 -08:00
Nuno CamposandGitHub 8ecfafefbf Merge pull request #2347 from langchain-ai/nc/5nov/control-serializable
lib: Make Control object serializable
2024-11-05 15:34:13 -08:00
Nuno Campos 010564cbb3 lib: Make Control object serializable 2024-11-05 15:24:20 -08:00
Nuno Campos 18a3fa4a00 Ignore unknown tasks 2024-11-05 14:22:23 -08:00
Nuno Campos de8e487ff1 Add todo 2024-11-05 10:53:42 -08:00
Nuno CamposandGitHub e5ebdff4d8 Merge pull request #2342 from langchain-ai/nc/5nov/send-test-interrupt-before
Add two more test cases for Send + interrupt
2024-11-05 09:34:04 -08:00
Nuno Campos f283dac325 Add one more test for send-react-interrupt flow with replacing tool call 2024-11-05 09:27:02 -08:00
Nuno Campos 639501809c api: Add one more test case for send + interrupt before
- Testing same exact behavior as send + interrupt after
2024-11-05 09:15:46 -08:00
Nuno CamposandGitHub 36e6b89081 Merge pull request #2333 from langchain-ai/nc/apply-writes-order
lib: Enforce write application order in apply_writes
2024-11-05 09:07:23 -08:00
Nuno CamposandGitHub 90639e6cd7 Merge pull request #2332 from langchain-ai/nc/4nov/update-state-latest
lib: When updating state from latest, apply pending writes first
2024-11-04 16:59:51 -08:00
Nuno Campos dec0b7f439 Lint 2024-11-04 16:43:07 -08:00
Nuno Campos 04657408f8 lib: Enforce write application order in apply_writes
- Previously order was enforced in prepare_next_tasks, but that's not a good fit for future features
- This changes order between PULL and PUSH tasks, updates from PUSH tasks will now be applied after updates from PULL tasks
2024-11-04 16:39:04 -08:00
Nuno Campos 971d746061 Lint 2024-11-04 16:33:20 -08:00
Nuno Campos 9a2ba8c8cd lib: When updating state from latest, apply pending writes first
- This picks a default value for as_node which matches the node which last acted, even if the step didnt finish (due to an interrupt)
2024-11-04 16:20:21 -08:00
Nuno CamposandGitHub b50d41bbf3 Merge pull request #2331 from langchain-ai/nc/4nov/get-state-latest-next
lib: When getting latest state, alst make `next` reflect pending writes
2024-11-04 16:16:53 -08:00
Nuno Campos b71fd5092b lib: When getting latest state, alst make next reflect pending writes
- ie. tasks already executed should not show up in `next` list
2024-11-04 16:03:34 -08:00
Nuno CamposandGitHub f9b151b67f Merge pull request #2330 from langchain-ai/nc/4nov/test-react-send
lib: Add test for react architecture using Send + interrupt_before
2024-11-04 15:58:27 -08:00
William FHandGitHub 7ba9a66301 [Docs] Clarify checkpointer options (#2328) 2024-11-04 15:43:00 -08:00
Nuno CamposandGitHub 1b85764bf6 Merge pull request #2329 from langchain-ai/nc/4nov/get-state-apply-pending-writes
lib: In calls to get_state apply pending writes
2024-11-04 15:42:23 -08:00
Nuno CamposandGitHub 5e4c928948 Merge pull request #2327 from langchain-ai/nc/4nov/send-tests
lib: Add two more tests for Send
2024-11-04 15:42:08 -08:00
Nuno Campos ae282e3ae1 lib: Add test for react architecture using Send + interrupt_before
- Both for cond edge and edgeless graphs
2024-11-04 15:41:02 -08:00
Nuno Campos de3b654735 Add one more assertion 2024-11-04 15:14:29 -08:00
Nuno Campos d28734f287 Lint 2024-11-04 15:12:34 -08:00
Nuno Campos f9409022ed lib: In calls to get_state apply pending writes
- When calling get_state without a checkpoint id (ie to get the latest state) apply any pending writes for current checkpoint
2024-11-04 15:10:12 -08:00
Nuno Campos 8138c88b41 Add async versions 2024-11-04 11:56:31 -08:00
Nuno Campos 38332fd3c6 Lint 2024-11-04 11:55:14 -08:00
Nuno Campos 5606bef3dd lib: Add two more tests for Send 2024-11-04 11:52:39 -08:00
Vadym BardaandGitHub 895079bbdc langgraph: release 0.2.45 (#2326) 2024-11-04 14:34:07 -05:00
Nuno CamposandGitHub 6aaf80f2fd Merge pull request #2325 from langchain-ai/nc/4nov/unset-skip-done-tasks
lib: Unset skip_done_tasks after each tick of the loop
2024-11-04 11:30:08 -08:00
Vadym BardaandGitHub 2e656d9145 langgraph: add config metadata to pregel loop (#2323) 2024-11-04 19:26:34 +00:00
Nuno CamposandGitHub 1fb8e013f7 Merge pull request #2303 from langchain-ai/nc/1nov/test-send-order
Test order of update application after Send
2024-11-04 11:26:04 -08:00
Nuno CamposandGitHub f8fe2041d9 Merge pull request #2144 from langchain-ai/nc/19oct/graph-control
lib: Add support for graphs without edges
2024-11-04 11:25:40 -08:00
Nuno Campos 014f8485a6 lib: Unset skip_done_tasks after each tick of the loop 2024-11-04 11:23:53 -08:00
David DuongandGitHub 58d7eb9b17 Merge pull request #2322 from langchain-ai/dqbd/cli-prebuild-js
feat(cli): add JS prebuild script
2024-11-04 18:13:25 +01:00
Tat Dat Duong 44ff5f1a5a Update tests 2024-11-04 14:00:02 +01:00
David DuongandGitHub 46f25cf926 Merge pull request #2307 from langchain-ai/dqbd/cli-js-other-pkg-managers
feat(cli): add support for other JS package managers based off package lock
2024-11-04 13:59:28 +01:00
Tat Dat Duong e1467c27cb Remove newline 2024-11-04 13:52:40 +01:00
Tat Dat Duong 5deedfe548 Bump to 0.1.53 2024-11-04 13:51:46 +01:00
Tat Dat Duong 30937d0406 feat(cli): add JS prebuild script 2024-11-04 13:50:41 +01:00
David DuongandGitHub 6eb8130419 Merge pull request #2310 from langchain-ai/dqbd/sdk-js-types
feat(sdk-js): improve types for drawable graph, interrupts and metadata
2024-11-04 13:26:58 +01:00
Tat Dat Duong 8455771eb9 Bump to 0.0.21 2024-11-04 13:20:36 +01:00
Tat Dat Duong 39dcafcdea feat(sdk-js): improve types for drawable graph, interrupts and metadata 2024-11-02 02:48:47 +01:00
Tat Dat Duong 7854a19dac Update test 2024-11-02 02:05:42 +01:00
AllenandGitHub 18cea39090 fix(docs): function call in partial (#2297)
Docs use prompts with partial + function call, which would result in a
static datetime as opposed to a dynamic datetime being rendered on use.
2024-11-02 00:37:16 +00:00
Vadym BardaandGitHub 46ffa0e8d4 langgraph: release 0.2.44 (#2308) 2024-11-01 20:27:17 -04:00
Tat Dat Duong bf3098a075 feat(cli): add support for other JS package managers based off package lock 2024-11-02 00:44:08 +01:00
Andrew NguonlyandGitHub cdd7899564 RemoteGraph: If node name is not present, fallback to node id as the node name (#2304) 2024-11-01 15:21:39 -07:00
Vadym BardaandGitHub eeebd44a87 docs: add subgraph streaming example for remote graph (#2306) 2024-11-01 22:16:09 +00:00
Vadym BardaandGitHub 805f437534 docs: fix link in the tutorial (#2305) 2024-11-01 17:52:09 -04:00
Vadym BardaandGitHub 782b9a7903 langgraph: add message list validation to create_react_agent + a troubleshooting guide (#2182) 2024-11-01 17:40:53 -04:00
Andrew NguonlyandGitHub ecb584cbe0 sdk: Add action query param to cancel Run methods (#2284) 2024-11-01 13:32:49 -07:00
Nuno Campos 1e3953d1e0 Test order of update application after Send
- updates from inside Send tasks are applied in the order the Sends were created, if when you fan out, and have each task write results to a list with reducer, the final list is in the order you used when triggering
2024-11-01 13:23:10 -07:00
William FHandGitHub 509291fc1a Bump CLI (#2302) 2024-11-01 19:53:48 +00:00
Vadym BardaandGitHub dbb1958be5 docs: add more redirects & remove unused cloud pages (#2301) 2024-11-01 19:40:21 +00:00
Vadym BardaandGitHub d261d43b39 docs: update the docs for streaming messages (#2299) 2024-11-01 14:38:41 -04:00
Andrew NguonlyandGitHub 6986a50711 Update LangGraph Server API docs (#2300) 2024-11-01 11:38:12 -07:00
Nuno CamposandGitHub e9fe3e8bd9 Merge pull request #2298 from langchain-ai/dqbd/cli-debugger-rename
chore(cli): rename Debugger to LangGraph Studio
2024-11-01 11:11:07 -07:00
ccurmeandGitHub bdca2f590a Merge pull request #2294 from langchain-ai/cc/webhooks
docs: add some detail on webhooks
2024-11-01 14:01:42 -04:00
Tat Dat Duong f4801ae9ae chore(cli): rename Debugger to LangGraph Studio 2024-11-01 18:47:35 +01:00
Nuno CamposandGitHub 47ea264b46 Merge pull request #2296 from langchain-ai/vb/remap
langgraph: handle messages-tuple stream mode in RemoteGraph
2024-11-01 09:50:51 -07:00
vbarda 84e023e10b langgraph: handle messages-tuple stream mode in RemoteGraph 2024-11-01 12:43:59 -04:00
Chester Curme 52f0953786 add detail 2024-11-01 11:23:16 -04:00
Vadym BardaandGitHub d9743f684e docs: update annotation in tutorial (#2293) 2024-11-01 13:57:16 +00:00
Vadym BardaandGitHub 4aebb461e9 docs: update core in docs dependencies (#2291) 2024-11-01 09:51:34 -04:00
Vadym BardaandGitHub c2cc1e2e5e docs: remove token-by-token streaming from stream events (#2292) 2024-11-01 13:27:06 +00:00
William FHandGitHub 66cf2e6779 Add Tree of Thoughts (#1128) 2024-10-31 21:27:13 -07:00
Vadym BardaandGitHub 7bacb8c984 langgraph: release 0.2.43 (#2286) 2024-10-31 17:57:21 -04:00
BagaturandGitHub e2de59c6fb langgraph[patch]: bump core ^0.3.15 || ^ 0.2.43 (#2285) 2024-10-31 17:53:03 -04:00
Vadym BardaandGitHub c28dc26356 docs: fix typo (#2283) 2024-10-31 16:27:07 -04:00
Eugene YurtsevandGitHub ea012fb7dc docs: reorder reference (#2282) 2024-10-31 20:25:58 +00:00
Nuno Campos 18e71469e1 Lint 2024-10-31 12:57:00 -07:00
Eugene YurtsevandGitHub 4b1d30906e ci: update deploy docs workflow to check external links on langchain.com (#2280)
Reverts temporary change that was made yesterday to accommodate a link
that was only available on the staging version of langchain.com
2024-10-31 14:48:32 -04:00
Eugene YurtsevandGitHub 8b36013a03 Fix bad tab in how-to guide (#2278) 2024-10-31 14:48:21 -04:00
Vadym BardaandGitHub ed91572ceb docs: expose how-to on rebuilding graph at runtime (#2281) 2024-10-31 18:34:16 +00:00
Eugene YurtsevandGitHub 4150abf18c docs: update reference layout (#2279)
![image](https://github.com/user-attachments/assets/62f1588c-d08d-474c-b512-a558759e7627)
2024-10-31 18:23:27 +00:00
Vadym BardaandGitHub e132dfc955 docs: update FAQ (#2277)
Sync with https://www.langchain.com/langgraph
2024-10-31 13:43:08 -04:00
Nuno Campos 2624fc43dd Fix 2024-10-31 09:40:24 -07:00
Nuno Campos 0c5c2e6370 lib: Add support for graphs without edges
- Return Control(update_state=, trigger=, send=) from your nodes instead
- Annotate nodes with Control[Literal["destination"]] to see your graph connections drawn
2024-10-31 09:38:43 -07:00
Harrison ChaseandGitHub f7a93f99ef cp readme over (#2274) 2024-10-31 15:17:26 +00:00
Vadym BardaandGitHub 9f29bbfce8 docs: add flags to self-hosted (#2272) 2024-10-31 11:11:26 -04:00
Vadym BardaandGitHub 0075080827 docs: update quick start (#2273) 2024-10-31 11:11:07 -04:00
Harrison ChaseandGitHub 63318e5690 Harrison/update readme 1 (#2262) 2024-10-31 10:02:40 -05:00
Harrison ChaseandGitHub d0c12b1b7f Harrison/update language (#2271) 2024-10-31 10:01:22 -05:00
Vadym BardaandGitHub 194b4e0d9b langgraph: release 0.2.42 (#2270) 2024-10-31 10:32:13 -04:00
Nuno CamposandGitHub c6c7f400ae Merge pull request #2256 from langchain-ai/nc/30oct/fix-messages-subgraphs
Fix stream_mode=messages used together with subgraphs=True
2024-10-31 07:27:04 -07:00
Vadym BardaandGitHub c91e6bcc46 Merge branch 'main' into nc/30oct/fix-messages-subgraphs 2024-10-31 10:14:04 -04:00
vbarda ca69566d67 remove events 2024-10-31 10:13:24 -04:00
Jacob LeeandGitHub 0bedfa3628 docs: Fix typos (#2266) 2024-10-31 10:00:37 -04:00
Vadym BardaandGitHub fd82f037c6 docs: update remote graph how-to (#2269) 2024-10-31 09:58:11 -04:00
Vadym BardaandGitHub 2bacc42e01 docs: fix typo in remote graph how-to (#2268) 2024-10-31 09:29:10 -04:00
Eugene YurtsevandGitHub b527b785fd disable more link checking (#2265) 2024-10-31 04:10:10 +00:00
Eugene YurtsevandGitHub c3622cb0fe docs: disable link check for link that doesn't exist yet (#2263) 2024-10-31 03:51:44 +00:00
d0e59f406b docs: concepts for cloud and doc-reorg (#2196)
Update langgraph documentation

---------

Co-authored-by: Vadym Barda <vadym@langchain.dev>
Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com>
Co-authored-by: Nuno Campos <nuno@langchain.dev>
Co-authored-by: Chester Curme <chester.curme@gmail.com>
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2024-10-30 23:34:02 -04:00
Nuno Campos 4cc6d789ed Fix stream_mode=messages used together with subgraphs=True 2024-10-30 19:35:28 -07:00
BagaturandGitHub d6d6ab9b73 langgraph[patch]: fix core dep specification (#2253) 2024-10-30 21:50:46 -04:00
Vadym BardaandGitHub e7816eb197 ci: turn off release attestations (#2252) 2024-10-30 21:28:34 -04:00
Vadym BardaandGitHub 4f8b69360c langgraph: release 0.2.41 (#2251) 2024-10-30 21:22:54 -04:00
Vadym BardaandGitHub 0718d0a660 langgraph: fix caller_ns in remote graph (#2250) 2024-10-31 01:20:36 +00:00
BagaturandGitHub 3641e65cac langgraph[patch]: fix annotations in inherited tool schemas (#2236)
fix #2220
2024-10-30 21:19:02 -04:00
Nuno CamposandGitHub b17141604d Merge pull request #2247 from langchain-ai/jacob/nit
fix: Fix typo in remote graph astream
2024-10-30 14:59:27 -07:00
Nuno Campos 5fece1cbfc langgraph 0.2.40 2024-10-30 14:58:27 -07:00
Nuno CamposandGitHub a85b7fca15 Merge pull request #2246 from langchain-ai/nc/30oct/node-callback
Add "node finished" callback
2024-10-30 14:57:51 -07:00
jacoblee93 af9a09b182 Fix typo in remote graph astream 2024-10-30 14:52:59 -07:00
Nuno Campos 75c8f99d3c Add "node finished" callback 2024-10-30 14:45:09 -07:00
Nuno CamposandGitHub 46892855c5 Merge pull request #2242 from langchain-ai/nc/30oct/remote-subgraphs
fix: RemoteGraph should propagate subgraphs streaming
2024-10-30 14:23:45 -07:00
Nuno Campos 59e8d59b7c Fix 2024-10-30 14:17:50 -07:00
Nuno Campos 5cb6ff79ca Prepend ns 2024-10-30 14:09:43 -07:00
Nuno Campos 9c41ce0b1c Lint 2024-10-30 14:07:27 -07:00
Nuno Campos 61abee4bd4 Lint 2024-10-30 13:59:31 -07:00
Nuno Campos 43d9567c5d fix: RemoteGraph should propagate subgraphs streaming 2024-10-30 13:47:27 -07:00
Nuno CamposandGitHub 3923979479 Merge pull request #2235 from langchain-ai/nc/30oct/remote-invoke
lib: Ensure RemoteGraph.invoke emits all subgraph events as expected
2024-10-30 13:26:56 -07:00
Nuno Campos 5312fbd7f4 Fix 2024-10-30 13:20:55 -07:00
David DuongandGitHub ae412bbede Merge pull request #2237 from langchain-ai/jacob/sdk
feat(sdk-js): Support if_not_exists in SDK runs
2024-10-30 19:16:22 +01:00
jacoblee93 69c8d21ba6 Support if_not_exists 2024-10-30 11:10:08 -07:00
Nuno Campos 2dfc4e3cc0 lib: Ensure RemoteGraph.invoke emits all subgraph events as expected
- Just delegate to stream
2024-10-30 10:40:14 -07:00
74c8589045 Add support for Docker arg passthrough in langgraph CLI (#2206)
Added a js-example to show it builds
Adapted integration tests after removing the test CLI command

---------

Co-authored-by: Nuno Campos <nuno@langchain.dev>
2024-10-29 22:33:40 -07:00
Vadym BardaandGitHub 4717632ce7 sdk-py: more docstring updates (#2225) 2024-10-30 01:22:29 +00:00
Andrew NguonlyandGitHub 726a85f26b Add docstring to RemoteGraph (#2217) 2024-10-29 15:31:21 -07:00
Vadym BardaandGitHub 8a0650a46b sdk-py: update docstrings (#2221) 2024-10-29 20:31:12 +00:00
Vadym BardaandGitHub e7dc43b7ca langgraph: validate sync/async clients initialized correctly in RemoteGraph (#2214) 2024-10-29 13:21:10 -04:00
Nuno Campos 90195af1d8 sdk-py 0.1.35 2024-10-28 15:22:05 -07:00
Nuno Campos da707343dc sdk-js 0.0.19 2024-10-28 15:21:57 -07:00
Nuno CamposandGitHub 1f5fc505c6 Merge pull request #2204 from langchain-ai/nc/28oct/sdk-wait-raise-error
sdk: By default raise errors in /wait endpoint
2024-10-28 14:46:14 -07:00
Nuno Campos 4c655f841e Lint 2024-10-28 14:40:25 -07:00
Nuno Campos be27c96f3c sdk: By default raise errors in /wait endpoint 2024-10-28 14:27:13 -07:00
eric-langchainandGitHub 5090e30f71 Merge pull request #2185 from langchain-ai/update-docs-for-homepage-redesign
home page redesign docs
2024-10-28 11:47:34 -05:00
Lance MartinandGitHub 688de89864 Fix link that is causing docs build to fail (#2194) 2024-10-25 23:34:08 +00:00
Lance MartinandGitHub 62444d4c63 Update memory concept doc (#2181)
Add content on [memory
types](https://blog.langchain.dev/memory-for-agents/).
2024-10-25 14:08:04 -07:00
Eugene YurtsevandGitHub 4a970cca8b docs: update main site layout (#2191)
* Remove land hand sidebar on most pages
* Cleans up some headings
* Adds error reference information to index (it was already on the
sidebar for the how-to page) -- should probably be its own tab?
* Adds an index page for the reference (so it's easier to link to a main
reference page), alternatively we can set up a redirect from index to
graph
2024-10-25 16:49:31 -04:00
Eugene YurtsevandGitHub 18b9135770 docs: update tutorials index page (#2190)
Minor formatting update -- since this section stands right now looks
quite bad
2024-10-25 18:08:21 +00:00
David DuongandGitHub d266ddb312 Merge pull request #2167 from langchain-ai/dqbd/sdk-js-timeout
feat(sdk-js): implement abort signal timeout, make default timeout for runs 5 minutes
2024-10-25 15:40:30 +02:00
Tat Dat Duong 7a348ac19c Don't enforce timeouts for run stream / block endpoints 2024-10-25 15:34:36 +02:00
Eric han 123d93539a some more spots 2024-10-24 17:14:02 -05:00
Eric han 785e7dab3a home page redesign docs 2024-10-24 17:04:20 -05:00
Vadym BardaandGitHub 582fb11dd4 checkpoint-sqlite: release 2.0.1 (#2184) 2024-10-24 17:08:25 -04:00
Vadym BardaandGitHub 39d9cdbef0 checkpoint-postgres: release 2.0.2 (#2183) 2024-10-24 17:06:36 -04:00
Vadym BardaandGitHub 6dacd1aabe langgraph: always raise NodeInterrupt in ToolNode if raised from a tool (#2175) 2024-10-24 18:21:18 +00:00
Vadym BardaandGitHub 91ad8b803b checkpoint-duckdb: release 2.0.1 (#2180) 2024-10-24 13:58:48 -04:00
Vadym BardaandGitHub a0e99f704f checkpoint: release 2.0.2 (#2179) 2024-10-24 13:52:02 -04:00
Vadym BardaandGitHub def3e06b4a move py.typed to submodules for namespace packages (#2177) 2024-10-24 13:43:43 -04:00
David DuongandGitHub a4fab2a867 Merge pull request #2178 from langchain-ai/dqbd/sdk-bump-24oct
feat(sdk): bump SDK to js@0.0.18 and py@0.1.34
2024-10-24 18:58:07 +02:00
Tat Dat Duong cf1c7f3673 feat(sdk): bump SDK to js@0.0.18 and py@0.1.34 2024-10-24 18:51:56 +02:00
Nuno CamposandGitHub 6c05b66c7c Merge pull request #2176 from langchain-ai/dqbd/error-thread-state
fix(sdk): add error thread state
2024-10-24 09:23:20 -07:00
Tat Dat Duong 5c44dcef81 fix(sdk): add error thread state 2024-10-24 18:16:21 +02:00
Nuno Campos 7fd6b1b4be Fix 2024-10-24 08:48:46 -07:00
Vadym BardaandGitHub 6202e0f1d9 docs: update branching how-to notebook (#2174) 2024-10-24 14:56:19 +00:00
Tat Dat Duong ccfeafa975 feat(sdk-js): implement abort signal timeout, make default timeout for runs 5 minutes 2024-10-24 09:38:42 +02:00
Nuno CamposandGitHub 83238f51d8 Merge pull request #2166 from langchain-ai/nc/23oct/remote-graph-interop
Interop of RemoteGraph w core lib
2024-10-23 20:36:38 -07:00
Nuno Campos 05f008cbfb Lint 2024-10-23 20:30:32 -07:00
Nuno Campos a8ae2a52a3 Lint 2024-10-23 20:27:18 -07:00
Nuno Campos aa245a8e71 Fix up 2024-10-23 20:22:04 -07:00
bdc75a22d5 langgraph: expand handle_tool_errors in ToolNode (#1667)
This change expands error-handling functionality of the `ToolNode` by
introducing more options for `handle_tool_errors`. Default behavior of
the `ToolNode` is unchanged -- all errors are handled and wrapped in a
`ToolMessage` to be sent back to LLM.

With this change, users have flexibility to only handle the exceptions
that they need to pass back to the LLM:

* they can specify exceptions to handle by passing a tuple of exceptions
in `handle_tool_errors`
* specify `handle_tool_errors=True/str/callable`
* when `handle_tool_errors` is a callable, the signature will be
inspected and exceptions from the signature will be handled

---------

Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-24 00:58:05 +00:00
Nuno Campos 69227daff3 Lint 2024-10-23 17:01:58 -07:00
Nuno Campos dc8260bb72 Interop of RemoteGraph w core lib 2024-10-23 15:37:17 -07:00
Vadym BardaandGitHub 62a5ec509d checkpoint: add DuckDB store (#2154) 2024-10-23 22:20:10 +00:00
Vadym BardaandGitHub d32386f849 checkpoint: add DuckDB checkpointer (#2145) 2024-10-23 21:11:03 +00:00
Nuno CamposandGitHub 08a1ed38f1 Merge pull request #2092 from langchain-ai/an/11oct/remote-graph-interrupt
Update `stream()` and `astream()` methods in `RemoteGraph` to process `updates` event types
2024-10-23 13:48:43 -07:00
Nuno Campos 037a95ff60 Update tests 2024-10-23 13:43:48 -07:00
Nuno Campos e294720ec5 Lint 2024-10-23 13:29:59 -07:00
Nuno Campos f8a0b7a464 Use if_not_exists 2024-10-23 13:24:19 -07:00
Nuno Campos 1121806ba4 Add if_not_exists 2024-10-23 13:23:49 -07:00
Nuno Campos dca200d6c4 Finish 2024-10-23 13:23:42 -07:00
Vadym BardaandGitHub 6f236b5f2c docs: update multi-agent concept examples (#2151) 2024-10-23 13:40:24 -04:00
Vadym BardaandGitHub 916affa1b5 langgraph: add 'messages_key' param to ToolNode / tools_condition (#2049) 2024-10-22 17:32:05 -04:00
Nuno Campos 58cf0c6a6e chore: Switch s3 client utils from httpx client to curl client 2024-10-22 10:46:37 -07:00
gbaian10andGitHub 0042889c31 Support read type hints from the method in add_node (#2014)
Add function to read type hints from the `__call__` method to resolve issue #1950.
2024-10-22 17:11:59 +00:00
nikhildigdeandGitHub 2be012d8ed docs: fix typo in concept docs 2024-10-21 21:40:47 +00:00
Yuki OshimaandGitHub 780285ef91 Fix(docs): InMemoryStore example error (#2148) 2024-10-21 18:39:43 +00:00
Nuno CamposandGitHub 47c7b76aa1 Merge pull request #2152 from langchain-ai/nc/21oct/skip-docker-login-for-forks
ci: Skip docker login for PRs from forks
2024-10-21 10:09:54 -07:00
Nuno Campos 9931f61525 ci: Skip docker login for PRs from forks 2024-10-21 10:04:40 -07:00
Nuno CamposandGitHub 0d81ad92f0 Merge pull request #2143 from langchain-ai/nc/19oct/async-max-concurrency
lib: Add max_concurrency for async executions
2024-10-19 15:16:15 -07:00
Nuno Campos 7d3f2ca3ed Lint 2024-10-19 15:11:18 -07:00
Nuno Campos 42648c88dd lib: Add max_concurrency for async executions 2024-10-19 12:45:01 -07:00
Vadym BardaandGitHub 1aab758634 langgraph: release 0.2.39 (#2139) 2024-10-18 14:47:50 -04:00
Vadym BardaandGitHub b5fbc7a7b8 docs: temporarily disable some link checks (#2138) 2024-10-18 14:37:19 -04:00
b647dcb0f2 feat: Add LangGraph error pages (#2136)
Co-authored-by: Erick Friis <erick@langchain.dev>
Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-18 18:20:22 +00:00
Nuno CamposandGitHub 4df5680732 Merge pull request #2132 from langchain-ai/nc/17oct/stream-messages-nostream-tag
For stream_mode=messages skip any nodes/llms with tag nostream
2024-10-17 15:57:09 -07:00
Nuno Campos 74a17a6d4c Update tests 2024-10-17 15:52:17 -07:00
Nuno Campos e2a3698250 For stream_mode=messages skip any nodes/llms with tag nostream 2024-10-17 15:28:14 -07:00
Vadym BardaandGitHub 4dfdb9a83e docs: update tags for store endpoints in API docs (#2127) 2024-10-16 16:34:54 +00:00
Vadym BardaandGitHub 583d8c9499 docs: update tutorial names/links (#2126) 2024-10-16 15:17:28 +00:00
vbarda 15bbede7bc update image in multi-agent concepts 2024-10-16 10:59:07 -04:00
Vadym BardaandGitHub 3ffdf4bb3f docs: update image in concepts (#2125) 2024-10-16 13:59:17 +00:00
Nuno CamposandGitHub 6578698414 Merge pull request #2124 from langchain-ai/dqbd/js-bump-0.0.17
feat(sdk-js): bump to 0.0.17
2024-10-16 06:21:22 -07:00
Tat Dat Duong 048ae6c17b feat(sdk-js): bump to 0.0.17 2024-10-16 15:19:39 +02:00
Nuno CamposandGitHub 0e2c2eb13a Merge pull request #2120 from langchain-ai/nc/15oct/executor-dict
fix: Avoid errors from executor modifying tasks dict during exit routine
2024-10-15 16:15:55 -07:00
Nuno Campos 515c4ffebe Fix 2024-10-15 16:11:08 -07:00
Nuno Campos eefe057a47 fix: Avoid errors from executor modifying tasks dict during exit routine
- This could happen if a task happened to finish while the exit routine is running
2024-10-15 15:13:46 -07:00
18f34c30d8 docs: update subgraph how-to (#2079)
Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-15 17:30:34 -04:00
2670bcf330 docs: add concepts for subgraphs and multi-agent (#2069)
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
Co-authored-by: Nuno Campos <nuno@langchain.dev>
2024-10-15 17:17:22 -04:00
bracesproul 433c382280 cr 2024-10-15 11:37:20 -07:00
bracesproul 7352ab14a2 cr 2024-10-15 11:36:37 -07:00
bracesproul 85a76912d3 fix(sdk-js): Pass api key in headers by default if in env 2024-10-15 11:33:40 -07:00
Nuno Campos f6fb2ef5ca langgraph 0.2.38 2024-10-15 11:04:22 -07:00
Vadym BardaandGitHub 2fb7e92879 docs: update recursion notebook to use RemainingSteps (#2114) 2024-10-15 12:05:46 -04:00
Nuno CamposandGitHub 46b2d08a8a Merge pull request #2115 from langchain-ai/nc/15oct/update-is-last-step
Return IsLastStep to previous definition
2024-10-15 08:41:30 -07:00
Nuno Campos 649b742e0a Update types for RemainingSteps, return IsLastStep to previous definition 2024-10-15 08:35:31 -07:00
Nuno CamposandGitHub fd4629e778 Merge pull request #2112 from langchain-ai/vb/fix-type
langgraph: fix type for RemainingSteps
2024-10-15 08:34:50 -07:00
vbarda d14f98f01b langgraph: fix type for RemainingSteps 2024-10-15 09:07:00 -04:00
Nuno Campos c0b56bf60d langgraph 0.2.37 2024-10-14 17:29:11 -07:00
Nuno CamposandGitHub e8b875906f Merge pull request #2105 from langchain-ai/nc/14oct/is-last-step-fix
Fix IsLastStep counter for runs with checkpointers
2024-10-14 17:21:31 -07:00
Nuno Campos d48faecd42 Fix 2024-10-14 17:16:32 -07:00
Nuno Campos 5e175e098b Update kafka 2024-10-14 17:10:10 -07:00
Nuno Campos bcf335651e Fix is_last_step 2024-10-14 17:05:16 -07:00
Nuno Campos 965849823a Fix 2024-10-14 17:03:53 -07:00
Nuno Campos 45e7101457 Backwards compat 2024-10-14 16:57:25 -07:00
Nuno Campos ecd75a8c4d Fix IsLastStep counter for runs with checkpointers
- Share step/stop logic with PregelLoop
- Add RemainingSteps value which contains the number of remaining steps
- Switch create_react_agent to use RemainingSteps, so that it behave correctly for return_direct tools
2024-10-14 16:54:16 -07:00
Nuno CamposandGitHub edec5c055e Merge pull request #2065 from langchain-ai/dqbd/debug-stream-checkpoint-map
fix(debug): send checkpoint_map as well
2024-10-14 15:50:39 -07:00
Nuno Campos ff310cc8d6 One more 2024-10-14 15:45:12 -07:00
Nuno Campos 233bd78ee4 Add checkpoint_map to parent_config 2024-10-14 15:44:18 -07:00
Nuno Campos b818bf2fba Fix up 2024-10-14 15:32:41 -07:00
Tat Dat DuongandNuno Campos c5ec568cfb Patch config before entering map_debug_checkpoint 2024-10-14 15:16:24 -07:00
Tat Dat DuongandNuno Campos 29548b2e27 fix(debug): add failing tests 2024-10-14 15:16:03 -07:00
Nuno Campos f2dc537696 langgraph 0.2.36 2024-10-14 12:28:43 -07:00
Nuno Campos 31d21c8d24 sdk-py 0.1.33 2024-10-14 12:28:22 -07:00
Nuno CamposandGitHub 4a03ed5915 Merge pull request #2091 from langchain-ai/nc/11oct/checkpoint-task-result
lib: Add result for each task in a checkpoint
2024-10-14 11:37:28 -07:00
Nuno Campos dc083c6563 Fix 2024-10-14 11:31:03 -07:00
Nuno Campos bfe005fef0 Lint 2024-10-14 10:30:59 -07:00
vbarda 5388b7c74f install dev sdk 2024-10-14 13:23:18 -04:00
vbarda 0d4617817d Merge branch 'nc/11oct/checkpoint-task-result' of github.com:langchain-ai/langgraph into nc/11oct/checkpoint-task-result 2024-10-14 13:20:25 -04:00
Nuno Campos 5046ec4f43 Lint 2024-10-14 10:16:14 -07:00
Nuno Campos c26bb9e156 lib: Add result for each task in a checkpoint
- Note this requires disabling the optimization that avoids saving writes for the last task in a step
2024-10-14 10:16:14 -07:00
Nuno CamposandGitHub 3982090c6d Merge pull request #2088 from langchain-ai/nc/11oct/stream-interrupt
lib: Add interrupts to stream_mode=updates
2024-10-14 10:15:53 -07:00
Nuno CamposandGitHub 6d3a2c59da Merge pull request #2102 from langchain-ai/vb/ci-update
ci: run core 0.2.x for a single python version
2024-10-14 10:15:38 -07:00
vbardaandNuno Campos 79444dee9c ci: run core 0.2.x for a single python version 2024-10-14 10:10:42 -07:00
Nuno CamposandGitHub 07f8f87780 Merge pull request #2103 from langchain-ai/nc/14oct/docker-ro-token
Add read-only token for pulling public images from dockerhub
2024-10-14 10:07:45 -07:00
Nuno Campos 99bde8774e Add read-only token for pulling public images from dockerhub 2024-10-14 09:56:24 -07:00
Nuno CamposandGitHub 5946f4ff2b Merge pull request #2100 from langchain-ai/vb/copy
langgraph: support copy without update in Pregel
2024-10-14 09:12:36 -07:00
vbarda b99734d157 langgraph: support copy without update in Pregel 2024-10-14 10:14:41 -04:00
Vadym BardaandGitHub d1c29fc8be docs: remove example with missing link (#2099) 2024-10-14 14:05:48 +00:00
Andrew Nguonly 19ccb0c6af Update astream_events() to process interrupt. 2024-10-11 19:06:52 -07:00
Andrew Nguonly a277b86fcb Fix unit test. 2024-10-11 18:53:45 -07:00
Andrew Nguonly 2f819a6a9b Update stream() and astream() to process 'updates' event types. 2024-10-11 18:40:40 -07:00
Nuno Campos dc47c7b357 lib: Add result for each task in a checkpoint
- Note this requires disabling the optimization that avoids saving writes for the last task in a step
2024-10-11 16:08:00 -07:00
Nuno Campos 561aa3080e Lint 2024-10-11 14:28:16 -07:00
Nuno Campos c6a450b857 lib: Add interrupts to stream_mode=updates 2024-10-11 14:28:16 -07:00
Nuno Campos 0557fb03a4 format 2024-10-11 14:28:08 -07:00
Nuno CamposandGitHub c9adf995c2 Merge pull request #2087 from langchain-ai/nc/11oct/o-flag
fix: Work w python's O flag
2024-10-11 12:03:21 -07:00
Nuno Campos fc20de5bba Fix 2024-10-11 11:39:19 -07:00
Nuno Campos 0822a287e3 fix: Work w python's O flag
- assert statements are skipped in that case, so we need to move calls to apply_writes to outside assert statements
2024-10-11 11:24:56 -07:00
Andrew NguonlyandGitHub 66741ba071 Rename RemotePregel to RemoteGraph (#2085) 2024-10-11 10:55:04 -07:00
Andrew NguonlyandGitHub e72c25873f Implement PregelProtocol and RemotePregel class (attempt 2) (#2078)
### Summary
Redo of [this PR](https://github.com/langchain-ai/langgraph/pull/2034)
(branched from clean branch).
2024-10-11 09:23:12 -07:00
Vadym BardaandGitHub 739336516d docs: remove empty cells for admonitions (#2082) 2024-10-11 13:36:24 +00:00
Nuno CamposandGitHub ae6c793bdf Merge pull request #2077 from langchain-ai/nc/10oct/313
Test w Python 3.13 in CI
2024-10-10 16:35:53 -07:00
Nuno Campos d8954963b4 Update snapshots 2024-10-10 16:27:43 -07:00
Nuno Campos ea38ba9e29 Update uvloop 2024-10-10 16:22:34 -07:00
Nuno Campos 76229ade66 Update psycopg 2024-10-10 16:17:19 -07:00
Nuno Campos 4aad36947e Upgrade pydantic 2024-10-10 16:13:05 -07:00
Nuno Campos cb7b667e6f Update psycopg 2024-10-10 16:09:24 -07:00
Nuno Campos 822ddb5f48 Test aux libs 2024-10-10 16:06:05 -07:00
Nuno Campos de355ee2d2 Update rpds-py 2024-10-10 16:05:43 -07:00
Nuno Campos 9ca270d62d Test w Python 3.13 in CI 2024-10-10 15:58:59 -07:00
David DuongandGitHub 28b5105913 Merge pull request #2070 from langchain-ai/dqbd/debug-self-referencing-checkpoint
fix(debug): self-referencing checkpoints when resuming streaming mid-thread
2024-10-10 12:44:45 +02:00
Tat Dat Duong be47752f0e Initialise to None 2024-10-10 11:15:54 +02:00
Isaac FranciscoandGitHub aa83f4a33e adding support for more notebooks in CI (#2060) 2024-10-10 01:48:13 +00:00
Tat Dat Duong 4d69331a52 Add async tests 2024-10-10 02:29:28 +02:00
Tat Dat Duong fb8c386958 fix(debug): address self-referencing 2024-10-10 02:21:32 +02:00
Tat Dat Duong ac8b51f1f2 fix(debug): add failing test for self-referencing 2024-10-10 02:21:17 +02:00
Vadym BardaandGitHub db0f508269 docs: add custom hooks for rendering jupyter notebooks (#2067) 2024-10-09 18:49:54 -04:00
Vadym BardaandGitHub fe110ae145 docs: fix intro in supervisor tutorial (#2068) 2024-10-09 20:59:49 +00:00
David DuongandGitHub fc276c5ac0 Merge pull request #2066 from langchain-ai/dqbd/checkpoint-sdk-js
fix(sdk-js): pass checkpoint when creating run
2024-10-09 20:50:54 +02:00
Tat Dat Duong 9360545659 Remove deprecated message 2024-10-09 20:41:18 +02:00
Tat Dat Duong 26e30ad6af Remove error warning 2024-10-09 20:40:24 +02:00
Tat Dat Duong 8df533b489 fix(sdk-js): allow passing checkpoint when creating a run 2024-10-09 20:34:19 +02:00
Vadym BardaandGitHub f9df0f4700 docs: update many tools how-to chart (#2059) 2024-10-09 13:46:59 +00:00
David DuongandGitHub 5d0afa3888 Merge pull request #2048 from langchain-ai/dqbd/debug-tasks-state
feat(debug): send tasks info
2024-10-09 14:38:26 +02:00
Tat Dat Duong a53a566730 Bump to 0.2.35 2024-10-09 14:33:14 +02:00
Andrew NguonlyandTat Dat Duong d2c359f7c9 docs: Update LangGraph API docs (#2056)
### Summary
Adding endpoints for `/subgraphs` and `/store`.
2024-10-09 14:33:14 +02:00
Andrew NguonlyandTat Dat Duong c4d251b05c sdk-py: Add Sequence[dict] type to values param type for update_state() (#2054)
### Summary
The LangGraph API supports a list of `dict` for the `values` field for
the `POST /threads/<thread_id>/state` endpoint.

Reference:
https://github.com/langchain-ai/langgraph-api/blob/main/api/openapi.json#L3005-L3021
2024-10-09 14:33:14 +02:00
Andrew NguonlyandTat Dat Duong 9a752e1563 sdk-py: Add "*" literal to interrupt_before and interrupt_after types (#2053)
### Summary
The LangGraph API supports the literal string `"*"` for
`interrupt_before` and `interrupt_after`.

Reference:
https://github.com/langchain-ai/langgraph-api/blob/main/api/openapi.json#L2425
2024-10-09 14:33:14 +02:00
Andrew NguonlyandTat Dat Duong 6d4a426059 sdk-py: Add custom stream mode to StreamMode type (#2051)
### Summary
The LangGraph API supports `custom` stream mode type.

Reference:
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/cloud/reference/api/openapi.json#L2403
2024-10-09 14:33:14 +02:00
Andrew NguonlyandTat Dat Duong 598bb5a641 sdk-py: Update return type annotation for Thread.update_state() methods. (#2050)
### Summary
The response body of the endpoint `POST /threads/{thread_id}/state`
looks like this:
```
{
    "checkpoint": {
        "thread_id": "e2496803-ecd5-4e0c-a779-3226296181c2",
        "checkpoint_ns": "",
        "checkpoint_id": "1ef4a9b8-e6fb-67b1-8001-abd5184439d1",
        "checkpoint_map": {}
    }
}
```
2024-10-09 14:33:14 +02:00
Andrew NguonlyandGitHub 28ff7fd7ba docs: Update LangGraph API docs (#2056)
### Summary
Adding endpoints for `/subgraphs` and `/store`.
2024-10-08 16:44:01 -07:00
Tat Dat Duong 0628c6402f Fix typo 2024-10-09 01:00:36 +02:00
Tat Dat Duong db61d294a6 Code review 2024-10-09 01:00:06 +02:00
Andrew NguonlyandGitHub 7883ceae64 sdk-py: Add Sequence[dict] type to values param type for update_state() (#2054)
### Summary
The LangGraph API supports a list of `dict` for the `values` field for
the `POST /threads/<thread_id>/state` endpoint.

Reference:
https://github.com/langchain-ai/langgraph-api/blob/main/api/openapi.json#L3005-L3021
2024-10-08 13:49:27 -07:00
Andrew NguonlyandGitHub 6698e25a04 sdk-py: Add "*" literal to interrupt_before and interrupt_after types (#2053)
### Summary
The LangGraph API supports the literal string `"*"` for
`interrupt_before` and `interrupt_after`.

Reference:
https://github.com/langchain-ai/langgraph-api/blob/main/api/openapi.json#L2425
2024-10-08 13:29:11 -07:00
Andrew NguonlyandGitHub fd1a9e4da3 sdk-py: Add custom stream mode to StreamMode type (#2051)
### Summary
The LangGraph API supports `custom` stream mode type.

Reference:
https://github.com/langchain-ai/langgraph/blob/main/docs/docs/cloud/reference/api/openapi.json#L2403
2024-10-08 12:44:37 -07:00
Andrew NguonlyandGitHub 82c316b3f7 sdk-py: Update return type annotation for Thread.update_state() methods. (#2050)
### Summary
The response body of the endpoint `POST /threads/{thread_id}/state`
looks like this:
```
{
    "checkpoint": {
        "thread_id": "e2496803-ecd5-4e0c-a779-3226296181c2",
        "checkpoint_ns": "",
        "checkpoint_id": "1ef4a9b8-e6fb-67b1-8001-abd5184439d1",
        "checkpoint_map": {}
    }
}
```
2024-10-08 12:04:26 -07:00
Tat Dat Duong 7a282f82dc Tests? 2024-10-08 20:55:49 +02:00
Tat Dat Duong 45a12c938b Add more nested tests for nested subgraphs 2024-10-08 20:49:16 +02:00
Tat Dat Duong b51f5d6345 Fix optional types 2024-10-08 20:09:51 +02:00
Tat Dat Duong f9e900f39a Fix 3.9 2024-10-08 19:58:42 +02:00
Tat Dat Duong e564902753 Add async tests 2024-10-08 19:57:39 +02:00
Tat Dat Duong e3bee7d843 Add tests 2024-10-08 19:52:05 +02:00
Tat Dat Duong 4f61dd1aa6 Fix tests 2024-10-08 19:18:52 +02:00
Tat Dat Duong 7e9cf02922 Use casting instead 2024-10-08 17:08:08 +02:00
Tat Dat Duong 50b1a1e230 Cleanup, move instanceof checks to an util 2024-10-08 17:01:40 +02:00
Tat Dat Duong c1081af6bc Fix lint 2024-10-08 16:41:48 +02:00
Tat Dat Duong dfb265f296 feat(debug): send tasks info 2024-10-08 16:21:38 +02:00
William FHandGitHub 254b12a62d Use AsyncBatch for postgres store (#2020) 2024-10-08 06:58:26 +00:00
7c2a89dbc8 docs memory concept: Suggestion batch 1 (#2040)
Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
2024-10-08 02:55:51 +00:00
Eugene YurtsevandGitHub 34b23fce06 docs: batch 2 Update memory.md (#2041) 2024-10-07 19:53:50 -07:00
Vadym BardaandGitHub 4633364e8e docs: small edits to memory concepts (#2039) 2024-10-07 18:31:48 -07:00
William FHandGitHub 23c1957812 Update glossary (#2038) 2024-10-08 01:03:11 +00:00
William FHandGitHub 90b8b4d745 Fixup Grammar (#2037) 2024-10-07 16:56:13 -07:00
William FHandGitHub 45957cc72a Docs Nits Pass 2 (#2036) 2024-10-07 16:48:22 -07:00
d5da547850 Shared state conceptual docs (#1958)
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
2024-10-07 23:16:34 +00:00
Riya SinhaandGitHub 61798d09d2 checkpoint: set CheckpointNS ConfigurableFieldSpec model default to empty string (#2019) 2024-10-07 18:38:18 +00:00
Nuno CamposandGitHub 4685dc103a Merge pull request #2032 from langchain-ai/nc/7oct/kafka-loop-arg
scheduler-kafka: Pass loop arg to default async consumer and producer
2024-10-07 10:22:31 -07:00
Nuno Campos e5b4cd2701 scheduler-kafka: Pass loop arg to default async consumer and producer
- Some forks of aiokafka make this a required arg
2024-10-07 10:16:36 -07:00
David DuongandGitHub debfd85ff8 Merge pull request #2031 from langchain-ai/dqbd/js-0.0.16
feat(sdk-js): bump to 0.0.16
2024-10-07 18:15:46 +02:00
Tat Dat Duong 24f21a0ad8 feat(sdk-js): bump to 0.0.16 2024-10-07 18:10:32 +02:00
David DuongandGitHub b5138cd8f9 Merge pull request #2029 from langchain-ai/dqbd/js-get-history-checkpoint
feat(sdk-js): add `checkpoint` arg in `getHistory`
2024-10-07 17:52:27 +02:00
Tat Dat Duong 05f645b87c Make types more explicit 2024-10-07 17:47:36 +02:00
Tat Dat Duong 9ff5715961 feat(sdk-js): add checkpoint arg in getHistory 2024-10-07 17:24:29 +02:00
William FHandGitHub b42a31fdae Rm dup END (#2022) 2024-10-06 21:24:11 -07:00
William FHandGitHub 57727be9db Checkpoint 2.0.1 (#2018) 2024-10-06 14:10:48 -07:00
William FHandGitHub 05dbc1d498 Validate in async batched store (#2017) 2024-10-06 14:09:35 -07:00
b35fe5864d docs: update how-to for passing runtime values (#1984)
Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
2024-10-05 01:23:55 +00:00
Andrew NguonlyandGitHub db3271ace5 docs: Update field descriptions for API spec (#2013) 2024-10-04 22:32:20 +00:00
bacf92c441 langgraph: add support for passing store via state_modifier (#1992)
Co-authored-by: William Fu-Hinthorn <13333726+hinthornw@users.noreply.github.com>
2024-10-04 15:28:56 -07:00
Andrew NguonlyandGitHub c847f7df4e docs: Updates to API spec (#2012) 2024-10-04 22:12:13 +00:00
Vadym BardaandGitHub c2dc498b1c docs: clean up memory docs (#2000) 2024-10-04 16:58:22 -04:00
Andrew NguonlyandGitHub c2171f4a20 docs: Create API spec (#2009) 2024-10-04 20:40:01 +00:00
William FHandGitHub d8d4714a73 Update JS sdk version (#2008) 2024-10-04 11:04:10 -07:00
William FHandGitHub 018e9ac42e Check is string in store namespace validation (on put) (#2007) 2024-10-04 17:55:30 +00:00
Brace SproulandGitHub f9afd3c215 Merge pull request #1993 from langchain-ai/brace/after-seconds-js
fix(js): Add afterSeconds run arg
2024-10-03 11:18:02 -07:00
Eugene YurtsevandGitHub ac7903b3dc docs: how to guide batch 4 (#1991)
Updated the following guides:

docs/docs/how-tos/streaming-content.ipynb

docs/docs/how-tos/streaming-events-from-within-tools-without-langchain.ipynb
docs/docs/how-tos/streaming-events-from-within-tools.ipynb
docs/docs/how-tos/streaming-tokens-without-langchain.ipynb
2024-10-03 14:11:53 -04:00
Eugene YurtsevandGitHub 4a8510b690 docs: minor formatting change for how to docs 2024-10-03 13:47:59 -04:00
bracesproul 92e75aac17 cr 2024-10-03 09:40:37 -07:00
bracesproul 3e8be7fd79 fix(js): Add afterSeconds run arg 2024-10-03 09:40:10 -07:00
Vadym BardaandGitHub 99fd0eedbd docs: clean up and standardize more how-tos (#1959) 2024-10-03 13:40:34 +00:00
f55586ea23 [Docs] Drop memory doc (#1986)
---------

Co-authored-by: vbarda <vadym@langchain.dev>
2024-10-03 03:05:49 +00:00
Vadym BardaandGitHub 055b2ae74f ci: filter to added/modified for notebooks (#1987) 2024-10-03 02:27:57 +00:00
Isaac FranciscoandGitHub c39e08ec8e export checkpoint type from js-sdk (#1973) 2024-10-02 18:47:34 -07:00
William FHandGitHub c74aba8cc5 [Docs] Storage ref docs (#1985) 2024-10-02 16:53:39 -07:00
Eugene YurtsevandGitHub d683630094 docs: how-to fix some issues (#1983)
Fixes some issues introduced while updating how-to docs
2024-10-02 22:06:03 +00:00
Vadym BardaandGitHub 86edf631e3 langgraph: release 0.2.34 (#1982) 2024-10-02 17:42:14 -04:00
Vadym BardaandGitHub 93c22fbdde langgraph: add store to the prebuilt agent (#1981) 2024-10-02 21:38:15 +00:00
Eugene YurtsevandGitHub 7f95d7de42 docs: how to guide batch 2 (#1956)
Updates the following how to guides

docs/docs/how-tos/disable-streaming.ipynb
docs/docs/how-tos/input_output_schema.ipynb
docs/docs/how-tos/many-tools.ipynb
docs/docs/how-tos/map-reduce.ipynb
docs/docs/how-tos/node-retries.ipynb
docs/docs/how-tos/pass-config-to-tools.ipynb
docs/docs/how-tos/pass_private_state.ipynb
2024-10-02 17:29:21 -04:00
Eugene YurtsevandGitHub 1a4f375226 docs: how-to guides batch 3 (#1979)
Updates the following how to guides:

docs/docs/how-tos/persistence.ipynb
docs/docs/how-tos/persistence_mongodb.ipynb
docs/docs/how-tos/persistence_postgres.ipynb
docs/docs/how-tos/persistence_redis.ipynb
docs/docs/how-tos/react-agent-from-scratch.ipynb
docs/docs/how-tos/react-agent-structured-output.ipynb
docs/docs/how-tos/recursion-limit.ipynb
docs/docs/how-tos/return-when-recursion-limit-hits.ipynb
docs/docs/how-tos/run-id-langsmith.ipynb
docs/docs/how-tos/state-model.ipynb
2024-10-02 17:29:01 -04:00
William FHandGitHub 6c0da426c6 [PostGres Checkpointer] Run CI on PG15 as well (#1953) 2024-10-02 19:16:58 +00:00
William FHandGitHub 7ede237508 [Docs] Add SDK ref docs for the Store client (#1974) 2024-10-02 19:16:36 +00:00
Jacob LeeandGitHub fb382c20f7 fix: Fix for drawing subgraphs with multiple sinks (#1962)
* Fix for drawing subgraphs with multiple sinks

* Expand error message
2024-10-02 12:03:30 -07:00
Vadym BardaandGitHub 9821638965 docs: add InjectedStore to reference (#1976) 2024-10-02 18:54:25 +00:00
Vadym BardaandGitHub e48d9d3c38 docs: add a note for shared memory to persistence how-to (#1975) 2024-10-02 18:41:23 +00:00
Vadym BardaandGitHub 7ecc672e61 langgraph: release 0.2.33 (#1972) 2024-10-02 13:43:17 -04:00
Vadym BardaandGitHub 7efd3c726e langgraph: add support for store in ToolNode (#1968) 2024-10-02 17:39:25 +00:00
Eugene YurtsevandGitHub 74b36adb18 docs: update how-to guides batch 1 (#1918)
Add links to the following how-to guides:

docs/docs/how-tos/async.ipynb
docs/docs/how-tos/branching.ipynb
docs/docs/how-tos/configuration.ipynb
docs/docs/how-tos/create-react-agent-hitl.ipynb
docs/docs/how-tos/create-react-agent-memory.ipynb
docs/docs/how-tos/create-react-agent-system-prompt.ipynb
docs/docs/how-tos/create-react-agent.ipynb

Identified two missing concepts:
1) RunnableConfig in LangChain
2) Unclear where ReAct should link in langgraph
2024-10-02 15:09:11 +00:00
Eugene YurtsevandGitHub 2f7da90a38 docs: check for format violations with ruff (#1967) 2024-10-02 14:40:33 +00:00
William FHandGitHub a3cb9c1a94 Validate no empty namespace is added (#1961)
Also check the root label isn't "langgraph"
2024-10-01 18:43:45 -07:00
Vadym BardaandGitHub e0fd95b22a docs: update tutorial for long-term memory (#1955) 2024-10-01 17:56:43 -07:00
William FHandGitHub db87642a10 Revert "Validate not empty (#1957)" (#1960)
This reverts commit cf67acb699.
2024-10-01 17:44:08 -07:00
William FHandGitHub cf67acb699 Validate not empty (#1957) 2024-10-01 17:23:44 -07:00
Lance MartinandGitHub 36be928791 Fix link (#1954) 2024-10-01 20:47:30 +00:00
Brace SproulandGitHub 702b5949d9 fix(sdk-js): Release 0.0.14 2024-10-01 13:18:02 -07:00
Brace SproulandGitHub 267485f3e6 Merge branch 'main' into rc 2024-10-01 13:13:01 -07:00
William FHandGitHub 5c3ac5d16d Update PG Implementation (#1948) 2024-10-01 13:11:19 -07:00
Vadym BardaandGitHub db6f8a53b6 docs: add shared memory how to (#1920) 2024-10-01 19:54:59 +00:00
98d1f27471 Add memory conceptual doc (#1868)
* Add memory conceptual doc

* update

* typo

* v1 conceptual doc

* Update per feedback

* Capture feedback

* Update based on feedback

* Remove memory service

* Address comments

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2024-10-01 12:54:23 -07:00
bracesproul 79cded748d fix(sdk-js): Release 0.0.14 2024-10-01 12:45:57 -07:00
Brace SproulandGitHub c08dd2f71c Merge pull request #1949 from langchain-ai/brace/update-rc
fix: Update rc branch
2024-10-01 12:44:02 -07:00
bracesproul 7dbb5ce98f Merge branch 'main' of https://github.com/langchain-ai/langgraph into rc 2024-10-01 12:37:22 -07:00
Brace SproulandGitHub 813aadeb47 Merge pull request #1947 from langchain-ai/brace/fix-null-obj-err
fix(sdk-js): Fix null item error
2024-10-01 12:36:57 -07:00
Vadym BardaandGitHub 4a45f6c99a langgraph, sqlite, postgres: update to use langgraph-checkpoint==2.0.0 (#1946) 2024-10-01 15:28:06 -04:00
bracesproul 38a3e11c9f cr 2024-10-01 11:32:07 -07:00
bracesproul 8486c9d413 fix(sdk-js): Fix null item error 2024-10-01 11:31:29 -07:00
Vadym BardaandGitHub 00662ab557 ci: update the check for changed notebooks (#1945) 2024-10-01 18:14:32 +00:00
Brace SproulandGitHub db4191b89e Merge pull request #1943 from langchain-ai/release
Release 0.0.14-rc.0
2024-10-01 10:48:36 -07:00
bracesproul 45bf27bafe Release 0.0.14-rc.0 2024-10-01 10:45:49 -07:00
Brace SproulandGitHub 11d636ff83 Merge pull request #1910 from langchain-ai/wfh/js_store_client
Add JS SDK Store Client
2024-10-01 10:44:06 -07:00
Vadym BardaandGitHub 78c9c15b14 langgraph, checkpoint: update versions (#1942) 2024-10-01 13:43:07 -04:00
Vadym BardaandGitHub 46b52b2426 ci: run notebook checks for changed notebooks (#1941) 2024-10-01 16:50:24 +00:00
Eugene YurtsevandGitHub 674180ad0c docs: Add linting check as part of docs deploy (#1939)
We'll need to add the same thing as part of CI testing, but a second check
during deployment wont hurt in case CI is by passed for whatever reason.
2024-10-01 10:50:39 -04:00
Vadym BardaandGitHub 71efff7cee ci: add a script to check sync and async methods in SDK (#1938) 2024-10-01 09:50:26 -04:00
William FHandGitHub dd88ac6224 Bump SDK Py (#1935) 2024-10-01 08:17:51 +00:00
Nuno CamposandGitHub 53c2e4d8c2 Merge pull request #1932 from langchain-ai/eugene/format_docs
docs: format with ruff
2024-09-30 19:13:47 -07:00
Eugene Yurtsev 70b0032191 format docs 2024-09-30 22:08:27 -04:00
William FHandGitHub 445b795037 [Docs] update min bounds from API (#1929) 2024-09-30 17:06:34 -07:00
William FHandGitHub 29f58fd9e5 Custom loads support in postgres checkpointer (#1930) 2024-09-30 16:42:23 -07:00
Vadym BardaandGitHub 716d23e269 langgraph: release 0.2.31 (#1928) 2024-09-30 18:33:34 -04:00
Vadym BardaandGitHub a9df3a3515 langgraph: use correct logic for binding tools in prebuilt agent (#1927) 2024-09-30 22:22:48 +00:00
Vadym BardaandGitHub da935e7805 langgraph: fix edge case with string enums as node names (#1926) 2024-09-30 18:00:33 -04:00
Andrew NguonlyandGitHub 6d1d705b84 Update API docs. (#1925) 2024-09-30 14:23:32 -07:00
William FHandGitHub 97f79fc66b Add Postgres Store Implementation (#1906) 2024-09-30 21:18:58 +00:00
Isaac FranciscoandGitHub 17dc1108a3 docs: __start__/__end__ consistency (#1874)
* changes

* skip mermaid

* retries fix

* viz error

* changes
2024-09-30 13:55:53 -07:00
Eugene YurtsevandGitHub d29747906d docs: Add ruff commands to Makefile and pyproject (#1921) 2024-09-30 16:19:17 -04:00
Vadym BardaandGitHub cb8db211c2 langgraph: bump checkpoint (#1922) 2024-09-30 15:56:46 -04:00
Isaac FranciscoandGitHub 865436529e simple -> simply (#1919) 2024-09-30 19:30:29 +00:00
Vadym BardaandGitHub 3c9441c039 checkpoint: release 1.0.14 (#1917) 2024-09-30 14:54:00 -04:00
Vadym BardaandGitHub 7071817155 checkpoint: fix namespace issues (#1915) 2024-09-30 14:52:57 -04:00
William Fu-Hinthorn 4fca814d3a Merge branch 'main' into wfh/js_store_client 2024-09-30 10:49:09 -07:00
William Fu-Hinthorn d309c36388 Review 2024-09-30 10:48:49 -07:00
William FHandGitHub 9ad617bb7a [Release] 1.0.13 (#1903) 2024-09-30 10:16:50 -07:00
Vadym BardaandGitHub 78f3ee9cae langgraph: check if model passed as runnable binding with tools in create_react_agent (#1647) 2024-09-30 13:01:47 -04:00
William FHandGitHub e332869a0c Ensure configurable (#1912) 2024-09-30 09:54:47 -07:00
William Fu-Hinthorn f064a5969d Add JS SDK Store Client 2024-09-30 09:08:37 -07:00
David DuongandGitHub f6f3f85d03 Merge pull request #1900 from langchain-ai/dqbd/xray-int
feat(sdk): add int xray parameter support
2024-09-30 17:08:15 +02:00
David DuongandGitHub a69c58bfe9 Merge pull request #1894 from langchain-ai/dqbd/xray-bool
fix(graph): xray=True should be distinct from xray=1
2024-09-30 17:06:52 +02:00
Tat Dat Duong d69bc78a25 Update docs 2024-09-30 17:03:11 +02:00
Nuno CamposandGitHub 904904c419 Merge pull request #1904 from langchain-ai/nc/29sep/thread-history-subgraph
sdk-py: Add arg to get history for subgraphs
2024-09-29 19:32:23 -07:00
Nuno Campos 7fba675e8a sdk-py: Add arg to get history for subgraphs 2024-09-29 19:28:52 -07:00
Nuno CamposandGitHub 620cffd62d Merge pull request #1902 from langchain-ai/dqbd/debug-parent-config
fix(debug): send parent_config in debug checkpoint events
2024-09-29 18:30:24 -07:00
Tat Dat Duong 005a9a33cb Fix tests 2024-09-30 03:14:34 +02:00
Tat Dat Duong a8556bf2b8 Uncomment back the conftest checkpointers 2024-09-30 03:06:48 +02:00
Tat Dat Duong a8a99688bf fix(api): send parent_config in debug checkpoint events 2024-09-30 03:01:44 +02:00
Nuno CamposandGitHub b1a4243055 Implement new Store interface (#1834) 2024-09-29 17:06:42 -07:00
David DuongandGitHub ab47768bfd Merge pull request #1901 from langchain-ai/dqbd/sdk-js-0.0.13
chore: bump JS SDK to 0.0.13
2024-09-30 00:44:02 +02:00
Tat Dat Duong 53525141a2 chore: bump JS SDK to 0.0.13 2024-09-30 00:39:01 +02:00
Tat Dat Duong 10b6227304 feat(api): add int xray parameter support 2024-09-30 00:18:07 +02:00
Dan SiwiecandGitHub 748c92e59c docs: remove duplicated statements (#1863) 2024-09-29 15:33:51 +00:00
Tat Dat Duong 358603b31d fix(graph): xray=True should be distinct from xray=1 2024-09-28 02:09:05 +02:00
Nuno CamposandGitHub 946e2a831e Merge pull request #1879 from langchain-ai/dqbd/sdk-js-subgraphs
feat(sdk-js): add support for subgraphs, match schema
2024-09-27 15:59:46 -07:00
Andrew NguonlyandGitHub b0b7b681ba Fix typo. (#1893) 2024-09-27 22:59:32 +00:00
Vadym BardaandGitHub 03be3b6567 docs: reorganize API refs (#1884) 2024-09-27 18:12:12 -04:00
98f5df4f6f ci: fix notebook runner & VCR cassette recorder (#1849)
Co-authored-by: vbarda <vadym@langchain.dev>
2024-09-27 17:56:55 -04:00
Vadym BardaandGitHub ea0418334b checkpoint-postgres: release 1.0.9 (#1890) 2024-09-27 16:12:06 -04:00
Andrew NguonlyandGitHub ec55fc2147 docs: Update Cloud deployment docs (#1853)
* Update Cloud deployment docs.

* Update docs.
2024-09-27 12:53:54 -07:00
Vadym BardaandGitHub a319727a9e checkpoint: release 1.0.12 (#1888) 2024-09-27 14:19:00 -04:00
Isaac FranciscoandGitHub a2db3879cd add back graph.update_line, update output (#1887) 2024-09-27 12:51:28 -04:00
Vadym BardaandGitHub bf19dc7d08 checkpoint-postgres: handle null chars in metadata (#1885) 2024-09-27 16:02:03 +00:00
David DuongandGitHub 75d309a52f Merge pull request #1880 from langchain-ai/dqbd/sdk-xray
feat(sdk): expose xray kwarg to get_graph/getGraph
2024-09-27 16:59:51 +02:00
Tat Dat Duong 80f12c8f5c Update sync client 2024-09-27 16:43:41 +02:00
Tat Dat Duong be44d0cfb6 feat(sdk): expose xray kwarg to get_graph/getGraph 2024-09-27 15:15:56 +02:00
947c74c10d docs: add long-term memory tutorial (#1850)
Co-authored-by: ccurme <chester.curme@gmail.com>
2024-09-27 08:26:57 -04:00
Tat Dat Duong e4a4889b6d Add .prettierrc file to make vscode prettier work 2024-09-27 13:30:47 +02:00
Tat Dat Duong f1c6e13e96 Ignore tgz and tar files 2024-09-27 13:26:58 +02:00
Tat Dat Duong 51be5b6ac3 feat(sdk-js): add support for subgraphs, match schema 2024-09-27 13:24:46 +02:00
Nuno CamposandGitHub 509e2d2207 Merge pull request #1873 from langchain-ai/vb/secret-str
checkpoint: support serde for SecretStr
2024-09-26 19:10:45 -07:00
vbarda 4271afeb42 checkpoint: support serde for SecretStr 2024-09-26 21:09:07 -04:00
Vadym BardaandGitHub 29a03309c9 docs: update typing -> typing_extensions for TypedDict (#1871) 2024-09-26 18:06:45 -04:00
William FHandGitHub fe7e7b9121 Use typing_extensions typeddict (#1869) 2024-09-26 13:41:40 -07:00
Vadym BardaandGitHub 72c5bc35cd checkpoint: update note in MemorySaver (#1862) 2024-09-26 15:07:36 +00:00
Lance MartinandGitHub c5b9845216 Update RAG agent w/ llama3.2 (#1852)
* Update RAG agent llama3.2

* Move to doc

* Rename
2024-09-25 21:43:45 -07:00
Vadym BardaandGitHub 942dfa841e docs: remove shared state how-to (#1851) 2024-09-25 22:44:03 +00:00
Andrew NguonlyandGitHub c3cbf2eb0d Update Deploy to Cloud docs. (#1847) 2024-09-25 15:22:54 -07:00
David DuongandGitHub f337d5d9f8 Merge pull request #1844 from langchain-ai:dqbd/js-sdk-0.0.12-types
fix(sdk-js): match schema types, bump to 0.0.12
2024-09-25 23:42:37 +02:00
Nuno Campos f05b546299 langgraph 0.2.28 2024-09-25 11:12:38 -07:00
Nuno CamposandGitHub f1711a127a Merge pull request #1845 from langchain-ai/nc/25sep/fix-stream-time
Fix stream_mode=messages/custom buffering for sync calls with single node
2024-09-25 11:12:05 -07:00
Nuno Campos 72edec5be2 Add test 2024-09-25 11:00:27 -07:00
Nuno Campos 67d907eb1c Fix stream_mode=messages/custom buffering for sync calls with single node 2024-09-25 10:38:06 -07:00
042653207f docs: add docs for assistant versioning (#1828)
* draft of conceptual docs

* Improve the conceptual docs

* adding how-to

* add diagram, make callout to conceptual guide

* updated image

* updated screenshots to new UI

* add link, typo

---------

Co-authored-by: Lance Martin <lance@langchain.dev>
2024-09-25 16:13:08 +00:00
Tat Dat Duong 68fb04bb0c fix(sdk-js): match schema types, bump to 0.0.12 2024-09-25 17:33:13 +02:00
Vadym BardaandGitHub 6c171e2838 docs: update streaming content how-to (#1841) 2024-09-25 11:23:31 -04:00
Vadym BardaandGitHub 6136eb7471 docs: fix redis pending_writes (#1842) 2024-09-25 14:54:40 +00:00
David DuongandGitHub 206420d4cc Merge pull request #1830 from langchain-ai/dqbd/bump-js-0.0.11
feat(js): bump JS sdk to 0.0.11
2024-09-24 21:45:56 +02:00
Tat Dat Duong a3be376453 feat(js): bump JS sdk to 0.0.11 2024-09-24 21:40:48 +02:00
Nuno CamposandGitHub 44afec9da7 Merge pull request #1829 from langchain-ai/vb/combine-sdk-into-single-file
sdk-py: combine sync & async into a single file
2024-09-24 11:35:51 -07:00
vbarda cc8ea9e608 sdk-py: combine sync & async into a single file 2024-09-24 14:24:14 -04:00
Lance MartinandGitHub 88335ea405 Update conceptual docs on dynamic breakpoints (#1816)
* Update conceptual docs in dynamic breakpoints

* Improve explaination

* Add skipping logic to dynamic breakpoints
2024-09-24 11:18:01 -07:00
Nuno CamposandGitHub 15823c78eb Merge pull request #1827 from langchain-ai/nc/24sep/sdk-subgraphs
sdk: Add subgraphs method
2024-09-24 11:07:45 -07:00
Nuno Campos 30ed61479e Fix 2024-09-24 11:06:07 -07:00
Yuxuan1998andGitHub e909cb6815 fix TypeError (#1820) 2024-09-24 14:05:03 -04:00
Nuno Campos dfa874aaf6 sdk: Add subgraphs method 2024-09-24 11:02:50 -07:00
Nuno CamposandGitHub 247e2bae8d Merge pull request #1401 from langchain-ai/vb/add-sync-client
sdk-py: add sync client
2024-09-24 10:46:06 -07:00
Nuno Campos 26eca4a42f langgraph 0.2.27 2024-09-24 10:42:02 -07:00
Nuno CamposandGitHub 2f7826ed79 Merge pull request #1826 from langchain-ai/nc/24sep/get-subgraphs-namespace
Add namesapce filter to get_subgraphs
2024-09-24 10:41:36 -07:00
Nuno Campos 8205c85383 Add namesapce filter to get_subgraphs
- If passed it returns a single subgraph, mathching that namespace, if found
2024-09-24 09:38:24 -07:00
Vadym BardaandGitHub 5235ad08ec docs: remove context channel (#1824) 2024-09-24 10:51:22 -04:00
Vadym BardaandGitHub 37948b3348 docs: update pydantic comments -> callouts in tutorials (#1825) 2024-09-24 13:09:59 +00:00
Nuno Campos bb5ff42bcd langgraph 0.2.26 2024-09-23 17:50:16 -07:00
Nuno CamposandGitHub beea3beb48 Merge pull request #1818 from langchain-ai/nc/23sep/stream-messages-fix
Fix edge cases with stream_mode=messages
2024-09-23 17:43:27 -07:00
Nuno Campos 58aaffb6bf Fix edge cases with stream_mode=messages
- running callback handler in background thread could potentially lead to ordering issues
- deduping on `id()` could lead to messages being dropped if they reused memory address of a previous chunk
2024-09-23 17:34:04 -07:00
Vadym BardaandGitHub ae2185a431 Merge branch 'main' into vb/add-sync-client 2024-09-23 19:42:13 -04:00
vbarda 985f1b1e26 code review 2024-09-23 19:41:08 -04:00
Lance MartinandGitHub e1a33360e0 Update HIL conceptual docs (#1774)
* Update HIL conceptual docs

* Update images

* Update figures and text per feedback

* Update links for how-tos

* Embed img directly in ntbks

* Add dynamic breakpoints

* Update figure in ntbk

* Fix link to dynamic breakpoints
2024-09-23 15:46:33 -07:00
Vadym BardaandGitHub 659d127d2b checkpoint postgres,sqlite: update langgraph-checkpoint to 1.0.11 (#1815) 2024-09-23 22:09:28 +00:00
Isaac FranciscoandGitHub d2d5e9f655 docs: add docs on disabling streaming (#1775) 2024-09-23 18:01:19 -04:00
Vadym BardaandGitHub 434e7519bc checkpoint: release 1.0.11 (#1814) 2024-09-23 17:58:25 -04:00
Vadym BardaandGitHub 7d513bcde2 checkpoint postgres,sqlite: update langgraph-checkpoint (#1813) 2024-09-23 21:47:26 +00:00
Vadym BardaandGitHub c8265a21cd Merge branch 'main' into vb/add-sync-client 2024-09-23 17:39:54 -04:00
Vadym BardaandGitHub 515c619bc2 checkpoint postgres,sqlite: update version (#1812) 2024-09-23 17:33:19 -04:00
Vadym BardaandGitHub 342aee7945 langgraph: release 0.2.25 (#1811) 2024-09-23 17:31:23 -04:00
BagaturandGitHub ee638fdbf8 langgraph[patch]: remove stringify of tool msg contnt (#1810) 2024-09-23 17:29:38 -04:00
vbarda 2d741c7cbf update 2024-09-23 17:28:02 -04:00
William FHandGitHub 3c672abc1b Reword how-to (#1808) 2024-09-23 14:08:08 -07:00
vbarda 81c10a5f8e Merge branch 'main' into vb/add-sync-client 2024-09-23 16:56:12 -04:00
Nuno CamposandGitHub 68c1fa8280 Merge pull request #1803 from langchain-ai/nc/23sep/exc-async-checkpointer-block
Raise exception if sync method on async checkpointer is called from event loop thread
2024-09-23 13:05:02 -07:00
Vadym BardaandGitHub 9e42977273 sdk-py: release 0.1.31 (#1809) 2024-09-23 15:12:43 -04:00
Brace SproulandGitHub e333889c19 Merge pull request #1807 from langchain-ai/brace/drop-annoncements-bar
fix(docs): Drop announcement bar
2024-09-23 10:56:02 -07:00
bracesproul 81e05ffb69 fix(docs): Drop announcement bar 2024-09-23 10:50:15 -07:00
Isaac FranciscoandGitHub f9431d1bec remove error (#1806) 2024-09-23 13:45:08 -04:00
William FHandGitHub 1601c3a47d Fix mobile nav nesting (#1804) 2024-09-23 16:08:10 +00:00
Nuno Campos e71c24ea9b Raise exception if sync method on async checkpointer is called from main thread
- The thread running the event loop can block waiting for a coro to run, only background threads can
2024-09-23 08:41:57 -07:00
Nuno Campos 68d378def5 langgraph 0.2.24 2024-09-23 08:26:55 -07:00
Nuno CamposandGitHub 0b0b6e17d3 Merge pull request #1797 from langchain-ai/nc/22sep/perf-intern-strings
perf: Intern string constants
2024-09-23 07:40:59 -07:00
Nuno CamposandGitHub d5a1152064 Merge pull request #1794 from langchain-ai/nc/21sep/remove-runtime-value-substitution
Remove runtime value substitution
2024-09-23 07:03:44 -07:00
Nuno CamposandGitHub 00290c8e06 Merge pull request #1792 from langchain-ai/nc/21sep/docstrings-comments
Add more comments and docstrings
2024-09-23 07:03:05 -07:00
Nuno Campos 47fe321e31 Lint 2024-09-22 12:51:06 -07:00
Nuno Campos 1f347ed48e perf: Intern string constants 2024-09-22 12:45:47 -07:00
Nuno Campos d6015e7bf9 Remove runtime value substitution
- doesn't work as expected
2024-09-22 12:44:48 -07:00
Nuno Campos 84a45d186c Fix 2024-09-22 12:42:34 -07:00
Nuno Campos e76f49c7f0 Fix flaky test 2024-09-22 12:37:24 -07:00
Nuno CamposandGitHub 33d18593bf Merge pull request #1793 from langchain-ai/nc/21sep/detect-multi-subgraphs-in-node
Detect multiple subgraphs in single node
2024-09-22 12:18:35 -07:00
Nuno Campos 74f34db9e4 Fix sync kafka 2024-09-22 12:04:43 -07:00
Nuno Campos 644f14991e Fix kfka 2024-09-22 12:04:17 -07:00
Isaac FranciscoandGitHub 94433eb790 docs: thread_ts -> checkpoint_id (#1791) 2024-09-22 09:17:18 -04:00
Nuno Campos 81a9a2f903 Use a different strategy, add test 2024-09-21 18:48:23 -07:00
Nuno Campos 2fccd09585 Fix 2024-09-21 17:52:17 -07:00
Nuno Campos 89bb7fe178 Skip test for now 2024-09-21 17:47:36 -07:00
Nuno Campos beeb2aa8ba Detect multiple subgraphs in single node 2024-09-21 17:44:11 -07:00
Nuno Campos 30b631aaff Rewrite imports 2024-09-21 17:41:05 -07:00
Nuno Campos d9854b36eb Move to langgraph.types 2024-09-21 17:37:17 -07:00
Nuno Campos 3cbd70ffc9 Fix docs 2024-09-21 17:30:04 -07:00
Nuno Campos 313e3eed3e Fix circular import 2024-09-21 17:26:29 -07:00
Nuno Campos 9f8d71c65b Lint 2024-09-21 17:23:12 -07:00
Nuno Campos 89fb8d506f Add more comments and docstrings 2024-09-21 17:21:18 -07:00
Nuno Campos 41537c583a sdk: Add support for resuming from checkpoint 2024-09-20 17:20:04 -07:00
David DuongandGitHub d42bdd0153 Merge pull request #1785 from langchain-ai/isaac/changeendpoint
set_latest -> latest
2024-09-21 02:07:20 +02:00
isaac hershenson 75ef1e790e fmt 2024-09-20 17:02:15 -07:00
isaac hershenson 4eaa1bb8ca set_latest -> latest 2024-09-20 16:57:43 -07:00
Nuno Campos e3d2f233a7 sdk: Update thread state methods for subgraphs 2024-09-20 16:52:41 -07:00
Isaac FranciscoandGitHub 8b95adb1bd sdk-py: add versioning for assistants (#1665)
* add get_versions to python sdk

* fml

* add change_version to sdk

* add assistant name to create

* document assistant name

* change method

* version in payload

* fml

* add js methods and types

* name -> assistant_name

* export onconflictbehavior

* add assistant name to create

* add metadata/limit/offset to sdk

* add assistant_name to update

* assistantversion schema

* export assistnatversion

* add metadata/limit/offset to sdk

* assistantversion schema

* fmt

* fmt

* change version -> set version

* fmt

* assistant_name -> name

* naming
2024-09-20 16:48:19 -07:00
Nuno Campos 41cb54722d Add stream_subgraphs param 2024-09-20 16:13:44 -07:00
Isaac FranciscoandGitHub eadcec7304 fixed some (#1784) 2024-09-20 15:12:35 -07:00
Nuno Campos 265003dda0 langgraph 0.2.23 2024-09-20 14:40:46 -07:00
Nuno CamposandGitHub fcff81d10e Merge pull request #1782 from langchain-ai/nc/20sep/sdk-py-after-seconds
sdk: Add support for scheduled runs
2024-09-20 12:53:27 -07:00
Nuno Campos 9121a1e14f sdk: Add support for scheduled runs
- after_seconds param to Runs.wait/stream/create
2024-09-20 12:45:13 -07:00
Isaac FranciscoandGitHub 662eae4359 adding tutorials to notebook checks (#1747)
* wip

* actually catch errors

* fixing tool-calling-errors and persistence-redis

* poetry changes

* poetry update

* run tutorials

* only tutorials (testing)

* print errors

* rewoo fixes

* remove customer support because of user input

* skip notebooks programatically

* add back how-tos

* remove redundant if

* add cassetes for tutorials

* remove no execution since it is generated by CI,

* remove multi-agent/usaco

* try to run in parallel

* skip notebooks fix

* remove magic/non-magic cells

* msgpack instead of yaml

* prepare_notebooks change

* ignore msgpack for spelling

* use compression for cassettes

* update spell check

* reset poetry changes

* upgrade packages for latest

* no update

* poetry changes
2024-09-20 12:11:23 -07:00
William FHandGitHub 10a66acc44 Add return_direct support (#1780) 2024-09-20 18:59:37 +00:00
Nuno CamposandGitHub 7b94f1e326 Update __init__.py 2024-09-20 10:50:40 -07:00
Nuno CamposandGitHub bf289dbee4 Merge pull request #1772 from langchain-ai/jacob/nit
fix: Use imported constant for namespace end
2024-09-20 09:21:18 -07:00
Nuno CamposandGitHub b03d9ae52c Merge pull request #1776 from langchain-ai/nc/19sep/stream-mode-custom
Add stream_mode=custom
2024-09-20 09:18:51 -07:00
Nuno CamposandGitHub 531890e35a Update types.py 2024-09-20 08:49:00 -07:00
Nuno Campos 1cf117ed9d Lint 2024-09-19 17:09:04 -07:00
Nuno Campos 3b0f27c777 Add stream_mode=custom
- adds the ability for nodes (including in subgraphs) to emit chunks directly to the output stream, emitted chunks can have any type
- when stream_mode=custom isnt requested by the caller emitted chunks are ignored
2024-09-19 17:03:30 -07:00
Nuno CamposandGitHub b9fe38469f Merge pull request #1773 from langchain-ai/nc/19sep/return-self
Allow chaning add_node/add_edge/etc calls
2024-09-19 17:02:27 -07:00
Nuno Campos 94e64f87b1 Allow chaning add_node/add_edge/etc calls 2024-09-19 16:54:00 -07:00
Nuno CamposandGitHub 0bbe461785 Merge pull request #1771 from langchain-ai/nc/19sep/mypy-langgraph-partial
Enable mypy for langgraph lib
2024-09-19 16:53:42 -07:00
Nuno Campos 7643c1171f Lint 2024-09-19 16:49:05 -07:00
Nuno CamposandGitHub ed27e54761 Update graph.py 2024-09-19 16:41:46 -07:00
Jacob LeeandGitHub ec1f425632 Update algo.py 2024-09-19 15:53:50 -07:00
jacoblee93 093af1a893 Use imported constant for namespace end 2024-09-19 15:07:30 -07:00
Nuno CamposandGitHub e96934533e Update graph.py 2024-09-19 15:06:39 -07:00
a47dc2b634 Apply suggestions from code review
Co-authored-by: William FH <13333726+hinthornw@users.noreply.github.com>
2024-09-19 14:37:32 -07:00
Nuno Campos 95c1ca3adc Fix 2024-09-19 13:20:45 -07:00
Lance MartinandGitHub 0cf1a13dab Update conceptual docs for multiple schema (#1770)
* Update conceptual docs for multiple schema

* Link to conceptual docs from How-To
2024-09-19 13:20:20 -07:00
Nuno Campos 5de9b35416 Finish 2024-09-19 13:01:54 -07:00
Nuno Campos 4f767cd2ca Fix 2024-09-19 11:46:21 -07:00
Nuno Campos cc318b1156 Fix 2024-09-19 11:43:30 -07:00
Nuno Campos 9a8cc75ea2 Fix some typing issues in langgraph lib 2024-09-19 11:38:41 -07:00
Isaac FranciscoandGitHub 96f9d29a43 stop before recursion limit callout (#1769) 2024-09-19 18:00:31 +00:00
Isaac FranciscoandGitHub c44f10c05e docs: return state before recursion limit is hit (#1736)
* recursion limit return state

* links

* spelling

* remove bad link
2024-09-19 10:40:35 -07:00
Nuno CamposandGitHub 4065ac33d3 Merge pull request #1768 from langchain-ai/nc/19sep/mypy-sqlite
ci: Enable mypy checks for checkpoint-sqlite lib
2024-09-19 10:38:34 -07:00
Isaac FranciscoandGitHub 55f8bb5227 docs: replaying from subgraph node (#1759)
* edits

* extra comment
2024-09-19 09:58:14 -07:00
Nuno CamposandGitHub dc360fd342 Merge pull request #1767 from langchain-ai/nc/19sep/mypy-postgres
ci: Enable mypy checks for checkpoint-postgres lib
2024-09-19 09:27:38 -07:00
Nuno Campos b529365f5b Remove ignore for 3.9 2024-09-19 09:19:26 -07:00
Nuno Campos fdf7bad988 Remove ignore for 3.9 2024-09-19 09:19:00 -07:00
Nuno Campos faa652cbf4 Only lint on 3.12 2024-09-19 09:18:36 -07:00
Nuno Campos 95304d658a Fix 3.9 2024-09-19 08:51:15 -07:00
Nuno Campos 495d258322 Fix 3.9 2024-09-19 08:50:17 -07:00
Nuno CamposandGitHub bc95a797a9 Merge pull request #1766 from langchain-ai/nc/18sep/mypy-checkpoint
ci: Enable mypy checks for checkpoint lib
2024-09-19 08:47:05 -07:00
Nuno Campos 6c0339ca4b ci: Enable mypy checks for checkpoint-sqlite lib 2024-09-19 08:46:44 -07:00
Nuno Campos b8a8651c23 ci: Enable mypy checks for checkpoint-postgres lib 2024-09-19 08:40:31 -07:00
Nuno Campos c793a9e36d Use type var default 2024-09-19 08:28:59 -07:00
Nuno Campos 333c5f5501 Fix type issues in tests 2024-09-18 18:16:51 -07:00
Nuno Campos 4d26c3599f ci: Enable mypy checks for checkpoint lib 2024-09-18 18:12:11 -07:00
Andrew NguonlyandGitHub d4ba315ae2 Add section for LANGCHAIN_TRACING_SAMPLING_RATE to env vars page. (#1760) 2024-09-18 15:08:00 -07:00
Nuno CamposandGitHub 4ba803b415 Merge pull request #1751 from langchain-ai/nc/17sep/stream-messages
Add stream_mode=messages
2024-09-18 14:01:12 -07:00
Nuno Campos 9235178c88 Finish 2024-09-18 13:56:04 -07:00
22c78050dd docs: Clarify default_retry_on retry behavior for exceptions (#1754)
* docs: Clarify exceptions retried by default_retry_on in retry policy tutorial

- Added a remark in the tutorial explaining that the `default_retry_on` function retries on any exception except for the following:
  - ValueError
  - TypeError
  - ArithmeticError
  - ImportError
  - LookupError
  - NameError
  - SyntaxError
  - RuntimeError
  - ReferenceError
  - StopIteration
  - StopAsyncIteration
  - OSError

* http status codes

---------

Co-authored-by: Itay Etelis <itay.etelis@ibm.com>
Co-authored-by: isaac hershenson <ihershenson@hmc.edu>
2024-09-18 20:48:10 +00:00
Nuno CamposandGitHub babcf10c1c Merge pull request #1688 from langchain-ai/wfh/tracing_interops_norebase
Add tracing propagation test
2024-09-18 13:43:58 -07:00
William Fu-HinthornandNuno Campos 2d98024487 Assert invariants 2024-09-18 13:37:38 -07:00
William Fu-HinthornandNuno Campos f7d440ec5f Add tracing propagation test 2024-09-18 13:37:33 -07:00
Nuno Campos efb572f15b Add missing branch 2024-09-18 13:18:37 -07:00
William FHandGitHub b062b2462f [Docs] Add add message ref (#1758) 2024-09-18 13:13:39 -07:00
Nuno CamposandGitHub d46fd258bf Merge pull request #1753 from Etelis/bugfix-retry-nodes-exception-handling
[Bug Fix] retry_on handling and add support for lists in RetryPolicy
2024-09-18 13:01:38 -07:00
Nuno CamposandGitHub e40aabb1c1 Update retry.py 2024-09-18 10:36:40 -07:00
Nuno CamposandGitHub 0bfeb7f4e1 Update types.py 2024-09-18 10:24:28 -07:00
Nuno CamposandGitHub fd0b52f4ff Update retry.py 2024-09-18 10:23:52 -07:00
Nuno CamposandGitHub f4962479d8 Merge pull request #1757 from langchain-ai/nc/18sep/unit-test-cancelled
Add one more unit test for exception propagation
2024-09-18 09:01:31 -07:00
Nuno CamposandGitHub 94fa06e5f7 Merge pull request #1749 from langchain-ai/nc/17sep/stream-subgraph-sync
Stream output from subgraphs while in-progress for sync stream
2024-09-18 09:01:15 -07:00
Nuno Campos 680fa3c226 Add one more unit test for exception propagation
- we already have plenty of tests for this, but adding one more with a slight variation
2024-09-18 08:53:47 -07:00
Isaac FranciscoandGitHub 0498ca346b docs: remove warnings/update diagrams (#1746)
* remove warnings/udpate diagrams

* replace get_relevant_documents with invoke
2024-09-18 08:53:28 -07:00
Itay Etelis adf5cb0ff1 Fix retry_on handling in run_with_retry
- Correctly distinguish between exception classes, lists/tuples of exception classes, and callables.
- Add support for lists in `retry_on`, alongside tuples.
- Prevent exception classes from being incorrectly treated as callables.
- Raise a `TypeError` if `retry_on` is of an unsupported type.
2024-09-18 13:41:22 +03:00
Itay Etelis 6873229bbf Support lists in retry_on for RetryPolicy
Previously, `retry_on` in `RetryPolicy` accepted only exception classes, tuples of exception classes, or callables.
Update the `retry_on` type annotation to include `List[Type[Exception]]`

Changes:
- Updated `retry_on` in `RetryPolicy` to accept `List[Type[Exception]]`.
2024-09-18 13:39:04 +03:00
Nuno Campos 2a769fb39e Less fun 2024-09-17 17:51:18 -07:00
Nuno Campos c0d8493db5 Only look at chain runs which are nodes 2024-09-17 17:32:14 -07:00
Nuno Campos 01bb6cbd4d Add stream_mode=messages
- yields messages token-by-token from LLMs, and any messages returned from a node
2024-09-17 17:27:37 -07:00
Isaac FranciscoandGitHub 7d3389b6f1 docs: fix links (#1748)
* fix links

* branching link

* readme compatibility
2024-09-17 13:05:37 -07:00
Nuno Campos 3a2a4e44b2 Stream output from subgraphs while in-progress for sync stream
- previously implemented only for async stream
2024-09-17 12:50:29 -07:00
Eugene YurtsevandGitHub b11552a10a Update all URLs to langchain docunotebooks (#1745) 2024-09-17 15:01:22 -04:00
Nuno CamposandGitHub 36c757e758 Merge pull request #1740 from langchain-ai/nc/17sep/deprecation-warnings
Fix some deprecation warnings in tests
2024-09-17 11:57:22 -07:00
Nuno CamposandGitHub a520dc6106 Merge pull request #1744 from langchain-ai/nc/17sep/sync-benchmarks
Add sync benchmarks
2024-09-17 11:57:14 -07:00
Nuno Campos da901b01d8 Fix flaky test 2024-09-17 10:52:39 -07:00
Nuno CamposandGitHub f03dc2f006 Merge pull request #1743 from langchain-ai/nc/17sep/runner-fast-path
perf: Implement fast path in Runner for single-task steps
2024-09-17 10:44:35 -07:00
Nuno Campos 21d60b0d9c Add sync benchmarks 2024-09-17 10:38:49 -07:00
Jacob LeeandGitHub 47a68c16d5 feat(js-sdk): Support CJS (#1742)
* feat(js-sdk): Support CJS

* Bump version
2024-09-17 10:28:23 -07:00
Nuno Campos 9644525b59 Fix some deprecation warnings in tests 2024-09-17 10:19:28 -07:00
Nuno Campos 76ff7c3f1a perf: Implement fast path in Runner for single-task steps
- if the current step has a single task then we can execute it inline, instead of moving it to asyncio task / bg thread
2024-09-17 10:19:19 -07:00
Nuno CamposandGitHub c4d4d61a43 Merge pull request #1735 from langchain-ai/nc/16sep/stream-subgraph-in-progress
Stream subgraph output while it executes
2024-09-17 10:14:26 -07:00
Nuno Campos f59435a892 Add more comments 2024-09-17 09:31:48 -07:00
Nuno Campos bd2ecba622 Fix for py 3.9 2024-09-17 09:29:16 -07:00
Isaac FranciscoandGitHub bfd18f76dd docs: Tutorials up to date (#1734)
* edits

* add js code to web voyager
2024-09-17 08:11:41 -07:00
Nuno CamposandGitHub 0bf4bf8b6b Merge pull request #1732 from langchain-ai/nc/16sep/stream-selected
perf: In PregelLoop, only emit stream values requested by caller
2024-09-16 21:26:30 -07:00
Nuno Campos c30119824c Add comment 2024-09-16 18:06:06 -07:00
Nuno Campos 54207f4d89 Add test 2024-09-16 18:02:57 -07:00
Nuno Campos d163938a59 Stream subgraph output while it executes 2024-09-16 17:36:53 -07:00
f8ba4c3b7d (wip) docs: revamp conceptual docs (#1663)
* docs: revamp conceptual docs

* multi-agent draft

* typo

* Update Why LangGraph page

* update multi-agent

* Update persistence page

* update

* Clarification of graph re-playing

* update persistence

* more updates

* more updates

* Add multiple schemas section to glossary

* more updates

* Clarify I/O schema

* dynamic breakpoints

* Update agentic concepts

* Fix comments

* Update figureds

* cr

* cr

* cr

---------

Co-authored-by: Lance Martin <lance@langchain.dev>
Co-authored-by: Harrison Chase <hw.chase.17@gmail.com>
2024-09-16 17:35:01 -07:00
William FHandGitHub 182dcea526 Docstring type (#1733) 2024-09-16 15:49:49 -07:00
Andrew NguonlyandGitHub 7934b67afa Update API docs (openapi.json). (#1731) 2024-09-16 15:49:35 -07:00
Nuno Campos f505afe066 perf: In PregelLoop, only emit stream values requested by caller
- this avoids creating stream values that will be ignored
2024-09-16 15:47:17 -07:00
Nuno Campos 4d0c12117b postgres 1.0.7 2024-09-16 14:10:19 -07:00
Nuno Campos 70af3bc3cb checkpoint 1.0.10 2024-09-16 14:10:03 -07:00
Nuno CamposandGitHub 3b05279e32 Implement serialization with msgpack library (#1716)
* Implement serialization with msgpack library

- encode custom python objects with a msgpack extension type, with constructor path string, and args encoded as nested msgpack doc

* Smaller msgpack extension types

* Update lock files

* lock

* Don't delegate to pydantic json

* Fix kafka serde

- should use our serializer to load, as inputs to subgraphs are serialized using it
2024-09-16 14:06:42 -07:00
vbarda 142db1f020 fix links in the reference 2024-09-06 16:37:56 -04:00
vbarda 6fd6ef43f6 lint 2024-09-06 16:28:05 -04:00
vbarda 7f3c6e3d2f Merge branch 'main' into vb/add-sync-client 2024-09-06 16:24:28 -04:00
vbarda 7233b06c2b update sync 2024-09-06 16:23:17 -04:00
vbarda a73484d336 rename back 2024-09-06 15:33:29 -04:00
vbarda a52f397db8 Merge branch 'main' into vb/add-sync-client 2024-09-06 15:28:24 -04:00
vbarda a161a9ca97 more explicit naming 2024-08-20 15:44:16 -04:00
vbarda 422ed92aef sdk-py: add sync client 2024-08-20 15:42:43 -04:00
886 changed files with 102870 additions and 66620 deletions
+9 -40
View File
@@ -7,35 +7,29 @@ body:
value: >
Thank you for taking the time to file a bug report.
Use this to report bugs in LangChain.
If you're not certain that your issue is due to a bug in LangChain, please use [GitHub Discussions](https://github.com/langchain-ai/langchain/discussions)
to ask for help with your issue.
Use this to report BUGS in LangGraph. For usage questions, feature requests and general design questions, please use [GitHub Discussions](https://github.com/langchain-ai/langgraph/discussions).
Relevant links to check before filing a bug report to see if your issue has already been reported, fixed or
if there's another way to solve your problem:
[LangGraph documentation](https://langchain-ai.github.io/langgraph/).
[LangGraph Github Discussions](https://github.com/langchain-ai/langgraph/discussions),
[LangGraph Github Issues](https://github.com/langchain-ai/langgraph/issues),
[LangGraph how-to guides](https://langchain-ai.github.io/langgraph/how-tos/).
[LangChain documentation with the integrated search](https://python.langchain.com/docs/get_started/introduction),
[GitHub search](https://github.com/langchain-ai/langgraph),
[LangChain Github Discussions](https://github.com/langchain-ai/langgraph/discussions),
[LangChain Github Issues](https://github.com/langchain-ai/langgraph/issues),
[LangChain ChatBot](https://chat.langchain.com/)
- type: checkboxes
id: checks
attributes:
label: Checked other resources
description: Please confirm and check all the following options.
description: Before submitting this issue, please confirm that you have completed all the steps below by checking each option. These steps help ensure your issue is well-defined, relevant, and actionable.
options:
- label: I added a very descriptive title to this issue.
- label: This is a bug, not a usage question. For questions, please use GitHub Discussions.
required: true
- label: I searched the [LangGraph](https://langchain-ai.github.io/langgraph/)/LangChain documentation with the integrated search.
- label: I added a clear and detailed title that summarizes the issue.
required: true
- label: I used the GitHub search to find a similar question and didn't find it.
- label: I read what a minimal reproducible example is (https://stackoverflow.com/help/minimal-reproducible-example).
required: true
- label: I am sure that this is a bug in LangGraph/LangChain rather than my code.
required: true
- label: I am sure this is better as an issue [rather than a GitHub discussion](https://github.com/langchain-ai/langgraph/discussions/new/choose), since this is a LangGraph bug and not a design question.
- label: I included a self-contained, minimal example that demonstrates the issue INCLUDING all the relevant imports. The code run AS IS to reproduce the issue.
required: true
- type: textarea
id: reproduction
@@ -45,14 +39,6 @@ body:
label: Example Code
description: |
Please add a self-contained, [minimal, reproducible, example](https://stackoverflow.com/help/minimal-reproducible-example) with your use case.
If a maintainer can copy it, run it, and see it right away, there's a much higher chance that you'll be able to get help.
**Important!**
* Reduce your code to the minimum required to reproduce the issue if possible. This makes it much easier for others to help you.
* Avoid screenshots when possible, as they are hard to read and (more importantly) don't allow others to copy-and-paste your code.
placeholder: |
from langgraph.graph import StateGraph
@@ -92,25 +78,8 @@ body:
attributes:
label: System Info
description: |
Please share your system info with us.
"pip freeze | grep langchain"
platform (windows / linux / mac)
python version
OR if you're on a recent version of langchain-core you can paste the output of:
python -m langchain_core.sys_info
placeholder: |
"pip freeze | grep langgraph"
platform
python version
Alternatively, if you're on a recent version of langchain-core you can paste the output of:
python -m langchain_core.sys_info
These will only surface LangChain packages, don't forget to include any other relevant
packages you're using (if you're not sure what's relevant, you can paste the entire output of `pip freeze`).
validations:
required: true
+64
View File
@@ -0,0 +1,64 @@
import ast
import os
from itertools import filterfalse
from typing import List, Tuple
ROOT_PATH = os.path.abspath(os.path.join(__file__, "..", "..", ".."))
CLIENT_PATH = os.path.join(ROOT_PATH, "libs", "sdk-py", "langgraph_sdk", "client.py")
def get_class_methods(node: ast.ClassDef) -> List[str]:
return [n.name for n in node.body if isinstance(n, (ast.FunctionDef, ast.AsyncFunctionDef))]
def find_classes(tree: ast.AST) -> List[Tuple[str, List[str]]]:
classes = []
for node in ast.walk(tree):
if isinstance(node, ast.ClassDef):
methods = get_class_methods(node)
classes.append((node.name, methods))
return classes
def compare_sync_async_methods(sync_methods: List[str], async_methods: List[str]) -> List[str]:
sync_set = set(sync_methods)
async_set = set(async_methods)
missing_in_sync = list(async_set - sync_set)
missing_in_async = list(sync_set - async_set)
return missing_in_sync + missing_in_async
def main():
with open(CLIENT_PATH, "r") as file:
tree = ast.parse(file.read())
classes = find_classes(tree)
def is_sync(class_spec: Tuple[str, List[str]]) -> bool:
return class_spec[0].startswith("Sync")
sync_class_name_to_methods = {class_name: class_methods for class_name, class_methods in filter(is_sync, classes)}
async_class_name_to_methods = {class_name: class_methods for class_name, class_methods in filterfalse(is_sync, classes)}
mismatches = []
for async_class_name, async_class_methods in async_class_name_to_methods.items():
sync_class_name = "Sync" + async_class_name
sync_class_methods = sync_class_name_to_methods.get(sync_class_name, [])
diff = compare_sync_async_methods(sync_class_methods, async_class_methods)
if diff:
mismatches.append((sync_class_name, async_class_name, diff))
if mismatches:
error_message = "Mismatches found between sync and async client methods:\n"
for sync_class_name, async_class_name, diff in mismatches:
error_message += f"{sync_class_name} vs {async_class_name}:\n"
for method in diff:
error_message += f" - {method}\n"
raise ValueError(error_message)
print("All sync and async client methods match.")
if __name__ == "__main__":
main()
+115
View File
@@ -0,0 +1,115 @@
import asyncio
import json
import os
import pathlib
import sys
import langgraph_cli
import langgraph_cli.docker
import langgraph_cli.config
from langgraph_cli.exec import Runner, subp_exec
from langgraph_cli.progress import Progress
from langgraph_cli.constants import DEFAULT_PORT
def test(
config: pathlib.Path,
port: int,
tag: str,
verbose: bool,
):
with Runner() as runner, Progress(message="Pulling...") as set:
# check docker available
capabilities = langgraph_cli.docker.check_capabilities(runner)
# open config
config_json = langgraph_cli.config.validate_config_file(config)
set("Running...")
args = [
"run",
"--rm",
"-p",
f"{port}:8000",
]
if isinstance(config_json["env"], str):
args.extend(
[
"--env-file",
str(config.parent / config_json["env"]),
]
)
else:
for k, v in config_json["env"].items():
args.extend(
[
"-e",
f"{k}={v}",
]
)
if capabilities.healthcheck_start_interval:
args.extend(
[
"--health-interval",
"5s",
"--health-retries",
"1",
"--health-start-period",
"10s",
"--health-start-interval",
"1s",
]
)
else:
args.extend(
[
"--health-interval",
"5s",
"--health-retries",
"2",
]
)
_task = None
def on_stdout(line: str):
nonlocal _task
if "GET /ok" in line or "Uvicorn running on" in line:
set("")
sys.stdout.write(
f"""Ready!
- API: http://localhost:{port}
"""
)
sys.stdout.flush()
_task.cancel()
return True
return False
async def subp_exec_task(*args, **kwargs):
nonlocal _task
_task = asyncio.create_task(subp_exec(*args, **kwargs))
await _task
try:
runner.run(
subp_exec_task(
"docker",
*args,
tag,
verbose=verbose,
on_stdout=on_stdout,
)
)
except asyncio.CancelledError:
pass
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-t", "--tag", type=str)
parser.add_argument("-c", "--config", type=str, default="./langgraph.json")
parser.add_argument("-p", "--port", default=DEFAULT_PORT)
args = parser.parse_args()
test(pathlib.Path(args.config), args.port, args.tag, verbose=True)
+22 -8
View File
@@ -39,22 +39,36 @@ jobs:
- name: Install cli globally
if: steps.changed-files.outputs.all
run: pip install -e .
- name: Start service A
- name: Build and test service A
if: steps.changed-files.outputs.all
working-directory: libs/cli/examples
run: |
timeout 60 langgraph test -c examples/langgraph.json --verbose || (exit "$(($? == 124 ? 0 : $?))")
- name: Start service B
# The build-arg isn't used; just testing that we accept other args
langgraph build -t langgraph-test-a --base-image "langchain/langgraph-trial"
cp .env.example .envg
timeout 60 python ../../../.github/scripts/run_langgraph_cli_test.py -c langgraph.json -t langgraph-test-a
- name: Build and test service B
if: steps.changed-files.outputs.all
working-directory: libs/cli/examples/graphs
run: |
timeout 60 langgraph test --verbose || (exit "$(($? == 124 ? 0 : $?))")
- name: Start service C
langgraph build -t langgraph-test-b --base-image "langchain/langgraph-trial"
timeout 60 python ../../../../.github/scripts/run_langgraph_cli_test.py -t langgraph-test-b
- name: Build and test service C
if: steps.changed-files.outputs.all
working-directory: libs/cli/examples/graphs_reqs_a
run: |
timeout 60 langgraph test --verbose || (exit "$(($? == 124 ? 0 : $?))")
- name: Start service D
langgraph build -t langgraph-test-c --base-image "langchain/langgraph-trial"
timeout 60 python ../../../../.github/scripts/run_langgraph_cli_test.py -t langgraph-test-c
- name: Build and test service D
if: steps.changed-files.outputs.all
working-directory: libs/cli/examples/graphs_reqs_b
run: |
timeout 60 langgraph test --verbose || (exit "$(($? == 124 ? 0 : $?))")
langgraph build -t langgraph-test-d --base-image "langchain/langgraph-trial"
timeout 60 python ../../../../.github/scripts/run_langgraph_cli_test.py -t langgraph-test-d
- name: Build JS service
if: steps.changed-files.outputs.all
working-directory: libs/cli/js-examples
run: |
langgraph build -t langgraph-test-e
+1 -3
View File
@@ -27,8 +27,7 @@ jobs:
# Starting new jobs is also relatively slow,
# so linting on fewer versions makes CI faster.
python-version:
- "3.9"
- "3.11"
- "3.12"
name: "lint #${{ matrix.python-version }}"
steps:
- uses: actions/checkout@v4
@@ -43,7 +42,6 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
cache-key: lint-${{ inputs.working-directory }}
- name: Check Poetry File
+7 -1
View File
@@ -21,6 +21,7 @@ jobs:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
name: "test #${{ matrix.python-version }}"
steps:
@@ -30,8 +31,13 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
cache-key: test-${{ inputs.working-directory }}
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ !github.event.pull_request.head.repo.fork }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_RO_TOKEN }}
- name: Install dependencies
shell: bash
+19 -3
View File
@@ -16,14 +16,22 @@ jobs:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
core-version:
- ">=0.2.39,<0.3.0"
- "latest"
ff-send-v2:
- "false"
include:
- python-version: "3.11"
core-version: ">=0.2.42,<0.3.0"
- python-version: "3.11"
core-version: "latest"
ff-send-v2: "true"
defaults:
run:
working-directory: libs/langgraph
name: "test #${{ matrix.python-version }} (langchain-core: ${{ matrix.core-version }})"
name: "test #${{ matrix.python-version }} (langchain-core: ${{ matrix.core-version }}, ff-send-v2: ${{ matrix.ff-send-v2 }})"
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }} + Poetry ${{ env.POETRY_VERSION }}
@@ -32,6 +40,12 @@ jobs:
python-version: ${{ matrix.python-version }}
poetry-version: ${{ env.POETRY_VERSION }}
cache-key: test-langgraph
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ !github.event.pull_request.head.repo.fork }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_RO_TOKEN }}
- name: Install dependencies
shell: bash
@@ -43,8 +57,10 @@ jobs:
- name: Run tests
shell: bash
env:
LANGGRAPH_FF_SEND_V2: ${{ matrix.ff-send-v2 }}
run: |
make test
make test_parallel
- name: Ensure the tests did not create any additional files
shell: bash
+2 -1
View File
@@ -29,7 +29,6 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
cache-key: release
# We want to keep this build stage *separate* from the release stage,
@@ -93,3 +92,5 @@ jobs:
# This is *only for CI use* and is *extremely dangerous* otherwise!
# https://github.com/pypa/gh-action-pypi-publish#tolerating-release-package-file-duplicates
skip-existing: true
# Temp workaround since attestations are on by default as of gh-action-pypi-publish v1.11.0
attestations: false
@@ -27,6 +27,12 @@ jobs:
python-version: ${{ matrix.python-version }}
poetry-version: ${{ env.POETRY_VERSION }}
cache-key: test-scheduler-kafka
- name: Login to Docker Hub
uses: docker/login-action@v3
if: ${{ !github.event.pull_request.head.repo.fork }}
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_RO_TOKEN }}
- name: Install dependencies
shell: bash
+37 -1
View File
@@ -31,6 +31,7 @@ jobs:
"libs/cli",
"libs/checkpoint",
"libs/checkpoint-sqlite",
"libs/checkpoint-duckdb",
"libs/checkpoint-postgres",
"libs/scheduler-kafka",
]
@@ -47,6 +48,7 @@ jobs:
"libs/cli",
"libs/checkpoint",
"libs/checkpoint-sqlite",
"libs/checkpoint-duckdb",
"libs/checkpoint-postgres"
]
uses: ./.github/workflows/_test.yml
@@ -66,6 +68,18 @@ jobs:
uses: ./.github/workflows/_test_scheduler_kafka.yml
secrets: inherit
check-sdk-methods:
name: "Check SDK methods matching"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Run check_sdk_methods script
run: python .github/scripts/check_sdk_methods.py
integration-test:
name: CLI integration test
uses: ./.github/workflows/_integration_test.yml
@@ -95,9 +109,31 @@ jobs:
- name: Build
run: yarn build
test-js:
runs-on: ubuntu-latest
strategy:
matrix:
working-directory:
- "libs/sdk-js"
defaults:
run:
working-directory: ${{ matrix.working-directory }}
steps:
- uses: actions/checkout@v3
- name: Setup Node.js (LTS)
uses: actions/setup-node@v3
with:
node-version: "20"
cache: "yarn"
cache-dependency-path: ${{ matrix.working-directory }}/yarn.lock
- name: Install dependencies
run: yarn install
- name: Run tests
run: yarn test
ci_success:
name: "CI Success"
needs: [lint, lint-js, test, test-langgraph, test-scheduler-kafka, integration-test]
needs: [lint, lint-js, test, test-langgraph, test-scheduler-kafka, integration-test, test-js]
if: |
always()
runs-on: ubuntu-latest
+1 -1
View File
@@ -32,7 +32,7 @@
- name: Codespell
uses: codespell-project/actions-codespell@v2
with:
skip: '*.ambr,*.lock,*.ipynb,*.yaml'
skip: '*.ambr,*.lock,*.ipynb,*.yaml,*.zlib'
ignore_words_list: ${{ steps.extract_ignore_words.outputs.ignore_words_list }}
# We do this to avoid spellchecking cell outputs
- name: Codespell Notebooks
+46 -4
View File
@@ -22,8 +22,30 @@ concurrency:
cancel-in-progress: false
jobs:
deploy:
get-changed-files:
runs-on: ubuntu-latest
outputs:
changed-files: ${{ steps.changed-files.outputs.added_modified }}
steps:
- uses: actions/checkout@v4
- name: Get changed files
id: changed-files
uses: Ana06/get-changed-files@v2.3.0
with:
filter: "docs/docs/**"
run-changed-notebooks:
needs: get-changed-files
uses: ./.github/workflows/run_notebooks.yml
secrets: inherit
with:
changed-files: ${{ needs.get-changed-files.outputs.changed-files }}
deploy:
# needs: run-changed-notebooks
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.MKDOCS_GITHUB_TOKEN }}
steps:
- uses: actions/checkout@v4
with:
@@ -38,9 +60,19 @@ jobs:
- name: Install dependencies
run: |
poetry install --with docs
poetry run pip install -U pytest pytest-check-links langsmith langchain GitPython
poetry install --with test --no-root
poetry run pip install -U \
pytest \
pytest-check-links \
langsmith \
langchain \
GitPython \
"git+https://${GITHUB_TOKEN}@github.com/langchain-ai/mkdocs-material-insiders.git"
- name: Lint Docs
# This step lints the docs using the existing linting set up.
# It should be very fast and should not require any external services.
run: make lint-docs
- name: Build site
run: make build-docs
env:
@@ -56,8 +88,15 @@ jobs:
--check-links-ignore "https://(api|web|docs)\.smith\.langchain\.com/.*" \
--check-links-ignore "https://x.com/.*" \
--check-links-ignore "https://github\.com/.*" \
--check-links-ignore "http://localhost:8123/.*" \
--check-links-ignore "http://localhost:2024.*" \
--check-links-ignore "http://127.0.0.1:.*" \
--check-links-ignore "/.*\.(ipynb|html)$" \
--check-links $(find docs/site -name "index.html" | grep -v 'storm/index.html')
--check-links-ignore "https://python\.langchain\.com/.*" \
--check-links-ignore "https://openai\.com/.*" \
--check-links-ignore "https://pepy\.tech/.*" \
--check-links $(find docs/site -name "index.html" | grep -v 'storm/index.html')
else
echo "Fetching changes from origin/main..."
git fetch origin main
@@ -68,6 +107,9 @@ jobs:
echo "Running link check on HTML files matching changed notebook files..."
poetry run pytest -v \
--check-links-ignore "https://(api|web|docs)\.smith\.langchain\.com/.*" \
--check-links-ignore "http://localhost:8123/.*" \
--check-links-ignore "http://localhost:2024.*" \
--check-links-ignore "http://127.0.0.1:.*" \
--check-links-ignore "https://x.com/.*" \
--check-links-ignore "https://github\.com/.*" \
--check-links-ignore "/.*\.(ipynb|html)$" \
+2 -4
View File
@@ -31,7 +31,6 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
cache-key: release
# We want to keep this build stage *separate* from the release stage,
@@ -169,7 +168,6 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
- name: Import published package
shell: bash
@@ -256,7 +254,6 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
cache-key: release
- uses: actions/download-artifact@v4
@@ -270,6 +267,8 @@ jobs:
packages-dir: ${{ inputs.working-directory }}/dist/
verbose: true
print-hash: true
# Temp workaround since attestations are on by default as of gh-action-pypi-publish v1.11.0
attestations: false
mark-release:
needs:
@@ -296,7 +295,6 @@ jobs:
with:
python-version: ${{ env.PYTHON_VERSION }}
poetry-version: ${{ env.POETRY_VERSION }}
working-directory: ${{ inputs.working-directory }}
cache-key: release
- uses: actions/download-artifact@v4
+25 -2
View File
@@ -2,6 +2,12 @@ name: Run notebooks
on:
workflow_dispatch:
workflow_call:
inputs:
changed-files:
required: false
type: string
description: "JSON string of changed files"
schedule:
- cron: '0 13 * * *'
@@ -14,7 +20,6 @@ jobs:
- "development"
- "latest"
name: "test (langgraph: ${{ matrix.lib-version }})"
steps:
- uses: actions/checkout@v4
- name: Set up Python + Poetry
@@ -32,6 +37,10 @@ jobs:
- name: Start services
run: make start-services
- name: Pre-download tiktoken files
run: |
poetry run python docs/_scripts/download_tiktoken.py
- name: Prepare notebooks
run: |
if [ "${{ matrix.lib-version }}" = "development" ]; then
@@ -48,8 +57,22 @@ jobs:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
TAVILY_API_KEY: ${{ secrets.TAVILY_API_KEY }}
LANGSMITH_API_KEY: ${{ secrets.LANGSMITH_API_KEY }}
NOMIC_API_KEY: ${{ secrets.NOMIC_API_KEY }}
COHERE_API_KEY: ${{ secrets.COHERE_API_KEY }}
FIREWORKS_API_KEY: ${{ secrets.FIREWORKS_API_KEY }}
run: |
./docs/_scripts/execute_notebooks.sh
if [ "${{ github.event_name }}" = "workflow_dispatch" ] || [ "${{ github.event_name }}" = "schedule" ]; then
echo "Running all notebooks"
./docs/_scripts/execute_notebooks.sh
else
CHANGED_FILES=$(echo '${{ inputs.changed-files }}' | tr ' ' '\n' | grep '\.ipynb$' || true)
if [ -n "$CHANGED_FILES" ]; then
echo "Running changed notebooks: $CHANGED_FILES"
./docs/_scripts/execute_notebooks.sh $CHANGED_FILES
else
echo "No notebook files changed, skipping execution"
fi
fi
- name: Stop services
run: make stop-services
+1 -1
View File
@@ -49,7 +49,7 @@ gain understanding of concepts and how they interact by showing one way to achie
They should **avoid** giving
multiple permutations of ways to achieve that goal in-depth. Choice is burdensome. Instead, they should guide a new user through a recommended path to accomplishing a concrete goal. While the end result of a tutorial does not necessarily need to
be completely production-ready, it should be useful and practically satisfy the the goal that you clearly stated in the tutorial's introduction.
be completely production-ready, it should be useful and practically satisfy the goal that you clearly stated in the tutorial's introduction.
To quote the Diataxis website:
+13 -3
View File
@@ -1,4 +1,4 @@
.PHONY: build-docs serve-docs serve-clean-docs clean-docs codespell build-typedoc
.PHONY: lint-docs format-docs build-docs serve-docs serve-clean-docs clean-docs codespell build-typedoc
build-typedoc:
cd libs/sdk-js && yarn install --include-dev && yarn typedoc
@@ -13,12 +13,22 @@ serve-clean-docs: clean-docs
poetry run python -m mkdocs serve -c -f docs/mkdocs.yml --strict -w ./libs/langgraph
serve-docs: build-typedoc
poetry run python -m mkdocs serve -f docs/mkdocs.yml -w ./libs/langgraph --dirty
poetry run python -m mkdocs serve -f docs/mkdocs.yml -w ./libs/langgraph -w ./libs/checkpoint -w ./libs/sdk-py --dirty
clean-docs:
find ./docs/docs -name "*.ipynb" -type f -delete
rm -rf docs/site
## Run format against the project documentation.
format-docs:
poetry run ruff format docs/docs
poetry run ruff check --fix docs/docs
# Check the docs for linting violations
lint-docs:
poetry run ruff format --check docs/docs
poetry run ruff check docs/docs
codespell:
./docs/codespell_notebooks.sh .
@@ -26,4 +36,4 @@ start-services:
docker compose -f docs/test-compose.yml up -V --force-recreate --wait --remove-orphans
stop-services:
docker compose -f docs/test-compose.yml down
docker compose -f docs/test-compose.yml down
+15 -3
View File
@@ -8,7 +8,7 @@
⚡ Building language agents as graphs ⚡
> [!NOTE]
> Looking for the JS version? Click [here](https://github.com/langchain-ai/langgraphjs) ([JS docs](https://langchain-ai.github.io/langgraphjs/)).
> Looking for the JS version? See the [JS repo](https://github.com/langchain-ai/langgraphjs) and the [JS docs](https://langchain-ai.github.io/langgraphjs/).
## Overview
@@ -16,6 +16,8 @@
LangGraph is inspired by [Pregel](https://research.google/pubs/pub37252/) and [Apache Beam](https://beam.apache.org/). The public interface draws inspiration from [NetworkX](https://networkx.org/documentation/latest/). LangGraph is built by LangChain Inc, the creators of LangChain, but can be used without LangChain.
[LangGraph Platform](https://langchain-ai.github.io/langgraph/concepts/langgraph_platform) is infrastructure for deploying LangGraph agents. It is a commercial solution for deploying agentic applications to production, built on the open-source LangGraph framework. The LangGraph Platform consists of several components that work together to support the development, deployment, debugging, and monitoring of LangGraph applications: [LangGraph Server](https://langchain-ai.github.io/langgraph/concepts/langgraph_server) (APIs), [LangGraph SDKs](https://langchain-ai.github.io/langgraph/concepts/sdk) (clients for the APIs), [LangGraph CLI](https://langchain-ai.github.io/langgraph/concepts/langgraph_cli) (command line tool for building the server), [LangGraph Studio](https://langchain-ai.github.io/langgraph/concepts/langgraph_studio) (UI/debugger),
To learn more about LangGraph, check out our first LangChain Academy course, *Introduction to LangGraph*, available for free [here](https://academy.langchain.com/courses/intro-to-langgraph).
### Key Features
@@ -26,6 +28,16 @@ To learn more about LangGraph, check out our first LangChain Academy course, *In
- **Streaming Support**: Stream outputs as they are produced by each node (including token streaming).
- **Integration with LangChain**: LangGraph integrates seamlessly with [LangChain](https://github.com/langchain-ai/langchain/) and [LangSmith](https://docs.smith.langchain.com/) (but does not require them).
### LangGraph Platform
LangGraph Platform is a commercial solution for deploying agentic applications to production, built on the open-source LangGraph framework.
Here are some common issues that arise in complex deployments, which LangGraph Platform addresses:
- **Streaming support**: LangGraph Server provides [multiple streaming modes](https://langchain-ai.github.io/langgraph/concepts/streaming) optimized for various application needs
- **Background runs**: Runs agents asynchronously in the background
- **Support for long running agents**: Infrastructure that can handle long running processes
- **[Double texting](https://langchain-ai.github.io/langgraph/concepts/double_texting)**: Handle the case where you get two messages from the user before the agent can respond
- **Handle burstiness**: Task queue for ensuring requests are handled consistently without loss, even under heavy loads
## Installation
@@ -224,9 +236,9 @@ final_state["messages"][-1].content
* [Tutorials](https://langchain-ai.github.io/langgraph/tutorials/): Learn to build with LangGraph through guided examples.
* [How-to Guides](https://langchain-ai.github.io/langgraph/how-tos/): Accomplish specific things within LangGraph, from streaming, to adding memory & persistence, to common design patterns (branching, subgraphs, etc.), these are the place to go if you want to copy and run a specific code snippet.
* [Conceptual Guides](https://langchain-ai.github.io/langgraph/concepts/): In-depth explanations of the key concepts and principles behind LangGraph, such as nodes, edges, state and more.
* [Conceptual Guides](https://langchain-ai.github.io/langgraph/concepts/high_level/): In-depth explanations of the key concepts and principles behind LangGraph, such as nodes, edges, state and more.
* [API Reference](https://langchain-ai.github.io/langgraph/reference/graphs/): Review important classes and methods, simple examples of how to use the graph and checkpointing APIs, higher-level prebuilt components and more.
* [Cloud (beta)](https://langchain-ai.github.io/langgraph/cloud/): With one click, deploy LangGraph applications to LangGraph Cloud.
* [LangGraph Platform](https://langchain-ai.github.io/langgraph/concepts/#langgraph-platform): LangGraph Platform is a commercial solution for deploying agentic applications in production, built on the open-source LangGraph framework.
## Contributing
+93
View File
@@ -0,0 +1,93 @@
import functools
from urllib3 import __version__ as urllib3version # type: ignore[import-untyped]
from urllib3 import connection # type: ignore[import-untyped]
def _ensure_str(s, encoding="utf-8", errors="strict") -> str:
if isinstance(s, str):
return s
if isinstance(s, bytes):
return s.decode(encoding, errors)
return str(s)
# Copied from https://github.com/urllib3/urllib3/blob/1c994dfc8c5d5ecaee8ed3eb585d4785f5febf6e/src/urllib3/connection.py#L231
def request(self, method, url, body=None, headers=None):
"""Make the request.
This function is based on the urllib3 request method, with modifications
to handle potential issues when using vcrpy in concurrent workloads.
Args:
self: The HTTPConnection instance.
method (str): The HTTP method (e.g., 'GET', 'POST').
url (str): The URL for the request.
body (Optional[Any]): The body of the request.
headers (Optional[dict]): Headers to send with the request.
Returns:
The result of calling the parent request method.
"""
# Update the inner socket's timeout value to send the request.
# This only triggers if the connection is re-used.
if getattr(self, "sock", None) is not None:
self.sock.settimeout(self.timeout)
if headers is None:
headers = {}
else:
# Avoid modifying the headers passed into .request()
headers = headers.copy()
if "user-agent" not in (_ensure_str(k.lower()) for k in headers):
headers["User-Agent"] = connection._get_default_user_agent()
# The above is all the same ^^^
# The following is different:
return self._parent_request(method, url, body=body, headers=headers)
_PATCHED = False
def patch_urllib3():
"""Patch the request method of urllib3 to avoid type errors when using vcrpy.
In concurrent workloads (such as the tracing background queue), the
connection pool can get in a state where an HTTPConnection is created
before vcrpy patches the HTTPConnection class. In urllib3 >= 2.0 this isn't
a problem since they use the proper super().request(...) syntax, but in older
versions, super(HTTPConnection, self).request is used, resulting in a TypeError
since self is no longer a subclass of "HTTPConnection" (which at this point
is vcr.stubs.VCRConnection).
This method patches the class to fix the super() syntax to avoid mixed inheritance.
In the case of the LangSmith tracing logic, it doesn't really matter since we always
exclude cache checks for calls to LangSmith.
The patch is only applied for urllib3 versions older than 2.0.
"""
global _PATCHED
if _PATCHED:
return
from packaging import version
if version.parse(urllib3version) >= version.parse("2.0"):
_PATCHED = True
return
# Lookup the parent class and its request method
parent_class = connection.HTTPConnection.__bases__[0]
parent_request = parent_class.request
def new_request(self, *args, **kwargs):
"""Handle parent request.
This method binds the parent's request method to self and then
calls our modified request function.
"""
self._parent_request = functools.partial(parent_request, self)
return request(self, *args, **kwargs)
connection.HTTPConnection.request = new_request
_PATCHED = True
+5
View File
@@ -0,0 +1,5 @@
import tiktoken
# This will trigger the download and caching of the necessary files
for encoding in ("gpt2", "gpt-3.5"):
tiktoken.encoding_for_model(encoding)
+35 -4
View File
@@ -1,5 +1,36 @@
for file in $(find docs/docs/how-tos -name "*.ipynb" | grep -v ".ipynb_checkpoints")
do
echo "Executing $file"
poetry run jupyter execute "$file"
#!/bin/bash
# Read the list of notebooks to skip from the JSON file
SKIP_NOTEBOOKS=$(python -c "import json; print('\n'.join(json.load(open('docs/notebooks_no_execution.json'))))")
# Function to execute a single notebook
execute_notebook() {
file="$1"
echo "Starting execution of $file"
start_time=$(date +%s)
if ! output=$(time poetry run jupyter execute "$file" 2>&1); then
end_time=$(date +%s)
execution_time=$((end_time - start_time))
echo "Error in $file. Execution time: $execution_time seconds"
echo "Error details: $output"
exit 1
fi
end_time=$(date +%s)
execution_time=$((end_time - start_time))
echo "Finished $file. Execution time: $execution_time seconds"
}
export -f execute_notebook
# Check if custom notebook paths are provided
if [ $# -gt 0 ]; then
notebooks=$(echo "$@" | tr ' ' '\n' | grep -vFf <(echo "$SKIP_NOTEBOOKS"))
else
# Find all notebooks and filter out those in the skip list
notebooks=$(find docs/docs/tutorials docs/docs/how-tos -name "*.ipynb" | grep -v ".ipynb_checkpoints" | grep -vFf <(echo "$SKIP_NOTEBOOKS"))
fi
# Execute notebooks sequentially
for file in $notebooks; do
execute_notebook "$file"
done
@@ -0,0 +1,290 @@
import importlib
import inspect
import logging
import os
import re
from typing import List, Literal, Optional
from typing_extensions import TypedDict
from functools import lru_cache
import nbformat
from nbconvert.preprocessors import Preprocessor
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
# Base URL for all class documentation
_LANGCHAIN_API_REFERENCE = "https://python.langchain.com/api_reference/"
_LANGGRAPH_API_REFERENCE = "https://langchain-ai.github.io/langgraph/reference/"
# (alias/re-exported modules, source module, class, docs namespace)
MANUAL_API_REFERENCES_LANGGRAPH = [
(
["langgraph.prebuilt"],
"langgraph.prebuilt.chat_agent_executor",
"create_react_agent",
"prebuilt",
),
(["langgraph.prebuilt"], "langgraph.prebuilt.tool_node", "ToolNode", "prebuilt"),
(
["langgraph.prebuilt"],
"langgraph.prebuilt.tool_node",
"tools_condition",
"prebuilt",
),
(
["langgraph.prebuilt"],
"langgraph.prebuilt.tool_node",
"InjectedState",
"prebuilt",
),
# Graph
(["langgraph.graph"], "langgraph.graph.message", "add_messages", "graphs"),
(["langgraph.graph"], "langgraph.graph.state", "StateGraph", "graphs"),
(["langgraph.graph"], "langgraph.graph.state", "CompiledStateGraph", "graphs"),
([], "langgraph.types", "StreamMode", "types"),
(["langgraph.graph"], "langgraph.constants", "START", "constants"),
(["langgraph.graph"], "langgraph.constants", "END", "constants"),
(["langgraph.constants"], "langgraph.types", "Send", "types"),
(["langgraph.constants"], "langgraph.types", "Interrupt", "types"),
(["langgraph.constants"], "langgraph.types", "interrupt", "types"),
(["langgraph.constants"], "langgraph.types", "Command", "types"),
([], "langgraph.types", "RetryPolicy", "types"),
([], "langgraph.checkpoint.base", "Checkpoint", "checkpoints"),
([], "langgraph.checkpoint.base", "CheckpointMetadata", "checkpoints"),
([], "langgraph.checkpoint.base", "BaseCheckpointSaver", "checkpoints"),
([], "langgraph.checkpoint.base", "SerializerProtocol", "checkpoints"),
([], "langgraph.checkpoint.serde.jsonplus", "JsonPlusSerializer", "checkpoints"),
([], "langgraph.checkpoint.memory", "MemorySaver", "checkpoints"),
([], "langgraph.checkpoint.sqlite.aio", "AsyncSqliteSaver", "checkpoints"),
([], "langgraph.checkpoint.sqlite", "SqliteSaver", "checkpoints"),
([], "langgraph.checkpoint.postgres.aio", "AsyncPostgresSaver", "checkpoints"),
([], "langgraph.checkpoint.postgres", "PostgresSaver", "checkpoints"),
]
WELL_KNOWN_LANGGRAPH_OBJECTS = {
(module_, class_): (source_module, namespace)
for (modules, source_module, class_, namespace) in MANUAL_API_REFERENCES_LANGGRAPH
for module_ in modules + [source_module]
}
def _make_regular_expression(pkg_prefix: str) -> re.Pattern:
if not pkg_prefix.isidentifier():
raise ValueError(f"Invalid package prefix: {pkg_prefix}")
return re.compile(
r"from\s+(" + pkg_prefix + "(?:_\w+)?(?:\.\w+)*?)\s+import\s+"
r"((?:\w+(?:,\s*)?)*" # Match zero or more words separated by a comma+optional ws
r"(?:\s*\(.*?\))?)", # Match optional parentheses block
re.DOTALL, # Match newlines as well
)
# Regular expression to match langchain import lines
_IMPORT_LANGCHAIN_RE = _make_regular_expression("langchain")
_IMPORT_LANGGRAPH_RE = _make_regular_expression("langgraph")
@lru_cache(maxsize=10_000)
def _get_full_module_name(module_path: str, class_name: str) -> Optional[str]:
"""Get full module name using inspect, with LRU cache to memoize results."""
try:
module = importlib.import_module(module_path)
class_ = getattr(module, class_name)
module = inspect.getmodule(class_)
if module is None:
# For constants, inspect.getmodule() might return None
# In this case, we'll return the original module_path
return module_path
return module.__name__
except AttributeError as e:
logger.warning(f"API Reference: Could not find module for {class_name}, {e}")
return None
except ImportError as e:
logger.warning(f"API Reference: Failed to load for class {class_name}, {e}")
return None
def _get_doc_title(data: str, file_name: str) -> str:
try:
return re.findall(r"^#\s*(.*)", data, re.MULTILINE)[0]
except IndexError:
pass
# Parse the rst-style titles
try:
return re.findall(r"^(.*)\n=+\n", data, re.MULTILINE)[0]
except IndexError:
return file_name
class ImportInformation(TypedDict):
imported: str # The name of the class that was imported.
source: str # The full module path from which the class was imported.
docs: str # The URL pointing to the class's documentation.
title: str # The title of the document where the import is used.
def _get_imports(
code: str, doc_title: str, package_ecosystem: Literal["langchain", "langgraph"]
) -> List[ImportInformation]:
"""Get imports from the given code block.
Args:
code: Python code block from which to extract imports
doc_title: Title of the document
package_ecosystem: "langchain" or "langgraph". The two live in different
repositories and have separate documentation sites.
Returns:
List of import information for the given code block
"""
imports = []
if package_ecosystem == "langchain":
pattern = _IMPORT_LANGCHAIN_RE
elif package_ecosystem == "langgraph":
pattern = _IMPORT_LANGGRAPH_RE
else:
raise ValueError(f"Invalid package ecosystem: {package_ecosystem}")
for import_match in pattern.finditer(code):
module = import_match.group(1)
if "pydantic_v1" in module:
continue
imports_str = (
import_match.group(2).replace("(\n", "").replace("\n)", "")
) # Handle newlines within parentheses
# remove any newline and spaces, then split by comma
imported_classes = [
imp.strip()
for imp in re.split(r",\s*", imports_str.replace("\n", ""))
if imp.strip()
]
for class_name in imported_classes:
module_path = _get_full_module_name(module, class_name)
if not module_path:
continue
if len(module_path.split(".")) < 2:
continue
if package_ecosystem == "langchain":
pkg = module_path.split(".")[0].replace("langchain_", "")
top_level_mod = module_path.split(".")[1]
url = (
_LANGCHAIN_API_REFERENCE
+ pkg
+ "/"
+ top_level_mod
+ "/"
+ module_path
+ "."
+ class_name
+ ".html"
)
elif package_ecosystem == "langgraph":
if (module, class_name) not in WELL_KNOWN_LANGGRAPH_OBJECTS:
# Likely not documented yet
continue
source_module, namespace = WELL_KNOWN_LANGGRAPH_OBJECTS[
(module, class_name)
]
url = (
_LANGGRAPH_API_REFERENCE
+ namespace
+ "/#"
+ source_module
+ "."
+ class_name
)
else:
raise ValueError(f"Invalid package ecosystem: {package_ecosystem}")
# Add the import information to our list
imports.append(
{
"imported": class_name,
"source": module,
"docs": url,
"title": doc_title,
}
)
return imports
def get_imports(code: str, doc_title: str) -> List[ImportInformation]:
"""Retrieve all import references from the given code for specified ecosystems.
Args:
code: The source code from which to extract import references.
doc_title: The documentation title associated with the code.
Returns:
A list of import information for each import found.
"""
ecosystems = ["langchain", "langgraph"]
all_imports = []
for package_ecosystem in ecosystems:
all_imports.extend(_get_imports(code, doc_title, package_ecosystem))
return all_imports
def update_markdown_with_imports(markdown: str) -> str:
"""Update markdown to include API reference links for imports in Python code blocks.
This function scans the markdown content for Python code blocks, extracts any imports, and appends links to their API documentation.
Args:
markdown: The markdown content to process.
Returns:
Updated markdown with API reference links appended to Python code blocks.
Example:
Given a markdown with a Python code block:
```python
from langchain.nlp import TextGenerator
```
This function will append an API reference link to the `TextGenerator` class from the `langchain.nlp` module if it's recognized.
"""
code_block_pattern = re.compile(
r'(?P<indent>[ \t]*)```(?P<language>python|py)\n(?P<code>.*?)\n(?P=indent)```', re.DOTALL
)
def replace_code_block(match: re.Match) -> str:
"""Replace the matched code block with additional API reference links if imports are found.
Args:
match (re.Match): The regex match object containing the code block.
Returns:
str: The modified code block with API reference links appended if applicable.
"""
indent = match.group('indent')
code_block = match.group('code')
language = match.group('language') # Preserve the language from the regex match
# Retrieve import information from the code block
imports = get_imports(code_block, "__unused__")
original_code_block = match.group(0)
# If no imports are found, return the original code block
if not imports:
return original_code_block
# Generate API reference links for each import
api_links = ' | '.join(
f'<a href="{imp["docs"]}">{imp["imported"]}</a>' for imp in imports
)
# Return the code block with appended API reference links
return f'{original_code_block}\n\n{indent}API Reference: {api_links}'
# Apply the replace_code_block function to all matches in the markdown
updated_markdown = code_block_pattern.sub(replace_code_block, markdown)
return updated_markdown
+123
View File
@@ -0,0 +1,123 @@
import os
import re
from pathlib import Path
import nbformat
from nbconvert.exporters import MarkdownExporter
from nbconvert.preprocessors import Preprocessor
class EscapePreprocessor(Preprocessor):
def preprocess_cell(self, cell, resources, cell_index):
if cell.cell_type == "markdown":
# rewrite markdown links to html links (excluding image links)
cell.source = re.sub(
r"(?<!!)\[([^\]]*)\]\((?![^\)]*//)([^)]*)(?:\.ipynb)?\)",
r'<a href="\2">\1</a>',
cell.source,
)
# Fix image paths in <img> tags
cell.source = re.sub(
r'<img\s+src="\.?/img/([^"]+)"', r'<img src="../img/\1"', cell.source
)
elif cell.cell_type == "code":
# escape ``` in code
cell.source = cell.source.replace("```", r"\`\`\`")
# escape ``` in output
if "outputs" in cell:
filter_out = set()
for i, output in enumerate(cell["outputs"]):
if "text" in output:
if not output["text"].strip():
filter_out.add(i)
continue
value = output["text"].replace("```", r"\`\`\`")
# handle a funky case w/ references in text
value = re.sub(r"\[(\d+)\](?=\[(\d+)\])", r"[\1]\\", value)
output["text"] = value
elif "data" in output:
for key, value in output["data"].items():
if isinstance(value, str):
value = value.replace("```", r"\`\`\`")
# handle a funky case w/ references in text
output["data"][key] = re.sub(
r"\[(\d+)\](?=\[(\d+)\])", r"[\1]\\", value
)
cell["outputs"] = [
output
for i, output in enumerate(cell["outputs"])
if i not in filter_out
]
return cell, resources
class ExtractAttachmentsPreprocessor(Preprocessor):
"""
Extracts all of the outputs from the notebook file. The extracted
outputs are returned in the 'resources' dictionary.
"""
def preprocess_cell(self, cell, resources, cell_index):
"""
Apply a transformation on each cell,
Parameters
----------
cell : NotebookNode cell
Notebook cell being processed
resources : dictionary
Additional resources used in the conversion process. Allows
preprocessors to pass variables into the Jinja engine.
cell_index : int
Index of the cell being processed (see base.py)
"""
# Get files directory if it has been specified
# Make sure outputs key exists
if not isinstance(resources["outputs"], dict):
resources["outputs"] = {}
# Loop through all of the attachments in the cell
for name, attach in cell.get("attachments", {}).items():
for mime, data in attach.items():
if mime not in {
"image/png",
"image/jpeg",
"image/svg+xml",
"application/pdf",
}:
continue
# attachments are pre-rendered. Only replace markdown-formatted
# images with the following logic
attach_str = f"({name})"
if attach_str in cell.source:
data = f"(data:{mime};base64,{data})"
cell.source = cell.source.replace(attach_str, data)
return cell, resources
exporter = MarkdownExporter(
preprocessors=[
EscapePreprocessor,
ExtractAttachmentsPreprocessor,
],
template_name="mdoutput",
extra_template_basedirs=[
os.path.join(os.path.dirname(__file__), "notebook_convert_templates")
],
)
def convert_notebook(
notebook_path: Path,
) -> Path:
with open(notebook_path) as f:
nb = nbformat.read(f, as_version=4)
body, _ = exporter.from_notebook_node(nb)
return body
@@ -0,0 +1,5 @@
{
"mimetypes": {
"text/markdown": true
}
}
@@ -0,0 +1,33 @@
{% extends 'markdown/index.md.j2' %}
{%- block traceback_line -%}
```output
{{ line.rstrip() | strip_ansi }}
```
{%- endblock traceback_line -%}
{%- block stream -%}
```output
{{ output.text.rstrip() }}
```
{%- endblock stream -%}
{%- block data_text scoped -%}
```output
{{ output.data['text/plain'].rstrip() }}
```
{%- endblock data_text -%}
{%- block data_html scoped -%}
```html
{{ output.data['text/html'] | safe }}
```
{%- endblock data_html -%}
{%- block data_jpg scoped -%}
![](data:image/jpg;base64,{{ output.data['image/jpeg'] }})
{%- endblock data_jpg -%}
{%- block data_png scoped -%}
![](data:image/png;base64,{{ output.data['image/png'] }})
{%- endblock data_png -%}
+120
View File
@@ -0,0 +1,120 @@
import logging
import os
import re
from typing import Any, Dict
from mkdocs.structure.files import Files, File
from mkdocs.structure.pages import Page
from notebook_convert import convert_notebook
from generate_api_reference_links import update_markdown_with_imports
logger = logging.getLogger(__name__)
logging.basicConfig()
logger.setLevel(logging.INFO)
DISABLED = os.getenv("DISABLE_NOTEBOOK_CONVERT") in ("1", "true", "True")
class NotebookFile(File):
def is_documentation_page(self):
return True
def on_files(files: Files, **kwargs: Dict[str, Any]):
if DISABLED:
return files
new_files = Files([])
for file in files:
if file.src_path.endswith(".ipynb"):
new_file = NotebookFile(
path=file.src_path,
src_dir=file.src_dir,
dest_dir=file.dest_dir,
use_directory_urls=file.use_directory_urls,
)
new_files.append(new_file)
else:
new_files.append(file)
return new_files
def _highlight_code_blocks(markdown: str) -> str:
"""Find code blocks with highlight comments and add hl_lines attribute.
Args:
markdown: The markdown content to process.
Returns:
updated Markdown code with code blocks containing highlight comments
updated to use the hl_lines attribute.
"""
# Pattern to find code blocks with highlight comments and without
# existing hl_lines for Python and JavaScript
# Pattern to find code blocks with highlight comments, handling optional indentation
code_block_pattern = re.compile(
r"(?P<indent>[ \t]*)```(?P<language>py|python|js|javascript)(?!\s+hl_lines=)\n"
r"(?P<code>((?:.*\n)*?))" # Capture the code inside the block using named group
r"(?P=indent)```" # Match closing backticks with the same indentation
)
def replace_highlight_comments(match: re.Match) -> str:
indent = match.group("indent")
language = match.group("language")
code_block = match.group("code")
lines = code_block.split("\n")
highlighted_lines = []
# Skip initial empty lines
while lines and not lines[0].strip():
lines.pop(0)
lines_to_keep = []
comment_syntax = (
"# highlight-next-line"
if language in ["py", "python"]
else "// highlight-next-line"
)
for line in lines:
if comment_syntax in line:
count = len(lines_to_keep) + 1
highlighted_lines.append(str(count))
else:
lines_to_keep.append(line)
# Reconstruct the new code block
new_code_block = "\n".join(lines_to_keep)
if highlighted_lines:
return (
f'{indent}```{language} hl_lines="{" ".join(highlighted_lines)}"\n'
# The indent and terminating \n is already included in the code block
f'{new_code_block}'
f'{indent}```'
)
else:
return (
f"{indent}```{language}\n"
# The indent and terminating \n is already included in the code block
f"{new_code_block}"
f"{indent}```"
)
# Replace all code blocks in the markdown
markdown = code_block_pattern.sub(replace_highlight_comments, markdown)
return markdown
def on_page_markdown(markdown: str, page: Page, **kwargs: Dict[str, Any]):
if DISABLED:
return markdown
if page.file.src_path.endswith(".ipynb"):
logger.info("Processing Jupyter notebook: %s", page.file.src_path)
markdown = convert_notebook(page.file.abs_src_path)
# Append API reference links to code blocks
markdown = update_markdown_with_imports(markdown)
# Apply highlight comments to code blocks
markdown = _highlight_code_blocks(markdown)
return markdown
+104 -6
View File
@@ -2,20 +2,52 @@
import logging
import os
import json
import click
import nbformat
logger = logging.getLogger(__name__)
NOTEBOOK_DIRS = ("docs/docs/how-tos",)
NOTEBOOK_DIRS = ("docs/docs/how-tos","docs/docs/tutorials")
DOCS_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
CASSETTES_PATH = os.path.join(DOCS_PATH, "cassettes")
BLOCKLIST_COMMANDS = (
# skip if has WebBaseLoader to avoid caching web pages
"WebBaseLoader",
# skip if has draw_mermaid_png to avoid generating mermaid images via API
"draw_mermaid_png",
)
NOTEBOOKS_NO_CASSETTES = (
"docs/docs/how-tos/visualization.ipynb",
"docs/docs/how-tos/many-tools.ipynb"
)
NOTEBOOKS_NO_EXECUTION = [
# this uses a user provided project name for langsmith
"docs/docs/tutorials/tnt-llm/tnt-llm.ipynb",
# this uses langsmith datasets
"docs/docs/tutorials/chatbot-simulation-evaluation/langsmith-agent-simulation-evaluation.ipynb",
# this uses browser APIs
"docs/docs/tutorials/web-navigation/web_voyager.ipynb",
# these RAG guides use an ollama model
"docs/docs/tutorials/rag/langgraph_adaptive_rag_local.ipynb",
"docs/docs/tutorials/rag/langgraph_crag_local.ipynb",
"docs/docs/tutorials/rag/langgraph_self_rag_local.ipynb",
# this loads a massive dataset from gcp
"docs/docs/tutorials/usaco/usaco.ipynb",
# TODO: figure out why autogen notebook is not runnable (they are just hanging. possible due to code execution?)
"docs/docs/how-tos/autogen-integration.ipynb",
# TODO: need to update these notebooks to make sure they are runnable in CI
"docs/docs/tutorials/storm/storm.ipynb", # issues only when running with VCR
"docs/docs/tutorials/lats/lats.ipynb", # issues only when running with VCR
"docs/docs/tutorials/rag/langgraph_crag.ipynb", # flakiness from tavily
"docs/docs/tutorials/rag/langgraph_adaptive_rag.ipynb", # Cannot create a consistent method resolution error from VCR
"docs/docs/how-tos/map-reduce.ipynb", # flakiness from structured output, only when running with VCR
"docs/docs/tutorials/tot/tot.ipynb",
"docs/docs/how-tos/visualization.ipynb"
]
def comment_install_cells(notebook: nbformat.NotebookNode) -> nbformat.NotebookNode:
for cell in notebook.cells:
@@ -40,11 +72,23 @@ def is_comment(code: str) -> bool:
return code.strip().startswith("#")
def has_blocklisted_command(code: str, metadata: dict) -> bool:
if 'hide_from_vcr' in metadata:
return True
code = code.strip()
for blocklisted_pattern in BLOCKLIST_COMMANDS:
if blocklisted_pattern in code:
return True
return False
def add_vcr_to_notebook(
notebook: nbformat.NotebookNode, cassette_prefix: str
) -> nbformat.NotebookNode:
"""Inject `with vcr.cassette` into each code cell of the notebook."""
uses_langsmith = False
# Inject VCR context manager into each code cell
for idx, cell in enumerate(notebook.cells):
if cell.cell_type != "code":
@@ -70,19 +114,59 @@ def add_vcr_to_notebook(
if all(is_comment(line) or not line.strip() for line in lines):
continue
if has_blocklisted_command(cell.source, cell.metadata):
continue
cell_id = cell.get("id", idx)
cassette_name = f"{cassette_prefix}_{cell_id}.yaml"
cell.source = f"with vcr.use_cassette('{cassette_name}', filter_headers=['x-api-key', 'authorization'], record_mode='once'):\n" + "\n".join(
cassette_name = f"{cassette_prefix}_{cell_id}.msgpack.zlib"
cell.source = f"with custom_vcr.use_cassette('{cassette_name}', filter_headers=['x-api-key', 'authorization'], record_mode='once', serializer='advanced_compressed'):\n" + "\n".join(
f" {line}" for line in lines
)
if any("hub.pull" in line or "from langsmith import" in line for line in lines):
uses_langsmith = True
# Add import statement
vcr_import_lines = [
"import vcr",
# this is needed for ChatAnthropic
"import nest_asyncio",
"nest_asyncio.apply()",
"import vcr",
"import msgpack",
"import base64",
"import zlib",
"import os",
"os.environ.pop(\"LANGCHAIN_TRACING_V2\", None)",
"custom_vcr = vcr.VCR()",
"",
"def compress_data(data, compression_level=9):",
" packed = msgpack.packb(data, use_bin_type=True)",
" compressed = zlib.compress(packed, level=compression_level)",
" return base64.b64encode(compressed).decode('utf-8')",
"",
"def decompress_data(compressed_string):",
" decoded = base64.b64decode(compressed_string)",
" decompressed = zlib.decompress(decoded)",
" return msgpack.unpackb(decompressed, raw=False)",
"",
"class AdvancedCompressedSerializer:",
" def serialize(self, cassette_dict):",
" return compress_data(cassette_dict)",
"",
" def deserialize(self, cassette_string):",
" return decompress_data(cassette_string)",
"",
"custom_vcr.register_serializer('advanced_compressed', AdvancedCompressedSerializer())",
"custom_vcr.serializer = 'advanced_compressed'",
]
if uses_langsmith:
vcr_import_lines.extend(
# patch urllib3 to handle vcr errors, see more here:
# https://github.com/langchain-ai/langsmith-sdk/blob/main/python/langsmith/_internal/_patch.py
"import sys",
f"sys.path.insert(0, '{os.path.join(DOCS_PATH, '_scripts')}')",
"import _patch as patch_urllib3",
"patch_urllib3.patch_urllib3()",
)
import_cell = nbformat.v4.new_code_cell(source="\n".join(vcr_import_lines))
import_cell.pop("id", None)
notebook.cells.insert(0, import_cell)
@@ -110,10 +194,24 @@ def process_notebooks(should_comment_install_cells: bool) -> None:
notebook, cassette_prefix=cassette_prefix
)
if notebook_path in NOTEBOOKS_NO_EXECUTION:
# Add a cell at the beginning to indicate that this notebook should not be executed
warning_cell = nbformat.v4.new_markdown_cell(
source="**Warning:** This notebook is not meant to be executed automatically."
)
notebook.cells.insert(0, warning_cell)
# Add a special tag to the first code cell
if notebook.cells and notebook.cells[1].cell_type == "code":
notebook.cells[1].metadata["tags"] = notebook.cells[1].metadata.get("tags", []) + ["no_execution"]
nbformat.write(notebook, notebook_path)
logger.info(f"Processed: {notebook_path}")
except Exception as e:
logger.error(f"Error processing {notebook_path}: {e}")
with open(os.path.join(DOCS_PATH, "notebooks_no_execution.json"), "w") as f:
json.dump(NOTEBOOKS_NO_EXECUTION, f)
@click.command()
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
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
@@ -0,0 +1 @@
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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
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
@@ -0,0 +1 @@
eNrtVs1uHEUQVm48RmuEhIP2Z3Z212svBMmy8iewEmEHCSXRqGemZqZxb/eku2fXG8sHQq4clicAbNmRlQAHxAUi5QYHXiA8DdU9s2s7cZSQI4ql9c52VVd/VfXVN/3gaAxKMykuPGbCgKKxwR/6uwdHCu6VoM3DwxGYXCb7Vy9v7ZeKPX8/N6bQw3abFqylR8zkLU5FFueUiVYsR20mUnkQyWT67CgHmmD4h8e3NKjmWgbCzH613m5fs5i2/Van1QlWfl6LYyhM87KIZcJENnuS3WdFgySQcmrgsDLPfqFFwVlMLcb2V1qK43UpBDjMs+NtgKJJORvDIwW6wDTgm0NtqCn1gwOMC3//dTQCrWkGP974dA7u2/0vGJ0dIwySSZlxeBxLrIQwTTMt4OUjnxMLRusmHm2U5M01zuWkua4gwU2Mcj07MKqEP85123DF1LMfPnz6gv3yTiE1NK9VqNDhaI2b5uY4nj1v5d1L3rDX63ofkRG9FPRXA9/3G3m3GayeYzhIsGSzp1t52SDBMtmEggR+0COd5aHfHfoDcnVj63x0J4c/iWmcQzOuzLNHQjbdyiE2EhkzOyrHLJZK/H5unBuKZUzMvv/tBesG3bEsmO0v+/5P63WZPwORmXy23+v3HW2+xp4p5MA/F/7c9Wp2ekPPbw1a3YHX8LAbgK0NYadgyvUlNGwE3lCUnDe8iJo4D3E/kjdE/CnLvOGup2PKISyL8J5m9yHEE7IMlDfs2EqeWIXJFRZBh5whRdG8PDcmciJCAaPCTE9299Bqw829XazFQhhNDWhvGPirg04/8PcaHhNISBFDiLzOtAWGQ4FjZyCkLMSJU9MQBI04JN7Q0qjhSZWFMYJymSZM18YUmYZWnctJaAwPSzbfYHCKMUMGKkzKukIJnbrTuBSZnRAM0HNgc6lMvdDpIUANVGH9XsAwkWpbFzasjmUBocXExJi59OZIuqE2UuF0nd29t/dqMbnyOjHBD67q9iTN25yPkJCjgnEUk68kw7q1rTpo805u3snNf5SbgyDo+Wf15r1nu17FtzCnOkfNScCP/DSmURdWfej4AIM06MfLg3S1s7LqR51+P+qtREEfkm4UdZJ0edCJBysrnc5KPx5EAarViAqWIkXt8DGciNveguBoLRTy2Wh8whWDX+v4ddMtbqHUWDJ6d1HyYpxOHGxkCKLCKiHiMsZhwx3bE6oqJanJhs+33+iszak2MNqodr3toVXU12VXezW8tz3GzHcMvU3Jx0AocYqCY0Ko0BOwHSSG6u0WuQYK7fjRcgQkK1kCHMVCD+8I0iTXBTE5kDWtmZViQzZjZV8ZBU0aZCpLMmGckwg34mQLgqNdcqOJTPFIhCCcT04RAuxAXBpIiJE1Bhe5RM5+oBfwWu7UrVyWWW6IAEi03YCCri32SJbGbVukE1GNMWUF80ZkJ8DJgSZMkE4zIBosk5HpVejrmZCYLFMKOIxtRtUlbg699kpdPCvEDLWD2FuaGrnAhGlSoDOGbbisMVPsQ8w0kAjRWc3lYHBZJCQHXqQlXyQsX50zHmlrZTtRuheC9a7jazxZp9T2eUpSJpjObQOrqA2E6Upt/cG8EniLfO6E1y46p1RaPbCBKh/s+B1Rl35IPn6p5pYviw7b7CY5CiamteixLtOUxQxLc6ZiZzs+T/uTO2LNlR7Pqntg60O3wVrGlHFXhfqObem41LlIrrjslxx+Jujp0iowpRKni3xxWC9qt1S7WuhVEUEvErNNWAouYo1sLZeqItoCVIVGirlUz6SFwlDx37bZVcH1gWb2fUzW8TGy3bPj5CZCTAl3eoq4WD25Gqs4JRMgo1KbupOevfkUpQnHVDFbBCtSOPzzsQ4rDDjdabNSY28P/xovqQre6BScJ2a1jOmbHG8pueT4YnlzdZmjCgW1F8kTJT0Pwv9ISm9pp5qWSJFEtqMKjJks9Zyi9kYUo3wu5sJx0lFCqppxLTvnFCnzBvLSIl8ipUZ0enrvYtZGeBvAf8gpaixI44QSPRMX+3TICd7n7BDr0r3xG4Qm+NpGwXfEVrUqWC+EjrmOXyD64syM2rwQsD6ZMRJjfvbGiyTGvFwU3NCyYrILO9Sqod47l9Le3Oy9ntx3zw2woF7jTKyCKnvZO+27awfkxAnnae9frATU4w==
@@ -0,0 +1 @@
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
@@ -1,190 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi! I''m
bob"}, {"role": "assistant", "content": "It''s nice to meet you Bob! I''m an
AI assistant created by Anthropic. I''m here to help with any questions or tasks
you might have. How can I assist you today?"}, {"role": "user", "content": "what''s
my name?"}, {"role": "assistant", "content": "I''m afraid I don''t actually
know your name. As an AI assistant, I don''t have any prior knowledge about
you or your identity. I only know what you''ve directly told me, which is that
your name is Bob. Please let me know if you have any other questions I can help
with!"}, {"role": "user", "content": "i like the celtics!"}, {"role": "assistant",
"content": "Okay, got it! You like the Boston Celtics basketball team. That''s
great, the Celtics have a rich history and are a popular NBA franchise. Do you
follow them closely? What do you like most about the team? I''m always happy
to discuss sports and learn more about the interests of the people I talk to."},
{"role": "user", "content": "i like how much they win"}], "model": "claude-3-haiku-20240307"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '1106'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yST2sbQQzFv4qYSy+bYOcPIXspTQOlFApN20NbilFmZa/iWWkz0tjZhHz3MuuE
5jQgPT3p95inwF1ow2Cb1WJ5dvb47Zzub+7kcXl68/sL/7z+9ek8NMGnkaqKzHBDoQlZUy2gGZuj
eGjCoB2l0IaYsHR0dHrUI2/L0cni5GxxurgITYgqTuKh/fP06uj0UGfnpw2fIaJAkY5yde3AewIc
R8IEuoas6iwbWGsGBCsxktm6JHDCARJvaR64UnMV+EjJOdox/Ohpgh53BLdEAipUzapyUHPodGBB
cVhnlNizkQELfL36AD2ba54a2LP3sLyA2OMwsor1PIKzJ7Jj+E5Ur5q0ZFjjTjM7HU6KKjUfEk8T
7FmgMkUdRnKaKd762Qx/S7CjPIGhs62naowGCGuUmeQV6131k9r2jB0768HdijmyUAf0ECklkkig
O8ozcEcRu8pnEClXYZpgxOw1kX2PDgNuyap2qAH3gAIcVTgeiFhmn0S4KXQM11qxD+Hif/iXG2FM
OFEGzWCEpjKL6zqOJWFOE5Dc6UQd7NFjP9PUzXuW9+H5bxPMdVzleTa0gaRbeckSXhpG96XyhVZK
Sk0o8+dsnwLLWHzluiWx0J4sL5ugxd/WlovL5+d/AAAA//8DACqDJpL8AgAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225edaaa368c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:40 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01VHhQUqymq7SujsCGRAw7pE
via:
- 1.1 google
x-cloud-trace-context:
- 587824031142d6a2dfae0345c152f033
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi! I''m
bob"}, {"role": "assistant", "content": "It''s nice to meet you Bob! I''m an
AI assistant created by Anthropic. I''m here to help with any questions or tasks
you might have. How can I assist you today?"}, {"role": "user", "content": "what''s
my name?"}, {"role": "assistant", "content": "I''m afraid I don''t actually
know your name. As an AI assistant, I don''t have any prior knowledge about
you or your identity. I only know what you''ve directly told me, which is that
your name is Bob. Please let me know if you have any other questions I can help
with!"}, {"role": "user", "content": "i like the celtics!"}, {"role": "assistant",
"content": "Okay, got it! You like the Boston Celtics basketball team. That''s
great, the Celtics have a rich history and are a popular NBA franchise. Do you
follow them closely? What do you like most about the team? I''m always happy
to discuss sports and learn more about the interests of the people I talk to."},
{"role": "user", "content": "i like how much they win"}, {"role": "assistant",
"content": "I can understand the appeal of rooting for a successful team like
the Boston Celtics. They have been one of the most dominant franchises in NBA
history, with 17 championship titles. Seeing your favorite team consistently
win and compete for championships can be very satisfying as a fan. The Celtics''
winning tradition and sustained excellence over the decades is certainly part
of what makes them such an iconic team in the league. Do you have a favorite
Celtics player or season you particularly enjoyed watching them win?"}, {"role":
"user", "content": "Create a summary of the conversation above:"}], "model":
"claude-3-haiku-20240307"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '1744'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xT22ocMQz9FeGXvEyWTbbQdt6SUmhaKLQUSm8Era1du+uRppaczTTk34tnk+2F
PtlY0tE5R/KdS8H1btDt9fJs9fLNu5+v+PL1h58/zuk9337Wl89XrnM2jdSySBW35DpXJLcHVE1q
yOY6N0ig7HrnM9ZAp6vTiGlXT8+X50+Wq+VT1zkvbMTm+i93j4hGt612Pnr3igpBUkDQOgxYJpAN
WCTwwjdUFC0JgwpssPRf+St/+De2pi0y7JNFGAgSW5FQfeItDJNS3gAqIMPFFRypgy+ERgHWE1yw
xSJj8gv4JLW1ZjDJoYFNUgswDjPDS1kvGoGPLWOSCqg7CrCPaH8ldnAFPmNJm0QBrIWvIKTAJwYR
bwiQJxhLkgI7ln2msCXAtdQZpgPkAMJ5gh3T/ggPEQOEVMhbnh4JdrCPyUfYox4a/ZfwURbdjoVU
H1k11Jx2NNt9KWrC8IKyJa+wbuJsjTmDEQ4HVq1AMYXflVH2MFQfG8QE+8QLuAL0R11hxn4APYHS
yMakJmWaEbWqYWJqN+9JtQMWa7OzSKnA2VN4e3kBPuIwJmGNadQDl4P5aXP0BmGDN1KSHfvBmHGi
AlJACVUOUyMdySfMeQLi7zJRWDyuldxQaYr/Wq+IChvxtdkmDFuyAz+ZpweEPoJYpNIddnA2KWJp
SfM4EhsVUoPEf7pxkDEQFNJROLT89QQhqa+qDxbM5p8ooPcyjDlpHIhN59JMW/TTwt1/65yajNdl
Ful6RxyurRZ2DwGlH5XYk+u55ty5Ov/o/s4lHqtdm+yI1fWr1fPOSbU/386eLe/vfwEAAP//AwCu
w+suMQQAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225ee28b878c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:42 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01Hn7UtUhHZJSyz1gqxAMBfc
via:
- 1.1 google
x-cloud-trace-context:
- 3dc4bb1338ba2e9b0e95217e8f3a6c9d
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
@@ -1,233 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "i like how
much they win"}, {"role": "assistant", "content": "I can understand the appeal
of rooting for a successful team like the Boston Celtics. They have been one
of the most dominant franchises in NBA history, with 17 championship titles.
Seeing your favorite team consistently win and compete for championships can
be very satisfying as a fan. The Celtics'' winning tradition and sustained excellence
over the decades is certainly part of what makes them such an iconic team in
the league. Do you have a favorite Celtics player or season you particularly
enjoyed watching them win?"}, {"role": "user", "content": "what''s my name?"},
{"role": "assistant", "content": "I''m afraid I don''t actually know your name.
Earlier in our conversation, you had told me your name is Bob, but I don''t
have any other prior information about you stored. I''m an AI assistant created
by Anthropic, and I only know what has been directly communicated to me during
our conversation. If you''d like, you can remind me of your name again and I''ll
be happy to refer to you by it going forward."}, {"role": "user", "content":
"what NFL team do you think I like?"}, {"role": "assistant", "content": "I don''t
have any information about which NFL team you might like. As an AI assistant,
I don''t have any prior assumptions or knowledge about your personal preferences
for sports teams. Without you directly telling me which NFL team you support,
I don''t have enough information to guess or speculate about that. If you''d
like, you can share which NFL team you''re a fan of, and I''ll be happy to discuss
that with you."}, {"role": "user", "content": "i like the patriots!"}], "model":
"claude-3-haiku-20240307", "system": "Summary of conversation earlier: Here
is a summary of the conversation so far:\n\nThe conversation began with me introducing
myself as an AI assistant created by Anthropic. You then told me your name is
Bob.\n\nWhen you asked what your name is, I clarified that I didn''t have any
prior knowledge about you, and only knew what you had directly told me, which
was that your name is Bob.\n\nYou then expressed that you like the Boston Celtics
basketball team, and you said you like how much they win. I acknowledged the
Celtics'' rich history and sustained success, noting their 17 NBA championships,
and asked if you had a favorite Celtics player or season you especially enjoyed.\n\nThe
overall conversation has focused on getting to know each other, with you sharing
your interest in the Celtics, and me responding by discussing the team''s accomplishments
and legacy."}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '2628'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0ySUU/dMAyF/4qXF156UbnAkPqCNGlIIMTQhjZpY7ryTdw20Npd7HBXIf77lG6M
+xQpsY/P55NnF4Nr3Kjdpj66+k4Xn6/b69vp64Oeyfxw1V+cnLjK2TxRqSJV7MhVLslQLlA1qiGb
q9wogQbXOD9gDrQ6XvUYH/NqXa9P6uP6zFXOCxuxuebH86ui0e/SuxyN+/SIcwWdGESDFcySDxIB
QosM0oL1BDe0g4/cDcgBbtFSFNN3cNejHSggdInQ4ObiGoxwBBPQPE2S7BDuevrfAT0+EfQYABki
+0QhbocZNHtPqm0eIGUGeaK0TJ1QDbzkaaBiJJDHQFrBLjJH7uA9fMkTJfgguwF8j+MUhbWPk4JG
9gTruj5aLMyFSJheeUZRgyBjZGSDQuWFy1KJDdqE7PuopBB5KR8Iu0yHcM/3/K3H0lrWBMQPMv8V
w61kgy0VX/hG3CKfw6UWlWWnEyaLPg+YYBpwplSBF/R9BZL2aXbLZDQoOQeFIo66hPIkKRrBSKOk
GVpJxco5XB4E2BJENkqkRqHE0BMmGKWMXvzNklPxFGRcqHcLTKLdgvOWW6GwveQO3cvPyqnJtEmE
KuwaRxw2lhO7fw9KvzKxJ9dwHobK5eXTNs8u8pRtY/JIrK45XdeVk2z7d0fr05eXPwAAAP//AwAk
eFJmFAMAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225efcb95c8c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:46 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01571NQXmpbQxTo8jY1FyZXY
via:
- 1.1 google
x-cloud-trace-context:
- 967e985d1c329b8bbe877019a4e63955
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "i like how
much they win"}, {"role": "assistant", "content": "I can understand the appeal
of rooting for a successful team like the Boston Celtics. They have been one
of the most dominant franchises in NBA history, with 17 championship titles.
Seeing your favorite team consistently win and compete for championships can
be very satisfying as a fan. The Celtics'' winning tradition and sustained excellence
over the decades is certainly part of what makes them such an iconic team in
the league. Do you have a favorite Celtics player or season you particularly
enjoyed watching them win?"}, {"role": "user", "content": "what''s my name?"},
{"role": "assistant", "content": "I''m afraid I don''t actually know your name.
Earlier in our conversation, you had told me your name is Bob, but I don''t
have any other prior information about you stored. I''m an AI assistant created
by Anthropic, and I only know what has been directly communicated to me during
our conversation. If you''d like, you can remind me of your name again and I''ll
be happy to refer to you by it going forward."}, {"role": "user", "content":
"what NFL team do you think I like?"}, {"role": "assistant", "content": "I don''t
have any information about which NFL team you might like. As an AI assistant,
I don''t have any prior assumptions or knowledge about your personal preferences
for sports teams. Without you directly telling me which NFL team you support,
I don''t have enough information to guess or speculate about that. If you''d
like, you can share which NFL team you''re a fan of, and I''ll be happy to discuss
that with you."}, {"role": "user", "content": "i like the patriots!"}, {"role":
"assistant", "content": "Okay, got it - you''re a fan of the New England Patriots!
That''s a great NFL team to support. The Patriots have had an incredibly successful
run over the past couple of decades, winning 6 Super Bowl championships since
2001. They''re one of the most dominant and consistent franchises in the league.
\n\nWhat do you enjoy most about being a Patriots fan? Is there a particular
player, coach, or Super Bowl win that stands out as a favorite memory for you?
I''d be interested to hear more about your fandom and what drew you to supporting
the Patriots."}, {"role": "user", "content": "This is summary of the conversation
to date: Here is a summary of the conversation so far:\n\nThe conversation began
with me introducing myself as an AI assistant created by Anthropic. You then
told me your name is Bob.\n\nWhen you asked what your name is, I clarified that
I didn''t have any prior knowledge about you, and only knew what you had directly
told me, which was that your name is Bob.\n\nYou then expressed that you like
the Boston Celtics basketball team, and you said you like how much they win.
I acknowledged the Celtics'' rich history and sustained success, noting their
17 NBA championships, and asked if you had a favorite Celtics player or season
you especially enjoyed.\n\nThe overall conversation has focused on getting to
know each other, with you sharing your interest in the Celtics, and me responding
by discussing the team''s accomplishments and legacy.\n\nExtend the summary
by taking into account the new messages above:"}], "model": "claude-3-haiku-20240307"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '3314'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA3SUXW/dNgyG/wqhm9w4B1napcC5a4plPUCRdliAoViHgLFoSzsy6YrUcbwg/32Q
ffJRYLsyQFPk+z6k9OCid1s3aH979tNN+fjH26tf+8Fuvn8M+cNv++ubS3SNs3mkmkWq2JNrXJZU
A6ga1ZDNNW4QT8ltXZuweDp9cxow7svp+dn527M3Z+9c41phIza3/fPhqaLRfT27fLbu8x7nBhIZ
DAR0b8QeLBBoGQbMM5hA5DYVT0s4oZEajJgNpAMpGVrhA2VFi8Lbb/yN33dGefnlo7ZFNQoD3kmx
pcSlqAnDB0oWW21glgKoe/IwBTS4vvoERjjADixI6YMtGSnuyW9gB23CHLtIVSYa7MBHzycGAQ8E
yDOMOUqGyJ3kYRF17D1XRc/Vx0wdZeKWtAFkf5RQW5mABswEU4htWNNrXMs4SrZN9fi15gViyHQg
TE9qFi+ZAKFDroCq4Wua4BfuU+3yBS1HMa1O6H7MpEoehhkKe8p1rj5yX09OYV5rTlKSh7tqDnAc
CVPNWFRVpauoBvp4IK79YgYtahiZPNB9SylVm4vJoSSLYyL4vYyU4VKmBFNkBTlQXsSOqAY2CXhq
0ZNuoNrdvcIzPRkl/ltmGETtSPiOqjJ8NlkhrHCnQBbWDpVOPk4Ks8W2JMwwJpwpawOtYBvqTCS/
FnmIrUmOpCuTBRTUnli7HCRHI4VOclVW4Ub2sUUjD7uThV5ko0xaIyYQCDMMUoW8LEeH7GU4CkYD
n2l63oiV84I+0MscK53PB8qYUgMWov5wHyCgwh0RQydtqaMWhp5srSOwZ5mAsA0gFc2JgtYu+qxW
FzWvlnUDX6WcHGhd0Ze1O3m9dXdi4T/uGkReF/Ly/VL2/5bzOe/q0wZ2tZnluHIj7rEnmKKFpcTx
hq/81BbgL9ojA/7AAxMMyEx54fYlESo9PT4Li9itDbFtS0ajNB9fovgPrYL3NMMokU2fHiAfMUlf
CFSgw7xxj381Tk3G20yowm7riP2tlczu+EPpe6k43ZZLSo0ryxu7fXCRx2K3JntidduLi4vGSbHX
sfOf3z0+/gsAAP//AwD4rCGzwwUAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225f056ae18c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:48 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01PFsJ6MigKHLeYfWa9Fx6as
via:
- 1.1 google
x-cloud-trace-context:
- 979e58fa4be1afad93733227cad381e1
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,103 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "i like how
much they win"}, {"role": "assistant", "content": "I can understand the appeal
of rooting for a successful team like the Boston Celtics. They have been one
of the most dominant franchises in NBA history, with 17 championship titles.
Seeing your favorite team consistently win and compete for championships can
be very satisfying as a fan. The Celtics'' winning tradition and sustained excellence
over the decades is certainly part of what makes them such an iconic team in
the league. Do you have a favorite Celtics player or season you particularly
enjoyed watching them win?"}, {"role": "user", "content": "what''s my name?"},
{"role": "assistant", "content": "I''m afraid I don''t actually know your name.
Earlier in our conversation, you had told me your name is Bob, but I don''t
have any other prior information about you stored. I''m an AI assistant created
by Anthropic, and I only know what has been directly communicated to me during
our conversation. If you''d like, you can remind me of your name again and I''ll
be happy to refer to you by it going forward."}, {"role": "user", "content":
"what NFL team do you think I like?"}], "model": "claude-3-haiku-20240307",
"system": "Summary of conversation earlier: Here is a summary of the conversation
so far:\n\nThe conversation began with me introducing myself as an AI assistant
created by Anthropic. You then told me your name is Bob.\n\nWhen you asked what
your name is, I clarified that I didn''t have any prior knowledge about you,
and only knew what you had directly told me, which was that your name is Bob.\n\nYou
then expressed that you like the Boston Celtics basketball team, and you said
you like how much they win. I acknowledged the Celtics'' rich history and sustained
success, noting their 17 NBA championships, and asked if you had a favorite
Celtics player or season you especially enjoyed.\n\nThe overall conversation
has focused on getting to know each other, with you sharing your interest in
the Celtics, and me responding by discussing the team''s accomplishments and
legacy."}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '2123'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA2ySwYobMQyGX0XoksskpMlC2LltC4XQpaelpS0leGc0YzceyWvJTYeQdy8zZEu3
3ZNB1v/ps/AZQ4s1Dtof1m92t5/sodzt/FvH775+2X54+vHQ3GOFNiaaukjV9YQVZolTwakGNceG
FQ7SUsQam+hKS8vt0rtwLMvNenOz3q53WGEjbMSG9bfzM9Ho15Sdjxr30AovDLz7SeB4hMCd5MFZ
EAb3KMXg5EPj4eP7ezByA4xSYAi9N4jhSCu4U3AMd3v4Y1bBf9SUg+SpowxpQitIhiPLKVLb03XQ
KCVDoqzCLkLK1FEmbkihkwyaJJvODrqCz8H8NQNtyNRYHMEoxsA9DPSatJY0If6xI5bS+xfPNoG+
kM6Omqgp0dmzo3lnK9h3E3HRziuoZnrjGNS7/NroRSZw0DkG6Spw3MJ+ESM8EniX0jgNbIM2RXXm
wymYn3IrvHyvUE3SIZNTYayRuD1YyYzXC6WnMi0Jay4xVljm71KfMXAqdjA5EivWN5t1hVLs79rt
5nL5DQAA//8DAMiSk4ONAgAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225ef5592d8c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:44 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_015hg7SpQqsTRfufhHdda7jE
via:
- 1.1 google
x-cloud-trace-context:
- b3c848e9233d7e1d1333e30502a0b755
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,233 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi! I''m
bob"}], "model": "claude-3-haiku-20240307"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '114'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yQQWvCYAyG/0qWi5cq1QrCdxnVi+64y9jGkM822G+2Sdvkmyvifx+WOXYKvHny
vJALhhIdNnrcp/OnJlt2sl5tOH/Wz3zz2pVvL1tM0IaWbhSp+iNhgr3Ut8CrBjXPhgk2UlKNDova
x5Km2bTy4RSni3SxTLN0hQkWwkZs6N4vd6PR9+12HA53NlHgUBCYQENkMEiEtRweYDdpwDPkO/jr
hKInb1TCYYCcreqlDcVsJCvqR0dFdQvnYBV4HqCLpBaEFaQH83rS0d+EY2VQ+S+awVbOUHiGe80I
mJR+eMTrR4Jq0u578iqMDonLvcWe8Xeh1EXigtBxrOsE4/gtd8HAbbS9yYlY0c0XCUq0/9Eyu15/
AAAA//8DAEoCJCWLAQAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225ecc098f8c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:37 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01Cvv82sVAfpac6JXyMcgk5E
via:
- 1.1 google
x-cloud-trace-context:
- 6c66a4d829f60cef4559bd5f438520e6
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi! I''m
bob"}, {"role": "assistant", "content": "It''s nice to meet you Bob! I''m an
AI assistant created by Anthropic. I''m here to help with any questions or tasks
you might have. How can I assist you today?"}, {"role": "user", "content": "what''s
my name?"}], "model": "claude-3-haiku-20240307"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '357'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA1SRQWsbQQyF/4qiiy9j48ZpS/fm0sv2EHLIIVCKkXcU7+BZaTOjsb0x/u9l14mh
J8HTe58e6IzBY4Vd3m2WX9b9y+6k/fvp13r78rsfnh7fDz+e0aENPY8uzpl2jA6TxlGgnEM2EkOH
nXqOWGETqXier+YthX2Z3y/vH5ar5Xd02KgYi2H15/xJND6N2WlUWM86oNdEwUMNXmVmQI0VinGA
vegRBi0JhDpewDoDCaxruHVwt1BLBwaSAfoUNE3RyH7HQFstNlJA0xUWPIsFGxZQg8rnnWNLk212
YPAhcWNxANPooWMHxzY0LYQM9mG7dhqVn7pdwFNkygyRDTq+AsPrdPVWTK3lBG+FswWVDDU0JNBy
7OEYrL3Dy1+H2bTfJKasghWy+I2VJPixyPxWWBrGSkqMDsv0muqMQfpiG9M9S8bq28qhFvtP+nq5
/AMAAP//AwA7W4+c+AEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225ed03edb8c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:38 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_012e3pZcjyrsEfdGEZbXtykW
via:
- 1.1 google
x-cloud-trace-context:
- bb08c78ff3ffe6d0d0c6c9c7dbcfaba9
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi! I''m
bob"}, {"role": "assistant", "content": "It''s nice to meet you Bob! I''m an
AI assistant created by Anthropic. I''m here to help with any questions or tasks
you might have. How can I assist you today?"}, {"role": "user", "content": "what''s
my name?"}, {"role": "assistant", "content": "I''m afraid I don''t actually
know your name. As an AI assistant, I don''t have any prior knowledge about
you or your identity. I only know what you''ve directly told me, which is that
your name is Bob. Please let me know if you have any other questions I can help
with!"}, {"role": "user", "content": "i like the celtics!"}], "model": "claude-3-haiku-20240307"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '713'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yRQW8TQQyF/4rxpZdJlCaokfZStSBBL4VDBaIVipxZJzva2fEw9rQsUf472oUi
Tpae33v+JJ8wtNjgoMfd6vLj58cP28PzVXv/kH9dPX65EZ/Xe3RoY+bJxap0ZHRYJE4CqQY1SoYO
B2k5YoM+Um15sVl0FPq6WK/Wb1eb1RYdeknGybB5Or02Gv+csvNo8FNPo4OjGAR7A9+kQgw9g3UM
t6ImCd5xtOAV9qQ9255iBGMalvDQkV0oHAuTuTnxau3omYGgBN9BF9SkjECpBSqTnCXXSAXub2/g
UCj5Ligv4b3AKBUOEqO8THUD+CjKcbyGrx0ZtH8MM98gakB7qTYfnoCu4e5iAIovNE4EOY9gAm1Q
X1VBsxTTmSIylQSDTDD/GkIyLqymIIdZyCw5MtyBUezBZInn7w7VJO8Kk0rCBjm1O6sl4d+F8o/K
yTM2qcbosM6va04YUq62M+k5KTaXm61Dqfa/tl2fz78BAAD//wMA0jpYJRkCAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225ed4ebc28c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:39 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_016YmhCYNbCBUPrhzQmeTZEq
via:
- 1.1 google
x-cloud-trace-context:
- 220080edede1fa149e2f2979c7c79dc7
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,96 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "i like how
much they win"}, {"role": "assistant", "content": "I can understand the appeal
of rooting for a successful team like the Boston Celtics. They have been one
of the most dominant franchises in NBA history, with 17 championship titles.
Seeing your favorite team consistently win and compete for championships can
be very satisfying as a fan. The Celtics'' winning tradition and sustained excellence
over the decades is certainly part of what makes them such an iconic team in
the league. Do you have a favorite Celtics player or season you particularly
enjoyed watching them win?"}, {"role": "user", "content": "what''s my name?"}],
"model": "claude-3-haiku-20240307", "system": "Summary of conversation earlier:
Here is a summary of the conversation so far:\n\nThe conversation began with
me introducing myself as an AI assistant created by Anthropic. You then told
me your name is Bob.\n\nWhen you asked what your name is, I clarified that I
didn''t have any prior knowledge about you, and only knew what you had directly
told me, which was that your name is Bob.\n\nYou then expressed that you like
the Boston Celtics basketball team, and you said you like how much they win.
I acknowledged the Celtics'' rich history and sustained success, noting their
17 NBA championships, and asked if you had a favorite Celtics player or season
you especially enjoyed.\n\nThe overall conversation has focused on getting to
know each other, with you sharing your interest in the Celtics, and me responding
by discussing the team''s accomplishments and legacy."}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '1617'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA2SST2/bMAzFvwrBSy5OkDYdtvrWYDsE3WHodRgC2qJjLTLpSlRSI8h3H+SuXYGd
JPDPe+8n6ILeYY1DOuzXN3fb58cX9/Vx+/R0f/rtfpyp+/K9xQptGrlMcUp0YKwwaigFSsknIzGs
cFDHAWtsA2XHy82yJ3/My9v17d16s/6MFbYqxmJY/7y8KRq/lN35qHG3GIC6SN7BDpzKwoBayxTC
BEfRM0yaIwgNvIJvFIPnCF6gFFuVE8dE5lWqMgc9OTANDgb+twc+wVabCpps7x49nRhIJlDrOcIY
vRbdTuMw6wE1mm0WTaaR3QrmpAIPO3h/Amgjk7GDZoIHsT7q6NsKSAqMyhvCuafimKBhFnA+cmth
glaHIYtvZwXTEtrl6OXwH90Kdl3JsnAQ/JFfYVsSiDx4mXG1+0BMB/LyGmMRAjQMPY3jVEwidxzL
pUg0E3iDgxbPTuOZolvh9VeFyXTcR6akgjWyuL3lKPi3kfg5s7SMteQQKszzD6kv6GXMtjc9siSs
NzebCjXbx9r9p+v1DwAAAP//AwBkl8HYgAIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225eede8db8c3b-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:40:43 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01NZBQG6aVp4a9iDBuxqFWFd
via:
- 1.1 google
x-cloud-trace-context:
- 0e676bae141a1ff92139655a5905c8f2
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
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
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
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
@@ -0,0 +1 @@
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
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
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
File diff suppressed because one or more lines are too long
-223
View File
@@ -1,223 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCWFnZW50KGFnZW50KQoJYWN0aW9uKGFjdGlvbikKCV9fZW5kX18oWzxwPl9fZW5kX188L3A+XSk6OjpsYXN0CglfX3N0YXJ0X18gLS0+IGFnZW50OwoJYWN0aW9uIC0tPiBhZ2VudDsKCWFnZW50IC0uICZuYnNwO2NvbnRpbnVlJm5ic3A7IC4tPiBhY3Rpb247CglhZ2VudCAtLiAmbmJzcDtlbmQmbmJzcDsgLi0+IF9fZW5kX187CgljbGFzc0RlZiBkZWZhdWx0IGZpbGw6I2YyZjBmZixsaW5lLWhlaWdodDoxLjIKCWNsYXNzRGVmIGZpcnN0IGZpbGwtb3BhY2l0eTowCgljbGFzc0RlZiBsYXN0IGZpbGw6I2JmYjZmYwo=?bgColor=!white
response:
body:
string: !!binary |
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
snsnZJ0Vms5/QShsTI3Nae4lpYNxvvs4HzqZUxksTRzVY1shTr3q5Id2NmJsjNx3HZwI3UD7lmjP
mlhP4fF9ldCL9uqI38xMREaRnhpzhbSeLmRcPuWaM+aWE/h8X2U9yzRnzSwn8Pi+yp7Wzznyj1NH
Mi4fcs0Z80sJ/D4vsp7lmjPmlhP4fF9lO1s858o9TRzIuH3LNGfNLCfw+L7Ke5Zoz5pYT+HxfZTt
bPOfKPU0cyhvJyut8JFWPbOxrpbNlzOoiDonxtDj3AkvOw79mk9wUn7lmjPmlhP4fF9lT2NxNHDV
RWx9OvRrgl3Y1omxs3PedmgDdRN+3TE7mZmYmNYxx05yaRwdtERc9UREQEREBQWb0Jp3Uc/b5PC0
rljbbt5IW9rt8HOOu361Oor0V1W53qJxPgcFMPBvRpJJwUO5/wDck+0vnuNaM+Qof3kn2ldEXo73
tPzKvOU5nmpfuNaM+Qof3kn2k9xrRnyFD+8k+0roid72n5lXnJmeal+41oz5Ch/eSfaT3GtGfIUP
7yT7SuiJ3vafmVecmZ5qrR4WaRx8zJotPUXSsO7XzRCUtPwjm32P0q0gAAADYDzL6iwru13ZzXVM
9ZyZmRERZoEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREBERAREQEREH/9k=
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '238541'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c22618729755e74-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '9626'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:42:28 GMT
Last-Modified:
- Tue, 10 Sep 2024 01:26:47 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=GCDivf%2B6atygx60IJYLLp0bIiehIvGtPjoCfMx%2F70q%2BbU0T5vjoIbyFnlN5oZPKlxeadGskZD6xPRUCaWZVuy4LDumuydp7ZzcYkdH6zGCyqkFmMAhbgOxRL19Hxbw%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,158 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "what is
the weather in sf"}], "model": "claude-3-haiku-20240307", "tools": [{"name":
"search", "description": "Call to surf the web.", "input_schema": {"type": "object",
"properties": {"query": {"type": "string"}}, "required": ["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '303'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- AsyncAnthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- async:asyncio
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA1RPTUvDQBT8K2XOG8hHRdmjJ1GUVpQeRMK6eUnWbt+mebtKDfnvkoqgx5l58/Em
uAYaB+nqvNim4b3dlA+3tnh67nq6t2Z3w1CIp4GWKxIxHUFhDH4hjIiTaDhC4RAa8tCw3qSGsirr
jdunrMzLdV7ll1CwgSNxhH6ZfhNjCL5OskSedyw41Xmx2wz2bn/Nm69H1zVu+/bRd20BBTaHxSdk
RtsvLh5ShJ5wTDSeoPFJJvY0rhyvxPCqHQ1bJzZgnl8VJIahHslI4P/tZ0HomIgtQXPyXiGdv9XT
T0sdw55YoKvySiGk+Je7WM/zNwAAAP//AwACi3jnTAEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2261878c5e0c7a-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:29 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01W76T9Cto5JsfRmCJXAdhsA
via:
- 1.1 google
x-cloud-trace-context:
- 6fef8a0d62bcdbdc81ff1203f6a013ea
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "what is
the weather in sf"}, {"role": "assistant", "content": [{"type": "tool_use",
"name": "search", "input": {"query": "weather in san francisco"}, "id": "toolu_01WPpcKkBnPzRigdiQbvhgf1"}]},
{"role": "user", "content": [{"type": "tool_result", "content": "[\"The answer
to your question lies within.\"]", "tool_use_id": "toolu_01WPpcKkBnPzRigdiQbvhgf1",
"is_error": false}]}], "model": "claude-3-haiku-20240307", "tools": [{"name":
"search", "description": "Call to surf the web.", "input_schema": {"type": "object",
"properties": {"query": {"type": "string"}}, "required": ["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '652'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- AsyncAnthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- async:asyncio
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA2RSXW/UMBD8Kys/tVKuXO6upcorUl/gAImCEBSdFnsTm3N2g73pEar+p/6G/jLk
HIivJ0s7s6OZHd+Z4Exj+tztlnV9eXj+dhO26fz6w7b98v3l61uP701ldBqosChn7MhUJkksA8w5
ZEVWU5leHEXTGBtxdLRYLzyG/bhYLVeb5Xr51FTGCiuxmubj3S9FpW9ld34ac5Wkh0yYrA/cQSsJ
AreSetQgDMKgnuBAqJ4KBG+Q4Soh25CtVBAUosg+Qwx7mrl2TIlYf+/k5oZveAFbyRonyCPzBIeg
HhB86DxICxfnjw9XcFJfPj48OwVkBwhRDgU6Xx2hukBF50XovMIhsMuASUZ2UC+hHzyc1Bew75/4
Uyi8d5QmiEE1EliPbKnIJQxc/PyVAzpiShjjBB4zIPQhugq25IJSSsiEDDaGHpWO1q1IrMClkqfv
KeXZ9HHtQLM9pZTP4NoTKPUDJdQxUbFMUIpLqOTg83Q8mmBWjBDFHg9f1ArQSgfqUUFaJYYkMWYI
XAHlgWyYLYdjSdgqJRbhfAavbuc4//aDMETCjKzgcPqvTlBxOJ2Z+0+VySrDLhFmYdMYYrfTMbH5
CWT6OhJbMg2PMVZmnD9pc2cCD6PuVPbE2TSb5aYyMuqfs3q9ub//AQAA//8DAE9V97MEAwAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c22618bb8c50c7a-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:30 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01VzwhMh7Eapcz1FtWYh7gjt
via:
- 1.1 google
x-cloud-trace-context:
- 014df6eddd3863250c2a269fde2ebaca
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,269 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "what is
the weather in sf"}], "model": "claude-3-haiku-20240307", "stream": true, "tools":
[{"name": "search", "description": "Call to surf the web.", "input_schema":
{"type": "object", "properties": {"query": {"type": "string"}}, "required":
["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '319'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- AsyncAnthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- async:asyncio
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: 'event: message_start
data: {"type":"message_start","message":{"id":"msg_01UTkqP1mDwAERz5714cucrN","type":"message","role":"assistant","model":"claude-3-haiku-20240307","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":328,"output_tokens":1}} }
event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"tool_use","id":"toolu_01GKsnKqRLQ9Emv9HcaHKVsj","name":"search","input":{}} }
event: ping
data: {"type": "ping"}
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":""} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"{\"query\""} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":":
\"w"} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"eather
i"} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"n
s"} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"an"} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"
f"} }
event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"input_json_delta","partial_json":"rancisco\"}"} }
event: content_block_stop
data: {"type":"content_block_stop","index":0 }
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"tool_use","stop_sequence":null},"usage":{"output_tokens":54}
}
event: message_stop
data: {"type":"message_stop" }
'
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c22619d9ff40c7a-EWR
Cache-Control:
- no-cache
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Thu, 12 Sep 2024 19:42:33 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_018pn2c3rDTpy59FXwU6VqN5
via:
- 1.1 google
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "what is
the weather in sf"}, {"role": "assistant", "content": [{"type": "tool_use",
"name": "search", "input": {"query": "weather in san francisco"}, "id": "toolu_01GKsnKqRLQ9Emv9HcaHKVsj"}]},
{"role": "user", "content": [{"type": "tool_result", "content": "[\"The answer
to your question lies within.\"]", "tool_use_id": "toolu_01GKsnKqRLQ9Emv9HcaHKVsj",
"is_error": false}]}], "model": "claude-3-haiku-20240307", "stream": true, "tools":
[{"name": "search", "description": "Call to surf the web.", "input_schema":
{"type": "object", "properties": {"query": {"type": "string"}}, "required":
["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '668'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- AsyncAnthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- async:asyncio
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"id\":\"msg_01CoaYYytPDsGdzwU7Ua5RS6\",\"type\":\"message\",\"role\":\"assistant\",\"model\":\"claude-3-haiku-20240307\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":404,\"output_tokens\":2}}
\ }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"text\",\"text\":\"\"}
\ }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata:
{\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"\\n\\nBase\"}
\ }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"d
on the search results\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\",
the current\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
weather in San Francisco\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
is:\\n\\n-\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
Partly\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
cloudy with\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
a high of \"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"65\"}
\ }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"\xB0F
(18\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"\xB0C)
an\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"d
a low of \"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"52\xB0F
(\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"11\xB0C)\"}
\ }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"\\n-
Wind speeds\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
aroun\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"d
10 mph\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
(16 km\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"/h)
\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"\\n-
Low\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
chance\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
of precipitation\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"\\n\\nThe\"}
\ }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
weather in San Francisco\"} }\n\nevent: content_block_delta\ndata:
{\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
today\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
is generally\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
mild and pleasant\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\",
with\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
a\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
mix\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
of sun and clouds\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\".
The temperatures\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
are comfortable\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
and there\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
is not\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
much wind or\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
chance\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
of rain\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\".
Overall\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\",
the weather\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
conditions\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
in San Francisco appear\"} }\n\nevent: content_block_delta\ndata:
{\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
to be quite\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\"
nice\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"text_delta\",\"text\":\".\"}
\ }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0
\ }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"end_turn\",\"stop_sequence\":null},\"usage\":{\"output_tokens\":122}
\ }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n"
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2261a21ca40c7a-EWR
Cache-Control:
- no-cache
Connection:
- keep-alive
Content-Type:
- text/event-stream; charset=utf-8
Date:
- Thu, 12 Sep 2024 19:42:33 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01FWmYJUAS3p2cSbVFzAiuHW
via:
- 1.1 google
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,156 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "what is
the weather in sf"}], "model": "claude-3-haiku-20240307", "tools": [{"name":
"search", "description": "Call to surf the web.", "input_schema": {"type": "object",
"properties": {"query": {"type": "string"}}, "required": ["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '303'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- AsyncAnthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- async:asyncio
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA1RPTWvCQBT8K2HOK8REqewxaA+FepCihVLCsj41NXmb7NslaMh/L7EU2uPMvPl4
A6ojNBo5l+l8vi3ur9vi8P7c+/ztfthnq93OQiHcWpquSMScCQre1RNhRCoJhgMUGnekGhq2NvFI
s3x2MdU1zrI0W6R5+gQF6zgQB+iP4TcxOFeXUabIx44JxzKdr9erzfrrZVP0+XnTdN1+yQtfQYFN
M/mEjLeXycVtDNADukj+Bo2eTLiQTypOxHBy8oZtJdZhHD8VJLi29GTE8f/2hyDURWJL0BzrWiE+
vtXDT0sZ3JVYoPNspeBi+MstF+P4DQAA//8DAHjoGlhMAQAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c226193ffc00c7a-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:31 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_016ZGjm3UBX9YmBoUHCrQJmS
via:
- 1.1 google
x-cloud-trace-context:
- e5a0c873da9c4b30dffbe5e75088eea5
status:
code: 200
message: OK
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "what is
the weather in sf"}, {"role": "assistant", "content": [{"type": "tool_use",
"name": "search", "input": {"query": "weather in san francisco"}, "id": "toolu_01DD8EDjJEBw3gEmqqV5n4ri"}]},
{"role": "user", "content": [{"type": "tool_result", "content": "[\"The answer
to your question lies within.\"]", "tool_use_id": "toolu_01DD8EDjJEBw3gEmqqV5n4ri",
"is_error": false}]}], "model": "claude-3-haiku-20240307", "tools": [{"name":
"search", "description": "Call to surf the web.", "input_schema": {"type": "object",
"properties": {"query": {"type": "string"}}, "required": ["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '652'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- AsyncAnthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- async:asyncio
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA2SR0WrcQAxFf0XRS1PwBq/jstRvbSGQhz6lENJSFnWsrAfParwjTTdm2X/KN+TL
ypgGAnkS3HN1L0In9D12uNfdtl7ffY3TUzt9P0xJvvx0D/ef14f7B6zQ5omLi1Vpx1hhiqEIpOrV
SAwr3MeeA3boAuWeV9ergfyYV03dtPV1vcEKXRRjMex+nV4TjZ/K7jI6vDUIMY4KwY8MNjAcmWzg
BF7gjgRuEonz6iJ4Bc0iM5D0cKS0B4s9zRUcvQ1AMPjdAPERNs3L8w1cNs3L87ePi5kgxGNBnzYL
WrcFXcGPgUFHzwqUGFxgSou/9HPp+8tphuDNAoMbSByXlEReruDWPigQ/GHK5h9zgJ5msAg6cYnw
e4aYrY8x6btbLvD8u0K1OG0Tk0bBDln6reUk+B8oHzKLY+wkh1BhXv7QndDLlG1rcWRR7Nq6rTBm
e6ttmvP5HwAAAP//AwDw+bdr5gEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c226197eb5e0c7a-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:32 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
request-id:
- req_01NKBdt1kAYDG79P61ENmyEk
via:
- 1.1 google
x-cloud-trace-context:
- 077aad4c7649c5cf9f6bcabd0a142c04
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
-244
View File
@@ -1,244 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCWEoYSkKCWIoYikKCWMoYykKCWQoZCkKCWUoZSkKCV9fZW5kX18oWzxwPl9fZW5kX188L3A+XSk6OjpsYXN0CglfX3N0YXJ0X18gLS0+IGE7CgliIC0tPiBlOwoJYyAtLT4gZTsKCWQgLS0+IGU7CgllIC0tPiBfX2VuZF9fOwoJYSAtLi0+IGI7CglhIC0uLT4gYzsKCWEgLS4tPiBkOwoJY2xhc3NEZWYgZGVmYXVsdCBmaWxsOiNmMmYwZmYsbGluZS1oZWlnaHQ6MS4yCgljbGFzc0RlZiBmaXJzdCBmaWxsLW9wYWNpdHk6MAoJY2xhc3NEZWYgbGFzdCBmaWxsOiNiZmI2ZmMK?bgColor=!white
response:
body:
string: !!binary |
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
IiIP/9k=
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '104448'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c2260d108071a2c-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '10778'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:41:59 GMT
Last-Modified:
- Wed, 11 Sep 2024 14:41:11 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=BzP4qUDt1jd4c%2FhIkaj5Y0pV7Vxp3%2BUJAaOMElgDAWglXwO0I11UEoV%2FImm80aDy4RHmz8kt7%2BBpMRWyb0qihSyHIF01lNSo6%2BedSdvDU06mopjUxKk%2BIzqDgxoPWg%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
-208
View File
@@ -1,208 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCWEoYSkKCWIoYikKCWMoYykKCWQoZCkKCV9fZW5kX18oWzxwPl9fZW5kX188L3A+XSk6OjpsYXN0CglfX3N0YXJ0X18gLS0+IGE7CglhIC0tPiBiOwoJYSAtLT4gYzsKCWIgLS0+IGQ7CgljIC0tPiBkOwoJZCAtLT4gX19lbmRfXzsKCWNsYXNzRGVmIGRlZmF1bHQgZmlsbDojZjJmMGZmLGxpbmUtaGVpZ2h0OjEuMgoJY2xhc3NEZWYgZmlyc3QgZmlsbC1vcGFjaXR5OjAKCWNsYXNzRGVmIGxhc3QgZmlsbDojYmZiNmZjCg==?bgColor=!white
response:
body:
string: !!binary |
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
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '104593'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c2260cda9b97c94-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '8753'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:41:59 GMT
Last-Modified:
- Wed, 11 Sep 2024 14:38:46 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=0n2yqOOcU17423SGzalrNzhEbrpCicl22e%2B5TZ%2B87yN7i%2BO3M%2BVXNMZuJGJ%2FoA7XKA1jIWznCIQq0MgChRwBFKgfVw8cjsZr4mzB6ZZltkE9FI1uRZ5mRh29SScwxQ%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
@@ -1,233 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCWEoYSkKCWIoYikKCWIyKGIyKQoJYyhjKQoJZChkKQoJX19lbmRfXyhbPHA+X19lbmRfXzwvcD5dKTo6Omxhc3QKCV9fc3RhcnRfXyAtLT4gYTsKCWEgLS0+IGI7CglhIC0tPiBjOwoJYiAtLT4gYjI7CgliMiAtLT4gZDsKCWMgLS0+IGQ7CglkIC0tPiBfX2VuZF9fOwoJY2xhc3NEZWYgZGVmYXVsdCBmaWxsOiNmMmYwZmYsbGluZS1oZWlnaHQ6MS4yCgljbGFzc0RlZiBmaXJzdCBmaWxsLW9wYWNpdHk6MAoJY2xhc3NEZWYgbGFzdCBmaWxsOiNiZmI2ZmMK?bgColor=!white
response:
body:
string: !!binary |
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
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '104450'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c2260ceecc1429a-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '10195'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:41:59 GMT
Last-Modified:
- Wed, 11 Sep 2024 14:41:09 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=2shYrOzAG2raHF4JtV8bAis%2BymmeT%2B5ztHRWmJQvTggqmaB4vcdTCRF0m9VKq%2BVXfp5kOIVndaXeqKKuE0OkP2czEJeKCmm8dEcSSF9h1%2Bg1vCQq6z2sT1PMI8Ut7A%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
-244
View File
@@ -1,244 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCWEoYSkKCWIoYikKCWMoYykKCWQoZCkKCWUoZSkKCV9fZW5kX18oWzxwPl9fZW5kX188L3A+XSk6OjpsYXN0CglfX3N0YXJ0X18gLS0+IGE7CgliIC0tPiBlOwoJYyAtLT4gZTsKCWQgLS0+IGU7CgllIC0tPiBfX2VuZF9fOwoJYSAtLi0+IGI7CglhIC0uLT4gYzsKCWEgLS4tPiBkOwoJY2xhc3NEZWYgZGVmYXVsdCBmaWxsOiNmMmYwZmYsbGluZS1oZWlnaHQ6MS4yCgljbGFzc0RlZiBmaXJzdCBmaWxsLW9wYWNpdHk6MAoJY2xhc3NEZWYgbGFzdCBmaWxsOiNiZmI2ZmMK?bgColor=!white
response:
body:
string: !!binary |
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
IiIP/9k=
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '104449'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c2260d41ed0420b-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '10778'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:42:00 GMT
Last-Modified:
- Wed, 11 Sep 2024 14:41:11 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=2Hpwe10%2BJrKrn6ahxAuqtU5HWVnnkMcpT5PV8GGYko3vs9%2FvoaLQcpcM%2FgAG%2Blfg4JTF1lCZQCd8hdRRq7%2BjtRUjry4QWfna9esGRV3y9mXvV8Y1k4wSs5lDK4kKPQ%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,98 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "search for
the weather in sf now"}, {"role": "assistant", "content": [{"text": "Certainly!
I''ll search for the current weather in San Francisco for you. Let me use the
search function to find this information.", "type": "text"}, {"type": "tool_use",
"name": "search", "input": {"query": "current weather in San Francisco"}, "id":
"toolu_01PFmZuxV6jVycnZRgGf3wMU"}]}, {"role": "user", "content": [{"type": "tool_result",
"content": "[\"It''s sunny in San Francisco, but you better look out if you''re
a Gemini \ud83d\ude08.\"]", "tool_use_id": "toolu_01PFmZuxV6jVycnZRgGf3wMU",
"is_error": false}]}], "model": "claude-3-5-sonnet-20240620", "tools": [{"name":
"search", "description": "Call to surf the web.", "input_schema": {"type": "object",
"properties": {"query": {"type": "string"}}, "required": ["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '874'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA3xSTW8TMRD9K8NcctlUaWhp2QsSB6JW4lDKjaLIsSdZK96Z4Bln2Ub578gLSEUg
TpZm3rwv+YQxYIu97taLy098v7q/XD0u9fmYb8PDx4fhul9hgzYeqKJI1e0IG8yS6sCpRjXHhg32
Eihhiz65Emj+en49V2Emmy8Xy6vFm+UCG/TCRmzYfjn9JjX6Xs+np8X3TimAMFhHoOSy7yCTlmTa
wB14x3DIcoyBYJQCQ7RugvqSM7HBQM46yhB5K7l3FoVhKxkeHcOH7NhH9dI+8RN/7ugF+k8A5Ljr
DFgGiApamMcLuLOZgoMNuWJxWxIEN9bLST7a+KqyTqBBsnXAYpF3YJ2zv9NAZJ9KoACOoXDR4hJ4
6fsawm2kGKyojxzhWUJ0HjTuWBvYFJsYZ1r5IVOio2MDk0njX/FrT5m+FVKjcDGZ1ArOBI5H66pJ
SjoVOguQ4p4q3b6m/+nE/leV5EoDMm2T+En0HZ6/Nqgmh3Ump8LYInFYW8mMvxZaPbEnbLmk1GCZ
/lZ7wsiHYmuTPbFie3Vz26AUezl7e3M+/wAAAP//AwDowNOkugIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225d98b8c9c339-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:39:50 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
anthropic-ratelimit-requests-limit:
- '4000'
anthropic-ratelimit-requests-remaining:
- '3999'
anthropic-ratelimit-requests-reset:
- '2024-09-12T19:39:54Z'
anthropic-ratelimit-tokens-limit:
- '400000'
anthropic-ratelimit-tokens-remaining:
- '400000'
anthropic-ratelimit-tokens-reset:
- '2024-09-12T19:39:50Z'
request-id:
- req_01G5MwNEMNDAenXcu2PMrzLo
via:
- 1.1 google
x-cloud-trace-context:
- 69dbdcece2255ac03363afc455c12f76
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
-264
View File
@@ -1,264 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCWFnZW50KGFnZW50KQoJYWN0aW9uKGFjdGlvbjxoci8+PHNtYWxsPjxlbT5fX2ludGVycnVwdCA9IGJlZm9yZTwvZW0+PC9zbWFsbD4pCglfX2VuZF9fKFs8cD5fX2VuZF9fPC9wPl0pOjo6bGFzdAoJX19zdGFydF9fIC0tPiBhZ2VudDsKCWFjdGlvbiAtLT4gYWdlbnQ7CglhZ2VudCAtLiAmbmJzcDtjb250aW51ZSZuYnNwOyAuLT4gYWN0aW9uOwoJYWdlbnQgLS4gJm5ic3A7ZW5kJm5ic3A7IC4tPiBfX2VuZF9fOwoJY2xhc3NEZWYgZGVmYXVsdCBmaWxsOiNmMmYwZmYsbGluZS1oZWlnaHQ6MS4yCgljbGFzc0RlZiBmaXJzdCBmaWxsLW9wYWNpdHk6MAoJY2xhc3NEZWYgbGFzdCBmaWxsOiNiZmI2ZmMK?bgColor=!white
response:
body:
string: !!binary |
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
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '237485'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c225d8b98d16a55-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '11967'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:39:45 GMT
Last-Modified:
- Tue, 10 Sep 2024 01:41:40 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Mhwp52OvkzDaq40icYDzN8w6ERgGdVUz5SkBRDZPCXnVKxE8%2B4rN61mUcMFmKabMgIe79We1Hmmg9F0br%2FiUfFzdJ99CNRmkZXzyB4qFTnL2oGUqkXhnwLFIzel3gg%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
File diff suppressed because one or more lines are too long
@@ -1,248 +0,0 @@
interactions:
- request:
body: null
headers:
Accept:
- '*/*'
Accept-Encoding:
- gzip, deflate
Connection:
- keep-alive
User-Agent:
- python-requests/2.32.3
method: GET
uri: https://mermaid.ink/img/JSV7aW5pdDogeydmbG93Y2hhcnQnOiB7J2N1cnZlJzogJ2xpbmVhcid9fX0lJQpncmFwaCBURDsKCV9fc3RhcnRfXyhbPHA+X19zdGFydF9fPC9wPl0pOjo6Zmlyc3QKCXN0ZXBfMShzdGVwXzEpCglzdGVwXzIoc3RlcF8yKQoJc3RlcF8zKHN0ZXBfMzxoci8+PHNtYWxsPjxlbT5fX2ludGVycnVwdCA9IGJlZm9yZTwvZW0+PC9zbWFsbD4pCglfX2VuZF9fKFs8cD5fX2VuZF9fPC9wPl0pOjo6bGFzdAoJX19zdGFydF9fIC0tPiBzdGVwXzE7CglzdGVwXzEgLS0+IHN0ZXBfMjsKCXN0ZXBfMiAtLT4gc3RlcF8zOwoJc3RlcF8zIC0tPiBfX2VuZF9fOwoJY2xhc3NEZWYgZGVmYXVsdCBmaWxsOiNmMmYwZmYsbGluZS1oZWlnaHQ6MS4yCgljbGFzc0RlZiBmaXJzdCBmaWxsLW9wYWNpdHk6MAoJY2xhc3NEZWYgbGFzdCBmaWxsOiNiZmI2ZmMK?bgColor=!white
response:
body:
string: !!binary |
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
headers:
Accept-Ranges:
- bytes
Access-Control-Allow-Origin:
- '*'
Age:
- '237494'
CF-Cache-Status:
- HIT
CF-RAY:
- 8c225d8a5d83431b-EWR
Cache-Control:
- max-age=2678400
Connection:
- keep-alive
Content-Length:
- '11034'
Content-Type:
- image/jpeg
Date:
- Thu, 12 Sep 2024 19:39:45 GMT
Last-Modified:
- Tue, 10 Sep 2024 01:41:31 GMT
NEL:
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
Report-To:
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=qhxibEnM40MCsrUZ8SBKTz18rs87OmZHpd4pLu5Hv%2BtYqf5X%2FHiZ2zjlGtRnTiaYCmiVQwz7YH0urdhH7JwL46%2FfOUunacarKXJCROzvnBcKQVqddsQedJNdJdWlKw%3D%3D"}],"group":"cf-nel","max_age":604800}'
Server:
- cloudflare
Vary:
- Origin, Accept-Encoding
alt-svc:
- h3=":443"; ma=86400
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
eNqFVH1sE2UY77IER8ISnBqDQLgVMBO4rtfryjpiZJaBhMFY122yyfDt3dPesevd7e5ttzEnbMOEAAqHYCAhgKxrWZmw8SEmQKICQT6MQjDblK9oRFH/QMQPEhJ8r2vZCIj9p++9z+95fs/z/J73aY9HQNNFRc7oEWUMGuIw+dCN9rgGDWHQ8epYCLCg8NHFZRW+zrAmDk4VMFb1ovx8pIo2JGNBU1SRs3FKKD/C5IdA11EQ9Khf4Zu/zXC3WEOoaRlW6kHWrUUUY3c4Z1DWNIrc1LZYNUUCcrKGddCsxMopJBUZm1c6II0TqICiUVgAqhEQ+dMoUab0ACUrjdbWpWY4hQfJhHMSCvNAs3QBrSuyDJh2EEK7y2E342JFkVKUMgrBcHzTyIPOaaJqlm8aPEiSKKxQelgLpKj9NhMnymoYL9M5AUKIAFusKqkfNCwmq2mxkq5pzckTblaHOLAmykFrayvxNrsqasCbWaSgZgFpqOJfDhwm0KWtcQEQT7TZEBUUHRt9j3R7P+I4UDENMqfwhMD4KLhCVGdQPAQkhCHBmQ1Iymkk6gFUGkliBGJDXkYvUlVJ5JBpz19OmtWT6jpt5vKoOWGKQxPNZGwcKU7nkb+4mQyHTNltrNPm6G2idYxEWSLq0hIiKcXUpP3oSIOKuHoSh04NnhEbct43EqPoRtdCxJVVPBTSlMroQlrI5Tw48l4Ly1gMgRH3LH6ULmUcpmNtDGNz9z0UWG+WOaMrgCQd+h40+YFLggwRS9tdtJ3Zl+6SBHIQC0Yny7B7NNBV8migI0ZC4rDeHiWKwPkv4qkx3122IK3mVUtOdA5RxzjuE8IzKIeLqgCVMoeUYtgitqCogKXmLfT1eFI0vseK0efTkKwHiCAlafHjnBCW64FPeB4r+6B1uCyN8EtiSMR06o0TscxPI+q02+2DLz4RqZGxF2WTMcq63e7/iUs6A9g4ZNZH2920w+VLVemsGaQe5zm0KFL5xMx8SEZTnoAczieNpp6I/o982JpEKmla5I1j5LzMzpSWVlYH9Igyd0lEdwHjb6rxesPlh5toTlLCPI3JtgQ6ORBN2Bik2AAHjNvlcjNQOBN4vxMcvB3YwpkMW+gu4AOdEREZCcbGUEFFCUqw3zOX9iCySOiK5NgY8TlLFhUvnO/peZ32Kn6F9M+HSJ9lRYZYBWhkHI1Ekpo8cA1ixN1bvMQ4VMi5WcT6A27eUWjnkIMuqfb2pgfowYBEze2Q3MptsaGNdCqjdtK6LEvyl7m6/NyiE7PH3Nty6nlb7eZRZyfPO1u7auya2zlrq7q/6xkYgP69OZV3Gw91T7t+8syBl7kNp6f3VuTtGv2HY/zVN377sXr/waO/a463t02acG3C5f67k4WNkbbR7+RudbeP+sr2XGmWa01uRnZ22YXijC1sw9qOK58JY7dmwcbg3bqPdwZ3fejPmdL2fejwuGn/bPm5Ne/N9XXrp/bL3edCP/lm/7C35suB6d3llRdappQvcHo7qz+41JEbvpFd6fJdzqx9b9YvL5QU7PF/uuOTbc9055yLrv7m/EXf/FDHASd3beulgbZF91/jIjDm5vWrXZtPO8bXbb9W1zDrrRUTr+yYcPHm4KbT7x8Nfj07Nv/YnwdO7i55Nq/q1rgLR85sX3nH03+8PuvzdRc7R5eurLzz7qqdT3e/mpdXFM/965WXqn4Ndd16yrvK34ijbZ339k28sfTvbIvl/v1MS0Nm34nbGRbLv8xd7PE=
@@ -1,90 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "search for
the weather in sf now"}], "model": "claude-3-5-sonnet-20240620", "tools": [{"name":
"search", "description": "Call to surf the web.", "input_schema": {"type": "object",
"properties": {"query": {"type": "string"}}, "required": ["query"]}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '313'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA4RRwU4bQQz9lakvXCZoSQqUvSEEBbWRqkBAAqHVaOJNpp21w9ijsIr239EsQm1P
nCzb79nPz3sIK6ihk3VTHS0eLtv59Wle3C15eT7/EXZBlh4saL/FgkIRt0awkDiWghMJoo4ULHS8
wgg1+OjyCiezyfFEmAh1Mq2mX6uTaQUWPJMiKdRP+4+hiq+FPoYaLjCpCxT7L+bmIEYj6JLfmJaT
0Q0an1NCUrNDpxtMJpC5dWSukiMfxPMI7Dkfmp+opkOTBUfix5xMXgOTUTZtoJXRTRATqOXUudI4
hMH+lcYcmyzl4NGlkuemOvp11T3m1/uT3/e9p8fF+ns7282XYIFcV3jvywqLtlmh3sNLxtQXcz7R
D8PwbEGUt01CJ0z/qxgbgi8ZySPUlGO0kMef1Pv3bY3yHySBenZ8ZoGz/lv7Nh2GNwAAAP//AwAs
R6Mi8gEAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c225d8c2d3bc339-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:39:47 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
anthropic-ratelimit-requests-limit:
- '4000'
anthropic-ratelimit-requests-remaining:
- '3999'
anthropic-ratelimit-requests-reset:
- '2024-09-12T19:39:54Z'
anthropic-ratelimit-tokens-limit:
- '400000'
anthropic-ratelimit-tokens-remaining:
- '400000'
anthropic-ratelimit-tokens-reset:
- '2024-09-12T19:39:47Z'
request-id:
- req_01MPSqFi1rVNrN5UJJ12Dvn5
via:
- 1.1 google
x-cloud-trace-context:
- cbf58ac792cd37a460636899a9d56c50
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
eNqFVFlsG0UYDqqKq1akiEOoeSCLoYjDY++u76iIGrdEzdFEsasmLlE0nh17N17vbnbHkd1Sobr0kKgoQyvxVkTio7LSNlFd9aFUSByiHBIPvGAesEQkaCUkVIEA9YEyduwkVaKwT7P/9X3///0z+fI0Ni1F1x6aUzSCTYgI+7FovmziqQy2yNulNCayLhWGhyLR2Yyp1HbKhBhWj8sFDcUJNSKbuqEgJ9LTrmnBlcaWBZPYKsR1KVd744g9DbMTRE9hzbL3cAIvehycvR3ELIeO2E1dxexkz1jYtDMv0hkTjTRMsmI/Ot5I0CWsNgxIhRkJA9Ep2I+WZQwlxv5sQdYtQhfW8LkCEcIGAVhDuqRoSXopeVgxHJyEEyokuMKANNxsmFZSGBsAqso0Li1l0XloGKqCYMPvmrR0ba5FDJCcgde6Kw3+gLWlEXo91ObhGs6x8Wkc73R7nOJ8FlgEKprKBgBUyCiVjKb/xmqHAVGK1QEtaWhpKfny6hjdosVBiIYiD5SEJpJpEZppn+fqaruZ0YiSxrQcHl4L13KuwLmdguAMLjxQ2MppiBYTULXwwvKQl1MqIi+6Ae8DvHC5PSUVa0ki05mgeNHElsG2Ch8vsYokY+ULTBD87a1yaxFmhvrbYv7U8VhhDxOH3ozKGQcn+rgINjhW3sMJ7h63v0cUud7B6Fy4hRJdV4uFqAk1K8H02NvWvozkjJbCUiW8ruo1+0pXJsNXlbRCQOsSMK0av7Qg8jxfe37DSBOn2dAaiAUhGAz+T102GUxotdEf4INA9EWXuvR6YjVuvcylq9TiU/Lwja/23AaRK3za0dyG0evzEcVYpUUaKBL9mJ0neGEgEhqDU6FYrG8wm/UL+uj+yZHe0WtZgFQ9IwHCnhMMmvuQJbTGJRIogVDQ7xb8iQDyegOSJyHFAxIUsB+5A57ZaQXSiuAUuKSuJ1V8Jfw6CEMkYxBprg0t7xnbHxrcF54bBSN6XGfzi0I2Z03XcCmCTbaNtNKEZvfbxCWWPhIao9UACrqhNyH64pDhBgSw9+DIfHuBlhek0Hgcms/WMbamJjN9/mX3O1s6mt+mgXdDqeO7Hz3xVn89d6hafOW3S7b+Oy++t3v7R7dmHp8dT55xb3v47idP7Tx24ek3f1+8m6h6dx1Of+2of3jq58U/M7fvfTD5t7OODg7c22q70VmNFbq68p+9MLU5dO3ANtW4XSxtOfvSyej3i39EOk/1/XD6kX8D9d4zpQP1TxfPxc/bHK92Tornn9385Enb1Hisa8f11+68f/rl/K9PzIZ/vPDPDrD9q75zE/ET37lt+/7qvgm+6WaM79/f1HHxmV1f/MLO/wGUNlTq
@@ -1,85 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi"}], "model":
"claude-2.1"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '92'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yOwQrCMBBEv8U5R7GCIrkLRTx5ERQpoV1sNW5idyNq6b9LRcHTwJvHMB2aChZX
ORXTbLXZ38/zbXxdNnldr1+x3lG+hIE+Iw0WibgTwaANfgBOpBF1rDC4hoo8LErvUkXj2SSDQRlY
iRX20P1GlB6D/gmLnLwPI/RHA9EQi5acBIYFcVVoahnfQuiWiEuC5eS9Qfo8sR0ajkkLDRdigc2m
BiHpP1r0/RsAAP//AwCSQrqx5gAAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c226071be4642de-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:41:45 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
anthropic-ratelimit-requests-limit:
- '2000'
anthropic-ratelimit-requests-remaining:
- '1999'
anthropic-ratelimit-requests-reset:
- '2024-09-12T19:41:54Z'
anthropic-ratelimit-tokens-limit:
- '400000'
anthropic-ratelimit-tokens-remaining:
- '400000'
anthropic-ratelimit-tokens-reset:
- '2024-09-12T19:41:45Z'
request-id:
- req_015TQ14PLRJp9zqmJDFwcw1j
via:
- 1.1 google
x-cloud-trace-context:
- c408d69e6314e5bf995d24d48da41b92
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
eNqFVF1oHEUcTxOEEhWkqCBiuz1r8SFzt1/3sdGHhGsqbc0lJNfGRkOZzM7dbm9vdrM7G3MNLTaJIliUKehDBSnt5a6cZ5vQD5VqbGxAwaBPgvdgCwr1RSxCfClInLvcJSkJcZ9m/5+//+/3n5kojmLXM22yrWwSil2IKP/x2ETRxSM+9uhUIYupYev53p7+5EXfNSsvGJQ6XnsoBB0zCAk1XNsxURDZ2dCoFMpiz4Np7OWHbT1XeWM8kIVjx6idwcQLtAuSKKttQqARxC2vjwdc28L8FPA97Aa4F9kcCaFVk2EGTg5VE2wdW1UDsqCvYyAHpcDJooGhztF/kDdsj7LZDXiuQISwQwEmyNZNkmafpU+YTpug45QFKS7xRgTXBmalDMYOgJY5igsrWWwGOo5lIlj1h457NinXgQGac/BGd6mKH/CxCGWfdzZwhHpznD4iiEFFDcozY8Cj0CQWJwBYkEMqODX/zfUOB6IMrwPq0rDCSvLl9TG2x6a7Ierpf6gkdJHBpqGbjahX19tdn1Azi1kx3ruxXd251k4JSlJQm32osJcjiE2noOXh2VWSV1NKsigrQIwAUbrcYMnCJE0NdkGTL7nYc/hW4ckCr0h9byLPBcGL3xfri3Ch51BDzDtNO/L7uDjs66ThtwlyROjHjsDLq4KktCvRdn54pTtZjte7JDfVYjbpQuKluB5dDe2LyPBJBuul+KaqVwJrU7m8v2VmTQrql4BrVf1leVkUxcreLSNdnOWkVTvmJU3T/qcuZwZTdq06HxA1IEeSK1OG1cGKsFnmylWq4ymoYvWr7Nkicg1PI1rYMnpzPLI6WKqDBqbOvuLnY6KU6DqSGemWnf0Gob6PkwMwd5ykr48BZNm+Dih/TjCo7cMYZRUhCmNhRRfRcEROQTU6rGjRsBRVVE1TJQWlwhdHTchKUlAS0radtvCV+H4Qh8jAoL+2Nqy472iis/tAvPwa6LOHbc5fEnKeiU1woR+7fBtZqdaa328XF3h6X+dRdi2GNAWGUwhpMSWGYhLoGuibaSzQ6oLkq49D7dk6zdfU5aaF+V3vbW+qfS2vvj/fOtHxZNc30zc/Cbw9uCi/OLi0rW/qsQeieQLNRVPvLu882Pnpo3/sDL7ZMfTtb7sPzyVGK/c+ei72690HA/5fiaEjd69Pnp579lzbjpGn5s8/fqo5kX/aL4tjU2dfbmu9P3zgB/rhrfPbywut48+cev7gv/mf4Mie+7ebf/+5Q1VzhxLNtye+WAzfOGPvXjqz8Mi8u3RH+LHnz7fOfXzpy3demr21NzP5xD+7st/93dLUtLzc0nS2c+aXexz3f2MeVKE=
@@ -1,85 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi"}], "model":
"claude-2.1"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '92'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yOwQqCQBRFv6W7nkKjWswHhNAmd0GEDPoQaXyjvjeUiP8eSkGrC+ceLndCU8Gi
lbpI0nN+5XF8HfOL3DrO+pHygxAMdOxosUjE1QsYgl+AE2lEHSsM2lCRh0XpXaxou9+lMCgDK7HC
3qffiNJ70dewyMj7sMH8MBANXTGQk8CwIK4KjQPjWwj1kbgkWI7eG8T1iZ3QcBe10PAkFtg0MQhR
/9Fpnj8AAAD//wMAAtuGoOYAAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c22607dcb8342de-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:41:46 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
anthropic-ratelimit-requests-limit:
- '2000'
anthropic-ratelimit-requests-remaining:
- '1999'
anthropic-ratelimit-requests-reset:
- '2024-09-12T19:41:54Z'
anthropic-ratelimit-tokens-limit:
- '400000'
anthropic-ratelimit-tokens-remaining:
- '400000'
anthropic-ratelimit-tokens-reset:
- '2024-09-12T19:41:46Z'
request-id:
- req_01DS9y5JEcuFaLqdzE5HqsWY
via:
- 1.1 google
x-cloud-trace-context:
- 0039d1fe9eaf2dcabf2cb18e59d1ce94
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
eNqFVFlsG0UYdtUXVDVSWomoD0hdVgUByth75XBaEMHuATRNSEyTFqFqPDv2Ll7PLDvjkBAqlJRKASTKShQegCIljl2s0CS0KA+cIqAURLnUAuZSqbjKCw9FgifKrGMnqRKFfZr9z+//vn9mpNiPPWZTsm7SJhx7EHHxw/yRoocfzmHGnyhkMbeome/q7EmM5zy7fJPFucvaIhHo2mFIuOVR10ZhRLORfjWSxYzBNGb5JDUHy48NyVk4cIjTDCZMbpNURTMaJbkWJCwPDMkedbA4yTmGPVl4ERVICA9Mli0ffjBIoCZ2AgNyYM7EQAurQSQbZBxnA7uHmUuJKdlEsjl0bEjkw0ULQ1NMdyxvUcb9mRV4pyBC2OUAE0RNm6T919KP2m6jZOKUAzkuCSAEVwjxSxmMXSAK9+PCQpY/DV3XsREM/JGHGCWTVeCAD7p4pbsUzAfE2IT7s+01HJGuQUEvkZSwboS16QHAOLSJIwgCDhSQCm7F/+ZyhwtRRtQBVen8wkLyqeUxlPkTHRB19lxTEnrI8iegl202Ti+3eznC7Sz2i7Gule2qzqV2elhVw9GZawqzQYL8iRR0GJ5ZJHkxpaQpmg6UZqCop2osOZikueWPq5pxckE+ho8UREmeYyN5oQj+5GyxuiljnffW1PwxtDkfF+r4byesXKOkNUs92JVEfUNS9Ta9pU0cdnckJmPVNolVxZhJeJCwlBBkZ038IrJyJIPNUmxV2cvy0lie6O/YWZuD6i0RYgW/fl5TFKV885qRHs4K1oKOeTUajf5PXcEM5v6ZYD6gRIHWnFiYssk4WJZWy1y4a1U8BUMJvvK2NSKX8NSipTWjV8ejGQdLVdDANv23xPmQovbpSaruV/fdn9n1iKHtgfGEh6jxxgBADs2ZgIv3BoPKQgxwvyxpGtQ1nGoxkI5aUbOqq62qopsmjrZEURJq4/029EtqWJXSlKYdPBXbBWIQWRj0VNbGL8YP7GvvuDs22Qe6aZIK/hJQ8EwowYUe7Il19EuV1uKCe7gg0rvbD/hnWlFUh02pVItp4FbUqoKdvd3TtQVaXJB88DpU3rVhsaaeMH0wt/Xp60KVb/3eZ2Y2vH9nffzdD1/tVG+75esnT758dPSo/NPe5+t3/J3s7zz/7OMvjI5ceO/FeaXu4xsaem/9Er6+Y3I2/e3380Mnpp764VLTHZ/t377l99Njn8qbeus3/nFx+8X4PffNbziSOfvRnHwl/Ov5rXWbt5jDx/vgsXM0fvmLy69M9z0X/uvzExvjseNf/bxNaRy9kkDn/mm4a3bPS5sad/9Zd+m30WyXd33TBffGhm/MZP3Yv+P2d++sC4WuXl0fun14zvtFIP8PysRiVQ==
@@ -1,85 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi"}], "model":
"claude-2.1", "system": "respond in italian"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '124'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yOUUvDQBCEf4vzfBXTFsR7FRH61pbQiki4JGs5etlNs3tQCfnvkoDg08DMx8yM
iC08Or1UT8UmvpwO7/vdx7F720n9ncvyXDMc7KenmSLVcCE4DJJmI6hGtcAGh05aSvBoUsgtrdaP
BRwaYSM2+M/xr8ToPuOLeLzGIA+YvhzUpK8GCioMD+K2sjzM40ugdMvEDcFzTskhL0f8iMh9tsrk
SqzwxdZBsv23nqfpFwAA//8DANk5AAzlAAAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c226080eed042de-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:41:47 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
anthropic-ratelimit-requests-limit:
- '2000'
anthropic-ratelimit-requests-remaining:
- '1999'
anthropic-ratelimit-requests-reset:
- '2024-09-12T19:41:54Z'
anthropic-ratelimit-tokens-limit:
- '400000'
anthropic-ratelimit-tokens-remaining:
- '400000'
anthropic-ratelimit-tokens-reset:
- '2024-09-12T19:41:47Z'
request-id:
- req_011ee6R6bXRqcFuSxUUjNrrk
via:
- 1.1 google
x-cloud-trace-context:
- d28033e5f6b5bdeb994f806cfd5ef250
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
eNqFVF1oW1UcjxRkdhOKfdnL2PWiE2fPzf1I0ySWQZu01WmW2oS16zbGyb3n5p725t67e09C45jTbvgy5jyMgSgI29JkDXFLcOLEj+HHcIKgwl6CdIqCsBdR9MUHqSdp0na01Pt07v/z9///fufMl/PI9bBtPVTFFkEuVAn78eh82UXHc8gjZ0pZRAxbK44nkqkrORc3njQIcbyI3w8dLECLGK7tYFVQ7aw/L/mzyPNgBnnFtK0VGkdO8Fk4d4zYs8jy+AgniXKgj+M7Qcxy+ATv2iZiJz7nIZdnXtVmSCzSNBmYP3m0mWBryGwaVBPmNARkQeJPlg0ENYb+fNGwPULrG/Bch6qKHAKQpdoatjL0vczL2OnjNKSbkKAKa2Sh1sC0MouQA6CJ86i0kkVr0HFMrMKm3z/j2Va1DQyQgoM2uitN/ICNZRH64VAHh3+8wNZncaKgBAS5Ngc8ArFlsgUAEzJIJafl/3i9w4HqLKsD2tTQ0krytfUxtkcX4lBNJB8oCV3VoAvQzQYD76+3uzmL4Cyi5ej4xnZt51o7RZAkIVx/oLBXsFS6oEPTQ/XVJa+mVGRRVoAYBKJ0rbMlE1kZYtDLYfmqizyHqQqdLrGKJOfNFxkh6Ns75bYQLide6JB5z/dYMcbIoZ+mjFwfJwe5JHI4Vj7ASUpEGYjICjcWT1Wj7S6pTbmop1xoeTrjY6TDfVk1ctYs0irRTVlv8GtTuay/ibOYgPYlYFw1f2lRFkWxsWfLSBdl2dKaHYtSOBz+n7psM4jQG835gBgGcjC1MmV/YLrBbZa5cpXaeEoBsfk1ntgicg1PJ5rbMnpzPLIyXWmDBlijn7DzMVEazs+kjJnRgzp+aSCkY01PH8fS6AdzQDXtnAYIe04QaOlhjtAG1x9QQkGoy4qoyyENBZRgOBxS5aCip9WQruhX8hjSiiRIXMa2Mya6Hh0FUagaCCRbsqHl2KEDQ/Hno9UpMGGnbba/FGR7tmwLlZLIZWqklVZrdr9dVGLpE0OH6I2QGlZgv96vhwIwpIYkMDI5UesIaFUgxebj0Hq2XmMydZnpqy93n93ma31dL77xefcXYk/s1u3wWL27+6NCz0jP4N0Lzz1yn799c3Hp3MH9y0f3dr/78L3B1++PX6zd/GbhLf2f6rR/cl/ir6/hrWcHz7/ykzAgfj8ZPz3C/z4sGumdr/YuxnY9s8OqF33bdx/Ziwff0cQ/6MUpmFiyY4u7/k5MmU+fCQ2fCvacy/3w5oU7NU7YHn/018PblnrrT00deHxn8bveHy/9EsGX/tzfV2vc5fb8O3b2s1NdPt/ycpdvx9s/7/uNIf8P86BOOQ==
@@ -1,85 +0,0 @@
interactions:
- request:
body: '{"max_tokens": 1024, "messages": [{"role": "user", "content": "hi"}], "model":
"claude-2.1"}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
anthropic-version:
- '2023-06-01'
connection:
- keep-alive
content-length:
- '92'
content-type:
- application/json
host:
- api.anthropic.com
user-agent:
- Anthropic/Python 0.34.2
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 0.34.2
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.anthropic.com/v1/messages
response:
body:
string: !!binary |
H4sIAAAAAAAAA0yOTYvCQBBEf4t1nhUjGGGu4sfJg7C5yBLGpNHgpGdM9yzrhvz3JWEFTwWvHkX1
aGpYtHItF9mqyI/d5ft3ly8/i8f2FjdxvT/BQJ+RRotE3JVg0AU/AifSiDpWGLShJg+LyrtU08dy
nsGgCqzECnvuXyNKP6M+hcWBvA8zDF8GoiGWHTkJDAviutTUMf4LoUcirgiWk/cGaXpiezQck5Ya
7sQCmy0MQtJ3lA/DHwAAAP//AwAGMD4r5gAAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2260768b6d42de-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:41:45 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Robots-Tag:
- none
anthropic-ratelimit-requests-limit:
- '2000'
anthropic-ratelimit-requests-remaining:
- '1999'
anthropic-ratelimit-requests-reset:
- '2024-09-12T19:41:54Z'
anthropic-ratelimit-tokens-limit:
- '400000'
anthropic-ratelimit-tokens-remaining:
- '400000'
anthropic-ratelimit-tokens-reset:
- '2024-09-12T19:41:45Z'
request-id:
- req_01QtGTbuSEodAJbf67oDfmmh
via:
- 1.1 google
x-cloud-trace-context:
- f46be5074690ff1ab6e460282f1869e6
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,99 +0,0 @@
interactions:
- request:
body: '{"messages": [{"content": "hi", "role": "user"}], "model": "gpt-3.5-turbo",
"n": 1, "stream": false, "temperature": 0.7}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '120'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA1SQQVPCMBSE7/0Vz5yp04KA9uIw6gh61ZPjMCF9lECa10lelcrw352UQvWSw37Z
zW4OEYDQuchAqI1kVVYmnk22P8+vszdj86f30f4lbb7G8iFf3OweTSMGwUGrLSo+u64VlZVB1mRP
WDmUjCE1nQ4n6TRJk0kLSsrRBFtRcTy6HsdcuxXFSTocd84NaYVeZPARAQAc2jN0tDnuRQbJ4KyU
6L0sUGSXSwDCkQmKkN5rz9KyGPRQkWW0be05GkNXMKdvUNLCAk4GaKgGplw293+NDte1l6G4rY3p
9OOliaGicrTyHb/oa2213ywdSk82vOqZKtHSYwTw2S6u/40QlaOy4iXTDm0IvD2lif6Le3bXMSaW
ppfTadS1E77xjOVyrW2BrnK6Hd9uOEa/AAAA//8DAL+Mx137AQAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c22607a7819333c-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:41:46 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=f7v_MvlErsImr51Og1usyf7X4zzvka6uCqXxZswcHYI-1726170106-1.0.1.1-EUkkTCRnG9XfFNPrACRJTv42yT1t0Qm_u8BW35BzwvKMMjq2PyEDq8E4OF9p5uNTJZd0O4StHmwNZuFFhVum3Q;
path=/; expires=Thu, 12-Sep-24 20:11:46 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=I7ks44mbQ8awsQH7lkSMvqmCKVg7OPTwXtjvLx8xLkg-1726170106480-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '230'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '50000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '49999982'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_064900ebb75d94dde4102c7c75471288
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,105 +0,0 @@
interactions:
- request:
body: '{"messages": [{"content": "what is the weather in SF, CA?", "role": "user"},
{"content": null, "role": "assistant", "tool_calls": [{"type": "function", "id":
"call_qaLYhIH0C6fXQBpIw9PtzwCz", "function": {"name": "get_weather", "arguments":
"{\"location\": \"SF, CA\"}"}}]}, {"content": "Error: AssertionError(''Unknown
Location'')\n Please fix your mistakes.", "role": "tool", "tool_call_id": "call_qaLYhIH0C6fXQBpIw9PtzwCz"}],
"model": "gpt-4o", "n": 1, "stream": false, "temperature": 0.0, "tools": [{"type":
"function", "function": {"name": "get_weather", "description": "Use this to
get weather information from a given location.", "parameters": {"type": "object",
"properties": {"location": {"type": "string"}}, "required": ["location"]}}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '744'
content-type:
- application/json
cookie:
- __cf_bm=umMudA_sRoLotDY3RQlholdYuYyxi.3FkgAe5bI5qBw-1726170184-1.0.1.1-k1_fkNSUv_n5S3ImnqfzNqWUpaLIq_u.k1mFPZJG8byKTmejozHHvmJw1LRCkLAAnzqN6EpaMXYBbQ7uoATrIQ;
_cfuvid=SnmYmGEfWdde3TdzgkwZCLc_.3Ch2tBNchvm8O1dR7c-1726170184318-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xSTY/TMBS851dY79ygJE1byK0CFrEI7SLE8lUUvXVfUreObWyHpar635HTtMlW
+BBZM555k7EPEWMg1lAw4Bv0vDEyXs53yVfxYfvN8Xu8v/m9r6YfZcqpfvvG3MIkKPTjlrg/q15w
3RhJXmh1orkl9BRc00U2TxdJ+jLviEavSQZZbXyc6zhLsjxOZnE67YUbLTg5KNjPiDHGDt03RFRr
+gsFSyZnpCHnsCYoLocYA6tlQACdE86j8jAZSK6VJxVSq1bKEeG1liVHKYfBp3UY7YeeUMqS7t5X
X+6m35ul/DR/wHd/NP142O5uR/NO1nvTBapaxS/9jPgLXlwNYwwUNp22Jl8+EfoN2Ss5Y4C2bhtS
PkSHwwqk5hgMV1Cs4DMqdmNRceG4nrDXyxUc4ZnDMfrf/teoHEtV61D2rfX48XINUtfG6kd31SpU
Qgm3KS2h6/5uXHJ0ntbNgfbZPYKxujG+9HpHKti+yk+mMLyygUwXPem1RznC0zTqY4LbO09NWQlV
kzVWdE8AKlNms3mWI01xBtEx+gcAAP//AwCGW55LCwMAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2262646e295e74-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:43:04 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '264'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '29999956'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_46e4cdaa5976b1bd98793a15753699c3
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,108 +0,0 @@
interactions:
- request:
body: '{"messages": [{"content": "what is the weather in SF, CA?", "role": "user"},
{"content": null, "role": "assistant", "tool_calls": [{"type": "function", "id":
"call_qaLYhIH0C6fXQBpIw9PtzwCz", "function": {"name": "get_weather", "arguments":
"{\"location\": \"SF, CA\"}"}}]}, {"content": "Error: AssertionError(''Unknown
Location'')\n Please fix your mistakes.", "role": "tool", "tool_call_id": "call_qaLYhIH0C6fXQBpIw9PtzwCz"},
{"content": null, "role": "assistant", "tool_calls": [{"type": "function", "id":
"call_eOIfUO3YmAlQ6VaGvoeZVjkJ", "function": {"name": "get_weather", "arguments":
"{\"location\": \"San Francisco\"}"}}]}, {"content": "It''s always sunny in
sf", "role": "tool", "tool_call_id": "call_eOIfUO3YmAlQ6VaGvoeZVjkJ"}], "model":
"gpt-4o", "n": 1, "stream": false, "temperature": 0.0, "tools": [{"type": "function",
"function": {"name": "get_weather", "description": "Use this to get weather
information from a given location.", "parameters": {"type": "object", "properties":
{"location": {"type": "string"}}, "required": ["location"]}}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '1053'
content-type:
- application/json
cookie:
- __cf_bm=umMudA_sRoLotDY3RQlholdYuYyxi.3FkgAe5bI5qBw-1726170184-1.0.1.1-k1_fkNSUv_n5S3ImnqfzNqWUpaLIq_u.k1mFPZJG8byKTmejozHHvmJw1LRCkLAAnzqN6EpaMXYBbQ7uoATrIQ;
_cfuvid=SnmYmGEfWdde3TdzgkwZCLc_.3Ch2tBNchvm8O1dR7c-1726170184318-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//VJFBT+MwEIXv+RWDzw1K0rRAbyvtrpB6gkUCgVBl3Glj6swYe6KlRf3v
yGko5eLD++Y9vRl/ZADKLtUMlGm0mNa7/Nd0U9z/fhAz3z1WuxtTzt/eupvrq93m9n2uRsnBL69o
5Mt1brj1DsUyHbAJqAVTanlRTcuLoryse9DyEl2yrb3kNedVUdV5McnL8WBs2BqMagZPGQDAR/+m
irTEdzWDYvSltBijXqOaHYcAVGCXFKVjtFE0iRp9Q8MkSH3ruwbhP2ppMIAl+KcJ/gZNxkbDYCOY
LgQkcVuIHdH2HP7QK29BGkxCbCzh2Wl0wFUXddqMOucGfX/s6njtA7/EgR/1lSUbm0VAHZlSryjs
VU/3GcBzf5Pux5rKB269LIQ3SCmwrKpDnvr+hRNaD1BYtDvRx9NsaKjiNgq2i5WlNQYf7OFEK7+o
JtOq1jjWE5Xts08AAAD//wMAiaUWaysCAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c22626729325e74-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:43:06 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '1260'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '29999947'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_f1da44f5b367a8e167b871e2837d968c
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,104 +0,0 @@
interactions:
- request:
body: '{"messages": [{"content": "what is the weather in SF, CA?", "role": "user"}],
"model": "gpt-4o", "n": 1, "stream": false, "temperature": 0.0, "tools": [{"type":
"function", "function": {"name": "get_weather", "description": "Use this to
get weather information from a given location.", "parameters": {"type": "object",
"properties": {"location": {"type": "string"}}, "required": ["location"]}}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '396'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA2xSXW+bMBR951dY9zlUQBLS8dZFmhapldruYeuWCTnOBbz6q7ZZ2kb575MJCTQa
D5Z1js+5x8fsI0KAb6EgwBrqmTQivsmfk++rv0/3litabx7T7XX7c3d3t3m1DxImQaE3f5D5k+qK
aWkEeq7VkWYWqcfgmi6yPF0k6fWsI6Teogiy2vh4puMsyWZxMo/TaS9sNGfooCC/IkII2XdriKi2
+AoFSSYnRKJztEYozocIAatFQIA6x52nysNkIJlWHlVIrVohRoTXWpSMCjEMPn770X7oiQpRvtDb
p2b1NVnm1Y+Hz2a1+3Tv33fL99G8o/Wb6QJVrWLnfkb8GS8uhhECispOW6Mvd0h9g/ZCTghQW7cS
lQ/RYb8GoRkNhmso1vDty4Qsb9ZwgA+yQ/S//e9RIxar1lHRV9Xjh3P3QtfG6o27qBIqrrhrSovU
dVcaNxudpnVzoP3weGCslsaXXj+jCrbzxdEUhl9rINO8J732VAz4Yhr1KcG9OY+yrLiq0RrLu2eH
ypTZPM9mFKd0DtEh+gcAAP//AwD92wS9/wIAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c22626109d35e74-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:43:04 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=umMudA_sRoLotDY3RQlholdYuYyxi.3FkgAe5bI5qBw-1726170184-1.0.1.1-k1_fkNSUv_n5S3ImnqfzNqWUpaLIq_u.k1mFPZJG8byKTmejozHHvmJw1LRCkLAAnzqN6EpaMXYBbQ7uoATrIQ;
path=/; expires=Thu, 12-Sep-24 20:13:04 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=SnmYmGEfWdde3TdzgkwZCLc_.3Ch2tBNchvm8O1dR7c-1726170184318-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '253'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '29999974'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_7bb3e7dcee1d9f6e449ce3ce91c23b45
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,115 +0,0 @@
interactions:
- request:
body: '{"messages": [{"content": "What''s the weather in NYC?", "role": "user"},
{"content": null, "role": "assistant", "tool_calls": [{"type": "function", "id":
"call_z2s49enDG6f6yX2NZJZfqxMC", "function": {"name": "get_weather", "arguments":
"{\"city\": \"nyc\"}"}}]}, {"content": "It might be cloudy in nyc", "role":
"tool", "tool_call_id": "call_z2s49enDG6f6yX2NZJZfqxMC"}, {"content": "The weather
in NYC might be cloudy.", "role": "assistant"}, {"content": "What''s it known
for?", "role": "user"}], "model": "gpt-4o", "n": 1, "stream": false, "temperature":
0.0, "tools": [{"type": "function", "function": {"name": "get_weather", "description":
"Use this to get weather information.", "parameters": {"type": "object", "properties":
{"city": {"enum": ["nyc", "sf"], "type": "string"}}, "required": ["city"]}}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '808'
content-type:
- application/json
cookie:
- __cf_bm=NeAzSrRiRUThU5nqf8tLls3TN_8rcKA.gYE1AQ6.sNA-1726170123-1.0.1.1-ok6RDiCBslCkOEMgGLzw.TTINZ__9xEPteZPhWDBPL1nKcqgIpQ3hq79a1b7K7DAQyUjYaiFaiOdERD16q4Zvg;
_cfuvid=RqiikjQSreEb1HyA2jJ8ksxMgXg0i3KlalTGJemJAaE-1726170123580-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//XFTBbhtHDL37K4g9JYYsWLJlJ745boMWqY0UdhEYVWFwZ7m7tGZnNiRH
ihrk34vZleS4lzmQfI/kI4ffjwAKroorKFyL5rren1xfPP/7aOt2kT59OXvfaL/VdNfhn9+657tF
McmIWD6Tsz1q6mLXezKOYXQ7ITTKrLPL+cXs8nQ2Px8cXazIZ1jT28l5PJmfzs9PThcns7MdsI3s
SIsr+PsIAOD78OYSQ0Xfiis4newtHaliQ8XVIQigkOizpUBVVsNgxeTF6WIwCkPVd7SBxygruGHb
wpu7x5u3wAqrEDcB6iiAsEZhsi3EGtjFwA48hqpDWekEXPKWBD1wUGNLuXWdAIYK1lwKBoNA3LRl
lDbGSqdwHzvKXNYSdFENQjQsPQFqT84UODifKrpahmWYTeH4+N7Q0oD5g0sS2x4fX8E16LYro8/m
Woiq2A1ZK+qiE3Tb6TLMM/qBO1K4/5pQKAM/HVpjUyiFm9bA51cn8EEiVhvc5urQSHatlEnNc2gA
rYvatyQ0XYazTH9DwXL/n1FWY10epSFIUmKAHmUFsa5JBjQEHNUSsrwZwGHUgavKH1RxbLn680z/
a9ezEGQJCD4k9hWHZsgT9tPQ1VadYE8CG7YWMEAslWSNeRhQkfuphB5DFOzYwZppo/9Lucgp9xrk
LB+xi0kPam2i+OrEeVTdKwS9xCq5Ye7TZbjIDF/Qe7g3IbJM8tAS1BwwOEYPbSr3Wf8KbFSNzWXw
ZQbfJqXUaQb+PmxCLjtH35JJ7KNnwwBjVCa6FpuM/oPpNlYkIXvgzW28vX47TjEHXXck7F4R3O1m
8hurRckyvMt1/MJrEiW4SawcaJxtR94GGaNlqEueA8oW6FtPwhQcKdSSV1Fi2qUcRJsuw/thXfb/
ZaTn/TILuxYMe1KT7Y7akpBO8m9rEja020UTrHgv9+w0k35EbTmGkanxsUQP9WgDhz0b+gm0+d9Z
hJA6kjzUipSbQKID7T6e1hQsUy/DQ0tKgELwnNQAoaYNtNy042/JVW5aNOhwRQp3jzeAkAJ/TfTq
/w+79fP5EaqTYr5+IXm/s/843DMfm15iqTv/wV5zYG2fhFBjyLdLLfbF4P1xBPDPcDfTq1NY9BK7
3p4srihkwtnpu5GveLnUL975+eXOa9HQvzjOFoujXYmFbtWoe6o5NCS98HhH6/5pvriYnyOd4aI4
+nH0HwAAAP//AwCWXqwfUAYAAA==
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2260eb7cf841d9-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:07 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '2934'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '29999952'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_e271e328d86c5a9929b18058831ac46d
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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
@@ -1,205 +0,0 @@
interactions:
- request:
body: '{"messages": [{"content": "What''s the weather in NYC?", "role": "user"}],
"model": "gpt-4o", "n": 1, "stream": false, "temperature": 0.0, "tools": [{"type":
"function", "function": {"name": "get_weather", "description": "Use this to
get weather information.", "parameters": {"type": "object", "properties": {"city":
{"enum": ["nyc", "sf"], "type": "string"}}, "required": ["city"]}}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '385'
content-type:
- application/json
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAAwAAAP//bFJdb5swFH3nV1j3OVTgANl4qzatWqdWardJVZcJuc7lozM2tS9aSJT/
PkFIoNH8gKxzfO45HHvvMQbVBlIGshQk60b518nr7ikqHwO6e/iibr/zbx+Cmx/XX8vt4+4nLHqF
eXlFSSfVlTR1o5Aqo4+0tCgI+6nhiifhKgj5ciBqs0HVy4qG/Mj4POCRH8R+uByFpakkOkjZL48x
xvbDt4+oN7iFlAWLE1Kjc6JASM+HGANrVI+AcK5yJDTBYiKl0YS6T61bpWYEGaMyKZSajI9rP9tP
PQmlsh130UfUn2+SPOme+P3z7XP+tr37NPM7ju6aIVDeannuZ8af8fTCjDHQoh60BVL2FwWVaC/k
jIGwRVujpj467NcgK+rWkK5Bd3INB3h3/uD9b/97VoXFvHVCjR2N+OFcujJFY82Lu+gQ8kpXrsws
Cjf8y7xS7+Q2+ED77tagsaZuKCPzB3U/Nl4dh8L0piYyjEeSDAk14SvujSnBdY6wzvJKF2gbWw33
DXmT8TjhkcCliME7eP8AAAD//wMAHtA48vgCAAA=
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2260e52cfe41d9-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:03 GMT
Server:
- cloudflare
Set-Cookie:
- __cf_bm=NeAzSrRiRUThU5nqf8tLls3TN_8rcKA.gYE1AQ6.sNA-1726170123-1.0.1.1-ok6RDiCBslCkOEMgGLzw.TTINZ__9xEPteZPhWDBPL1nKcqgIpQ3hq79a1b7K7DAQyUjYaiFaiOdERD16q4Zvg;
path=/; expires=Thu, 12-Sep-24 20:12:03 GMT; domain=.api.openai.com; HttpOnly;
Secure; SameSite=None
- _cfuvid=RqiikjQSreEb1HyA2jJ8ksxMgXg0i3KlalTGJemJAaE-1726170123580-0.0.1.1-604800000;
path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '288'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '29999975'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_2da6ff2f426d039d046ff918633787f7
status:
code: 200
message: OK
- request:
body: '{"messages": [{"content": "What''s the weather in NYC?", "role": "user"},
{"content": null, "role": "assistant", "tool_calls": [{"type": "function", "id":
"call_z2s49enDG6f6yX2NZJZfqxMC", "function": {"name": "get_weather", "arguments":
"{\"city\": \"nyc\"}"}}]}, {"content": "It might be cloudy in nyc", "role":
"tool", "tool_call_id": "call_z2s49enDG6f6yX2NZJZfqxMC"}], "model": "gpt-4o",
"n": 1, "stream": false, "temperature": 0.0, "tools": [{"type": "function",
"function": {"name": "get_weather", "description": "Use this to get weather
information.", "parameters": {"type": "object", "properties": {"city": {"enum":
["nyc", "sf"], "type": "string"}}, "required": ["city"]}}}]}'
headers:
accept:
- application/json
accept-encoding:
- gzip, deflate
connection:
- keep-alive
content-length:
- '682'
content-type:
- application/json
cookie:
- __cf_bm=NeAzSrRiRUThU5nqf8tLls3TN_8rcKA.gYE1AQ6.sNA-1726170123-1.0.1.1-ok6RDiCBslCkOEMgGLzw.TTINZ__9xEPteZPhWDBPL1nKcqgIpQ3hq79a1b7K7DAQyUjYaiFaiOdERD16q4Zvg;
_cfuvid=RqiikjQSreEb1HyA2jJ8ksxMgXg0i3KlalTGJemJAaE-1726170123580-0.0.1.1-604800000
host:
- api.openai.com
user-agent:
- OpenAI/Python 1.45.0
x-stainless-arch:
- arm64
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- MacOS
x-stainless-package-version:
- 1.45.0
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.11.9
method: POST
uri: https://api.openai.com/v1/chat/completions
response:
body:
string: !!binary |
H4sIAAAAAAAAA1SQXWvCMBiF7/srXnJtpR9aXe+c7EZhMJAxGaPE9G0blyYhSdlU/O8jtX7sJhfn
yTk5J6cAgPCS5EBYQx1rtQgX2f748fweLTcL9hK9HVfpnK7Wertel1VFRt6hdntk7uoaM9VqgY4r
ecHMIHXoU+NZksWzKE7SHrSqROFttXbhRIVJlEzCaBrG6WBsFGdoSQ6fAQDAqT99RVniL8khGl2V
Fq2lNZL8dgmAGCW8Qqi13DoqHRndIVPSoexbbxqEH6SuQQNcwut2CS2vGwc7BCZUVx7Gj06DVWep
Ly47IQb9fKsiVK2N2tmB3/SKS26bwiC1SvpnrVOa9PQcAHz1k7t/K4g2qtWucOobpQ+czy5x5P7H
d/g0MKccFQ9yFgz1iD1Yh21RcVmj0YZf5le6SKZZMqGY0ikJzsEfAAAA//8DAPQgwCIHAgAA
headers:
CF-Cache-Status:
- DYNAMIC
CF-RAY:
- 8c2260e95a7041d9-EWR
Connection:
- keep-alive
Content-Encoding:
- gzip
Content-Type:
- application/json
Date:
- Thu, 12 Sep 2024 19:42:04 GMT
Server:
- cloudflare
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- nosniff
access-control-expose-headers:
- X-Request-ID
alt-svc:
- h3=":443"; ma=86400
openai-organization:
- langchain
openai-processing-ms:
- '192'
openai-version:
- '2020-10-01'
strict-transport-security:
- max-age=15552000; includeSubDomains; preload
x-ratelimit-limit-requests:
- '10000'
x-ratelimit-limit-tokens:
- '30000000'
x-ratelimit-remaining-requests:
- '9999'
x-ratelimit-remaining-tokens:
- '29999968'
x-ratelimit-reset-requests:
- 6ms
x-ratelimit-reset-tokens:
- 0s
x-request-id:
- req_aca921ed08e99b1104f16a42cc09843b
status:
code: 200
message: OK
version: 1
@@ -0,0 +1 @@
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

Some files were not shown because too many files have changed in this diff Show More