mtyrtov/langfuse-php
最新稳定版本:v0.0.4
Composer 安装命令:
composer require mtyrtov/langfuse-php
包简介
Langfuse SDK
README 文档
README
A PHP SDK for interacting with the Langfuse API. This package provides tools for tracing, scores, annotation queues, dataset runs and prompt management to enable comprehensive LLM observability.
Requirements
- PHP >= 8.1
Installation
composer require mtyrtov/langfuse-php:dev-master
Quick Start
use Langfuse\LangfuseClient; use Langfuse\LangfuseProfiler; require_once "vendor/autoload.php"; # Initialize the client $client = new LangfuseClient( 'your-public-key', 'your-secret-key', 'https://your-langfuse-host.com' # Optional, defaults to http://127.0.0.1:3000 ); $profiler = new LangfuseProfiler($client);
Core Features
Tracing
Traces represent full user sessions or requests in your application.
# Create a trace $trace = $profiler->trace('user-query') ->setSessionId() // Automatically generates a session ID ->setUserId('user-123'); # Set input and output $trace->setInput('Hello, how are you?'); $trace->setOutput("I'm fine, thank you!");
Spans
Spans represent logical sections within a trace, such as specific processing steps.
# Create a span within a trace $classificationSpan = $trace->span('classification'); # End the span when the operation is complete $classificationSpan->end();
Generations
Generations track individual LLM calls and their results.
# Create a generation within a span $generation = $classificationSpan->generation('model-call') ->withModel('gpt-4.1-mini') ->withModelParameters(['temperature' => 0]) ->setInput(['role' => 'user', 'content' => 'Hello there']) ->setOutput('AI response here');
Flushing Data
Ensure all data is sent to Langfuse before your application terminates.
$result = $profiler->flush();
Laravel
class LangfuseProvider extends ServiceProvider { public function register(): void { $this->app->singleton(LangfuseClient::class, function ($app) { return new LangfuseClient( # Your variables from .env config('services.langfuse.public_key'), config('services.langfuse.secret_key'), config('services.langfuse.base_uri') ); }); $this->app->singleton(LangfuseProfiler::class, function ($app) { return new LangfuseProfiler($app->make(LangfuseClient::class)); }); } public function boot(): void { // } }
Advanced Usage
Working with Multiple Generations
# Create multiple generations within a span $generation1 = $trace->span('classification')->generation('generation-1') ->setModel('gpt-4.1-mini') ->setModelParameters(['temperature' => 0.5]) ->setPrompt($prompt) ->setInput($messages) ->setOutput('RESULT_1'); $generation2 = $trace->span('classification')->generation('generation-2') ->setModel('gpt-4.1-nano') ->setModelParameters(['temperature' => 0]) ->setPrompt($prompt) ->setInput($messages) ->setOutput('RESULT_2');
统计信息
- 总下载量: 38
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-05-27