[基于OpenEvals的自动化评估-02]LLM-as-a-Judge:让LLM当裁判来评估Agent的输出

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档) SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心... 立即下载

在大部分情况下,我们会借助LLM的能力来评估Agent的输出,我们将这种评估模式成为LLM-as-a-Judge。这是一种利用大型语言模型对生成式AI输出进行自动化评估的范式,其核心思想是让模型承担裁判角色,对候选答案进行打分、排序或选择,能够在开放式任务中判断质量、相关性、逻辑性、事实性与有用性等更细腻的属性。由于LLM是一个概率模型,所以评估的结果本质上是一个概率分布,所以代表评估结果的Score一般是一个[0-1]的分数,返回的二元布尔值也是基于指标的开率计算出来的(比如得分是否大于0.5)。

1. LLM-as-a-Judge评估器的创建

基于LLM-as-a-Judge的评估器通过如下所示的create_llm_as_judge和create_async_llm_as_judge两个工厂函数创建而成,这是整个OpenEvals最为核心的两个方法。这两个函数最终会创建代表同步和异步评估器的SimpleEvaluator和SimpleAsyncEvaluator,我们在基于OpenEvals的自动化评估-01:通过一个例子了解评估模型已经对这两个类型进行过详细介绍。

def create_llm_as_judge(
    *,
    prompt: Union[str, Runnable, Callable[..., list[ChatCompletionMessage]]],
    feedback_key: str = "score",
    judge: Optional[Union[ModelClient, BaseChatModel]] = None,
    model: Optional[str] = None,
    system: Optional[str] = None,
    continuous: bool = False,
    choices: Optional[list[float]] = None,
    use_reasoning: bool = True,
    few_shot_examples: Optional[list[FewShotExample]] = None,
    output_schema: Optional[Union[dict, type]] = None,
) -> Union[SimpleEvaluator, Callable[..., Any]]

def create_async_llm_as_judge(
    *,
    prompt: Union[str, Runnable, Callable[..., list[ChatCompletionMessage]]],
    feedback_key: str = "score",
    judge: Optional[Union[ModelClient, BaseChatModel]] = None,
    model: Optional[str] = None,
    system: Optional[str] = None,
    continuous: bool = False,
    choices: Optional[list[float]] = None,
    use_reasoning: bool = True,
    few_shot_examples: Optional[list[FewShotExample]] = None,
    output_schema: Optional[Union[dict, type]] = None,
) -> Union[SimpleAsyncEvaluator, Callable[..., Awaitable[Any]]]

class FewShotExample(TypedDict):
    inputs: Any
    outputs: Any
    score: Union[float, bool]
    reasoning: Optional[str]

这两个工厂方式具有相同过的参数,说明分别如下:

  • prompt:定义评估提示词模板,类型可以是字符串,也可以是类似于PromptTemplate这样的Runnable对象(可以采用LCEL表达式于LLM进行连接),或者是一个用于返回LLM输入的消息列表的函数。如果以字符串定义提示词,可以包含如下的占位符:
    • {inputs}
    • {outputs}
    • {reference_outputs}
    • {由kwargs指定的参数名称}
  • feedback_key:评估结果中存储的字段名,默认为score;
  • judge/model: 用于提供用来实施评估的LLM;
  • system: 系统提示词;
  • continuous:评估结果是否是连续值:
    • True: 输出为0~1的连续浮点数;
    • False: 输出为布尔值。
  • choices:如果希望评估结果采用指定的选项,可以利用此参数指定一个列表,比如choices=[0.0, 0.5, 1.0]意味着最终得分只有指定的三种选择;
  • use_reasoning:是否要求模型输出评分理由:
    • True:输出包含解释;
    • False:只输出评分。
  • few_shot_examples: 用于在提示词中加入few-shot示例,提升评估一致性;
  • output_schema:评估结果的结构化输出格式。

在调用SimpleEvaluator/SimpleAsyncEvaluator进行评估的时候,定义在评估提示词模板的占位符会被同名的参数替换。如果使用model参数指定包含提供商的模型标准名称,方法内部会利用标准的URL创建代表LangChain LLM组件的BaseChatModel对象。如果需要连接自定义URL指向的LLM部署地址,或者需要对LLM组件对象进行定制,可以直接利用judge参数指定一个BaseChatModel对象。也可以直接执行一个ModelClient对象,ModelClient是OpenEvals针对LLM客户端组件的表达,但是此时依然需要利用model参数指定模型名称;

