Auto Generated Agent Chat: GPTAssistant with Code Interpreter#
The latest released Assistants API by OpenAI allows users to build AI assistants within their own applications. The Assistants API currently supports three types of tools: Code Interpreter, Retrieval, and Function calling. In this notebook, we demonstrate how to enable GPTAssistantAgent
to use code interpreter.
Requirements#
AG2 requires Python>=3.9
. To run this notebook example, please install:
Set your API Endpoint#
The config_list_from_json
function loads a list of configurations from an environment variable or a json file.
import io
from IPython.display import display
from PIL import Image
import autogen
from autogen.agentchat import UserProxyAgent
from autogen.agentchat.contrib.gpt_assistant_agent import GPTAssistantAgent
config_list = autogen.config_list_from_json(
"OAI_CONFIG_LIST",
file_location=".",
filter_dict={
"model": ["gpt-3.5-turbo", "gpt-35-turbo", "gpt-4", "gpt4", "gpt-4-32k", "gpt-4-turbo"],
},
)
Tip
Learn more about configuring LLMs for agents here.
Perform Tasks Using Code Interpreter#
We demonstrate task solving using GPTAssistantAgent
with code interpreter. Pass code_interpreter
in tools
parameter to enable GPTAssistantAgent
with code interpreter. It will write code and automatically execute it in a sandbox. The agent will receive the results from the sandbox environment and act accordingly.
Example 1: Math Problem Solving#
In this example, we demonstrate how to use code interpreter to solve math problems.
# Initiate an agent equipped with code interpreter
gpt_assistant = GPTAssistantAgent(
name="CoderAssistant",
llm_config={
"config_list": config_list,
},
assistant_config={
"tools": [{"type": "code_interpreter"}],
},
instructions="You are an expert at solving math questions. Write code and run it to solve math problems. Reply TERMINATE when the task is solved and there is no problem.",
)
user_proxy = UserProxyAgent(
name="user_proxy",
is_termination_msg=lambda msg: "TERMINATE" in msg["content"],
code_execution_config={
"work_dir": "coding",
"use_docker": False, # Please set use_docker=True if docker is available to run the generated code. Using docker is safer than running the generated code directly.
},
human_input_mode="NEVER",
)
# When all is set, initiate the chat.
user_proxy.initiate_chat(
gpt_assistant, message="If $725x + 727y = 1500$ and $729x+ 731y = 1508$, what is the value of $x - y$ ?"
)
gpt_assistant.delete_assistant()
Example 2: Plotting with Code Interpreter#
Code Interpreter can outputs files, such as generating image diagrams. In this example, we demonstrate how to draw figures and download it.
gpt_assistant = GPTAssistantAgent(
name="CoderAssistant",
llm_config={
"config_list": config_list,
},
assistant_config={
"tools": [{"type": "code_interpreter"}],
},
instructions="You are an expert at writing python code to solve problems. Reply TERMINATE when the task is solved and there is no problem.",
)
user_proxy.initiate_chat(
gpt_assistant,
message="Draw a line chart to show the population trend in US. Show how you solved it with code.",
is_termination_msg=lambda msg: "TERMINATE" in msg["content"],
human_input_mode="NEVER",
clear_history=True,
max_consecutive_auto_reply=1,
)
Now we have the file id. We can download and display it.