This package provides a wrapper around the Langfuse Api, allowing you to easily integrate Langfuse into your PHP applications. It uses as few dependencies as possible.
- Get text prompts
- Get chat prompts
- Compile text prompts
- Compile chat prompts
- Create text prompts
- Create chat prompts
- Fallback handling for prompt fetching errors
- Fallback handling when no prompt is found
- Create traces
- Create generations
⚡️ Install the package using Composer:
composer require dij-digital/langfuse-php
use DIJ\Langfuse\PHP;
use DIJ\Langfuse\PHP\Transporters\HttpTransporter;
use GuzzleHttp\Client;
$langfuse = new Langfuse(new HttpTransporter(new Client([
'base_uri' => 'https://cloud.langfuse.com', //choose as needed
'auth' => ['PUBLIC_KEY', 'SECRET_KEY'], //generate a set in your project
])));
$langfuse->prompt()->text(promptName: 'promptName')->compile(params: ['key' => 'value']);
$langfuse->prompt()->text(promptName: 'promptName')->compile(params: ['key' => 'value']);
$langfuse->prompt()->chat(promptName: 'chatName')->compile(params: ['key' => 'value']);
$langfuse->prompt()->list();
$langfuse->prompt()->create(promptName: 'promptName', prompt: 'text', type: PromptType::TEXT);
use DIJ\Langfuse\PHP;
// Creates a trace and a generation visible in Langfuse UI
$traceId = 'trace-id-123';
$langfuse->ingestion()->trace(
input: 'prompt text',
output: null,
traceId: $traceId,
name: 'name',
sessionId: null,
metadata: ['key' => 'value']
);
$langfuse->ingestion()->generation(
input: 'prompt text',
output: 'model output',
traceId: $traceId,
name: 'name',
sessionId: null,
promptName: 'promptName',
promptVersion: 1,
model: 'gpt-4o',
modelParameters: ['temperature' => 0.7],
metadata: ['key' => 'value']
);
Langfuse PHP was created by Tycho Engberink and is maintained by DIJ Digital under the MIT license.