1.1 输入消息的生成

调用LLM实施评估需要生成消息列表作为输入,OpenEvals将用于LLM交互的消息定义成如下这个名为ChatCompletionMessage的TypedDict,对应的成员分别用来表示消息的ID、角色、内容和工具调用。

class ChatCompletionMessage(TypedDict):
    id: NotRequired[Optional[str]]
    content: Union[str, list[dict]]
    role: str
    tool_calls: NotRequired[Optional[list[dict]]]

create_llm_as_judge和create_async_llm_as_judge这两个函数会才采用如下的逻辑生成作为LLM输入的消息列表:

  • 如果指定的prompt参数是一个Runnable对象:
    • 会将它视为一个类似于PromptTemplate的提示词模板,此时它会调用此对象生成完整的提示词,作为参数的字典会包含如下的占位符,分别对应调用评估器对应的参数:
      • {inputs}
      • {outputs}
      • {reference_outputs}
      • {由kwargs指定的参数名称}
    • 最后按照OpenAI消息风格将执行的结果转化成ChatCompletionMessage列表。
  • 如果指定的prompt参数是一个字符串:
    • 如果调用评估器利用kwargs指定了一个表示多媒体消息内容的attachments参数,会创建对应的Conent-Block(这里体现为一个dict对象,并非LangChain的ContentBlock类型)。此时会试图从提示词中定位对应的{attachments}占位符,并使用前面和后面(如果有)文本创建对象的文本类型的Content-Block,然后将它们作为内容创建角色为user的ChatCompletionMessage对象。
    • 否则根据提示词直接创建一个角色为user的ChatCompletionMessage对象;
    • 对于如上的两种情况,提示词文本提供的上述四种占位符会被对应的参数替换。
  • 如果prompt是一个Callable[..., list[ChatCompletionMessage]],直接调用此对象生成ChatCompletionMessage列表。

对于上面生成ChatCompletionMessage列表,还会根据提供的参数添加如下的消息:

  • 如果指定了system参数,会据此创建一个角色为system的消息,置于消息列表的最前端;
  • 如果指定了few_shot_examples参数,会据此创建对应的消息列表,追加到消息列表的尾部。

1.2 结构化输出

由于评估结果具有固有的结构,所以在调用LLM的时候必须指定输出Schema以结构化输出的方式保证返回具有匹配结构的结果。输出Schema具有如下三种指定方式:

  • 调用create_llm_as_judge和create_async_llm_as_judge函数时指定output_schema参数;
  • 将prompt参数指定为StructuredPrompt对象,并由后者提供输出Schema;
  • 调用如下的函数使用默认的输出Schema作为兜底,三个参数对应两个工厂函数的同名参数。
def _construct_default_output_json_schema(
    *,
    continuous: bool = False,
    choices: Optional[list[float]] = None,
    use_reasoning: bool = True,
) -> tuple[dict, str]

在如下的演示程序中,我们以不同的参数调用了_construct_default_output_json_schema函数生成并输出相应的Schema:

from openevals.llm import _construct_default_output_json_schema
import json

schema  = _construct_default_output_json_schema()
print(json.dumps(schema,ensure_ascii=False, indent=2))

schema  = _construct_default_output_json_schema(
    continuous=True,
    choices=[0.0,0.5,1.0]
)
print(json.dumps(schema,ensure_ascii=False, indent=2))

输出:

[
  {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "reasoning": {
        "type": "string",
        "description": "A human-readable explanation of the score. You MUST end the reasoning with a sentence that says: Thus, the score should be: SCORE_YOU_ASSIGN."
      },
      "score": {
        "type": "boolean",
        "description": "A score that is true if criteria in the prompt are met, and false otherwise."
      }
    },
    "required": [
      "reasoning",
      "score"
    ]
  },
  "A score that is true if criteria in the prompt are met, and false otherwise."
]
[
  {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "reasoning": {
        "type": "string",
        "description": "A human-readable explanation of the score. You MUST end the reasoning with a sentence that says: Thus, the score should be: SCORE_YOU_ASSIGN."
      },
      "score": {
        "type": "number",
        "description": "A number that represents the degree to which the criteria in the prompt are met.",
        "enum": [
          0.0,
          0.5,
          1.0
        ]
      }
    },
    "required": [
      "reasoning",
      "score"
    ]
  },
  "A number that represents the degree to which the criteria in the prompt are met."
]

