分配角色
我们如何提高模型在开放式任务上的性能?
角色提示(或称人格提示)是为模型分配一个角色。角色可以是
- 特定于查询:您是一位才华横溢的作家。请写一首诗。
- 通用/社交:您是一个乐于助人的人工智能助手。请写一首诗。
实现¶
import openai
import instructor
from pydantic import BaseModel
client = instructor.from_openai(openai.OpenAI())
class Response(BaseModel):
poem: str
def role_prompting(query, role):
return client.chat.completions.create(
model="gpt-4o",
response_model=Response,
messages=[
{
"role": "system",
"content": f"{role} {query}",
},
],
)
if __name__ == "__main__":
query = "Write me a short poem about coffee."
role = "You are a renowned poet."
response = role_prompting(query, role)
print(response.poem)
"""
In the morning's gentle light,
A brew of warmth, dark and bright.
Awakening dreams, so sweet,
In every sip, the day we greet.
Through the steam, stories spin,
A liquid muse, caffeine within.
Moments pause, thoughts unfold,
In coffee's embrace, we find our gold.
"""
更多角色提示
要了解选择角色的系统方法,请查看 RoleLLM。
有关社交角色的更多示例,请查看这篇关于系统提示中社交角色评估的文章。
要了解如何使用多个角色,请查看Multi-Persona Self-Collaboration。
参考资料¶
1: RoleLLM: Benchmarking, Eliciting, and Enhancing Role-Playing Abilities of Large Lanuage Models
2: Is "A Helpful Assistant" the Best Role for Large Language Models? A Systematic Evaluation of Social Roles in System Prompts
3: Unleashing the Emergent Cognitive Synergy in Large Lanuage Models: A Task-Solving Agent through Multi-Persona Self-Collaboration