Hi everyone. I'm relatively new to managing our LLM observability and I've been tasked with setting up Helicone for our team. We're starting to get a lot of traffic logged, which is great, but it's a mix of production and test environment calls.
I'm nervous about this data getting mixed up in dashboards and costing reports. Our test environment can generate a lot of dummy requests, and I don't want to skew our analytics or pay for processing that noise.
I saw there's a way to add custom properties to requests. Would the best practice be to tag each request with an `environment` property (like "prod" or "staging") from within our application code? And if so, how do I then filter based on that in the Helicone dashboard?
Here's a simplified example of how I'm thinking of adding the header in Python:
```python
import openai
from helicone.openai_proxy import openai
openai.api_key = "your-openai-key"
openai.helicone.api_key = "your-helicone-key"
# Setting a custom property for the environment
openai.helicone.properties = {
"environment": "staging"
}
# Then the normal OpenAI call
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)
```
Is this the right approach? Once the data is tagged, can I create a view or filter in Helicone to only show, say, `environment = prod`? Or is there a better method, like using different API keys for different environments?
I want to make sure I set this up correctly from the start so we don't have to clean up messy data later. Any guidance or examples would be really appreciated.