Introduction to the Judge Agent

The JudgeAgent extends the capabilities of the PandasAI library by adding an extra judgement in agents pipeline that validates the code generated against the query

Note: The usage of the Judge Agent in production is subject to a license. For more details, refer to the license documentation. If you plan to use it in production, contact us.

Instantiating the Judge Agent

JudgeAgent can be used both as a standalone agent and in conjunction with other agents. To use it with other agents, pass JudgeAgent as a parameter to them.

Using with other agents

import os

from pandasai.agent.agent import Agent
from pandasai.ee.agents.judge_agent import JudgeAgent

os.environ["PANDASAI_API_KEY"] = "$2a****************************"

judge = JudgeAgent()
agent = Agent('github-stars.csv', judge=judge)

print(agent.chat("return total stars count"))

Using as a standalone

from pandasai.ee.agents.judge_agent import JudgeAgent
from pandasai.llm.openai import OpenAI

# can be used with all LLM's
llm = OpenAI("openai_key")
judge_agent = JudgeAgent(config={"llm": llm})
judge_agent.evaluate(
    query="return total github star count for year 2023",
    code="""sql_query = "SELECT COUNT(`users`.`login`) AS user_count, DATE_FORMAT(`users`.`starredAt`, '%Y-%m') AS starred_at_by_month FROM `users` WHERE `users`.`starredAt` BETWEEN '2023-01-01' AND '2023-12-31' GROUP BY starred_at_by_month ORDER BY starred_at_by_month asc"
    data = execute_sql_query(sql_query)
    plt.plot(data['starred_at_by_month'], data['user_count'])
    plt.xlabel('Month')
    plt.ylabel('User Count')
    plt.title('GitHub Star Count Per Month - Year 2023')
    plt.legend(loc='best')
    plt.savefig('/Users/arslan/Documents/SinapTik/pandas-ai/exports/charts/temp_chart.png')
    result = {'type': 'plot', 'value': '/Users/arslan/Documents/SinapTik/pandas-ai/exports/charts/temp_chart.png'}
                        """,
)

Judge Agent integration with other agents also gives the flexibility to use different LLMs.