Home / Class/ OpenAIAssistantRunnable Class — langchain Architecture

OpenAIAssistantRunnable Class — langchain Architecture

Architecture documentation for the OpenAIAssistantRunnable class in base.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  40171661_732e_8178_c8ae_92254ace13fe["OpenAIAssistantRunnable"]
  08bf656f_3813_3e18_353f_755ea0cec6e4["base.py"]
  40171661_732e_8178_c8ae_92254ace13fe -->|defined in| 08bf656f_3813_3e18_353f_755ea0cec6e4
  42526e29_45d8_b58d_1bea_a2547d27dc32["_validate_async_client()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 42526e29_45d8_b58d_1bea_a2547d27dc32
  af42a972_7172_4f29_9cce_86e64185183e["create_assistant()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| af42a972_7172_4f29_9cce_86e64185183e
  addd6899_a5cd_0e3e_74c7_bb99653507b2["invoke()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| addd6899_a5cd_0e3e_74c7_bb99653507b2
  e397253e_d0bf_d4ee_d4f9_4f7ff7b310b0["acreate_assistant()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| e397253e_d0bf_d4ee_d4f9_4f7ff7b310b0
  5912fbae_35d0_fc72_46fb_b0f27a511df7["ainvoke()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 5912fbae_35d0_fc72_46fb_b0f27a511df7
  782b6df1_2ffe_3fa8_3268_e14b8296dbcb["_parse_intermediate_steps()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 782b6df1_2ffe_3fa8_3268_e14b8296dbcb
  24d4664f_f871_cae2_c0d0_ab58f161c9c9["_create_run()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 24d4664f_f871_cae2_c0d0_ab58f161c9c9
  7e21132d_9efa_50c9_67b3_696161b058a8["_create_thread_and_run()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 7e21132d_9efa_50c9_67b3_696161b058a8
  1ad76bb2_dc8b_7c02_4dc1_b65f4601f9bf["_get_response()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 1ad76bb2_dc8b_7c02_4dc1_b65f4601f9bf
  2c47f734_2b6a_7a50_60db_4c515cc3d976["_wait_for_run()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 2c47f734_2b6a_7a50_60db_4c515cc3d976
  633db7c5_84a0_dcf2_9949_8d11da115c78["_aparse_intermediate_steps()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 633db7c5_84a0_dcf2_9949_8d11da115c78
  05f5267c_cc58_5dc4_e414_e966f46d6c91["_acreate_run()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 05f5267c_cc58_5dc4_e414_e966f46d6c91
  9a8d9eab_65ef_1fd7_ee85_d9451c12e0a0["_acreate_thread_and_run()"]
  40171661_732e_8178_c8ae_92254ace13fe -->|method| 9a8d9eab_65ef_1fd7_ee85_d9451c12e0a0

Relationship Graph

Source Code

libs/langchain/langchain_classic/agents/openai_assistant/base.py lines 139–831

class OpenAIAssistantRunnable(RunnableSerializable[dict, OutputType]):
    """Run an OpenAI Assistant.

    Example using OpenAI tools:
        ```python
        from langchain_experimental.openai_assistant import OpenAIAssistantRunnable

        interpreter_assistant = OpenAIAssistantRunnable.create_assistant(
            name="langchain assistant",
            instructions="You are a personal math tutor. "
            "Write and run code to answer math questions.",
            tools=[{"type": "code_interpreter"}],
            model="gpt-4-1106-preview",
        )
        output = interpreter_assistant.invoke(
            {"content": "What's 10 - 4 raised to the 2.7"}
        )
        ```

    Example using custom tools and AgentExecutor:
        ```python
        from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
        from langchain_classic.agents import AgentExecutor
        from langchain_classic.tools import E2BDataAnalysisTool


        tools = [E2BDataAnalysisTool(api_key="...")]
        agent = OpenAIAssistantRunnable.create_assistant(
            name="langchain assistant e2b tool",
            instructions="You are a personal math tutor. "
            "Write and run code to answer math questions.",
            tools=tools,
            model="gpt-4-1106-preview",
            as_agent=True,
        )

        agent_executor = AgentExecutor(agent=agent, tools=tools)
        agent_executor.invoke({"content": "What's 10 - 4 raised to the 2.7"})
        ```

    Example using custom tools and custom execution:
        ```python
        from langchain_experimental.openai_assistant import OpenAIAssistantRunnable
        from langchain_classic.agents import AgentExecutor
        from langchain_core.agents import AgentFinish
        from langchain_classic.tools import E2BDataAnalysisTool


        tools = [E2BDataAnalysisTool(api_key="...")]
        agent = OpenAIAssistantRunnable.create_assistant(
            name="langchain assistant e2b tool",
            instructions="You are a personal math tutor. "
            "Write and run code to answer math questions.",
            tools=tools,
            model="gpt-4-1106-preview",
            as_agent=True,
        )


        def execute_agent(agent, tools, input):
            tool_map = {tool.name: tool for tool in tools}
            response = agent.invoke(input)
            while not isinstance(response, AgentFinish):
                tool_outputs = []
                for action in response:
                    tool_output = tool_map[action.tool].invoke(action.tool_input)
                    tool_outputs.append(
                        {
                            "output": tool_output,
                            "tool_call_id": action.tool_call_id,
                        }
                    )
                response = agent.invoke(
                    {
                        "tool_outputs": tool_outputs,
                        "run_id": action.run_id,
                        "thread_id": action.thread_id,
                    }
                )

            return response

Frequently Asked Questions

What is the OpenAIAssistantRunnable class?
OpenAIAssistantRunnable is a class in the langchain codebase, defined in libs/langchain/langchain_classic/agents/openai_assistant/base.py.
Where is OpenAIAssistantRunnable defined?
OpenAIAssistantRunnable is defined in libs/langchain/langchain_classic/agents/openai_assistant/base.py at line 139.

Analyze Your Own Codebase

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

Try Supermodel Free