在上述默认Schema基础上,一般还会添加额外的必要的字段成员。

1.3 LLM的调用

作为输入的消息列表生成之后,我们来看看如何将它们作为输入调用对应的LLM来完成评估工作。create_llm_as_judge和create_async_llm_as_judge这两个函数与LLM相关的参数有如下两个:

  • model:评估模型的标准名称;
  • judge:评估模型对应的BaseChatModel或者ModelClient对象。

我的系列文章03.LangChain语言模型组件对BaseChatModel表示的LangChian语言模型组件进行了详细介绍,这里我们来看看ModelClient类型的定义。ModelClient是一个代表LLM 客户端的抽象协议,要求任何实现它的对象必须提定义一个chat属性来提供ChatCompletionsClient类型,并以此作为创建LLM组件。ChatCompletionsClient代表采用OpenAI风格的文本补齐模型的客户端。

@runtime_checkable
class ModelClient(Protocol):
    @property
    def chat(self) -> type[ChatCompletionsClient]: ...

@runtime_checkable
class ChatCompletionsClient(Protocol):
    def create(self, **kwargs) -> ChatCompletion: ...

class ChatCompletion(TypedDict):
    choices: list[dict]

create_llm_as_judge和create_async_llm_as_judge函数最终会采用如下的方式来创建用来实施评估的LLM组件,并将上面解析出来的消息列表作为如下调用它们实施评估:

  • 如果judge参数是一个ModelClient对象,此时必须要求同时提供model参数,此时会调用judge.chat.completions.creat方法生成完成针对LLM的调用,作为参数传入的字典会包含如下三个成员:
    • messages: 消息列表;
    • model:模型名称;
    • response_format:输出Schema。
  • 如果只提供了model参数,直接调用LangChain的init_chat_model函数根据此参数创建对应的BaseChatModel对象,直接将消息列表作为如下调用此对象;
  • 如果指定的judge参数是一个BaseChatModel,直接将消息列表作为如下调用此对象。

2. 利用LLM-as-a-Judge评估器实施评估

接下来我们会使用一些简单的实例演示如何指定不同的参数调用create_async_llm_as_judge函数创建相应的评估器,并对手工指定的输出实施评估。如下面的演示程序所示,我们调用create_async_llm_as_judge函数时利用prompt参数指定了一段简短的提示词来完成正确性评估,judge参数则设置为一个采用gpt-5.4-mini模型的ChatOpenAI对象。我们针对同一个问题:说出战国四大名将的姓名,针对不同的两个答案实施评估。

from openevals import create_async_llm_as_judge
from langchain_openai  import ChatOpenAI
from dotenv import load_dotenv
import asyncio,json

load_dotenv()

prompt="""\
确认针对指定问题的提供的答案是否正确:

**问题**
{inputs}

**答案**
{outputs}
"""

async def eval(outputs:str):
    evaluator = create_async_llm_as_judge(
        prompt = prompt,
        judge= ChatOpenAI(model="gpt-5.4-mini"))
    result = await evaluator(
        inputs= "说出战国四大名将的姓名",
        outputs=outputs
    )
    print(json.dumps(result,ensure_ascii=False, indent=2))

async def main():
    await eval("吴起、廉颇、李牧和王翦")    
    await eval("白起、廉颇、李牧和王翦")

asyncio.run(main())

输出结果:

{
  "key": "score",
  "score": false,
  "comment": "题目问“战国四大名将”的姓名,通行说法通常指吴起、白起、廉颇、李牧。给出的答案是吴起、廉颇、李牧和王翦,其中“王翦”并非这一常见“四大名将”名单中的成员,而是将“白起”写错/替换了。因此该答案不正确。Thus, the score should be: false.",
  "metadata": null
}
{
  "key": "score",
  "score": true,
  "comment": "题目要求说出“战国四大名将”的姓名。通常公认的战国四大名将指白起、王翦、廉颇、李牧,答案中给出的四人完全一致,只是顺序不同。因此该答案正确。Thus, the score should be: true.",
  "metadata": null
}

