Run an OpenAI Assistant.
OpenAIAssistantV2Runnable()Example using OpenAI tools:
.. code-block:: python
from langchain_classic.agents.openai_assistant import OpenAIAssistantV2Runnable
assistant = OpenAIAssistantV2Runnable.create_assistant( name="math 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 = assistant.invoke({"content": "What's 10 - 4 raised to the 2.7"})
Example using custom tools and AgentExecutor:
.. code-block:: python
from langchain_classic.agents.openai_assistant import OpenAIAssistantV2Runnable from langchain_classic.agents import AgentExecutor from langchain_classic.tools import E2BDataAnalysisTool
tools = [E2BDataAnalysisTool(api_key="...")] agent = OpenAIAssistantV2Runnable.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": "Analyze the data..."})
Example using custom tools and custom execution:
.. code-block:: python
from langchain_classic.agents.openai_assistant import OpenAIAssistantV2Runnable from langchain_classic.agents import AgentExecutor from langchain_core.agents import AgentFinish from langchain_classic.tools import E2BDataAnalysisTool
tools = [E2BDataAnalysisTool(api_key="...")] agent = OpenAIAssistantV2Runnable.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
response = execute_agent(agent, tools, {"content": "What's 10 - 4 raised to the 2.7"}) next_response = execute_agent(agent, tools, {"content": "now add 17.241", "thread_id": response.thread_id})
OpenAI or AzureOpenAI client.
OpenAI or AzureOpenAI async client.
OpenAI assistant id.
Frequency with which to check run progress in milliseconds.
Use as a LangChain agent, compatible with the AgentExecutor.
Validate that the async client is set, otherwise initialize it.
Create an OpenAI Assistant and instantiate the Runnable.
Invoke the assistant.
Create an AsyncOpenAI Assistant and instantiate the Runnable.
Async invoke assistant.