如何通过.Net代码创建Langfuse Trace?求API端点及负载
Langfuse Trace 写入的API端点及请求负载说明
核心API端点
- 创建Trace的POST接口:
{yourLangfuseHost}/api/public/traces
注意:请求需通过Basic身份验证,将Langfuse控制台获取的publicKey与secretKey用冒号拼接后做Base64编码,在请求头中添加:Authorization: Basic <Base64编码后的密钥串>
请求负载(JSON格式)
以下是完整的可选字段示例,必填字段仅需保证结构合法(name建议填写以区分不同Trace):
{ "id": "custom-trace-id-001", // 可选,自定义唯一ID,不填则由Langfuse自动生成 "name": "用户智能问答流程", // 推荐填写,用于标识Trace的业务场景 "userId": "user_12345", // 可选,关联业务系统中的用户ID "metadata": { // 可选,自定义业务元数据,支持任意键值对 "model_version": "gpt-4o-mini-2024-07-18", "business_scene": "在线客服咨询", "prompt_template_id": "template_qa_001" }, "startTime": "2024-09-15T14:30:00.000Z" // 可选,Trace开始时间,ISO 8601格式,不填则使用服务器当前时间 }
扩展说明
- 若需在Trace下添加子Span(如OpenAI调用、工具执行等步骤),可使用POST接口
{yourLangfuseHost}/api/public/spans,负载中需指定traceId字段关联已创建的Trace ID - 所有时间字段需严格遵循ISO 8601格式(如
YYYY-MM-DDTHH:mm:ss.sssZ) - 接口响应会返回创建的Trace完整信息,其中
id字段为后续关联Span的关键标识
.Net调用示例
using System.Net.Http; using System.Text; using System.Text.Json; // 初始化HttpClient并配置身份验证 var httpClient = new HttpClient { BaseAddress = new Uri("{yourLangfuseHost}") }; var apiCredentials = $"{yourLangfusePublicKey}:{yourLangfuseSecretKey}"; var base64Credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(apiCredentials)); httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", base64Credentials); // 构造Trace请求负载 var traceRequest = new { name = "用户智能问答流程", userId = "user_12345", metadata = new { model_version = "gpt-4o-mini-2024-07-18", business_scene = "在线客服咨询" } }; // 发送请求并处理响应 var jsonContent = new StringContent(JsonSerializer.Serialize(traceRequest), Encoding.UTF8, "application/json"); var response = await httpClient.PostAsync("api/public/traces", jsonContent); response.EnsureSuccessStatusCode(); // 抛出异常处理请求失败情况 var traceResponse = await response.Content.ReadFromJsonAsync<JsonElement>(); var traceId = traceResponse.GetProperty("id").GetString(); // 获取创建的Trace ID,用于后续Span关联
内容的提问来源于stack exchange,提问作者chinh nguyen van
相关产品推荐
相关产品推荐

