当前位置: 首页 > news >正文

Langfuse2.60.3:独立数据库+docker部署及环境变量详细说明

一、什么是Langfuse

Langfuse 是一个 **开源 LLM 工程** 平台。它帮助团队协作 **开发、监控、评估** 以及 **调试** AI 应用。Langfuse 可在几分钟内 **自托管**,并且经过 **实战考验**。其核心组件包括Web界面、Worker进程、Postgres数据库、Clickhouse存储等。

## ✨ 核心特性

[LLM 应用可观察性]:为你的应用插入仪表代码,并开始将追踪数据传送到 Langfuse,从而追踪 LLM 调用及应用中其他相关逻辑(如检索、嵌入或代理操作)

[提示管理]:帮助你集中管理、版本控制并协作迭代提示。得益于服务器和客户端的高效缓存,你可以在不增加延迟的情况下反复迭代提示。

[评估]是 LLM 应用开发流程的关键组成部分,Langfuse 能够满足你的多样需求。它支持 LLM 作为"裁判"、用户反馈收集、手动标注以及通过 API/SDK 实现自定义评估流程。

[数据集]为评估你的 LLM 应用提供测试集和基准。它们支持持续改进、部署前测试、结构化实验、灵活评估,并能与 LangChain、LlamaIndex 等框架无缝整合。

[LLM 试玩平台]是用于测试和迭代提示及模型配置的工具,缩短反馈周期,加速开发。当你在追踪中发现异常结果时,可以直接跳转至试玩平台进行调整。

[综合 API]:Langfuse 常用于驱动定制化的 LLMOps 工作流程,同时利用 Langfuse 提供的构建模块和 API。我们提供 OpenAPI 规格、Postman 集合以及针对 Python 和 JS/TS 的类型化 SDK。 

二、架构图

Langfuse仅依赖于开源组件,可以在本地、云基础设施或本地部署。

Langfuse由两个应用程序容器、存储组件和可选的LLM API/网关组成。

应用程序容器

Langfuse Web:服务于Langfuse UI和API的主要Web应用程序。

Langfuse Worker:异步处理事件的Worker。

存储组件:

Postgres:事务性工作负载的主数据库。

Clickhouse:高性能OLAP数据库,用于存储跟踪、观察和分数。

Redis/Valkey缓存:一种快速的内存数据结构存储。用于队列和缓存操作。

S3/Blob存储:对象存储,用于保存所有传入事件、多模式输入和大型导出。

LLM API/网关:某些功能依赖于外部LLM API或网关。

三、​​​​​​​安装部署

3.1、拉取指定版本镜像  

注:最新版本存在问题。

docker pull langfuse/langfuse:2.60.3

​​​​​​​3.2、运行容器

docker run  -d --name langfuse \

  -e DATABASE_URL=postgresql://langfuse:Sinops1234~@192.168.1.201:5432/langfuse_db \

  -e NEXTAUTH_URL=http://192.168.1.204:3001 \

  -e NEXTAUTH_SECRET=mysecret \

  -e SALT=mysalt   \

  -e CLICKHOUSE_MIGRATION_URL=clickhouse://192.168.1.204:9000 \

  -e CLICKHOUSE_URL=http://192.168.1.204:8123 \

  -e CLICKHOUSE_USER=default \

  -e CLICKHOUSE_PASSWORD=sinops@2024 \

  -e REDIS_HOST=192.168.1.204 \

  -e REDIS_PORT=6379 \

  -e REDIS_AUTH=Sinops1234~ \

  -e LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT=http://192.168.1.204:9000 \

  -e LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID=minioadmin \

  -e LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY=minioadmin \

  -p 3001:3000 \

  langfuse/langfuse:latest

3.3、postgresql的表

3.4、CLICKHOUSE的表

四、​​​​​​​登录界面

​​​​​​http://192.168.1.204:3001/

四、​​​​​​​环境参数说明

​​​​​​​4.1、PostgreSQL 数据库配置(核心存储)

Langfuse 使用 PostgreSQL 存储结构化数据(如 trace、span、event 等)。

变量

是否必需 / 默认值

说明

DATABASE_URL

✅ 必需

PostgreSQL 连接字符串,格式:postgresql://user:pass@host:port/dbname。<br>也可用 DATABASE_HOSTUSERNAMEPASSWORDNAMEARGS 拆分配置。

DIRECT_URL

默认 = DATABASE_URL

用于数据库迁移(migrations)的连接串。<br>建议在使用连接池(如 PgBouncer)时单独设置,避免迁移失败。

SHADOW_DATABASE_URL

可选

当主数据库用户无 CREATE DATABASE 权限时,需提供一个“影子数据库”用于 Prisma 迁移。<br>云数据库(如 AWS RDS)常需此配置。

​​​​​​​​​​​​​​4.2、ClickHouse 配置(高性能分析引擎)

