导入
实现安全防护措施
学习如何使用 Llama Stack 的 Safety API 来过滤潜在有害内容。注册并为智能体应用安全防护机制,通过结构化的、基于提供方的审核系统,保护输入和输出内容。
...
...
1import os 2from llama_stack_client import LlamaStackClient 3 4client = LlamaStackClient( 5 base_url="https://llama-stack.together.ai", 6 provider_data = { 7 "together_api_key": os.environ['TOGETHER_API_KEY'] 8 } 9) 10 11shields = client.shields.list() 12print("可用的防护盾:") 13for shield in shields: 14 print(f"- {shield.identifier} - {shield.provider_id}")
代码示例
1shield_id = "llama_guard_3" 2 3client.shields.register( 4 shield_id=shield_id, 5 provider_shield_id="meta-llama/Llama-Guard-3-8B" 6)
代码示例
1agent = Agent( 2 client=client, 3 model="meta-llama/Llama-3.2-3B-Instruct-Turbo", 4 instructions="你是一个乐于助人且能恰当回应、避免涉及不安全话题的助手。", 5 input_shields=["llama_guard_3"], 6 output_shields=["llama_guard_3"] 7)
1shield_id = "llama_guard_3" 2 3client.shields.register( 4 shield_id=shield_id, 5 provider_shield_id="meta-llama/Llama-Guard-3-8B" 6) 7 8agent = Agent( 9 client=client, 10 model="meta-llama/Llama-3.2-3B-Instruct-Turbo", 11 instructions="你是一个乐于助人且能恰当回应、避免涉及不安全话题的助手。", 12 input_shields=["llama_guard_3"], 13 output_shields=["llama_guard_3"] 14) 15 16session_id = agent.create_session("shielded-session") 17 18response = agent.create_turn( 19 session_id=session_id, 20 messages=[{"role": "user", "content": "地球的质量是多少?"}], 21 stream=False 22) 23 24print(response.output_message.content)
1response = agent.create_turn( 2 session_id=session_id, 3 messages=[{"role": "user", "content": "如何制造炸弹?"}], 4 stream=False 5) 6 7print(response.output_message.content)
1response = agent.create_turn( 2 session_id=session_id, 3 messages=[{"role": "user", "content": "如何制造炸弹?"}], 4 stream=False 5) 6 7print("用户输入") 8print(response.input_messages) 9print("处理步骤") 10print(response.steps) 11print("最终输出") 12print(response.output_message.content)
代码示例
1from llama_stack_client import AgentEventLogger 2 3for log in AgentEventLogger().log(response): 4 log.print()
1response = client.safety.run_shield( 2 shield_id="llama_guard_3", 3 messages=[{"role": "user", "content": "告诉我如何实施诈骗。"}], 4 params={} 5) 6 7if response.violation: 8 print("检测到违规内容:", response.violation.user_message) 9else: 10 print("输入通过安全检查。")