赞
踩
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/
输出防护栏是一组规则和检查机制,旨在确保大型语言模型(LLM)的输出准确、适当,并符合用户期望。在本次指南中,重点介绍如何开发一个特定检查幻觉的输出防护栏。
假设这是一个为客户支持团队开发的自动化支持代理。我们将为这个代理提供关于如何处理退货、退款、反馈等事宜的政策知识库,并期望模型在与客户互动时遵循这些政策。首先,使用GPT-4o生成一组需要遵循的政策。
- system_input_prompt = """
- 你是一名能为虚构公司生成支持代理政策的助手。你将收到一个主题(如退货、退款、反馈),并为该主题生成一个处理客户咨询的示例政策。政策应包含处理客户问题的逐步说明,包括客户属于某一类别时的决策逻辑,并提供采取具体行动的要求。
- """
-
- user_policy_example_1 = "退货政策"
- assistant_policy_example_1 = """
- 退货政策
- 1. **询问客户为什么要更换订单**
- - 将他们的问题分类为以下几种情况之一:
- - 损坏:他们收到的产品有损坏
- - 满意度:客户对产品不满意,不喜欢产品
- - 不必要:他们不再需要该物品
- 2a. **如果退货类别为“损坏”**
- - 询问客户是否有损坏物品的照片
- - 如果物品确实损坏,继续执行步骤3
- - 如果物品未损坏,通知客户这不符合我们的退货要求,他们不符合退款条件
- - 跳过步骤3,直接进入步骤4
- 2b. **如果退货类别为“满意度”或“不必要”**
- - 询问客户是否可以提供产品质量的反馈
- - 如果订单是在30天内下的,通知他们可以获得全额退款
- - 如果订单是在31-60天内下的,通知他们可以获得50%的部分退款
- - 如果订单超过60天,通知他们不符合退款条件
- 3. **如果客户符合退货或退款条件**
- - 询问客户是否确认他们想要退货或退款
- - 一旦确认,处理他们的请求
- 4. **在结束工单前提供额外的支持**
- - 询问客户是否还有其他需要帮助的地方。
- """
-
- # 生成政策的函数
- def generate_policy(policy: str) -> str:
- input_message = user_policy_input.replace("{{POLICY}}", policy)
-
- response = client.chat.completions.create(
- messages= [
- {"role": "system", "content": system_input_prompt},
- {"role": "user", "content": user_policy_example_1},
- {"role": "assistant", "content": assistant_policy_example_1},
- {"role": "user", "content": input_message},
- ],
- model="gpt-4o"
- )
-
- return response.choices[0].message.content
-
- # 生成多种政策
- def generate_policies() -> List[str]:
- policies = ['产品反馈政策', '运输政策', '保修政策', '账户删除', '投诉处理']
-
- with ThreadPoolExecutor() as executor:
- policy_instructions_list = list(executor.map(generate_policy, policies))
-
- return policy_instructions_list
-
- policy_instructions = generate_policies()

接下来,我们利用这些政策生成遵循或不遵循这些指示的客户互动示例。
开发防护栏时的指导原则包括:提供描述性指标以评估响应的准确性,确保关键术语的一致性,以及从最先进的模型开始开发。通过这些原则,我们构建出一个防护栏系统,并测量其性能。
- guardrail_system_message = """你是一名高度专业化的助手,负责审查聊天机器人回复以识别和标记任何不准确或幻觉。在分析用户消息时,请彻底分析响应内容,考虑以下几点:
- 1. 知识准确性:消息是否准确反映了知识库中的信息?不仅要评估直接提及的内容,还要评估上下文推断的知识。
- 2. 相关性:消息是否直接回应用户的问题或陈述?检查响应是否逻辑上符合用户的最后一条消息,保持对话连贯性。
- 3. 政策合规性:消息是否遵循公司政策?评估是否存在错误信息、过度承诺或逻辑不一致。确保响应礼貌、不歧视且实用。
-
- 为执行任务,你将收到以下信息:
- 1. 知识库文章 - 这些是验证助手消息内容的真理来源。
- 2. 聊天记录 - 提供用户与助手之间对话的上下文。
- 3. 助手消息 - 需要审核的助手消息。
-
- 对于助手最近响应的每一句话,请根据以下标准评分:
- 1. 事实准确性:句子是否符合知识库中的内容?
- 2. 相关性:句子是否直接回应用户的问题或陈述?
- 3. 政策合规性:句子是否符合公司政策?
- 4. 上下文连贯性:句子是否保持或增强了对话的连贯性?
- 返回的响应必须为JSON格式数组,其中每个JSON对象代表一个评估的句子。
- """

接下来,我们使用以上逻辑生成并测试一批客户互动,并计算幻觉检测的精度和召回率。
- # 计算精度和召回率
- precision = precision_score(df['accurate'], df['hallucination'])
- recall = recall_score(df['accurate'], df['hallucination'])
-
- print(f"\nPrecision: {precision:.2f}, Recall: {recall:.2f}")
最终结果显示,防护栏系统具有很高的精度和召回率,表明它能够准确识别模型输出中的幻觉。这些防护栏为大型语言模型的输出提供了强有力的保障,确保输出的准确性和一致性。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。