AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Pydantic Logfire: Production-grade AI & general observability built on OpenTelemetry. Works with Python, JavaScript/TypeScript, Rust, Go, Java, and any OTel-compatible language. For LLMs, Agents, API
Developer toolsPython · MakefileGitHub @pydanticOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
AI observability platform for production LLM and agent systems.
Taken from the repository README
Loading the full README.
Read the full README ↗From the team behind Pydantic Validation, Pydantic Logfire is an observability platform built on the same belief as our open-source library: that the most powerful tools can be easy to use.
What sets Logfire apart:
See the documentation for more information.
Evaluating observability tools? See what Logfire does for LLM apps and agents, evals in production, and how it compares to alternatives.
Feel free to report issues and ask any questions about Logfire in this repository!
This repo contains the Python SDK for logfire and documentation; the server application for recording and displaying data is closed source.
This is a very brief overview of how to use Logfire, the documentation has much more detail.
pip install logfire
This installs both the Python SDK and the Logfire CLI. To install only the SDK, use
pip install logfire-sdk; the import remains import logfire.
logfire auth
Here's a simple manual tracing (aka logging) example:
from datetime import date
import logfire
logfire.configure()
logfire.info('Hello, {name}!', name='world')
with logfire.span('Asking the user their {question}', question='age'):
user_input = input('How old are you [YYYY-mm-dd]? ')
dob = date.fromisoformat(user_input)
logfire.debug('{dob=} {age=!r}', dob=dob, age=date.today() - dob)
Or you can also avoid manual instrumentation and instead integrate with lots of popular packages, here's an example of integrating with FastAPI:
from fastapi import FastAPI
from pydantic import BaseModel
import logfire
app = FastAPI()
logfire.configure()
logfire.instrument_fastapi(app)
# next, instrument your database connector, http library etc. and add the logging handler
class User(BaseModel):
name: str
country_code: str
@app.post('/')
async def add_user(user: User):
# we would store the user here
return {'message': f'{user.name} added'}
Logfire gives you a view into how your code is running like this:
We'd love anyone interested to contribute to the Logfire SDK and documentation, see the contributing guide.
See our security policy.
The Logfire SDKs (we also have them for TypeScript and Rust) are open source, and you can use them to export data to any OTel-compatible backend.
The Logfire platform (the UI and backend) is closed source. You can self-host it by purchasing an enterprise license.