ClickHouse 用于存储大量事件数据,支持快速查询与聚合分析。

变量

是否必需 / 默认值

说明

CLICKHOUSE_MIGRATION_URL

✅ 必需

ClickHouse 迁移连接地址,使用 TCP 协议端口(9000 或 9440),格式:clickhouse://host:9000

CLICKHOUSE_MIGRATION_SSL

false

是否对迁移连接启用 SSL 加密

CLICKHOUSE_URL

✅ 必需

ClickHouse HTTP 接口地址,用于应用访问,格式:http://host:8123 或 https://...

CLICKHOUSE_USER

✅ 必需

用户名,需具备 SELECTINSERTALTERCREATEDELETE 权限

CLICKHOUSE_PASSWORD

✅ 必需

对应用户的密码

CLICKHOUSE_DB

default

使用的数据库名

CLICKHOUSE_CLUSTER_ENABLED

true

是否启用集群模式(ON CLUSTER)。单节点部署请设为 false

LANGFUSE_AUTO_CLICKHOUSE_MIGRATION_DISABLED

false

是否禁用启动时自动执行 ClickHouse 数据库迁移

4.3、Redis 缓存配置(提升性能)

Redis 用于缓存 API Key、Prompts 等高频访问数据,显著降低数据库压力。

变量

是否必需 / 默认值

说明

REDIS_CONNECTION_STRING

✅ 必需

Redis 连接串,如 redis://:password@host:port<br>也可拆分为 REDIS_HOSTPORTUSERNAMEAUTH

REDIS_CLUSTER_ENABLED

false

是否启用 Redis 集群模式

REDIS_CLUSTER_NODES

可选

当 REDIS_CLUSTER_ENABLED=true 时,列出所有节点 host:port,用逗号分隔,例如:redis1:6379,redis2:6379

REDIS_AUTH

可选

Redis 认证密码(若未包含在连接串中)

4.4、安全与认证配置(关键!)

这些变量直接影响系统安全性,请务必正确生成并保密。

变量

是否必需

/ 默认值

说明

NEXTAUTH_URL

✅ 必需

Langfuse 前端部署地址,如 https://your-langfuse.com 或 http://localhost:3000<br>用于 OAuth 登录回调和 Slack 链接生成

NEXTAUTH_SECRET

✅ 必需

NextAuth 登录会话加密密钥<br>生成方式:openssl rand -base64 32(至少 256 bit 安全熵)

SALT

✅ 必需

用于加盐哈希 API Key,防止彩虹表攻击<br>生成方式同上:openssl rand -base64 32

ENCRYPTION_KEY

✅ 必需

敏感数据加密密钥(如 secret prompts)<br>必须是 256 位十六进制字符串(64 字符)<br>生成命令:openssl rand -hex 32

4.5、对象存储(S3 兼容)配置

Langfuse 支持将事件、批处理导出、媒体文件上传到 S3 或兼容服务(如 MinIO、阿里云 OSS)。

1. 事件上传(Event Uploads)

变量

是否必需 / 默认值

说明

LANGFUSE_S3_EVENT_UPLOAD_BUCKET

✅ 必需

存储事件数据的桶名称

LANGFUSE_S3_EVENT_UPLOAD_PREFIX

""

桶内子路径前缀,如 events/,必须以 / 结尾

LANGFUSE_S3_EVENT_UPLOAD_REGION

可选

