text: 'completion_tokens': 78, 'prompt_tokens': 8}, 'model_name': 'text-davinci-003'} run=RunInfo(run_id=UUID('23f86775-e592-4cb8-baa3-46ebe74305b2'))    Who was the duke in the battle of Hastings?    generations=[[Generation(text='\n\nThe Duke of Normandy, William the Conqueror, was the leader of the Norman forces at the Battle of Hastings in 1066.', generation_info={'finish_reason': 'stop', 'logprobs': None})]] llm_output={'token_usage': {'total_tokens': 39, 'completion_tokens': 28, 'prompt_tokens': 11}, 'model_name': 'text-davinci-003'} run=RunInfo(run_id=UUID('ad5b7984-8758-4d95-a5eb-ee56e0218f6b'))Create Metric Chartsâ€‹We now use matplotlib to create graphs of latency, errors and tokens consumed.# Helper function to create a graph using matplotlib.def plot(data, title):    data = json.loads(data)    # Extract x and y values from the data    timestamps = [item["time"] for item in data]    dates = [dt.datetime.fromtimestamp(ts) for ts in timestamps]    y = [item["value"] for item in data]    plt.rcParams["figure.figsize"] = [6, 4]    plt.subplots_adjust(bottom=0.2)    plt.xticks(rotation=25)    ax = plt.gca()    xfmt = md.DateFormatter("%Y-%m-%d %H:%M:%S")    ax.xaxis.set_major_formatter(xfmt)    # Create the plot    plt.plot(dates, y)