从输出可看出,评估结果的score模式采用二元布尔值(continuous= False),并且默认开启了推理(use_reasoning = True)。顺便说一下,由于战国四大名将其实并没有一个权威的说法,所以第一次评估采用了吴起、白起、廉颇、李牧这种说法,第二种则采用了白起、王翦、廉颇、李牧这种说法。

2.2 输出连续值

我们看看在调用create_async_llm_as_judge是将continuous参数成True,让评估结果体现为一个具体的分值:

evaluator = create_async_llm_as_judge(
        prompt = prompt,
        continuous= True,
        judge= ChatOpenAI(model="gpt-5.4-mini"))

输出:

{
  "key": "score",
  "score": 0.75,
  "comment": "题目问“战国四大名将”的姓名。通行说法中,战国四大名将通常指白起、王翦、廉颇、李牧。给出的答案里“廉颇、李牧和王翦”正确,但“吴起”不属于这一通常名单,应为“白起”。因此答案只部分正确。Thus, the score should be: 0.75.",
  "metadata": null
}
{
  "key": "score",
  "score": 1.0,
  "comment": "题目要求说出“战国四大名将”的姓名。通常公认的战国四大名将是白起、王翦、廉颇、李牧;给出的答案包含这四人,且顺序不同不影响正确性。因此答案正确。Thus, the score should be: 1.0.",
  "metadata": null
}

从输出可以看出,第一种答案答对了三个,得分0.75挺合理,第二个答案完全正确,得了满分。

2.3 限制分值和指定少样本示例

我们可以进一步利用choices参数将分支限制在[0.0,0.25,0.50,0.75,1.0]五个选项之间,并提供少样本实例知道LLM严格按照说对的比例打分。

from openevals import create_async_llm_as_judge
from openevals.types import FewShotExample
from langchain_openai  import ChatOpenAI
from dotenv import load_dotenv
import asyncio,json

load_dotenv()

prompt="""\
确认针对指定问题的提供的答案是否正确:

**问题**
{inputs}

**答案**
{outputs}
"""
inputs= "说出战国四大名将的姓名",
few_shot_examples:list[FewShotExample] = [
     {"inputs":inputs , "outputs":"吴起、司马错、乐毅、蒙恬", "score":0.0, "reasoning":"四个都错"},
     {"inputs":inputs , "outputs":"白起、司马错、乐毅、蒙恬", "score":0.25, "reasoning":"四个错其三"},
     {"inputs":inputs , "outputs":"白起、李牧、乐毅、蒙恬", "score":0.50, "reasoning":"四个错其二"},
     {"inputs":inputs , "outputs":"白起、李牧、王翦、蒙恬", "score":0.75, "reasoning":"四个错其一"},
     {"inputs":inputs , "outputs":"白起、李牧、王翦、廉颇", "score":1.0, "reasoning":"四个都对"},
]

async def eval(outputs:str):
    evaluator = create_async_llm_as_judge(
        prompt = prompt,
        continuous= True,
        choices=[0.0,0.25,0.50,0.75,1.0],        
        judge= ChatOpenAI(model="gpt-5.4-mini"),
        few_shot_examples=few_shot_examples)
    result = await evaluator(
        inputs= inputs,
        outputs=outputs
    )
    print(json.dumps(result,ensure_ascii=False, indent=2))

async def main():
    await eval("孙膑、李牧、王翦、廉颇")    
    await eval("孙膑、‌庞涓‌、李牧和司马错‌")

asyncio.run(main())
{
  "key": "score",
  "score": 0.75,
  "comment": "题目问的是“战国四大名将”,通常标准答案是白起、王翦、李牧、廉颇。给出的答案是孙膑、李牧、王翦、廉颇,其中只有李牧、王翦、廉颇三人正确,孙膑不属于这一组。Thus, the score should be: 0.75.",
  "metadata": null
}
{
  "key": "score",
  "score": 0.25,
  "comment": "题目问的是“战国四大名将”。通行答案一般是白起、王翦、李牧、廉颇。给出的答案“孙膑、庞涓、李牧和司马错”中只有李牧属于常见正确答案,其余三位都不属于这一组。因此,四个错其三。Thus, the score should be: 0.25.",
  "metadata": null
}
YOLOv8作物病害检测实战源码 这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。 立即下载