桶所在区域(如 us-east-1

LANGFUSE_S3_EVENT_UPLOAD_ENDPOINT

可选

自定义 S3 兼容端点(如 MinIO 地址)

LANGFUSE_S3_EVENT_UPLOAD_ACCESS_KEY_ID

可选

访问密钥 ID(若需)

LANGFUSE_S3_EVENT_UPLOAD_SECRET_ACCESS_KEY

可选

秘钥

LANGFUSE_S3_EVENT_UPLOAD_FORCE_PATH_STYLE

可选

是否强制路径风格(MinIO 必须设为 true

2. 批量导出(Batch Exports)

变量

是否必需 / 默认值

说明

LANGFUSE_S3_BATCH_EXPORT_ENABLED

false

是否启用 S3 批量导出功能

LANGFUSE_S3_BATCH_EXPORT_BUCKET

✅ 必需(启用后)

导出文件存储桶

LANGFUSE_S3_BATCH_EXPORT_PREFIX

""

导出路径前缀

LANGFUSE_S3_BATCH_EXPORT_REGION

可选

区域

LANGFUSE_S3_BATCH_EXPORT_ENDPOINT

可选

自定义端点

LANGFUSE_S3_BATCH_EXPORT_ACCESS_KEY_ID

可选

密钥

LANGFUSE_S3_BATCH_EXPORT_SECRET_ACCESS_KEY

可选

秘钥

LANGFUSE_S3_BATCH_EXPORT_FORCE_PATH_STYLE

可选

MinIO 需设为 true

LANGFUSE_S3_BATCH_EXPORT_EXTERNAL_ENDPOINT

可选

外部可访问的预签名 URL 地址(如 CDN 或 VPC 内网地址)

3. 媒体文件上传(Media Uploads)

变量

是否必需 / 默认值

说明

LANGFUSE_S3_MEDIA_UPLOAD_BUCKET

✅ 必需

存储音频、视频、图片等媒体文件的桶

LANGFUSE_S3_MEDIA_UPLOAD_PREFIX

""

路径前缀

LANGFUSE_S3_MEDIA_UPLOAD_REGION

可选

区域

LANGFUSE_S3_MEDIA_UPLOAD_ENDPOINT

可选

端点

LANGFUSE_S3_MEDIA_UPLOAD_ACCESS_KEY_ID

可选

密钥

LANGFUSE_S3_MEDIA_UPLOAD_SECRET_ACCESS_KEY

可选

秘钥

LANGFUSE_S3_MEDIA_UPLOAD_FORCE_PATH_STYLE

可选

MinIO 需设为 true

LANGFUSE_S3_MEDIA_MAX_CONTENT_LENGTH

1_000_000_000 (~1GB)

允许上传的最大文件大小(字节)

LANGFUSE_S3_MEDIA_DOWNLOAD_URL_EXPIRY_SECONDS

3600 (1小时)

预签名下载链接有效期

4. 并发控制

变量

默认值

说明

LANGFUSE_S3_CONCURRENT_WRITES

50

最大并发写入数(防止 socket 耗尽)

LANGFUSE_S3_CONCURRENT_READS

50

最大并发读取数

4.6、服务运行与网络配置

变量

是否必需 / 默认值

说明

PORT

3000 (web), 3030 (worker)

服务监听端口

HOSTNAME

localhost

容器内绑定地址。如部署在 Google Cloud Run 等平台,需设为 0.0.0.0 才能外部访问

4.7、缓存策略配置(性能调优)

变量

默认值

说明

LANGFUSE_CACHE_API_KEY_ENABLED

true

是否缓存 API Key(强烈建议开启)

LANGFUSE_CACHE_API_KEY_TTL_SECONDS

300 (5分钟)

API Key 缓存过期时间

LANGFUSE_CACHE_PROMPT_ENABLED

true

是否缓存 Prompt 配置

LANGFUSE_CACHE_PROMPT_TTL_SECONDS

300 (5分钟)

Prompt 缓存过期时间

4.8、日志与可观测性

变量

默认值

说明

LANGFUSE_LOG_LEVEL

info

日志级别:tracedebuginfowarnerrorfatal

LANGFUSE_LOG_FORMAT

text

输出格式:text(易读)或 json(适合日志系统采集)

LANGFUSE_LOG_PROPAGATED_HEADERS

指定要通过 OpenTelemetry Baggage 传递的日志头字段,如 x-request-id,x-user-id,便于链路追踪

4.9、自动迁移控制

变量

默认值

说明

LANGFUSE_AUTO_POSTGRES_MIGRATION_DISABLED

false

是否禁用启动时自动数据库迁移<br>⚠️ 不推荐关闭,除非你手动执行迁移

http://www.lryc.cn/news/623294.html

相关文章:

  • Java 中重载与重写的全面解析(更新版)
  • Mybatis-3自己实现MyBatis底层机制
  • 从冒泡到快速排序:探索经典排序算法的奥秘(二)
  • PHP反序列化的CTF题目环境和做题复现第1集
  • 企业运维规划及Linux介绍虚拟环境搭建
  • python---包
  • 一文速通Python并行计算:14 Python异步编程-协程的管理和调度
  • CF每日3题(1500-1700)
  • P2169 正则表达式
  • w嵌入式分享合集66
  • 【Bluedroid】A2DP控制通道UIPC机制深度解析(btif_a2dp_control_init)
  • Java8~Java21重要新特性
  • JAVA面试汇总(四)JVM(一)
  • 028 动静态库 —— 动态库
  • duiLib 实现鼠标拖动标题栏时,窗口跟着拖动
  • Vue 3.5重磅更新:响应式Props解构,让组件开发更简洁高效
  • 分享一个Oracle表空间自动扩容与清理脚本
  • CPP多线程3:async和future、promise
  • MATLAB基础训练实验
  • 超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
  • 深度剖析Redisson分布式锁项目实战
  • 【数据分享】大清河(大庆河)流域上游土地利用
  • AutoDL使用学习
  • K8s核心组件全解析
  • 服务器配置开机自启动服务
  • GEEPython-demo1:利用Sentinel-2监测北京奥林匹克森林公园2024年NDVI变化(附Python版)
  • [CSP-J2020] 方格取数
  • Vue组件生命周期钩子:深入理解组件的生命周期阶段
  • Vue 3.5+ Teleport defer 属性详解:解决组件渲染顺序问题的终极方案
  • 【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)