Skip to main content
The simple chatbot sample project is a demo of a simplistic terminal-based LLM chatbot where you can have a back-and-forth conversation with an LLM. This project comes pre-populated with an Agent Stream with traces and evaluators, as well as insights to help you improve this project.

Get the code

Get the code for the sample project. You can find this project by cloning the Splunk Agent Observability Python SDK repo.The code for this project is in the /examples/chatbot/sample-project-chatbot/ folder.
The code for this sample is available in Python, and you can run this code using a range of LLM providers to generate more traces, and experiment with improving the app based off the evaluations. The sample code has 3 variations for the following LLM providers:

Evaluate the app

The sample project comes with an Agent Stream pre-populated with a set of traces for some sample interactions with the chatbot - some serious, some asking nonsense questions.

Investigate the Agent Stream

Navigate to the Default Agent Stream by selecting this project, and selecting the Default Agent Stream in the dashboard. The default Agent Stream in the project dashboard The Agent Stream is configured with the following evaluators: For some of the traces, these evaluators are scored at 100%, showing the chatbot is working well for those inputs. For other traces, these evaluators are reporting lower values, showing the chatbot needs some improvements. A set of traces with Correctness and Instruction Adherence evaluators with a range of values Select different rows to see more details, including the input and output data, the evaluator scores, and explanations.

Run the sample app

You can run the sample app to generate more traces and test out different system prompts.

Prerequisites

To run the code yourself to generate more traces, you will need:
  • Access to an LLM, with one of:
    • Access to an OpenAI compatible API, such as
      • An OpenAI API key
      • Access to an OpenAI compatible API, such as Google Vertex
      • Ollama installed locally with a model downloaded
    • An Anthropic API key
    • An model compatible with the Azure AI Inference API deployed to Azure AI Foundry
  • Either Python 3.10 or later, or Node installed
To get evaluators calculated in Splunk Agent Observability, you will need:
  • An integration with an LLM configured. If you don’t have an integration configured, then:
    1

    Navigate to the LLM Integrations page

    In the Splunk Agent Observability UI, navigate to the LLM Integrations page by selecting your user profile in the upper-right corner and then selecting Integrations.The user menu
    2

    Add an integration

    Locate the LLM provider you are using (or specify a custom integration), then select the +Add Integration button.LLM provider options
    3

    Add settings

    Specify settings for your integration (such as an API key), then select Save changes.

Get the code

1

Clone the SDK examples repo

Terminal
2

Navigate to the relevant project folder

Start by navigating to the root folder for the programming language you are using:
Then navigate to the folder for the relevant LLM you are using:
The full source code for all of our sample projects is available in the Splunk Agent Observability SDK Examples GitHub repo.

SDK Examples

Check out sample projects using Splunk Agent Observability

Run the code

1

Install required dependencies

From the project folder, Install the required dependencies. For Python, make sure to create and activate a virtual environment before installing the dependencies.
2

Configure environment variables

In each project folder is a .env.example file. Rename this file to .env and populate the Splunk Agent Observability values:
You can find these values from the project page for the simple chatbot sample page in the Splunk Agent Observability UI.
Next populate the values for your LLM:
3

Run the project

Run the project with the following command:
The app will run in your terminal, and you can ask the LLM questions and get responses.

Improve the app

The insights you viewed earlier suggested improving the system prompt. The default system prompt is defined in the following file:
In this file is the current system prompt, as well as a suggested improvement:
Try commenting out the original system prompt, and uncomment the suggestion. Then restart the chatbot and interact with it, asking questions about made-up things to see how it responds. Once you have asked a few questions, head back to the Splunk Agent Observability UI and examine the new traces. You should see the evaluators improving.

Run the sample app as an experiment

Splunk Agent Observability allows you to run experiments against datasets of known data, generating traces in an experiment Agent Stream and evaluating these for different evaluators. Experiments allow you to take a known set of inputs and evaluate different prompts, LLMs, or versions of your apps. This sample project has a unit test that runs the chatbot against a pre-defined dataset, containing a mixture of sensible and nonsense questions:
dataset.json
You can use this unit test to evaluate different system prompts for your app.
1

Run the unit test

Use the following command to run the unit test:
2

Evaluate the experiment

The unit test will output a link to the experiment in the Splunk Agent Observability UI:
Terminal
Follow this link to see the evaluators for the experiment Agent Stream.The Simple Chatbot experiment
3

Try different system prompts

Experiment with different system prompts. Edit the system prompt in the app, then re-run the experiment through the unit test to see how different system prompts affect the evaluators.
4

Compare experiments

If you navigate to the experiments list, you will be able to compare the average evaluator values of each run.You can then select multiple rows and compare the experiments in detail.

Next steps

Logging with the SDKs

Learn how to log experiments

Learn how to run experiments with multiple data points using datasets and prompt templates

Splunk Agent Observability logger

Log with full control over sessions, traces, and spans using the Splunk Agent Observability logger.

Log decorator

Quickly add logging to your code with the log decorator and wrapper.

Splunk Agent Observability context

Manage logging using the Splunk Agent Observability context manager.

How-to guides

Log Using the OpenAI Wrapper

Learn how to integrate and use OpenAI’s API with Splunk Agent Observability’s wrapper client.

Log Using the @log Decorator

Learn how to use the Splunk Agent Observability @log decorator to log functions to traces

Create Traces and Spans

Learn how to create log traces and spans manually in your AI apps

SDK reference

Python SDK Reference

The Splunk Agent Observability Python SDK reference.