ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Langfuse 开源 LLM 工程平台全解析:可观测性、提示管理、评估与自托管部署实战指南

Langfuse 开源 LLM 工程平台全解析:可观测性、提示管理、评估与自托管部署实战指南 Langfuse 开源 LLM 工程平台全解析可观测性、提示管理、评估与自托管部署实战指南【免费下载链接】langfuse Open source AI engineering platform: LLM evals, observability, metrics, prompt management, playground, datasets. Integrates with OpenTelemetry, LangChain, OpenAI SDK, LiteLLM, and more. YC W23项目地址: https://gitcode.com/GitHub_Trending/la/langfuseLangfuse 是一个开源的 LLM大语言模型工程平台帮助团队围绕 AI 应用完成开发、监控、评估与调试的闭环协作。本文基于仓库内 README.cn.md 的主体内容结合 docker-compose.yml、packages/shared/src/env.ts 等源码与配置系统讲解 Langfuse 的核心特性、自托管部署方式、集成生态与 10 分钟快速接入流程。读完本文你将掌握如何为 LLM 应用插桩采集 traces、如何用 Docker Compose 或 Helm 部署 Langfuse、如何通过 OpenAI 集成自动记录模型调用以及如何通过TELEMETRY_ENABLEDfalse关闭默认遥测。Langfuse 是什么Langfuse 是一个开源 LLM 工程平台定位是团队协作的「LLM 应用开发工作台」。它把 LLM 应用从开发到上线的关键环节——可观测性tracing、提示词管理prompt management、评估evaluation、数据集datasets、试玩playground和API——统一到一个平台中让数据在开发、测试、监控之间自由流动。官方对它的定位有四个关键词开发develop、监控monitor、评估evaluate、调试debug。在技术实现上Langfuse 支持几分钟内自托管并且经过了大量真实生产环境的实战考验。从仓库结构可以确认其工程形态这是一个 monorepo包含web/Next.js 前端与服务端、worker/后台任务队列处理、packages/shared/共享领域逻辑与 ClickHouse/Prisma 数据层三个核心部分另有ee/企业版扩展与fern/OpenAPI 规格定义。核心特性详解LLM 应用可观测性Tracing为应用插入仪表代码后即可将 traces 数据持续传送到 Langfuse从而追踪LLM 调用以及应用中的其他相关逻辑——例如检索retrieval、嵌入embedding或代理操作agent actions。这些数据以 trace / observation / span 的树状结构组织你可以在 Web 控制台中检查并调试复杂的日志和用户会话。从仓库结构看可观测性能力贯穿全栈web/src/pages/api/public/ingestion.ts、spans.ts、generations.ts、observations/、traces/等构成公开 ingest API 端点packages/shared/src/server/clickhouse/负责将 traces 写入 ClickHouse事件表定义见 packages/shared/src/eventsTable.ts 与 packages/shared/src/observationsTable.tsworker/中的队列如worker/src/queues/ingestionQueue.ts负责异步消费与批处理写入。提示管理Prompt ManagementLangfuse 帮助团队集中管理、版本控制并协作迭代提示词prompts。提示词以版本化的方式存储团队可以在不改变应用代码的前提下进行 A/B 式迭代。关键在于性能设计得益于服务器端与客户端的高效缓存仓库中LANGFUSE_CACHE_PROMPT_ENABLED、LANGFUSE_CACHE_PROMPT_TTL_SECONDS等配置项默认开启 1 小时缓存见 packages/shared/src/env.ts你可以在不给应用增加延迟的情况下反复迭代提示。评估Evaluations评估是 LLM 应用开发流程的关键组成部分Langfuse 提供了多种评估范式LLM 作为裁判LLM-as-a-judge用模型自动打分代码评估器Code evaluators编写自定义逻辑评估输出用户反馈收集直接采集终端用户对生成结果的评价手动标注人工在界面中打标自定义评估流水线通过 API/SDK 对接自己的评估流程。仓库中web/src/features/evals/目录包含 429 个文件含worker/src/features/evaluation/的 40 个服务端文件是 Langfuse 中体量最大的功能模块之一覆盖评估模板、运行器、结果聚合与 UI 全链路。数据集Datasets数据集为评估 LLM 应用提供测试集与基准benchmark。它们支持持续改进用真实生产数据沉淀回归测试集部署前测试在发布前用数据集跑通评估结构化实验对 prompt、模型、参数做可对比的对照实验灵活评估与框架集成可与 LangChain、LlamaIndex 等框架无缝整合。LLM 试玩平台Playground试玩平台用于测试和迭代提示词与模型配置缩短反馈循环、加速开发。它的独特之处在于与 tracing 深度联动当你在追踪记录中发现一个异常结果时可以直接从 trace 跳转到试玩平台带着真实上下文进行迭代调试。仓库对应实现位于 web/src/features/playground/。综合 APILangfuse 常被用来驱动定制化的 LLMOps 工作流程——开发者直接使用 Langfuse 提供的 API 构建模块。平台提供OpenAPI 规格fern/apis/server/definition/下共 39 个 YAML 定义文件另有web/public/generated/api/生成的规格类型化 SDK面向 Python 与 JS/TSPostman 集合。公开 API 端点集中在 web/src/pages/api/public/含traces/、generations.ts、sessions/、datasets/、prompts.ts、scores/、ingestion.ts、health.ts、ready.ts等可直接调用。部署 Langfuse方案总览部署方式适用场景说明Langfuse Cloud快速开始、免运维由 Langfuse 团队托管提供慷慨的免费额度爱好者计划无需信用卡Docker Compose本地开发与试用5 分钟内在本机跑起来适合本地/单机Docker Compose虚拟机单机生产在单台 VM 上用 Docker Compose 部署Kubernetes Helm生产推荐官方推荐的生产环境部署方式Terraform 模板云上生产提供 AWS、Azure、GCP 三套模板本地 Docker Compose 部署5 分钟上手克隆仓库并启动# 获取最新的 Langfuse 仓库副本 git clone https://github.com/langfuse/langfuse.git cd langfuse # 运行 Langfuse 的 docker compose docker compose up启动后Web 界面默认监听http://localhost:3000langfuse-web服务映射到主机 3000 端口。仓库根目录的 docker-compose.yml 定义了完整的服务栈共6 个核心组件服务镜像端口主机职责langfuse-webdocker.langfuse.com/langfuse/langfuse:43000:3000Next.js Web 应用与服务端 APIlangfuse-workerdocker.langfuse.com/langfuse/langfuse-worker:4127.0.0.1:3030:3030BullMQ 后台任务队列消费clickhousedocker.io/clickhouse/clickhouse-server:25.12127.0.0.1:8123/9000事件/trace 列式存储postgresdocker.io/postgres:17127.0.0.1:5432元数据与业务数据Prismaredisdocker.io/redis:7127.0.0.1:6379队列与缓存BullMQminiocgr.dev/chainguard/minio9090:9000S3 兼容对象存储媒体/事件/导出一个值得注意的安全设计除langfuse-web3000与minio9090外其余所有组件都只绑定到127.0.0.1外部机器无法直接触达数据库与队列服务同时建议在宿主机层仅放行langfuse-web与minio的入站流量。必须修改的默认凭据docker-compose.yml 中以# CHANGEME标记DATABASE_URLPostgreSQL 连接串默认postgresql://postgres:postgrespostgres:5432/postgresSALT默认mysaltENCRYPTION_KEY64 位十六进制字符串须通过openssl rand -hex 32生成——这一点由 packages/shared/src/env.ts 中的 Zod 校验强制保证必须为 256 bit / 64 个十六进制字符CLICKHOUSE_PASSWORD、LANGFUSE_S3_*_SECRET_ACCESS_KEYMinIO 的 secret、REDIS_AUTHRedis 密码默认myredissecret、POSTGRES_PASSWORD、MINIO_ROOT_PASSWORD。Compose 中所有变量都通过${VAR:-default}形式支持.env覆盖例如# .env与 docker-compose.yml 同目录 NEXTAUTH_URLhttp://your-domain:3000 ENCRYPTION_KEY$(openssl rand -hex 32) SALTyour-own-salt生产环境部署KubernetesHelm官方推荐的生产部署方式适合需要水平扩展、滚动发布与自愈的场景。虚拟机Docker Compose在单台 VM 上运行同一套 Compose 栈适合中小规模。Terraform针对 AWS、Azure、GCP 提供基础设施即代码模板便于在云上以可复现的方式搭建。集成生态主要集成第一方集成支持语言/平台描述SDKPython、JS/TS手动仪表化灵活性最高OpenAIPython、JS/TS直接替换 OpenAI SDK 实现自动仪表化LangchainPython、JS/TS向 Langchain 应用传入回调处理器实现自动仪表化LlamaIndexPython通过 LlamaIndex 回调系统自动仪表化HaystackPython通过 Haystack 内容追踪系统自动仪表化LiteLLMPython、JS/TS仅代理用任意 LLM 替代 GPT支持 Azure、OpenAI、Cohere、Anthropic、Ollama、VLLM、Sagemaker、HuggingFace、Replicate 等 100 模型Vercel AI SDKJS/TS面向 React、Next.js、Vue、Svelte、Node.js 的 TypeScript 工具包API通用直接调用公共 API提供 OpenAPI 规格Google VertexAI / Gemini模型接入 Google 上的基础模型与微调模型与 Langfuse 集成的第三方包名称类型描述Instructor库获取结构化 LLM 输出JSON、PydanticDSPy库系统性优化语言模型提示与权重的框架Amazon Bedrock模型在 AWS 上运行基础与微调模型Mirascope库构建 LLM 应用的 Python 工具包Ollama模型本地在本地机器运行开源 LLMAutoGen代理框架构建分布式代理的开源 LLM 平台Flowise聊天/代理界面JS/TS 无代码构建器Langflow聊天/代理界面基于 Python 的 LangChain UIDify聊天/代理界面带无代码构建器的开源 LLM 应用开发平台OpenWebUI聊天/代理界面自托管 LLM 聊天 Web UIPromptfoo工具开源 LLM 测试平台LobeChat聊天/代理界面开源聊天机器人平台Vapi平台开源语音 AI 平台Inferable代理构建分布式代理的开源 LLM 平台Gradio聊天/代理界面构建聊天 UI 等 Web 界面的开源 Python 库Goose代理构建分布式代理的开源 LLM 平台smolagents代理开源 AI 代理框架CrewAI代理多代理协作与工具调用框架快速入门记录你的第一个 LLM 调用第一步创建项目与 API 凭证创建 Langfuse 账户Cloud 版或先完成自托管在控制台中创建一个新项目在项目设置中创建新的API 凭证你会得到一对密钥sk-lf-...Secret Key与pk-lf-...Public Key。第二步安装依赖并配置环境安装 Python SDK 与 OpenAI 客户端pip install langfuse openai创建.env文件LANGFUSE_SECRET_KEYsk-lf-... LANGFUSE_PUBLIC_KEYpk-lf-... LANGFUSE_BASE_URLhttps://cloud.langfuse.com # 欧盟区域 # LANGFUSE_BASE_URLhttps://us.cloud.langfuse.com # 美洲区域若使用自托管实例将LANGFUSE_BASE_URL改为你自己的地址如http://localhost:3000。第三步使用observe()装饰器插桩observe()装饰器可以零侵入地追踪任何 Python LLM 应用它会自动把函数包裹为 trace 层级记录输入、输出、耗时与嵌套调用关系。同时使用 Langfuse 的OpenAI 集成from langfuse.openai import openai可自动捕获全部模型参数模型名、token 用量、延迟等。创建main.pyfrom langfuse import observe from langfuse.openai import openai # OpenAI 集成 observe() def story(): return openai.chat.completions.create( modelgpt-4o, messages[{role: user, content: What is Langfuse?}], ).choices[0].message.content observe() def main(): return story() main()代码中的调用链清晰地体现了 trace 的树形结构main是根 spanstory是它的子 spanOpenAI 的 HTTP 调用则由集成层自动记录为最内层的 generation observation。不使用 OpenAILangfuse 同样支持通过langfuse.observe() 手动trace/span/generation记录其他模型与框架LangChain、LlamaIndex、LiteLLM 等或使用 decorator 模式下任何函数调用。第四步在 Langfuse 中查看追踪记录运行main.py后登录 Langfuse 控制台进入对应项目即可在 Traces 页面看到刚记录的调用包含完整的层级结构main → story → LLM generation、模型参数、token 消耗、耗时以及输入输出内容。从此你可以开始调试异常结果、沉淀数据集、构建评估或从 trace 一键跳转 Playground 迭代提示词。安全、隐私与遥测Langfuse 非常重视数据安全与隐私。关于自托管部署有一个重要默认行为需要了解默认情况下Langfuse 会自动将自托管实例的基础使用统计数据上传至集中服务器PostHog用于了解 Langfuse 的使用情况改进最关键的功能跟踪整体使用数据供内部及外部如融资报告使用。遥测数据不包含原始 traces、prompts、observations、scores 或数据集内容——即你的业务数据绝不会被上报。对于 Langfuse OSS开源版可通过设置环境变量关闭遥测TELEMETRY_ENABLEDfalse该开关在 docker-compose.yml 中默认为TELEMETRY_ENABLED: ${TELEMETRY_ENABLED:-true}即默认开启、可通过.env覆盖为false。贡献与许可证如何参与Langfuse 欢迎社区贡献参与方式包括在 Discussions 中为功能想法投票提出并评论 Issue提交 PR——开发环境搭建步骤详见 CONTRIBUTING.md。从仓库结构看这是一个标准的 pnpm turbo monorepo见 package.json、pnpm-workspace.yaml、turbo.json开发时通常需要同时启动web/与worker/两个应用以及 Postgres/ClickHouse/Redis 等依赖参考根目录docker-compose.dev.yml。许可证本仓库除ee企业版文件夹外均采用MIT 许可证详见 LICENSE。这意味着你可以自由使用、修改与再分发开源部分而ee/目录下的企业特性遵循单独的许可条款。仓库内源码对照指引主题仓库路径Docker Compose 生产部署编排docker-compose.yml环境变量 Zod 校验含ENCRYPTION_KEY、缓存、Redis 等packages/shared/src/env.ts公开 API 端点ingestion/traces/scores/health 等web/src/pages/api/public/评估功能前端与服务端实现web/src/features/evals/、worker/src/features/evaluation/Playground 试玩平台web/src/features/playground/事件/观测 ClickHouse 表结构packages/shared/src/eventsTable.ts、packages/shared/src/observationsTable.ts后台队列ingestion/eval/experiment 等worker/src/queues/OpenAPI 规格定义fern/apis/server/definition/Web 与 Worker 的容器镜像构建web/Dockerfile、worker/Dockerfile结语Langfuse 以「开源 LLM 工程平台」为定位把可观测性、提示管理、评估、数据集、试玩与 API 六个能力整合为一条完整的 LLM 应用开发流水线。对个人开发者5 分钟的 Docker Compose 部署加上observe()装饰器即可获得全链路 trace对生产团队Helm/Terraform 部署、公开 API 与丰富的框架集成使其可以深度嵌入既有 LLMOps 体系。无论你是刚开始为第一个 LLM 应用插桩还是在为线上应用搭建评估与回归体系Langfuse 的这套「追踪—评估—迭代」闭环都值得作为起点。【免费下载链接】langfuse Open source AI engineering platform: LLM evals, observability, metrics, prompt management, playground, datasets. Integrates with OpenTelemetry, LangChain, OpenAI SDK, LiteLLM, and more. YC W23项目地址: https://gitcode.com/GitHub_Trending/la/langfuse创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表