相关推荐

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

[基于OpenEvals的自动化评估-13]Agent执行轨迹评估[LLM-as-a-Judge]

[基于OpenEvals的自动化评估-12:Agent执行轨迹评估]介绍的轨迹评估很简单,让首先确待评估的消息列表与作为基准的列表在消息数量上相等、角色上一一匹配。如果涉及工具调用,在根据指定的工具调用列表匹配模式和参数匹配模式对工具调用进行比较。其实Agent执行轨迹也可以借助LLM的力量,利用创建的基于**LLM-as-a-Judge**的评

JaydenAI的博客 435

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?.docx

科技中介服务机构在技术供需对接中如何实现服务流程的自动化与标准化?

[基于OpenEvals的自动化评估-15]以LLM-as-a-Judge方式评估Agent生成的代码

[基于OpenEvals的自动化评估-14:以静态代码分析方式评估Coding Agent生成的代码]着重介绍了基于MyPy和Pyright这两种广受欢迎的基于Python的静态代码分析引擎器来评估Agent生成的代码,其实提取出来的代码还可以直接交给LLM进行评估。相关的评估器可以利用create_code_llm_as_judge这个工厂函数来创建,本篇文章就来介绍如何利用这种方式实施针对代码的评估。

JaydenAI的博客 352

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

[基于OpenEvals的自动化评估-06]评估Agent输出文本的质量[上篇]

对于我们个人来说,Agent编程最大的挑战不是各种所谓的工作,而是写提示词,毕竟我不是专业的文字工作者。OpenEvals针对一系列针对输出文本质量的评估指标定义了对应的提示词,结合基于LLM-as-a-Judge的评估器,我们可以进行针对简洁度、正确性、幻觉度、相关性、计划遵循度、代码正确性等指标的评估。我们会分上下文两篇文章来介绍针对这些预定义提示词的使用。

JaydenAI的博客 631

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

[基于OpenEvals的自动化评估-05]基于JSON相似度的评估[LLM参与的语义匹配]

基于JSON内容的评估可以说是OpenEvals最重要的部分,[基于OpenEvals的自动化评估-04:基于JSON相似度的评估]对用于提供相关评估器的如下两个工厂函数从无LLM参与的角度进行了介绍。我们着重讨论了这两个函数的`aggregator`、`list_aggregator`和`list_match_mode`参数。其余的参数均与**LLM-as-a-Judge**有关。如果有了LLM加持,我们可以进行真正的基于自然语言的语义相似度比较,这样才能真正发挥AI的能力。

JaydenAI的博客 340

高校技术转移办公室人员如何系统化管理科技成果信息?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科技中介服务机构如何构建标准化、模块化的智能服务工具?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

[基于OpenEvals的自动化评估-08]对Agent的输出和输入进行安全性评估

中文的安全其实对应**Safety**和**Security**两个单词,它们的侧重点和防御的对象截然不同。Safety指的是防止系统出错或失控对人类或环境造成伤害,核心是防范无意的意外、错误或故障。。核心是防范有意的恶意行为。本文将介绍如何利用OpeEvals提供的提示词,结合LLM-as-a-Judge评估器,针对五个安全指标的评估,**分别有害性(Toxicity)**、**公平性(Fairness)**、**个人信息泄露(PII Leakage)**、**代码注入(Code Injection)**

JaydenAI的博客 384

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

fab-pm-optimizer-python-entry-py39-20261021-v1-1-0

[基于OpenEvals的自动化评估-01]OpenEvals的评估模型其实很简单

OpenEvals是LangChain官方推出的开源自动化评估框架,专注于Agent及大模型应用的链路质检。它不仅能评估大模型的最终回复,更核心的价值在于多步行为与决策评估。框架支持工具调用准确性和多轮用户模拟仿真。通过将评估指标代码化,OpenEvals将复杂的Agent推理轨迹、思维黑盒转化为可量化的分数,提供了工业级的Agent**操行评定表**。它是破局Agent落地信任危机的核心度量衡。虽然OpenEvals可以帮助我们从很多的维度对Agent进行评估,但是它的评估模型其实很简单。

