Skip to content

DIJ-digital/langfuse-php

Repository files navigation

Langfuse PHP - A PHP Client for Langfuse API

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.

This package supports the following features:

Prompts

  • 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

Ingestion

  • Create traces
  • Create generations

Requires PHP 8.3 or PHP 8.4

⚡️ Install the package using Composer:

composer require dij-digital/langfuse-php  

How to use this package

Prompt

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);

Ingestion

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.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages