Skip to main content

Overview

This guide shows you how to log spans to Galileo using the @log decorator in Python, or the log wrapper in TypeScript to log function calls using the async OpenAI SDK as LLM spans. In this guide you will:
  1. Set up a project with Galileo
  1. Create a basic app to call OpenAI
  2. Add logging with the log decorator

Before you start

To complete this how-to, you will need:

Install dependencies

To use Galileo, you need to install some package dependencies, and configure environment variables.
1

Install Required Dependencies

Install the required dependencies for your app. If you are using Python, create a virtual environment using your preferred method, then install dependencies inside that environment:
2

Create a .env file, and add the following values

This assumes you are using a free Galileo account. If you are using a custom deployment, then you will also need to add the URL of your Galileo Console:
.env

Create the basic app to call OpenAI

1

Create a file for your application called app.py or app.ts.

2

Add the following code to call OpenAI to ask a question

If you are using TypeScript, you will also need to configure your code to use ESM. Add the following to your package.json file:
package.json
3

Run the app to ensure everything is working

You should see a description of Newton’s first law.

Add simple logging with the Galileo log decorator or wrapper

Galileo has a @log decorator in Python, and a log wrapper in TypeScript that logs function calls as spans. If these decorated or wrapped calls are called whilst there is an active trace, they are added to that trace. If there is no active trace, a new one is created for this span. In this guide, you will be adding the decorator or wrapper to log the function that calls OpenAI.
1

Import the log decorator

At the top of your file, add an import for the log decorator:
2

Decorate or wrap the function

Update the function definition to include the decorator or wrapper:
This will log the function as an LLM span using the span type parameter. You can read more about these in our span types documentation.This also sets the name of the span to “OpenAI GPT-4o-mini”.
3

Run the app

When the app runs, the span will be logged automatically, with the input as the prompt, the output as the returned response. The duration will also be logged.
4

View the logged trace

From the Galileo Console, open the Log stream for your project. You will see a trace with a single span containing the logged function call.Select the trace to see a detailed view:A trace with an input, OpenAI span, and an outputSelect the OpenAI span to see the latency.The trace with the OpenAI span selected and the latency highlighted in the system metrics pane
Your logging is now set up! You are ready to configure metrics for your project.

See also