JaydenAI的博客 492

PSIM-三相维也纳VIENNA整流器电压电流双闭环+中点电位平衡SVPWM控制仿真

内容概要:本文档详细介绍了一种基于PSIM软件实现的三相维也纳(VIENNA)整流器仿真模型,重点实现了电压电流双闭环控制与中点电位平衡的SVPWM调制策略。该仿真系统通过精确的控制算法有效提升了整流器的功率因数,降低了输入电流谐波含量,并解决了三电平拓扑中常见的直流侧中点电位偏移问题,具有较高的工程实用价值,适用于高效率、高功率密度的电力电子系统设计与科研验证。文档还整合了丰富的配套资源,涵盖多种电力电子变换器拓扑结构、先进控制算法及典型应用场景,形成了系统化的技术资料体系,有助于深入理解现代整流技术的核心原理与发展动态。; 适合人群:面向从事电力电子、电气工程、新能源变换系统等领域的科研人员、高校研究生以及具备一定仿真基础的工程技术人员。; 使用场景及目标:①深入研究三相VIENNA整流器的工作机理与控制特性;②掌握电压外环、电流内环双闭环控制结构的设计方法;③理解并实现SVPWM调制技术与中点电位平衡控制策略的协同作用;④开展相关控制算法的仿真验证、性能优化与实验对比,为高性能整流装置的研发提供理论支撑和技术原型。; 阅读建议:建议结合文中列出的其他仿真案例(如PWM整流器、LLC谐振变换器、DAB变换器等)进行横向对比学习,充分利用所提供的PSIM、MATLAB/Simulink等多平台仿真资源,重点关注控制逻辑与主电路的耦合关系,通过参数调试与波形分析深化对系统动态响应和稳态性能的理解,强化“理论—建模—仿真—优化”的闭环研究能力。

产业园区运营负责人如何利用数智工具提升园区企业的技术对接效率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

[基于OpenEvals的自动化评估-11]针对Agent对话的评估[下篇]

在[上篇]我们介绍了评估用户与Agent对话的三个指标,包括语气评估(Tone)、知识记忆评估(Knowledge Retention)和 用户感知错误评估(Perceived Error),接下来我们补充余下的三个:任务完成度评估(Task Completion )、用户满意度评估(User Satisfaction)和用户赞赏评估(Wins)。

JaydenAI的博客 370

macOS Jdk1.8安装(目前主流版本的jdk)

添加环境环境变量,类似于windows的高级设置中path配置的环境变量。查看 JAVA_HOME 目录。查看 JDK 版本信息。一直下一步安装就好了。在终端的根目录下运行。

m0_50207524的博客 9353

基于OpenEvals的自动化评估-14:用静态代码分析给Agent生成的Python代码做体检

用 OpenEvals 给 Agent 生成的 Python 代码做静态分析体检:复制 Pyright 评估器骨架,配置 code_extraction_strategy 提取 markdown 代码块,跑一次即可输出 reportReturnType、reportUndefinedVariable 等问题清单。TaoToken 提供兼容多模型的 API 通道,官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 可获取 Key 并接入评估流水

SnowflakeJaguar14的博客 185

若依开源框架(分离版)在人大金仓数据库下使用

对于甲方业务特殊要求,使用国产化数据库人大金仓,作为项目主要存储。这里以若依开源框架整合人大金仓为例,演示如何在真实项目中引入人大金仓。

🐱喵测实验室 5942

机器人C++开源库The Robotics Library (RL)使用手册(三)

进入VS工程,我们先看看这些功能函数及其依赖库的分布关系:rl命名空间下,主要有八大模块。搞定VS后将逐个拆解。

qq_34839823的博客 1736
上一篇: [基于OpenEvals的自动化评估-01]OpenEvals的评估模型其实很简单
下一篇: [基于OpenEvals的自动化评估-03]两种针对语义相似度的评估方式
JaydenAI
博客等级 码龄1年 243粉丝 324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值