[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-Giskard-AI--giskard-oss":3,"tool-Giskard-AI--giskard-oss":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":77,"owner_twitter":76,"owner_website":78,"owner_url":79,"languages":80,"stars":92,"forks":93,"last_commit_at":94,"license":95,"difficulty_score":96,"env_os":97,"env_gpu":98,"env_ram":98,"env_deps":99,"category_tags":106,"github_topics":108,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":126,"updated_at":127,"faqs":128,"releases":157},7952,"Giskard-AI\u002Fgiskard-oss","giskard-oss","🐢 Open-Source Evaluation & Testing library for LLM Agents","Giskard 是一款专为大语言模型（LLM）智能体设计的开源评估与测试库。它致力于解决 AI 系统在开发迭代中面临的输出不确定性难题，帮助开发者高效检测回归错误、验证检索增强生成（RAG）的回答质量，并确保内容符合安全规范。\n\n不同于传统针对确定性代码的单元测试，Giskard 特别适配 AI 非确定性输出的特性，支持从简单断言到\"LLM 作为裁判”等多种评估模式。其最新的 v3 版本经过重构，采用模块化架构，不仅去除了冗余依赖以提升运行效率，还原生支持异步操作，能够灵活包裹各类黑盒智能体或多步骤流水线。目前，核心组件 Giskard Checks 已可用，而针对提示词注入和数据泄露的红队扫描功能也在紧锣密鼓地开发中。\n\n这款工具非常适合需要构建高可靠性 AI 应用的开发者、算法工程师及研究人员使用。无论是希望快速搭建自动化测试流程，还是需要对复杂的多轮对话系统进行深度压力测试，Giskard 都能提供轻量且动态的解决方案，助力团队在保障安全的前提下加速产品落地。","\u003Cp align=\"center\">\n  \u003Cimg alt=\"giskardlogo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_6d85dcc19bea.png\">\n  \u003Cimg alt=\"giskardlogo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_4f101015f3ae.png\">\n\u003C\u002Fp>\n\u003Ch1 align=\"center\" weight='300' >Evals, Red Teaming and Test Generation for Agentic Systems\u003C\u002Fh1>\n\u003Ch3 align=\"center\" weight='300' >Modular, Lightweight, Dynamic and Async-first \u003C\u002Fh3>\n\u003Cdiv align=\"center\">\n\n  [![GitHub release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FGiskard-AI\u002Fgiskard)](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Freleases)\n  [![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fblob\u002Fmain\u002FLICENSE)\n  [![Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_7d409c5b3a41.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fgiskard)\n  [![CI](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)\n  [![Giskard on Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F939190303397666868?label=Discord)](https:\u002F\u002Fgisk.ar\u002Fdiscord)\n\n  \u003Ca rel=\"me\" href=\"https:\u002F\u002Ffosstodon.org\u002F@Giskard\">\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003Ch3 align=\"center\">\n   \u003Ca href=\"https:\u002F\u002Fdocs.giskard.ai\u002Foss\">\u003Cb>Docs\u003C\u002Fb>\u003C\u002Fa> &bull;\n  \u003Ca href=\"https:\u002F\u002Fwww.giskard.ai\u002F?utm_source=github&utm_medium=github&utm_campaign=github_readme&utm_id=readmeblog\">\u003Cb>Website\u003C\u002Fb>\u003C\u002Fa> &bull;\n  \u003Ca href=\"https:\u002F\u002Fgisk.ar\u002Fdiscord\">\u003Cb>Community\u003C\u002Fb>\u003C\u002Fa>\n \u003C\u002Fh3>\n\u003Cbr \u002F>\n\n> [!IMPORTANT]\n> **Giskard v3** is a fresh rewrite designed for dynamic, multi-turn testing of AI agents. This release drops heavy dependencies for better efficiency while introducing a more powerful AI vulnerability scanner and enhanced RAG evaluation capabilities. For now, the vulnerability scanner and RAG evaluation still rely on Giskard v2.\n> **Giskard v2 remains available but is no longer actively maintained.**\n> Follow progress → [Read the v3 Annoucement](https:\u002F\u002Fgithub.com\u002Forgs\u002FGiskard-AI\u002Fdiscussions\u002F2250) · [Roadmap](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F2252)\n\n## Install\n\n```sh\npip install giskard\n```\n\nRequires Python 3.12+.\n\n**Telemetry:** Libraries built on `giskard-core` (including `giskard-checks`) may send **optional, aggregated usage analytics** to help improve the product. No prompts, model outputs, or scenario text are included. See [what is collected and how to opt out](libs\u002Fgiskard-core\u002FREADME.md#telemetry).\n\n______________________________________________________________________\n\nGiskard is an open-source Python library for **testing and evaluating agentic systems**. The v3 architecture is a modular set of focused packages — each carrying only the dependencies it needs — built from scratch to wrap anything: an LLM, a black-box agent, or a multi-step pipeline.\n\n| Status | Package | Description |\n|--------|---------|-------------|\n| ✅ Alpha | `giskard-checks` | Testing & evaluation — scenario API, built-in checks, LLM-as-judge |\n| 🚧 In progress | `giskard-scan` | Agent vulnerability scanner — red teaming, prompt injection, data leakage (successor of [v2 Scan](https:\u002F\u002Flegacy-docs.giskard.ai\u002Fen\u002Fstable\u002Fopen_source\u002Fscan\u002Findex.html)) |\n| 📋 Planned | `giskard-rag` | RAG evaluation & synthetic data generation (successor of [v2 RAGET](https:\u002F\u002Flegacy-docs.giskard.ai\u002Fen\u002Fstable\u002Fopen_source\u002Ftestset_generation\u002Findex.html)) |\n\n## Giskard Checks — create and apply evals for testing agents\n\n```sh\npip install giskard-checks\n```\n\n**[Giskard Checks](https:\u002F\u002Fdocs.giskard.ai\u002Foss\u002Fchecks)** is a lightweight library for creating evaluations (evals) that test LLM-based systems — from simple assertions to LLM-as-judge assessments. Unlike traditional unit tests, evals are designed for **non-deterministic outputs** where the same input can produce different valid responses.\n\nUse Giskard Checks to:\n- **Catch regressions** — verify your system still behaves correctly after changes\n- **Validate RAG quality** — check if answers are grounded in retrieved context\n- **Enforce safety rules** — ensure outputs conform to your content policies\n- **Evaluate multi-turn agents** — test full conversations, not just single exchanges\n\nBuilt-in evals include string matching, comparisons, regex, semantic similarity, and LLM-as-judge checks (`Groundedness`, `Conformity`, `LLMJudge`).\n\n### Quickstart\n\n```python\nfrom openai import OpenAI\nfrom giskard.checks import Scenario, Groundedness\n\nclient = OpenAI()\n\ndef get_answer(inputs: str) -> str:\n    response = client.chat.completions.create(\n        model=\"gpt-5-mini\",\n        messages=[{\"role\": \"user\", \"content\": inputs}],\n    )\n    return response.choices[0].message.content\n\nscenario = (\n    Scenario(\"test_dynamic_output\")\n    .interact(\n        inputs=\"What is the capital of France?\",\n        outputs=get_answer,\n    )\n    .check(\n        Groundedness(\n            name=\"answer is grounded\",\n            answer_key=\"trace.last.outputs\",\n            context=\"France is a country in Western Europe. Its capital is Paris.\",\n        )\n    )\n)\n\nresult = await scenario.run()\nresult.print_report()\n```\n\n> The `run()` method is async. In a script, wrap it with `asyncio.run()`. See the [full docs](https:\u002F\u002Fdocs.giskard.ai\u002Foss\u002Fchecks) for `Suites`, `LLMJudge`, multi-turn scenarios, and more.\n\n\n## Looking for Giskard v2?\n\nGiskard v2 included **Scan** (automatic vulnerability detection) and **RAGET** (RAG evaluation test set generation) for both ML models and LLM applications. These features are not available in v3.\n\n```sh\npip install \"giskard[llm]>2,\u003C3\"\n```\n\n### [Scan](https:\u002F\u002Flegacy-docs.giskard.ai\u002Fen\u002Fstable\u002Fopen_source\u002Fscan\u002Findex.html) — automatically detect performance, bias & security issues\n\nWrap your model and run the scan:\n\n```python\nimport giskard\nimport pandas as pd\n\n# Replace my_llm_chain with your actual LLM chain or model inference logic\ndef model_predict(df: pd.DataFrame):\n    \"\"\"The function takes a DataFrame and must return a list of outputs (one per row).\"\"\"\n    return [my_llm_chain.run({\"query\": question}) for question in df[\"question\"]]\n\ngiskard_model = giskard.Model(\n    model=model_predict,\n    model_type=\"text_generation\",\n    name=\"My LLM Application\",\n    description=\"A question answering assistant\",\n    feature_names=[\"question\"],\n)\n\nscan_results = giskard.scan(giskard_model)\ndisplay(scan_results)\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_2c0c487ef417.gif\" alt=\"Scan Example\" width=\"800\">\n\u003C\u002Fp>\n\n### [RAGET](https:\u002F\u002Flegacy-docs.giskard.ai\u002Fen\u002Fstable\u002Fopen_source\u002Ftestset_generation\u002Findex.html) — generate evaluation datasets for RAG applications\n\nAutomatically generate questions, reference answers, and context from your knowledge base:\n\n```python\nimport pandas as pd\nfrom giskard.rag import generate_testset, KnowledgeBase\n\n# Load your knowledge base documents\ndf = pd.read_csv(\"path\u002Fto\u002Fyour\u002Fknowledge_base.csv\")\nknowledge_base = KnowledgeBase.from_pandas(df, columns=[\"column_1\", \"column_2\"])\n\ntestset = generate_testset(\n    knowledge_base,\n    num_questions=60,\n    language='en',\n    agent_description=\"A customer support chatbot for company X\",\n)\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_16781defda88.gif\" alt=\"RAGET Example\" width=\"800\">\n\u003C\u002Fp>\n\n[Full v2 docs](https:\u002F\u002Flegacy-docs.giskard.ai)\n\n\u003Ch1 id=\"community\">👋 Community\u003C\u002Fh1>\n\nWe welcome contributions from the AI community! Read this [guide](.\u002FCONTRIBUTING.md) to get started, and join our thriving community on [Discord](https:\u002F\u002Fgisk.ar\u002Fdiscord).\n\nFollow the progress and share feedback:\n[v3 Announcement](https:\u002F\u002Fgithub.com\u002Forgs\u002FGiskard-AI\u002Fdiscussions\u002F2250) · [Roadmap](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F2252)\n\n🌟 [Leave us a star](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard), it helps the project to get discovered by others and keeps us motivated to build awesome open-source tools! 🌟\n\n❤️ If you find our work useful, please consider [sponsoring us](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FGiskard-AI) on GitHub. With a monthly sponsoring, you can get a sponsor badge, display your company in this readme, and get your bug reports prioritized. We also offer one-time sponsoring if you want us to get involved in a consulting project, run a workshop, or give a talk at your company.\n\n\u003Ch2 id=\"sponsors\">💚 Current sponsors\u003C\u002Fh2>\n\nWe thank the following companies which are sponsoring our project with monthly donations:\n\n**[Lunary](https:\u002F\u002Flunary.ai\u002F)**\n\n\u003Cimg src=\"https:\u002F\u002Flunary.ai\u002Flogo-blue-bg.svg\" alt=\"Lunary logo\" width=\"100\"\u002F>\n\n**[Biolevate](https:\u002F\u002Fwww.biolevate.com\u002F)**\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_2d10badd2cca.png\" alt=\"Biolevate logo\" width=\"400\"\u002F>\n","\u003Cp align=\"center\">\n  \u003Cimg alt=\"giskardlogo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_6d85dcc19bea.png\">\n  \u003Cimg alt=\"giskardlogo\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_4f101015f3ae.png\">\n\u003C\u002Fp>\n\u003Ch1 align=\"center\" weight='300' >针对代理型系统的评估、红队测试与测试用例生成\u003C\u002Fh1>\n\u003Ch3 align=\"center\" weight='300' >模块化、轻量级、动态且以异步优先\u003C\u002Fh3>\n\u003Cdiv align=\"center\">\n\n  [![GitHub 发布](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002FGiskard-AI\u002Fgiskard)](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Freleases)\n  [![许可证](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache_2.0-blue.svg)](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fblob\u002Fmain\u002FLICENSE)\n  [![下载量](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_7d409c5b3a41.png)](https:\u002F\u002Fpepy.tech\u002Fproject\u002Fgiskard)\n  [![CI](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg?branch=main)\n  [![Giskard Discord 社区](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F939190303397666868?label=Discord)](https:\u002F\u002Fgisk.ar\u002Fdiscord)\n\n  \u003Ca rel=\"me\" href=\"https:\u002F\u002Ffosstodon.org\u002F@Giskard\">\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\u003Ch3 align=\"center\">\n   \u003Ca href=\"https:\u002F\u002Fdocs.giskard.ai\u002Foss\">\u003Cb>文档\u003C\u002Fb>\u003C\u002Fa> &bull;\n  \u003Ca href=\"https:\u002F\u002Fwww.giskard.ai\u002F?utm_source=github&utm_medium=github&utm_campaign=github_readme&utm_id=readmeblog\">\u003Cb>官网\u003C\u002Fb>\u003C\u002Fa> &bull;\n  \u003Ca href=\"https:\u002F\u002Fgisk.ar\u002Fdiscord\">\u003Cb>社区\u003C\u002Fb>\u003C\u002Fa>\n \u003C\u002Fh3>\n\u003Cbr \u002F>\n\n> [!IMPORTANT]\n> **Giskard v3** 是一次全新重写，专为 AI 代理的动态多轮测试而设计。此版本去除了繁重依赖以提升效率，同时引入了更强大的 AI 漏洞扫描器以及增强的 RAG 评估能力。目前，漏洞扫描器和 RAG 评估仍依赖于 Giskard v2。\n> **Giskard v2 仍然可用，但已不再积极维护。**\n> 关注进展 → [阅读 v3 公告](https:\u002F\u002Fgithub.com\u002Forgs\u002FGiskard-AI\u002Fdiscussions\u002F2250) · [路线图](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F2252)\n\n## 安装\n\n```sh\npip install giskard\n```\n\n需要 Python 3.12 或更高版本。\n\n**遥测：** 基于 `giskard-core` 构建的库（包括 `giskard-checks`）可能会发送 **可选的聚合使用情况分析数据**，以帮助改进产品。其中不包含任何提示、模型输出或场景文本。详情请参阅 [收集的内容及如何选择退出](libs\u002Fgiskard-core\u002FREADME.md#telemetry)。\n\n______________________________________________________________________\n\nGiskard 是一个用于 **测试和评估代理型系统** 的开源 Python 库。v3 架构由一组模块化的专注包组成——每个包仅包含其所需的依赖项——从头开始构建，可用于封装任何对象：LLM、黑盒代理或多步骤流水线。\n\n| 状态 | 包名 | 描述 |\n|--------|---------|-------------|\n| ✅ Alpha | `giskard-checks` | 测试与评估 — 场景 API、内置检查、LLM 作为评判者 |\n| 🚧 进行中 | `giskard-scan` | 代理漏洞扫描器 — 红队测试、提示注入、数据泄露（v2 Scan 的继任者） |\n| 📋 计划中 | `giskard-rag` | RAG 评估与合成数据生成（v2 RAGET 的继任者） |\n\n## Giskard Checks — 创建并应用评估来测试代理\n\n```sh\npip install giskard-checks\n```\n\n**[Giskard Checks](https:\u002F\u002Fdocs.giskard.ai\u002Foss\u002Fchecks)** 是一个轻量级库，用于创建评估（evals），以测试基于 LLM 的系统——从简单的断言到 LLM 作为评判者的评估。与传统的单元测试不同，evals 专为 **非确定性输出** 设计，即相同的输入可能产生不同的有效响应。\n\n使用 Giskard Checks 可以：\n- **捕捉回归问题** — 验证系统在更改后仍能正常运行\n- **验证 RAG 质量** — 检查答案是否基于检索到的上下文\n- **执行安全规则** — 确保输出符合您的内容政策\n- **评估多轮代理** — 测试完整的对话，而不仅仅是单次交互\n\n内置评估包括字符串匹配、比较、正则表达式、语义相似度，以及 LLM 作为评判者的检查（“Groundedness”、“Conformity”、“LLMJudge”）。\n\n### 快速入门\n\n```python\nfrom openai import OpenAI\nfrom giskard.checks import Scenario, Groundedness\n\nclient = OpenAI()\n\ndef get_answer(inputs: str) -> str:\n    response = client.chat.completions.create(\n        model=\"gpt-5-mini\",\n        messages=[{\"role\": \"user\", \"content\": inputs}],\n    )\n    return response.choices[0].message.content\n\nscenario = (\n    Scenario(\"test_dynamic_output\")\n    .interact(\n        inputs=\"法国的首都是哪里？\",\n        outputs=get_answer,\n    )\n    .check(\n        Groundedness(\n            name=\"答案有据可依\",\n            answer_key=\"trace.last.outputs\",\n            context=\"法国是西欧的一个国家，其首都为巴黎。\",\n        )\n    )\n)\n\nresult = await scenario.run()\nresult.print_report()\n```\n\n> `run()` 方法是异步的。在脚本中，请使用 `asyncio.run()` 封装它。有关 `Suites`、`LLMJudge`、多轮场景等更多内容，请参阅完整文档 [此处](https:\u002F\u002Fdocs.giskard.ai\u002Foss\u002Fchecks)。\n\n## 寻找 Giskard v2 吗？\n\nGiskard v2 包含 **Scan**（自动漏洞检测）和 **RAGET**（用于 ML 模型和 LLM 应用的 RAG 评估测试集生成）。这些功能在 v3 中不可用。\n\n```sh\npip install \"giskard[llm]>2,\u003C3\"\n```\n\n### [Scan](https:\u002F\u002Flegacy-docs.giskard.ai\u002Fen\u002Fstable\u002Fopen_source\u002Fscan\u002Findex.html) — 自动检测性能、偏差及安全问题\n\n将您的模型封装起来并运行扫描：\n\n```python\nimport giskard\nimport pandas as pd\n\n# 将 my_llm_chain 替换为您实际的 LLM 链或模型推理逻辑\ndef model_predict(df: pd.DataFrame):\n    \"\"\"该函数接受一个 DataFrame，并需返回每行对应的一条输出结果。\"\"\"\n    return [my_llm_chain.run({\"query\": question}) for question in df[\"question\"]]\n\ngiskard_model = giskard.Model(\n    model=model_predict,\n    model_type=\"text_generation\",\n    name=\"我的 LLM 应用程序\",\n    description=\"一个问答助手\",\n    feature_names=[\"question\"],\n)\n\nscan_results = giskard.scan(giskard_model)\ndisplay(scan_results)\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_2c0c487ef417.gif\" alt=\"Scan 示例\" width=\"800\">\n\u003C\u002Fp>\n\n### [RAGET](https:\u002F\u002Flegacy-docs.giskard.ai\u002Fen\u002Fstable\u002Fopen_source\u002Ftestset_generation\u002Findex.html) — 为 RAG 应用生成评估数据集\n\n从您的知识库中自动生成问题、参考答案和上下文：\n\n```python\nimport pandas as pd\nfrom giskard.rag import generate_testset, KnowledgeBase\n\n# 加载你的知识库文档\ndf = pd.read_csv(\"path\u002Fto\u002Fyour\u002Fknowledge_base.csv\")\nknowledge_base = KnowledgeBase.from_pandas(df, columns=[\"column_1\", \"column_2\"])\n\ntestset = generate_testset(\n    knowledge_base,\n    num_questions=60,\n    language='en',\n    agent_description=\"X公司的客户支持聊天机器人\",\n)\n```\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_16781defda88.gif\" alt=\"RAGET 示例\" width=\"800\">\n\u003C\u002Fp>\n\n[完整 v2 文档](https:\u002F\u002Flegacy-docs.giskard.ai)\n\n\u003Ch1 id=\"community\">👋 社区\u003C\u002Fh1>\n\n我们欢迎来自 AI 社区的贡献！请阅读这份 [指南](.\u002FCONTRIBUTING.md) 开始参与，并加入我们在 [Discord](https:\u002F\u002Fgisk.ar\u002Fdiscord) 上活跃的社区。\n\n关注项目进展并分享反馈：\n[v3 公告](https:\u002F\u002Fgithub.com\u002Forgs\u002FGiskard-AI\u002Fdiscussions\u002F2250) · [路线图](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F2252)\n\n🌟 [给项目点个星](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard)，这有助于让更多人发现我们的项目，也能激励我们继续打造优秀的开源工具！🌟\n\n❤️ 如果您觉得我们的工作很有价值，请考虑在 GitHub 上 [赞助我们](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FGiskard-AI)。通过每月赞助，您可以获得赞助者徽章、在本 README 中展示贵公司，并让您的问题报告优先处理。如果您希望我们参与咨询项目、举办研讨会或在贵公司进行演讲，我们也提供一次性赞助服务。\n\n\u003Ch2 id=\"sponsors\">💚 当前赞助商\u003C\u002Fh2>\n\n我们感谢以下公司对我们的项目提供的每月捐赠：\n\n**[Lunary](https:\u002F\u002Flunary.ai\u002F)**\n\n\u003Cimg src=\"https:\u002F\u002Flunary.ai\u002Flogo-blue-bg.svg\" alt=\"Lunary 标志\" width=\"100\"\u002F>\n\n**[Biolevate](https:\u002F\u002Fwww.biolevate.com\u002F)**\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_readme_2d10badd2cca.png\" alt=\"Biolevate 标志\" width=\"400\"\u002F>","# Giskard OSS 快速上手指南\n\nGiskard 是一个开源 Python 库，专为**测试和评估智能体系统**（Agentic Systems）而设计。v3 版本经过重构，采用模块化架构，专注于动态、多轮次的 AI 智能体测试，具有轻量级和异步优先的特点。\n\n## 环境准备\n\n- **操作系统**：Linux, macOS, Windows\n- **Python 版本**：要求 **Python 3.12+**\n- **依赖管理**：建议使用 `pip` 或 `poetry` 进行包管理\n- **网络要求**：部分功能（如 LLM-as-judge）需要访问外部大模型 API（如 OpenAI）\n\n> **注意**：Giskard v3 目前处于 Alpha 阶段，主要提供 `giskard-checks` 模块。原有的漏洞扫描（Scan）和 RAG 测试集生成（RAGET）功能在 v2 版本中可用，但 v2 已不再积极维护。\n\n## 安装步骤\n\n### 1. 安装核心库\n使用 pip 安装基础包：\n\n```sh\npip install giskard\n```\n\n### 2. 安装测试评估模块（推荐）\n若需使用场景测试、内置检查项及 LLM 评判功能，请安装 `giskard-checks`：\n\n```sh\npip install giskard-checks\n```\n\n> **国内加速提示**：如果下载速度较慢，可使用国内镜像源安装：\n> ```sh\n> pip install giskard-checks -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n> ```\n\n### 3. (可选) 安装旧版功能\n如果您需要使用自动漏洞扫描或 RAG 测试集生成功能，需安装 v2 版本：\n\n```sh\npip install \"giskard[llm]>2,\u003C3\"\n```\n\n## 基本使用\n\n以下示例展示如何使用 `giskard-checks` 创建一个简单的评估场景，测试 LLM 的回答是否基于给定的上下文（Groundedness 检查）。\n\n### 代码示例\n\n```python\nimport asyncio\nfrom openai import OpenAI\nfrom giskard.checks import Scenario, Groundedness\n\n# 初始化 OpenAI 客户端\nclient = OpenAI()\n\n# 定义被测试的函数\ndef get_answer(inputs: str) -> str:\n    response = client.chat.completions.create(\n        model=\"gpt-4o-mini\", # 请替换为您使用的模型\n        messages=[{\"role\": \"user\", \"content\": inputs}],\n    )\n    return response.choices[0].message.content\n\n# 构建测试场景\nscenario = (\n    Scenario(\"test_dynamic_output\")\n    .interact(\n        inputs=\"What is the capital of France?\",\n        outputs=get_answer,\n    )\n    .check(\n        Groundedness(\n            name=\"answer is grounded\",\n            answer_key=\"trace.last.outputs\",\n            context=\"France is a country in Western Europe. Its capital is Paris.\",\n        )\n    )\n)\n\n# 运行测试并打印报告\nasync def main():\n    result = await scenario.run()\n    result.print_report()\n\nif __name__ == \"__main__\":\n    asyncio.run(main())\n```\n\n### 说明\n- **Scenario**：定义测试流程，包括输入数据和调用目标函数。\n- **Groundedness**：内置检查项，用于验证模型输出是否与提供的上下文一致（防止幻觉）。\n- **异步执行**：`run()` 方法是异步的，需在 `asyncio` 环境中运行。\n\n您可以在此基础上扩展更多检查项（如 `Conformity`, `LLMJudge`），或构建多轮对话测试场景。详细用法请参考 [官方文档](https:\u002F\u002Fdocs.giskard.ai\u002Foss\u002Fchecks)。","某金融科技公司正在开发一款基于大语言模型的智能理财顾问 Agent，该助手需要多轮对话理解用户风险偏好，并依据实时检索的财经新闻（RAG）提供投资建议。\n\n### 没有 giskard-oss 时\n- **回归测试困难**：每次更新模型或提示词后，团队只能依靠人工抽查少量对话，难以发现系统在特定场景下出现的隐性能力倒退。\n- **幻觉无法量化**：Agent 偶尔会编造不存在的财经数据，但缺乏自动化手段来验证回答是否严格基于检索到的上下文，导致合规风险高。\n- **安全漏洞隐蔽**：面对复杂的“红队攻击”（如诱导性提示注入），传统单元测试无法覆盖非确定性输出，恶意绕过策略往往在生产环境才被发现。\n- **评估效率低下**：构建多轮对话测试集耗时耗力，且难以模拟真实用户动态变化的提问逻辑，测试覆盖率长期不足。\n\n### 使用 giskard-oss 后\n- **自动化回归监测**：利用 giskard-oss 的场景 API 建立自动化评估流水线，每次代码提交即自动运行数百个测试用例，瞬间定位性能衰退点。\n- **精准幻觉拦截**：通过内置的 RAG 检查模块，自动判定回答是否“有据可依”，将事实性错误率在上线前降低 90% 以上。\n- **主动漏洞扫描**：调用其动态红队测试功能，自动生成对抗性提示攻击 Agent，提前修复提示注入和数据泄露隐患。\n- **高效多轮评测**：借助异步架构和轻量级设计，快速生成并执行复杂的多轮对话测试，大幅缩短从开发到安全上线的周期。\n\ngiskard-oss 将原本依赖人工经验的模糊评估，转化为可量化、自动化的质量门禁，确保智能代理在复杂交互中既安全又可靠。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FGiskard-AI_giskard-oss_4f101015.png","Giskard-AI","Giskard","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FGiskard-AI_cfcd8933.png","Protect your company against quality & security issues in AI systems.",null,"hello@giskard.ai","https:\u002F\u002Fgiskard.ai\u002F","https:\u002F\u002Fgithub.com\u002FGiskard-AI",[81,85,88],{"name":82,"color":83,"percentage":84},"Python","#3572A5",97.3,{"name":86,"color":87,"percentage":32},"Jinja","#a52a22",{"name":89,"color":90,"percentage":91},"Makefile","#427819",0.7,5259,433,"2026-04-15T13:38:44","Apache-2.0",1,"","未说明",{"notes":100,"python":101,"dependencies":102},"Giskard v3 是一个轻量级、模块化且优先支持异步（Async-first）的库，专为动态多轮代理测试设计。v3 版本移除了重型依赖以提高效率。注意：v3 目前处于 Alpha 阶段，其漏洞扫描和 RAG 评估功能仍依赖尚未完全发布的模块或需参考 v2 版本；v2 版本已不再积极维护。运行异步脚本时需使用 asyncio.run() 包裹。可选遥测数据收集，不包含提示词或模型输出内容。","3.12+",[103,104,105],"giskard","giskard-checks","openai",[35,14,13,107],"其他",[109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125],"mlops","ml-validation","ml-testing","ai-testing","llmops","responsible-ai","fairness-ai","trustworthy-ai","llm-eval","llm-evaluation","rag-evaluation","ai-security","llm-security","ai-red-team","red-team-tools","llm","agent-evaluation","2026-03-27T02:49:30.150509","2026-04-16T08:15:24.763431",[129,134,139,143,148,153],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},35601,"如何在 Giskard 中配置 Azure OpenAI 以运行 LLM-as-a-judge 扫描？","要使用 Azure OpenAI 运行扫描，需要设置以下环境变量：\nexport AZURE_OPENAI_API_KEY=\u003C你的密钥>\nexport AZURE_OPENAI_ENDPOINT=https:\u002F\u002F\u003C你的资源名>.openai.azure.com\nexport OPENAI_API_VERSION=2023-07-01-preview\nexport GISKARD_SCAN_LLM_MODEL=\u003C你的模型名称>\n\n注意：扫描功能目前仍依赖支持函数调用（function calls）的模型，建议直接使用 GPT-4，虽然在技术上 GPT-3.5 也能工作。如果使用的是旧版本，可能需要安装特定的预览分支：pip install \"giskard[llm]@git+https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard.git@feature\u002Fgsk-2177-add-a-way-to-support-azure-on-llm-scan\"","https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F1614",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},35602,"如何将 Giskard 中的 LLM-as-a-Judge 和 API 调用替换为本地 Ollama 模型？","可以通过以下代码将默认的开源自定义模型设置为 Ollama，从而替换 OpenAI GPT-4 作为评判者并实现本地化调用：\nimport giskard\napi_base = \"http:\u002F\u002Flocalhost:11434\"  # Ollama 默认地址\ngiskard.llm.set_llm_model(\"ollama\u002Fllama3.1\", disable_structured_output=True, api_base=api_base)\ngiskard.llm.set_embedding_model(\"ollama\u002Fnomic-embed-text\", api_base=api_base)\n\n设置完成后，Giskard 会尝试使用配置的本地模型来处理相关的 LLM 任务。如果遇到结构化输出问题，请确保设置 disable_structured_output=True。","https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F2096",{"id":140,"question_zh":141,"answer_zh":142,"source_url":138},35603,"为什么在使用 LangChain 集成时报告生成失败或 retriever 分数缺失？","这通常由两个原因导致：\n1. 返回格式问题：`get_answer_fn` 函数必须只返回字符串 (str) 或 `giskard.rag.AgentAnswer` 对象。如果直接返回未经处理的 `langchain_core.messages.ai.AIMessage` 对象，会导致报告生成失败。\n2. 分数查看方式：如果使用 `report.to_pandas()` 只能看到正确率而缺少 retriever 分数，这是因为该方法主要展示对话级别的评估详情。若要查看每个 RAG 组件的全局指标分数，应调用 `report.component_scores()` 方法。",{"id":144,"question_zh":145,"answer_zh":146,"source_url":147},35604,"如何将 Giskard 测试套件的结果导出为 JUnit 格式以便在 CI\u002FCD 中使用？","为了在 CI 流程（如 pytest）中标准化报告格式，可以将 Giskard 测试集成到 pytest 中，并使用 pytest 原生的 JUnit 导出功能。运行命令如下：\npytest giskard-tests.py --junitxml=junit\u002Ftest-results.xml\n\n这将生成标准的 junit XML 文件，便于 Jenkins、GitLab CI 等工具解析测试结果。社区也在讨论直接在 `TestSuiteResult` 中添加 `to_junit` 方法以进一步简化此过程。","https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F1685",{"id":149,"question_zh":150,"answer_zh":151,"source_url":152},35605,"Giskard v3 发布后，针对 v2 的功能请求（如分类值扰动检测器）还会被接受吗？","随着 Giskard v3 的开发推进，许多针对 v2 的活跃 Issue 和 PR（包括添加分类值扰动检测器的功能请求）已被暂时关闭。目前团队正专注于 v3 的开发，暂不接受外部代码贡献。但是，官方非常欢迎用户在路线图讨论区（https:\u002F\u002Fgithub.com\u002Forgs\u002FGiskard-AI\u002Fdiscussions\u002F2250）提供早期反馈和对新功能的期望，这些反馈将影响 v3 的功能设计。","https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fissues\u002F1847",{"id":154,"question_zh":155,"answer_zh":156,"source_url":138},35606,"在 Giskard 中使用本地模型时，如何解决模型响应格式导致的兼容性问题？","当切换到某些本地模型（如 Qwen2.5 或其他非 OpenAI 模型）时，可能会遇到响应格式不兼容的问题。解决方案包括：\n1. 更新模型版本：例如将模型从旧版本升级到 `qwen2.5` 可能直接解决部分解析错误。\n2. 调整参数：在设置模型时，尝试禁用结构化输出（disable_structured_output=True），强制模型以纯文本形式返回，避免复杂的 JSON 或对象格式导致解析失败。\n3. 预处理：确保传入 Giskard 评估链的响应是纯净的字符串，而非包含元数据的消息对象。",[158,163,168,173,178,183,188,193,198,203,208,213,218,223,228,233,238,243,248,253],{"id":159,"version":160,"summary_zh":161,"released_at":162},280788,"giskard-checks\u002Fv1.0.2b1","## 变更内容\n* security(deps): 升级 Pygments 以修复 CVE-2026-4539，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2351 中完成\n* fix(checks): 在运行场景时保留生成器和嵌入模型，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2293 中完成\n* security: 升级 aiohttp 以修复多个 CVE，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2356 中完成\n* 为 SuiteResult 添加 Junix XML 导出功能，由 @Mapalo90 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2352 中完成\n* docs: 将 PR 模板与 uv.lock 和 NumPy 文档字符串对齐，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2343 中完成\n* security(giskard-agents)!: 为 Workflow.chat 的 Jinja 解析启用可选模式，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2346 中完成\n* docs(contributing): 将贡献指南与仓库保持一致并修复链接，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2344 中完成\n* fix(release): 在包版本升级后同步 uv.lock，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2357 中完成\n* chore(deps): 更新依赖 litellm 至 v1.83.0 [安全]，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2359 中完成\n* fix(giskard-checks): 为 RegexMatching 设置正则表达式超时限制，以缓解 ReDoS 攻击风险，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2381 中完成\n* fix(security)!: 移除合规规则中的模板支持，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2382 中完成\n\n## 新贡献者\n* @Mapalo90 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2352 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-agents\u002Fv1.0.2b1...giskard-checks\u002Fv1.0.2b1","2026-04-10T09:21:20",{"id":164,"version":165,"summary_zh":166,"released_at":167},280789,"giskard-agents\u002Fv1.0.2b1","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-checks\u002Fv1.0.1b1...giskard-agents\u002Fv1.0.2b1","2026-03-26T11:07:50",{"id":169,"version":170,"summary_zh":171,"released_at":172},280790,"giskard-checks\u002Fv1.0.1b1","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-core\u002Fv1.0.1b2...giskard-checks\u002Fv1.0.1b1","2026-03-26T10:17:13",{"id":174,"version":175,"summary_zh":176,"released_at":177},280791,"giskard-core\u002Fv1.0.1b2","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-core\u002Fv1.0.1b1...giskard-core\u002Fv1.0.1b2","2026-03-26T10:08:52",{"id":179,"version":180,"summary_zh":181,"released_at":182},280792,"giskard-core\u002Fv1.0.1b1","## 变更内容\n* docs(giskard-agents): 更新 README 示例以匹配当前 API，并由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2312 中提升清晰度\n* fix(agents): 在 BaseGenerator.with_params() 中使用浅拷贝，由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2319 中完成\n* chore(deps): 将 astral-sh\u002Fsetup-uv 的摘要更新至 37802ad，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2322 中完成\n* feat(checks): 在套件报告中显示场景和检查的错误详情，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2323 中实现\n* fix(giskard-checks): 在场景结果中保留具体的跟踪类型，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2326 中修复\n* build(security): 在 pip-audit 中忽略 pygments 的 CVE-2026-4539 漏洞，由 @mattbit 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2333 中处理\n* fix(giskard-agents): 使用 jinja2 的沙盒环境防止模板注入 [ENG-1486]，由 @mattbit 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2332 中实施\n* refactor(giskard-checks)!: 移除 Scenario.from_sequence 方法，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2325 中完成\n* docs: 更新 README 和仓库文档以适配 v3 版本，由 @davidberenstein1957 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2335 中完成\n* build(security): 加强 GitHub Actions 工作流的安全性，由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2336 中完成\n* fix(deps): 为修复 CVE-2026-25645 漏洞，将 requests 升级至 2.33.0，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2341 中完成\n* build(security): 在发布推送时使用 GitHub App 令牌，由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2342 中实施\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-checks\u002Fv1.0.1a2...giskard-core\u002Fv1.0.1b1","2026-03-26T09:52:38",{"id":184,"version":185,"summary_zh":186,"released_at":187},280793,"giskard-checks\u002Fv1.0.1a2","## 变更内容\n* 功能：由 @Deepak8858 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2311 中实现，在根级别重新导出 resolve\n* 使 Suite.append() 可链式调用（返回自身）：由 @Bingtagui404 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2317 中实现\n* 功能（检查）：由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2314 中为结果模型添加 print_report\n\n## 新贡献者\n* @Deepak8858 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2311 中完成了首次贡献\n* @Bingtagui404 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2317 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-agents\u002Fv1.0.2a1...giskard-checks\u002Fv1.0.1a2","2026-03-20T02:14:31",{"id":189,"version":190,"summary_zh":191,"released_at":192},280794,"giskard-agents\u002Fv1.0.2a1","## 变更内容\n* 修复（测试）：默认使用 gemini-embedding-001，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2306 中完成\n* 杂项（依赖）：更新 GitHub Actions 的依赖，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2309 中完成\n* 修复（检查）！：将 Interact 注入方式改为基于名称，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2302 中完成\n* 功能（代理）：为生成器补全管道添加元数据参数，由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2300 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-checks\u002Fv1.0.1a1...giskard-agents\u002Fv1.0.2a1","2026-03-17T11:07:51",{"id":194,"version":195,"summary_zh":196,"released_at":197},280795,"giskard-checks\u002Fv1.0.1a1","**完整更新日志**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-agents\u002Fv1.0.1a1...giskard-checks\u002Fv1.0.1a1","2026-03-12T08:42:06",{"id":199,"version":200,"summary_zh":201,"released_at":202},280796,"giskard-agents\u002Fv1.0.1a1","## 变更内容\n* 测试(代理)：跳过依赖 OpenAI 的嵌入功能测试，由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2304 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fgiskard-core\u002Fv1.0.1a1...giskard-agents\u002Fv1.0.1a1","2026-03-12T08:36:46",{"id":204,"version":205,"summary_zh":206,"released_at":207},280797,"giskard-core\u002Fv1.0.1a1","## 变更内容\n* 功能！：由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2229 中重写为 v3 单仓库，包含 giskard-core、giskard-agents 和 giskard-checks。\n* 修复：由 @henchaves 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2256 中重构发布工作流。\n* 杂项：由 @mattbit 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2257 中更新 README。\n* 杂项（依赖）：由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2258 中更新 pep621 依赖。\n* 功能（检查）：由 @davidberenstein1957 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2248 中实现 ENG-1390 llm 和提示相关检查的目录判断功能。\n* 重构：由 @davidberenstein1957 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2264 中引入 JsonPathStr 类型用于 JSONPath 验证。\n* 功能：[OSS-20] 由 @henchaves 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2268 中为场景\u002F轨迹添加对 `annotations` 的支持。\n* 功能（检查）！：[OSS-13] 由 @davidberenstein1957 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2247 中实现 RegexMatching 检查。\n* 功能（agents, core）：[ENG-1272]\u002F[ENG-1271] 由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2239 中重构限流器，并添加生成器的重试\u002F超时策略。\n* 重构（检查）！：由 @mattbit 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2270 中推出新的 'Interact' API。\n* 杂项（CI）：由 @mattbit 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2280 中将 Python 3.14 添加到测试矩阵。\n* 功能：[OSS-22] `Suite`：由 @henchaves 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2283 中实现动态绑定的场景批次运行。\n* 杂项（依赖）：由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2285 中将 astral-sh\u002Fsetup-uv 的 digest 更新至 5a095e7。\n* 功能（agents）：由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2275 中添加步骤级别的类型鉴别器（GAP-003）。\n* 杂项：由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2286 中整合工作区级别的光标规则，并强制要求使用 Python 3.12 及以上版本。\n* 功能（generators）：由 @davidberenstein1957 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2249 中引入 personas 和扩展上下文用于 UserSimulator。\n* 功能（agents）：由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2273 中添加工具输入强制转换和输出序列化功能（GAP-005）。\n* 重构（agents）：由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2281 中用中间…替换基于 mixin 的重试\u002F限流机制。\n* 重构（checks）：由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2296 中使 Scenario 可变，并移除 scenario() 工厂函数。\n* 重构（rate-limiter）：由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2298 中移除冗余锁，默认情况下对重复 ID 抛出异常。\n* 重构（checks）：由 @kevinmessiaen 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2297 中用基于步骤的结构替换 Scenario 序列。\n* 功能（agents）：由 @Hartorn 在 https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgisk","2026-03-12T08:26:28",{"id":209,"version":210,"summary_zh":211,"released_at":212},280798,"v2.19.1","## What's Changed\n* chore: drop pkg_resources usage and setuptools dependency by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2243\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fv2.19.0...v2.19.1","2026-02-17T14:37:13",{"id":214,"version":215,"summary_zh":216,"released_at":217},280799,"v2.19.0","## What's Changed\n* fix(security): prevent command injection in GitHub Actions workflows [ENG-1131] by @kevinmessiaen in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2214\n* feat: add support to custom embeddings by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2241\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fv2.18.1...v2.19.0","2026-02-10T10:14:17",{"id":219,"version":220,"summary_zh":221,"released_at":222},280800,"v2.18.1","## What's Changed\n* Add legacy documentation notice with toggle functionality and styling by @davidberenstein1957 in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fpull\u002F2192\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard-oss\u002Fcompare\u002Fv2.18.0...v2.18.1","2025-09-18T17:27:17",{"id":224,"version":225,"summary_zh":226,"released_at":227},280801,"v2.18.0","## What's Changed\n* implement abstract methods for RagasEmbeddingsWrapper by @tituslhy in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2178\n* Add Groq model support to LLMClient (#1977) by @kunjanshah0811 in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2165\n* fix Discord Sever badge in docs page by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2184\n\n## New Contributors\n* @tituslhy made their first contribution in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2178\n* @kunjanshah0811 made their first contribution in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2165\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.17.0...v2.18.0","2025-08-18T08:28:08",{"id":229,"version":230,"summary_zh":231,"released_at":232},280802,"v2.17.0","## What's Changed\n* chore(deps): batch upgrade 2025-03 by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2130\n* upgrade litellm version in pyproject.toml by @GTimothee in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2139\n* chore(docs): update how to create custom metrics by @GTimothee in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2150\n* chore(deps): batch upgrade 2025-04 by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2157\n* chore(deps): update package `faiss-cpu` version by @davidberenstein1957 in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2155\n* [GSK-3963] refactor: standardise string formatting and improve code readability by @davidberenstein1957 in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2133\n* chore(deps): update `griffe` version constraint to `>=1.0.0,\u003C2.0.0` by @davidberenstein1957 in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2176\n* chore(deps): add IPython dependency and improve import structure in r… by @davidberenstein1957 in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2161\n* QATestset - push to hub integration by @GTimothee in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2151\n\n## New Contributors\n* @GTimothee made their first contribution in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2139\n* @davidberenstein1957 made their first contribution in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2155\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.16.2...v2.17.0","2025-06-11T11:55:23",{"id":234,"version":235,"summary_zh":236,"released_at":237},280803,"v2.16.2","## What's Changed\n* chore: update getting started docs by @jmsquare in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2110\n* Chore: Moved test datasets to s3 by @kevinmessiaen in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2109\n* chore(deps): constrain package versions (`ragas`,  `langchain` and `wandb`) by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2122\n* chore(docs): replace llama3.1 with qwen2.5 on ollama docs by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2124\n* fix: Requirement Based Detectors to return right description by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2127\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.16.1...v2.16.2","2025-03-19T21:58:12",{"id":239,"version":240,"summary_zh":241,"released_at":242},280804,"v2.16.1","## What's Changed\n* [GSK-3950] Add scan results to RAGET banking supervision report by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2079\n* Refresh RAGET notebooks by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2087\n* [GSK-4014] Set encoding as utf-8 for all open statements by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2088\n* Fix GitHub Actions workflow for building Python by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2099\n* [GSK-4033] Fix correctness aggregation error by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2090\n* [GSK-3948] Add numerical perturbation detector by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2094\n* [GSK-4133] Fix RAGReport save and load methods for when KB is not set by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2100\n* Dependabot batch upgrade - 2025\u002F02 by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2106\n* Bump postcss from 8.5.1 to 8.5.2 by @dependabot in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2107\n* Fix slack jobs in create-release GH action by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2108\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.16.0...v2.16.1","2025-02-12T08:12:05",{"id":244,"version":245,"summary_zh":246,"released_at":247},280805,"v2.16.0","## What's Changed\n* Adding security policy by @mattbit in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2072\n* [GSK-3940] Make RagasMetric compatible with Ragas v0.2 by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2073\n* [GSK-3941] Fix Azure\u002FOpenAI client setup docs by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2074\n* [GSK-3914] Fix RagasMetric outdated message by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2062\n* Dependa bot - batch upgrade 2024-11-18 by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2075\n* [GSK-3950] Add a RAGET notebook for banking use case by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2077\n* [GSK-3846] Add support to LiteLLM by @kevinmessiaen in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2069\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.15.5...v2.16.0","2024-11-21T22:54:44",{"id":249,"version":250,"summary_zh":251,"released_at":252},280806,"v2.15.5","Release 2.15.5 fixes a [ReDoS vulnerability](https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fsecurity\u002Fadvisories\u002FGHSA-pjwm-cr36-mwv3) discovered in Giskard text perturbation detector (CVE-2024-52524).\r\n\r\nThanks to @kevinbackhouse for disclosing the issue and helping with the resolution.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.15.4...v2.15.5","2024-11-14T16:04:47",{"id":254,"version":255,"summary_zh":256,"released_at":257},280807,"v2.15.4","## What's Changed\n* Update report testset file extension by @PierreMesure in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2058\n* Limit mlflow-skinny version in ml_runtime by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2060\n* GSK-3609  Avoid redundant questions in data generation by @JiaenLiu in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F1990\n* Update pdm lock by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2063\n* Update test suite result on LLM QA notebooks by @henchaves in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2059\n* Fixed boolean indexer mismatching issue by @kevinmessiaen in https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fpull\u002F2071\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FGiskard-AI\u002Fgiskard\u002Fcompare\u002Fv2.15.3...v2.15.4","2024-11-12T12:15:54"]