promptflow.evals.synthetic.xpia_simulator 模块#

class promptflow.evals.synthetic.xpia_simulator.IndirectAttackSimulator(*, azure_ai_project: Dict[str, Any], credential=None)#

基类:object

使用项目范围初始化 XPIA(跨域提示注入攻击)越狱对抗模拟器。

参数:
  • azure_ai_project (Dict[str, Any]) –

    定义项目范围的字典。它必须包含以下键

    • ”subscription_id”:Azure 订阅 ID。

    • ”resource_group_name”:Azure 资源组的名称。

    • ”project_name”:Azure 机器学习工作区的名称。

  • credential (TokenCredential) – 用于连接到 Azure AI 项目的凭据。

__call__(*, scenario: AdversarialScenario, target: Callable, max_conversation_turns: int = 1, max_simulation_results: int = 3, api_call_retry_limit: int = 3, api_call_retry_sleep_sec: int = 1, api_call_delay_sec: int = 0, concurrent_async_task: int = 3)#

使用项目范围初始化 XPIA(跨域提示注入攻击)越狱对抗模拟器。此模拟器通过将提示注入到上下文中与您的 AI 系统对话,以通过引发受操纵的内容、入侵并尝试收集超出 AI 系统范围的信息来中断正常的预期功能。

参数:
  • scenario (promptflow.evals.synthetic.adversarial_scenario.AdversarialScenario) – 指定用于生成输入的对抗场景的枚举值。

  • target (Callable) – 用于模拟对抗输入的目标函数。此函数应为异步函数,并接受表示对抗输入的字典。

  • max_conversation_turns (int) – 要模拟的最大对话轮次。默认为 1。

  • max_simulation_results (int) – 要返回的最大模拟结果数。默认为 3。

  • api_call_retry_limit (int) – 模拟中每个 API 调用的最大重试次数。默认为 3。

  • api_call_retry_sleep_sec (int) – API 调用重试之间的休眠持续时间(以秒为单位)。默认为 1 秒。

  • api_call_delay_sec (int) – 进行 API 调用前的延迟(以秒为单位)。这可用于避免达到速率限制。默认为 0 秒。

  • concurrent_async_task (int) – 模拟期间同时运行的异步任务数。默认为 3。

返回:

字典列表,每个字典代表一个模拟对话。每个字典包含

  • “template_parameters”:一个字典,其中包含对话模板中使用的参数,

    包括“conversation_starter”。

  • “messages”:一个字典列表,每个字典代表对话中的一轮。

    每个消息字典包括“content”(消息文本)和“role”(指示消息是来自“user”还是“assistant”)。

  • $schema”:一个字符串,指示对话格式的模式 URL。

“assistant”角色消息的“content”可能包含您的回调返回的消息。

返回类型:

List[Dict[str, Any]]

输出格式

return_value = [
    {
        'template_parameters': {},
        'messages': [
            {
                'content': '<jailbreak prompt> <adversarial question>',
                'role': 'user'
            },
            {
                'content': "<response from endpoint>",
                'role': 'assistant',
                'context': None
            }
        ],
        '$schema': 'http://azureml/sdk-2-0/ChatConversation.json'
    }]
}
promptflow.evals.synthetic.xpia_simulator.monitor_adversarial_scenario(func) Callable#

用于监视对抗场景的装饰器。

参数:

func (Callable) – 要装饰的函数。

返回:

被装饰的函数。

返回类型:

可调用