Home / Function/ test_openai_functions_router() — langchain Function Reference

test_openai_functions_router() — langchain Function Reference

Architecture documentation for the test_openai_functions_router() function in test_openai_functions.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  559655d4_bcb5_1063_083e_99ec09827b90["test_openai_functions_router()"]
  3902d5af_33d3_b3c3_3360_35220294d3e8["test_openai_functions.py"]
  559655d4_bcb5_1063_083e_99ec09827b90 -->|defined in| 3902d5af_33d3_b3c3_3360_35220294d3e8
  style 559655d4_bcb5_1063_083e_99ec09827b90 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

libs/langchain/tests/unit_tests/runnables/test_openai_functions.py lines 44–97

def test_openai_functions_router(
    snapshot: SnapshotAssertion,
    mocker: MockerFixture,
) -> None:
    revise = mocker.Mock(
        side_effect=lambda kw: f"Revised draft: no more {kw['notes']}!",
    )
    accept = mocker.Mock(side_effect=lambda kw: f"Accepted draft: {kw['draft']}!")

    router = OpenAIFunctionsRouter(
        {
            "revise": revise,
            "accept": accept,
        },
        functions=[
            {
                "name": "revise",
                "description": "Sends the draft for revision.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "notes": {
                            "type": "string",
                            "description": "The editor's notes to guide the revision.",
                        },
                    },
                },
            },
            {
                "name": "accept",
                "description": "Accepts the draft.",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "draft": {
                            "type": "string",
                            "description": "The draft to accept.",
                        },
                    },
                },
            },
        ],
    )

    model = FakeChatOpenAI()

    chain = model.bind(functions=router.functions) | router

    assert router.functions == snapshot

    assert chain.invoke("Something about turtles?") == "Accepted draft: turtles!"

    revise.assert_not_called()
    accept.assert_called_once_with({"draft": "turtles"})

Domain

Subdomains

Frequently Asked Questions

What does test_openai_functions_router() do?
test_openai_functions_router() is a function in the langchain codebase, defined in libs/langchain/tests/unit_tests/runnables/test_openai_functions.py.
Where is test_openai_functions_router() defined?
test_openai_functions_router() is defined in libs/langchain/tests/unit_tests/runnables/test_openai_functions.py at line 44.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free