[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-truera--trulens":3,"tool-truera--trulens":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":76,"owner_twitter":77,"owner_website":78,"owner_url":79,"languages":80,"stars":114,"forks":115,"last_commit_at":116,"license":117,"difficulty_score":32,"env_os":118,"env_gpu":118,"env_ram":118,"env_deps":119,"category_tags":122,"github_topics":124,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":138,"updated_at":139,"faqs":140,"releases":169},7891,"truera\u002Ftrulens","trulens","Evaluation and Tracking for LLM Experiments and AI Agents","TruLens 是一款专为大语言模型（LLM）实验和 AI 智能体设计的评估与追踪工具。在开发涉及提示词、模型、检索器及知识库的复杂应用时，仅凭主观感觉难以准确判断系统表现，TruLens 正是为了解决这一痛点而生。它帮助开发者系统性地识别应用中的失败模式，通过量化指标替代模糊的“体感测试”，从而支持持续迭代优化。\n\n该工具主要面向 AI 应用开发者、研究人员及工程师，特别是那些正在构建检索增强生成（RAG）系统或需要监控 AI 智能体行为的团队。TruLens 的核心技术亮点在于其细粒度且与技术栈无关的插桩能力，能够深入应用内部进行全方位监控。它引入了独特的“反馈函数”机制，允许用户自定义评估标准（如诚实性、无害性、有用性），并提出了\"RAG 三元组”概念以针对性地分析检索链路的各个环节。此外，TruLens 提供直观的可视化界面，方便用户对比不同版本的应用性能，让模型优化过程更加科学、透明且高效。无论是从零构建原型还是维护生产级应用，TruLens 都是提升 LLM 应用可靠性的得力助手。","![PyPI - Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Ftrulens?label=trulens&link=https%3A%2F%2Fpypi.org%2Fproject%2Ftrulens%2F)\n[![Azure Build Status](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_readme_3323fe13e747.png)](https:\u002F\u002Fdev.azure.com\u002Ftruera\u002Ftrulens\u002F_build\u002Flatest?definitionId=8&branchName=main)\n![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ftruera\u002Ftrulens)\n![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Ftrulens-core)\n[![Discourse](https:\u002F\u002Fimg.shields.io\u002Fdiscourse\u002Fusers?server=https:\u002F\u002Fsnowflake.discourse.group\u002F)](https:\u002F\u002Fsnowflake.discourse.group\u002Fc\u002Fai-research-and-development-community\u002Ftrulens\u002F97)\n[![Docs](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-trulens.org-blue)](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002F)\n[![Open In Colab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftruera\u002Ftrulens\u002Fblob\u002Fmain\u002Fexamples\u002Fquickstart\u002Flangchain_quickstart.ipynb)\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Ftruera\u002Ftrulens)\n\n# 🦑 Welcome to TruLens!\n\n![TruLens](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_readme_bdfd36b8b6c6.png)\n\n**Don't just vibe-check your LLM app!** Systematically evaluate and track your\nLLM experiments with TruLens. As you develop your app including prompts, models,\nretrievers, knowledge sources and more, *TruLens* is the tool you need to\nunderstand its performance.\n\nFine-grained, stack-agnostic instrumentation and comprehensive evaluations help\nyou to identify failure modes & systematically iterate to improve your\napplication.\n\nRead more about the core concepts behind TruLens including [Feedback Functions](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002Fcore_concepts\u002Ffeedback_functions\u002F),\n[The RAG Triad](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002Fcore_concepts\u002Frag_triad\u002F),\nand [Honest, Harmless and Helpful Evals](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002Fcore_concepts\u002Fhonest_harmless_helpful_evals\u002F).\n\n## TruLens in the development workflow\n\nBuild your first prototype then connect instrumentation and logging with\nTruLens. Decide what feedbacks you need, and specify them with TruLens to run\nalongside your app. Then iterate and compare versions of your app in an\neasy-to-use user interface 👇\n\n![Architecture\nDiagram](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_readme_e3639b5ce9ca.png)\n\n## Installation and Setup\n\nInstall the trulens pip package from PyPI.\n\n```bash\n    pip install trulens\n```\n\n## Quick Usage\n\nWalk through how to instrument and evaluate a RAG built from scratch with\nTruLens.\n\n[![Open In\nColab](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftruera\u002Ftrulens\u002Fblob\u002Fmain\u002Fexamples\u002Fquickstart\u002Fquickstart.ipynb)\n\n### 💡 Contributing & Community\n\nInterested in contributing? See our [contributing\nguide](https:\u002F\u002Fwww.trulens.org\u002Fcontributing\u002F) for more details.\n\nThe best way to support TruLens is to give us a ⭐ on\n[GitHub](https:\u002F\u002Fwww.github.com\u002Ftruera\u002Ftrulens) and join our [discourse\ncommunity](https:\u002F\u002Fsnowflake.discourse.group\u002Fc\u002Fai-research-and-development-community\u002Ftrulens\u002F97)!\n","![PyPI - 版本](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Ftrulens?label=trulens&link=https%3A%2F%2Fpypi.org%2Fproject%2Ftrulens%2F)\n[![Azure 构建状态](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_readme_3323fe13e747.png)](https:\u002F\u002Fdev.azure.com\u002Ftruera\u002Ftrulens\u002F_build\u002Flatest?definitionId=8&branchName=main)\n![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Ftruera\u002Ftrulens)\n![PyPI - 下载量](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Ftrulens-core)\n[![Discourse](https:\u002F\u002Fimg.shields.io\u002Fdiscourse\u002Fusers?server=https:\u002F\u002Fsnowflake.discourse.group\u002F)](https:\u002F\u002Fsnowflake.discourse.group\u002Fc\u002Fai-research-and-development-community\u002Ftrulens\u002F97)\n[![文档](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-trulens.org-blue)](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002F)\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftruera\u002Ftrulens\u002Fblob\u002Fmain\u002Fexamples\u002Fquickstart\u002Flangchain_quickstart.ipynb)\n[![Ask DeepWiki](https:\u002F\u002Fdeepwiki.com\u002Fbadge.svg)](https:\u002F\u002Fdeepwiki.com\u002Ftruera\u002Ftrulens)\n\n# 🦑 欢迎使用 TruLens！\n\n![TruLens](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_readme_bdfd36b8b6c6.png)\n\n**别再只凭感觉检查你的 LLM 应用了！** 使用 TruLens 系统地评估并跟踪你的 LLM 实验。在开发应用时，无论是提示词、模型、检索器还是知识源等各个方面，*TruLens* 都是你理解应用性能所必需的工具。\n\n细粒度且与技术栈无关的插桩和全面的评估，可以帮助你识别失败模式，并系统性地迭代以改进你的应用。\n\n深入了解 TruLens 背后的核心概念，包括 [反馈函数](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002Fcore_concepts\u002Ffeedback_functions\u002F)、[RAG 三联体](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002Fcore_concepts\u002Frag_triad\u002F) 以及 [诚实、无害、有益的评估](https:\u002F\u002Fwww.trulens.org\u002Fgetting_started\u002Fcore_concepts\u002Fhonest_harmless_helpful_evals\u002F)。\n\n## TruLens 在开发流程中的应用\n\n先构建你的第一个原型，然后通过 TruLens 连接插桩和日志记录功能。确定你需要哪些反馈，并使用 TruLens 将其配置为与你的应用并行运行。随后，你可以在一个易于使用的用户界面中迭代并比较不同版本的应用 👇\n\n![架构图](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_readme_e3639b5ce9ca.png)\n\n## 安装与设置\n\n从 PyPI 安装 trulens pip 包。\n\n```bash\n    pip install trulens\n```\n\n## 快速使用\n\n逐步了解如何使用 TruLens 对从零开始构建的 RAG 应用进行插桩和评估。\n\n[![在 Colab 中打开](https:\u002F\u002Fcolab.research.google.com\u002Fassets\u002Fcolab-badge.svg)](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftruera\u002Ftrulens\u002Fblob\u002Fmain\u002Fexamples\u002Fquickstart\u002Fquickstart.ipynb)\n\n### 💡 贡献与社区\n\n有兴趣参与贡献吗？请参阅我们的 [贡献指南](https:\u002F\u002Fwww.trulens.org\u002Fcontributing\u002F) 获取更多详情。\n\n支持 TruLens 的最佳方式是在 [GitHub](https:\u002F\u002Fwww.github.com\u002Ftruera\u002Ftrulens) 上给我们点个赞，并加入我们的 [Discourse 社区](https:\u002F\u002Fsnowflake.discourse.group\u002Fc\u002Fai-research-and-development-community\u002Ftrulens\u002F97)!","# TruLens 快速上手指南\n\nTruLens 是一款用于系统化评估和追踪大语言模型（LLM）实验的开源工具。它提供细粒度的、与框架无关的插桩功能，帮助你识别应用中的失败模式，并通过综合评估持续迭代优化你的 RAG 或 LLM 应用。\n\n## 环境准备\n\n*   **系统要求**：支持 Linux、macOS 和 Windows。\n*   **Python 版本**：建议 Python 3.8 及以上版本。\n*   **前置依赖**：\n    *   已安装 `pip` 包管理工具。\n    *   （可选）若需运行示例中的 RAG 流程，建议预先安装 `langchain` 及相关向量数据库库。\n\n## 安装步骤\n\n通过 PyPI 安装核心包：\n\n```bash\npip install trulens\n```\n\n> **提示**：国内开发者若遇到下载速度慢的问题，可使用清华或阿里云镜像源加速安装：\n> ```bash\n> pip install trulens -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n## 基本使用\n\n以下是最简单的使用流程，展示如何对一个从零构建的 RAG 应用进行插桩和评估。你也可以直接在 Google Colab 中运行官方提供的 [快速入门 Notebook](https:\u002F\u002Fcolab.research.google.com\u002Fgithub\u002Ftruera\u002Ftrulens\u002Fblob\u002Fmain\u002Fexamples\u002Fquickstart\u002Fquickstart.ipynb)。\n\n### 1. 初始化 TruLens\n在你的 Python 脚本中导入并初始化 TruLens，设置数据库连接（默认使用本地 SQLite）。\n\n```python\nfrom trulens import TruSession\n\nsession = TruSession()\nsession.reset_database() # 可选：重置数据库以开始新的实验\n```\n\n### 2. 定义反馈函数 (Feedback Functions)\n定义你希望评估的指标，例如“上下文相关性”或“答案真实性”。\n\n```python\nfrom trulens.feedback import Feedback\nfrom trulens.providers.openai import OpenAI\n\n# 初始化提供者 (需要配置 OPENAI_API_KEY 环境变量)\nprovider = OpenAI()\n\n# 定义一个评估上下文相关性的反馈函数\nf_context_relevance = Feedback(\n    provider.context_relevance,\n    name=\"Context Relevance\"\n).on_input_output()\n```\n\n### 3. 包装你的应用\n将你的 LLM 链或应用逻辑包裹在 `TruChain` (针对 LangChain) 或其他对应的包装器中，以便自动记录输入、输出和中间状态。\n\n```python\nfrom trulens.apps.langchain import TruChain\nfrom langchain.chains import RetrievalQA # 假设你有一个现有的 LangChain 链\n\n# 假设 qa_chain 是你已经构建好的 LangChain 对象\ntru_recorder = TruChain(\n    qa_chain,\n    app_name=\"My_RAG_App\",\n    feedbacks=[f_context_relevance]\n)\n\n# 启动记录上下文管理器\nwith tru_recorder as recording:\n    response = qa_chain.run(\"你的测试问题是什么？\")\n```\n\n### 4. 查看评估结果\n运行结束后，你可以启动 TruLens 的仪表盘界面，在浏览器中直观地对比不同版本的实验结果和反馈得分。\n\n```bash\ntrulens\n```\n\n执行该命令后，终端会显示一个本地 URL（通常是 `http:\u002F\u002Flocalhost:8501`），在浏览器中打开即可看到详细的评估报表。","某电商团队正在开发基于 RAG 架构的智能客服助手，旨在利用内部知识库自动回答用户关于退货政策和商品详情的咨询。\n\n### 没有 trulens 时\n- **评估靠“体感”**：团队仅凭开发人员手动测试几条问答来验证效果，缺乏系统性指标，难以发现模型在特定场景下的隐性失效。\n- **故障难定位**：当回答出现幻觉或错误时，无法区分是检索环节找错了文档，还是生成环节理解偏差，排查如同“大海捞针”。\n- **迭代无依据**：在调整 Prompt 或更换向量模型后，缺乏量化数据对比新旧版本的表现，优化过程全靠猜测。\n- **反馈滞后**：用户投诉积累到一定程度才意识到问题严重性，无法在开发阶段提前拦截有害或不诚实的回答。\n\n### 使用 trulens 后\n- **系统化量化评估**：通过内置的“诚实、无害、有帮助”反馈函数，自动对成千上万条测试用例打分，将模糊的“体感”转化为精确的性能报表。\n- **全链路归因分析**：利用细粒度埋点技术，清晰展示每个问题的得分是来自检索内容质量低，还是大模型生成逻辑错，迅速锁定故障根因。\n- **可视化版本对比**：在仪表盘中直接并列对比不同实验版本的得分趋势，用数据驱动决策，明确知道哪次迭代真正提升了效果。\n- **实时风险拦截**：在应用上线前自动运行评估流水线，即时标记潜在的幻觉或有害输出，确保只有高质量的回答能触达用户。\n\ntrulens 将原本黑盒且依赖直觉的 LLM 开发流程，转变为可观测、可度量且数据驱动的标准化工程实践。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Ftruera_trulens_bdfd36b8.png","truera","TruEra","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Ftruera_cf0d6277.png","Enabling people and machines to make better decisions together.",null,"truera_ai","https:\u002F\u002Ftruera.com\u002F","https:\u002F\u002Fgithub.com\u002Ftruera",[81,85,89,93,97,101,104,108,111],{"name":82,"color":83,"percentage":84},"Python","#3572A5",85.9,{"name":86,"color":87,"percentage":88},"Jupyter Notebook","#DA5B0B",8.4,{"name":90,"color":91,"percentage":92},"TypeScript","#3178c6",5.2,{"name":94,"color":95,"percentage":96},"Makefile","#427819",0.3,{"name":98,"color":99,"percentage":100},"Shell","#89e051",0.1,{"name":102,"color":103,"percentage":100},"JavaScript","#f1e05a",{"name":105,"color":106,"percentage":107},"Mako","#7e858d",0,{"name":109,"color":110,"percentage":107},"CSS","#663399",{"name":112,"color":113,"percentage":107},"HTML","#e34c26",3247,263,"2026-04-15T13:25:24","MIT","未说明",{"notes":120,"python":118,"dependencies":121},"README 中未明确列出具体的操作系统、GPU、内存或 Python 版本要求。该工具通过 PyPI 安装（pip install trulens），旨在作为与模型栈无关（stack-agnostic）的评估和监控层，通常配合 LangChain 等框架使用。具体资源需求取决于所评估的基础大模型（LLM）或应用程序本身的配置，而非 TruLens 库本身。",[64],[123,14,13,35],"其他",[125,126,127,128,129,130,131,132,133,134,135,136,137],"machine-learning","neural-networks","explainable-ml","llmops","ai-monitoring","ai-observability","evals","llm-evaluation","llms","ai-agents","llm-eval","agentops","agent-evaluation","2026-03-27T02:49:30.150509","2026-04-16T08:12:12.204592",[141,146,151,156,161,165],{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},35357,"如何在使用 OpenAI Provider 时自定义 base_url（例如连接本地部署或兼容接口）？","在初始化 OpenAI Provider 时，可以直接将 `base_url` 作为关键字参数传入。示例代码如下：\n\n```python\nfrom trulens_eval.feedback.provider import OpenAI\n\n# 使用自定义 base_url 初始化 OpenAI provider\nprovider = OpenAI(base_url=\"https:\u002F\u002Fyour-custom-base-url.com\")\n```\n\n如果是使用 Azure OpenAI 部署，可以使用 `AzureOpenAI` 类：\n```python\nfrom trulens.providers.openai.provider import AzureOpenAI\n\nfeedback_provider = AzureOpenAI(\n    deployment_name=\"glm-4v-9b\",\n    azure_endpoint=\"http:\u002F\u002F0.0.0.0:8000\u002Fv1\u002F\",\n    api_key=\"your_api_key\"\n)\n```\n确保传入正确的 endpoint 和 api_key。","https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fissues\u002F1301",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},35358,"创建 tru_recorder 时遇到 'RecursionError: maximum recursion depth exceeded' 错误怎么办？","这是一个已知问题，已在特定分支中修复。你可以通过安装该修复分支来解决此问题：\n\n```bash\npip install git+https:\u002F\u002Fgithub.com\u002Fpiotrm0\u002Ftrulens.git@piotrm\u002Fjsonify-stack-size-protect#subdirectory=trulens_eval\n```\n\n安装后重新运行代码即可避免递归深度超限的错误。","https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fissues\u002F1100",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},35359,"运行评估时遇到 'RuntimeError: cannot reuse already awaited coroutine' 错误如何解决？","该问题在 trulens-eval 版本 0.28.2 中已修复。请确保升级到最新版本：\n\n```bash\npip install --upgrade trulens-eval\n```\n\n检查当前版本命令：\n```bash\npip show trulens-eval\n```\n如果版本低于 0.28.2，请务必升级以解决此协程复用错误。","https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fissues\u002F859",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},35360,"如何使用本地微调的大模型（如 GLM-4）作为反馈提供者进行评估？","你可以通过配置 OpenAI 兼容接口来使用本地模型作为反馈提供者。示例如下：\n\n```python\nfrom trulens.providers.openai.provider import OpenAI\n\nfeedback_provider = OpenAI(\n    model_engine=\"glm-4v-9b\",\n    base_url=\"http:\u002F\u002F0.0.0.0:8000\u002Fv1\u002F\",\n    api_key=\"your_api_key\"\n)\n```\n\n确保你的本地服务启动了兼容 OpenAI 的 API 接口，并正确设置 `base_url` 和 `api_key`。之后可正常构建 Feedback 对象进行评估。","https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fissues\u002F1486",{"id":162,"question_zh":163,"answer_zh":164,"source_url":150},35361,"如何在 TruLlama 中配置多个反馈指标（如相关性、上下文相关性、接地性）？","你可以分别定义多个 Feedback 对象，并在创建 TruLlama recorder 时将其放入 feedbacks 列表中。示例：\n\n```python\nf_qa_relevance = Feedback(\n    provider.relevance_with_cot_reasons,\n    name=\"Answer Relevance\"\n).on_input_output()\n\nf_qs_relevance = (\n    Feedback(provider.qs_relevance, name=\"Context Relevance\")\n    .on_input()\n    .on(context_selection)\n    .aggregate(np.mean)\n)\n\nf_groundedness = (\n    Feedback(GROUNDED.groundedness_measure_with_cot_reasons, name=\"Groundedness\")\n    .on(context_selection.collect())\n    .on_output()\n    .aggregate(GROUNDED.grounded_statements_aggregator)\n)\n\ntru_recorder = TruLlama(\n    sentence_window_engine,\n    app_id=\"App_1\",\n    feedbacks=[f_qa_relevance, f_qs_relevance, f_groundedness]\n)\n```\n\n注意确保 provider 已正确初始化，且上下文选择器（context_selection）定义无误。",{"id":166,"question_zh":167,"answer_zh":168,"source_url":150},35362,"在使用 HuggingFace 模型作为 provider 时，如何正确设置 API Key？","在使用 HuggingFace 模型前，需通过环境变量设置 API Key。示例如下：\n\n```python\nimport os\nos.environ[\"HUGGINGFACE_API_KEY\"] = \"YOUR_HUGGINGFACE_API_KEY\"\n```\n\n然后初始化 LiteLLM provider：\n```python\nfrom trulens_eval.feedback.provider.litellm import LiteLLM\nprovider = LiteLLM(model_engine=\"huggingface\u002Fmistralai\u002FMistral-7B-Instruct-v0.1\")\n```\n\n确保 API Key 有效且具有访问对应模型的权限。",[170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255,260,265],{"id":171,"version":172,"summary_zh":173,"released_at":174},280402,"trulens-2.7.2","## 变更内容\n* Python 3.14 支持：可遍历导入路径由 `importlib.abc` 更改为 `importlib.resources.abc`，由 @rudolfolah 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2386 中完成。\n* 向 SnowflakeConnector 添加无密码认证参数，重写 Snowflake 认证文档，并在连接到 Snowflake 时阻止启动 TruLens 仪表板，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2380 中完成。\n* 弃用 run_dashboard_sis 方法，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2370 中完成。\n\n## Bug 修复\n* Langchain 提供者端点的文档字符串，由 @lucifertrj 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2375 中完成。\n* [示例] 混合搜索 RAG 评估示例，由 @lucifertrj 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2376 中完成。\n* 更新 Cortex 模型成本跟踪，采用输入\u002F输出分离定价方式，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2379 中完成。\n* `use_container_width` 不支持 Streamlit 运行仪表板，由 @lucifertrj 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2373 中完成。\n* 修复 `dashboard.png` 文件，使其使用正确的 Git LFS 指针，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2381 中完成。\n\n## 新贡献者\n* @lucifertrj 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2375 中完成了首次贡献。\n* @rudolfolah 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2386 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.7.1...trulens-2.7.2","2026-04-09T19:02:04",{"id":176,"version":177,"summary_zh":178,"released_at":179},280403,"trulens-2.7.1","## Bug 修复\n* 由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2362 中修复了 Metric API 的小问题\n\n## 技术债务降低\n* 由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2354 中重构了 monorepo 中的 “v2” 反馈组织结构\n\n## 测试修复\n* 由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2368 中修复了 OTEL 测试数据库创建时的竞争条件\n\n## 文档和示例\n* 由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2353 中更新了实验性示例，并使用 metricconfig 进行测试\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.7.0...trulens-2.7.1","2026-03-10T19:15:51",{"id":181,"version":182,"summary_zh":183,"released_at":184},280404,"trulens-2.7.0","## 新的统一指标 API\n\n我们引入了 `Metric` 类，作为 TruLens 中评估指标的新主要 API。这一统一接口取代了原有的 `Feedback` 和 `MetricConfig`，设计更加简洁、明确。\n\n### 这一变化的重要性\n\n- **代码更清晰、更易读**：用显式的 `selectors={}` 字典替代链式调用的 `.on_*()` 方法——不再需要猜测哪个参数对应哪个选择器。\n- **单一统一的类**：无需再为不同用例在 `Feedback` 和 `MetricConfig` 之间做出选择。\n- **更好的 OpenTelemetry 集成**：原生支持从 OpenTelemetry 的跨度中选择数据。\n\n此外，相同的 `Metric` 代码现在无需修改即可移植到 Snowflake 环境中。\n\n### 快速示例\n\n**之前（Feedback）：**\n```python\nf_groundedness = (\n    Feedback(provider.groundedness_measure_with_cot_reasons, name=\"Groundedness\")\n    .on_context(collect_list=True)\n    .on_output()\n)\n```\n\n**之后（Metric）：**\n```python\nf_groundedness = Metric(\n    implementation=provider.groundedness_measure_with_cot_reasons,\n    name=\"Groundedness\",\n    selectors={\n        \"source\": Selector.select_context(collect_list=True),\n        \"statement\": Selector.select_record_output(),\n    },\n)\n```\n\n通过 `selectors` 字典，可以明确地看出每个函数参数接收的是哪部分数据。\n\n### 从 MetricConfig 迁移\n\n**之前（MetricConfig）：**\n```python\nfrom trulens.core.feedback.custom_metric import MetricConfig\n\nconfig = MetricConfig(\n    metric_name=\"word_count\",\n    metric_implementation=lambda text: len(text.split()),\n    selectors={\"text\": Selector.select_record_output()},\n)\nfeedback = config.create_feedback_definition()\n```\n\n**之后（Metric）：**\n```python\nfrom trulens.core import Metric, Selector\n\nmetric = Metric(\n    name=\"word_count\",\n    implementation=lambda text: len(text.split()),\n    selectors={\"text\": Selector.select_record_output()},\n)\n```\n\n### 向后兼容性\n\n现有的 `Feedback` 类仍然可以正常使用，但会显示弃用警告，以便您有时间进行迁移：\n\n```python\n# 仍可使用，但已弃用\nfrom trulens.core import Feedback\nf = Feedback(provider.relevance).on_input().on_output()\n```\n\n请参阅[迁移指南](https:\u002F\u002Fwww.trulens.org\u002Fcomponent_guides\u002Fevaluation\u002Fmetric_migration\u002F)以获取更新代码的详细说明。\n\n\n## 错误修复\n* 修复：将拼写错误“occurences”修正为“occurrences”，由 @thecaptain789 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2349 中完成。\n* 移除 trulens-core 中对 pkg_resources 的依赖，由 @debu-sinha 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2351 中完成。\n* 修复：为 SerialModel 添加防循环引用的安全 __repr__ 方法 (#1862)，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2356 中完成。\n* 将 litellm 路由参数（`api_base`、`api_key` 等）传递到完成调用中，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2357 中完成。\n* 修复：防止 OpenAI 端点中出现 `None` 型的 model_name (#1700)，由 @sfc-gh-jreini 在 https:\u002F\u002F","2026-02-19T02:01:32",{"id":186,"version":187,"summary_zh":188,"released_at":189},280405,"trulens-2.6.0","## 变更内容\n\n### 代理技能与 Agents.MD\n* agents.md 和技能，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2337 中实现\n* 更美观追踪的技能及辅助函数，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2340 中实现\n\n### 支持等待评估完成\n* 修复 bug 并允许在 OTEL 中等待，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2339 中实现\n\n### PostgreSQL 支持\n* PostgreSQL 支持，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2346 中实现\n\n## 文档\n* 更新文档，以便更清晰地反映贡献流程和 TruLens 当前状态，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2330 中实现\n* [文档] 改进归因仪器化与评估之间的交叉链接，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2336 中实现\n\n## Bug 修复\n* 修复 llm_provider.py 中用户提示相关性模板，以解决 issue 2334，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2341 中实现\n* #2331 将 Plotly 更新至 >= 6.0.0，由 @jacobus-herman 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2332 中实现\n* 修复 safe_getattr 以支持更多类型，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2338 中实现\n\n发布博客：https:\u002F\u002Fwww.trulens.org\u002Fblog\u002F2026\u002F02\u002F03\u002Ftrulens-26-skills-for-ai-coding-assistants-postgresql-support-and-more\u002F","2026-02-04T20:34:59",{"id":191,"version":192,"summary_zh":193,"released_at":194},280406,"trulens-2.5.3","## 变更内容\n\n* 直接注册 LangGraph 图，使其与 AI 可观测性兼容，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2311 中实现。\n* 为所有反馈函数添加额外说明，由 @sfc-gh-ajia 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2313 中完成。\n* 放宽追踪压缩，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2312 中实施。\n\n## Bug 修复\n\n* [小修复] 移除 trace_with_run 的 staticmethod 描述符，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2319 中完成。\n* 修复 mcp span 类型，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2324 中完成。\n* 在验证过程中保留主机信息。这也将产生下游影响，因为后续会利用该信息构建 SQLAlchemy 连接字符串。由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2323 中完成。\n* 修复：跳过对不可调用对象（例如 CallTypes 枚举）的插桩，由 @debu-sinha 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2328 中完成。\n\n## 文档\n\n* 博客：庆祝达到 3,000 颗星，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2321 中发布。\n","2026-01-15T21:13:33",{"id":196,"version":197,"summary_zh":198,"released_at":199},280407,"trulens-2.5.2","## 变更内容\n* 修复：为结构化输出模式添加 `additionalProperties: false`，以兼容 Databricks，由 @debu-sinha 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2308 中完成\n* 添加用于更新 `meta.yaml` 文件的命令，由 @sfc-gh-jreini 在 #2309 中完成\n\n## 新贡献者\n* @debu-sinha 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2308 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.5.1...trulens-2.5.2","2025-12-11T23:00:50",{"id":201,"version":202,"summary_zh":203,"released_at":204},280408,"trulens-2.5.1","# TruLens 2.5.1 补丁发布\n\n## 错误修复\n\n* [Snowflake] 启用 get_records 方法以获取服务器端指标。由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2293 中完成\n* [Snowflake] 允许从 .py 脚本触发服务器端指标计算。由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2297 中完成\n* 修复内部方法，使其符合 Pydantic 2.10 引入的变更。由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2296 中完成","2025-11-21T23:07:30",{"id":206,"version":207,"summary_zh":208,"released_at":209},280409,"trulens-2.5.0","## 变更内容\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2279 中添加了对 Langchain 1.0 的支持\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2275 中更新了 Notebook 命令中的 pip 安装，并为 Langchain 相关包添加了版本约束\n* @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2277 中移除了冗余的日志信息\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2278 中实现了评估成本的跟踪，并在排行榜上展示总成本\n\n## 新示例\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2237 中提供了智能体人工标注流程的示例\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2275 中更新了 Langchain 快速入门文档，加入了适用于 Langchain 1.0 的新型智能体 RAG 流程\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2275 中提供了 Langchain `astream` 的示例\n\n## Bug 修复\n* @sfc-gh-ajia 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2272 中修复了 Google Gemini 模型生成的使用量和成本指标问题\n* @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2289 中在客户端自定义指标计算的末尾添加了 `force_flush()` 方法\n* @sfc-gh-ajia 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2284 中解决了非 GPA 反馈函数中的 `custom_instructions` 错误\n* @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2288 中修复了 [SNOW-2655386] [AI 可观测性] —— 虚拟应用上下文相关性和 groundedness 无法计算的问题\n* @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2280 中对文档进行了修正","2025-11-14T23:56:50",{"id":211,"version":212,"summary_zh":213,"released_at":214},280410,"trulens-2.4.2","## 变更内容\n* LlamaIndex AgentWorkflow 的追踪功能 + 带 GPA 评估的笔记本示例，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2249 中实现\n* LangGraph 中 MCP 的追踪与评估功能，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2257 中实现\n* 更新 GPA 提示词，由 @sfc-gh-ajia 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2261 中完成\n* 上下文管理器警告中的静默日志记录，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2262 中实现\n* [Snowflake] SDK 更改，以在 RunConfig 中使用最新的 `mode` 字段，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2254 中完成\n\n\n## 错误修复\n* 修复 LangChain 1.0 的兼容性问题，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2267 中完成\n* 修复 _check_cross_format_records 中的连接逻辑及 app_version 引用，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2266 中完成\n* 通过暂时将构建限制为 Python \u003C 3.13 来解决 Conda 构建问题，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2264 中完成\n* 修复运行和指标计算相关的错误，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2263 中完成\n* 修复 Snowflake 连接器的 SQL 工具（to_pandas 问题），由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2265 中完成\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.4.1...trulens-2.4.2","2025-10-21T23:26:42",{"id":216,"version":217,"summary_zh":218,"released_at":219},280411,"trulens-2.4.1","## 变更内容\n* [Snowflake] 带有 Snowflake AI 观测功能的网络搜索代理示例，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2232 中提交。\n* 为 Snowflake AI 观测事件表中的 `get_events` 处理时间戳。由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2226 中提交。\n* 带有 Cortex 的数据代理示例，由 @sfc-gh-jreini 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2236 中提交。\n* 更新 2.4.0 版本的 meta.yaml 文件，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2238 中提交。\n* 使用新的 Responses API 进行 OpenAI 成本跟踪，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2239 中提交。\n* 修复使用最新 REST API 的 Cortex 成本\u002F用量跟踪问题，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2240 中提交。\n* [功能] 将记录查看器的默认展开深度更新为 2 层，由 @sfc-gh-nvytla 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2244 中提交。\n* [Snowflake] 虚拟运行（在 Snowflake 现有表中的数据上进行批量评估运行），由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2224 中提交。\n* 修复 AI 观测的 `get_records_and_feedbacks` 函数，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2245 中提交。\n* [Snowflake] 向 AI 观测运行中添加 `get_records` 和 `get_record_details` API，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2246 中提交。\n* 清理 Trulens 日志，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2243 中提交。\n* 使 Streamlit UI 记录查看器能够与 AI 观测兼容，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2233 中提交。\n* 为仪表板创建“SPCS”模式，允许通过挂载到 Docker 容器中的 OAuth 令牌进行身份验证，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2241 中提交。\n* 向 `get_records_and_feedback` 添加 `run_name` 参数，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2247 中提交。\n* 将 `execute_query` 改为返回 `pd.DataFrame` 而不是 `List[Row]`，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2251 中提交。\n* 在 Snowflake 连接关闭时刷新连接，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2250 中提交。\n* 修复：新的 Run API 在筛选记录时应接受 run_name 参数，由 @sfc-gh-dhuang 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2252 中提交。\n* [功能] 添加 TS\u002FTC\u002FTQ 评判者，由 @sfc-gh-nvytla 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2256 中提交。\n* 避免 problematic `transformers` 版本要求，因为其分组可选依赖项存在问题，由 @sfc-gh-dkurokawa 在 https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2255 中提交。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.4.0...trulens-2.4.1","2025-10-08T07:24:27",{"id":221,"version":222,"summary_zh":223,"released_at":224},280412,"trulens-2.4.0","## New Features\r\n* Tracing for LlamaIndex Workflows + Improved Async OpenAI support by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2212\r\n* Add `TruSession::compute_feedbacks_on_events` function to compute feedbacks on arbitrary records and feedbacks. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2206\r\n* trace compression by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2225\r\n* Reranker span type type and inclusion of reranker span type in LlamaIndex  auto-instrumentation @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2222\r\n\r\n* [Snowflake] Have AI observability work with `get_records_and_feedback`. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2223\r\n* [Snowflake] Implementing client side custom metrics for Snowflake batch evaluation flow by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2201\r\n* [Snowflake] Update model costs in cortex_model_costs.json by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2228\r\n\r\n## Examples\r\n* web search agent evals by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2209\r\n* Update additional notebooks for OpenTelemetry by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2222\r\n\r\n## Bug Fixes\r\n* Fix json structured output for cortex complete by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2214 and https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2217\r\n* Use Feedback class instead of underlying function when running evals by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2219\r\n* Restrict streamlit-aggrid to `\u003C 1.1.8` to fix. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2227\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.3.1...trulens-2.4.0","2025-09-23T13:48:10",{"id":226,"version":227,"summary_zh":228,"released_at":229},280413,"trulens-2.3.1","## What's Changed\r\n* Langchain provider & Deepseek reasoning model support by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2191\r\n* Allow for adding feedback (such as in human feedback). by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2139\r\n* Add Litellm structured outputs by @sfc-gh-chu in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2115\r\n\r\n## Bug Fixes\r\n* Cleanup bedrock provider imports by @Labreo in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2202\r\n* Explicitly turn off OTel tracing for examples not yet using OTel by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2205\r\n\r\n## New Contributors\r\n* @Labreo made their first contribution in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2202\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.3.0...trulens-2.3.1","2025-09-04T20:26:49",{"id":231,"version":232,"summary_zh":233,"released_at":234},280414,"trulens-2.3.0","## What's Changed\r\n* add gpt-5 support, openai capabilities retry and caching, Context-Free-Grammar Support & Answer Relevance prompt fixes by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2189\r\n* Allow main input specification for trace_with_run decorator (live tracing)  by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2182\r\n* Enable OTEL tracing by default by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2112\r\n\r\n## Examples\r\n* Add Tutorial for Multimodal Evaluation with Gemini (Text, Audio, Video) by @sahusiddharth in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2185\r\n\r\n## Bug Fixes\r\n* [Snowflake] Ensure OTel flushing + snowflake ingestion do not abort main app flow by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2196\r\n* Remove color from feedback pill expansion so that JSON entries in the dataframe can be displayed correctly. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2192\r\n* Fix groundedness support for bedrock. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2193\r\n* default str handler for llm provider by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2195\r\n* Ensure all OTel spans to be exported to Snowflake before the process running the main thread terminates by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2194\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.2.4...trulens-2.3.0","2025-08-28T20:33:52",{"id":236,"version":237,"summary_zh":238,"released_at":239},280415,"trulens-2.2.4","## What's Changed\r\n* Allow the use of your own lock for `compute_now`. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2184\r\n* Bugfix: Clean up syntax, hanging vars, bugs in LangGraph quickstart nb by @sfc-gh-nvytla in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2186\r\n* Batch insert events. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2183\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.2.3...trulens-2.2.4","2025-08-20T18:41:37",{"id":241,"version":242,"summary_zh":243,"released_at":244},280416,"trulens-2.2.3","## What's Changed\r\n* TruLens version 2.2.2. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2177\r\n* feat: Added Google provider to enable evaluations with Gemini models by @sahusiddharth in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2153\r\n* Use app versions instead of app ids when we can. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2179\r\n\r\n## New Contributors\r\n* @sahusiddharth made their first contribution in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2153\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.2.2...trulens-2.2.3","2025-08-20T18:24:57",{"id":246,"version":247,"summary_zh":248,"released_at":249},280417,"trulens-2.2.2","## What's Changed\r\n* Used `streamlit.Pages` instead of the `pages` folder. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2176\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.2.1...trulens-2.2.2","2025-08-20T17:33:24",{"id":251,"version":252,"summary_zh":253,"released_at":254},280418,"trulens-2.2.1","## New Features\r\n* [Langgraph auto instrumentation] Improve instrumentation for Graph API by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2172\r\n\r\n## Bug Fixes\r\n* Record page UI updates by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2171\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.2.0...trulens-2.2.1","2025-08-13T14:10:32",{"id":256,"version":257,"summary_zh":258,"released_at":259},280419,"trulens-2.2.0","## New Features\r\n* Dropped \"trajectory\" prefix from agent evals by @sfc-gh-ajia in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2163\r\n* Add context for inline evals by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2169\r\n\r\n## Bug Fixes\r\n* Supply host to dashboard. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2165\r\n\r\n## Documentation and Examples\r\n* update notebooks to new gpa-naming for agent evals by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2168\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.1.4...trulens-2.2.0","2025-08-11T22:06:58",{"id":261,"version":262,"summary_zh":263,"released_at":264},280420,"trulens-2.1.4","## What's Changed\r\n* add trulens-apps-langgraph to optional requirements by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2159\r\n* Update Langgraph version requirements to ensure we instrument TaskFunction \u002F _TaskFunction by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2160\r\n* [Snowflake] Live OTEL tracing with Snowflake Run    by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2158\r\n* custom attribute instrumentation + langgraph instrumentation docs by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2161\r\n* add openai gpt-oss example by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2162\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.1.2...trulens-2.1.4","2025-08-06T22:00:12",{"id":266,"version":267,"summary_zh":268,"released_at":269},280421,"trulens-2.1.2","## What's Changed\r\n* Address feedback on the data agents notebook by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2146\r\n* Make empty events warning quieter by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2145\r\n* improve groundedness reliability by @sfc-gh-jreini in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2147\r\n* Sort siblings in the record viewer by their start time. by @sfc-gh-dkurokawa in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2149\r\n* Lower Langgraph version required in `trulens-apps-langgraph`  by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2150\r\n* Make trulens-core no longer depend on trulens-feedback by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2151\r\n* Update span name to task name for Langgraph tracing by @sfc-gh-dhuang in https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fpull\u002F2154\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Ftruera\u002Ftrulens\u002Fcompare\u002Ftrulens-2.1.1...trulens-2.1.2","2025-07-31T18:09:32"]