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
Source
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