|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from typing import Any |
|
|
|
from camel.prompts.ai_society import AISocietyPromptTemplateDict |
|
from camel.prompts.base import TextPrompt |
|
from camel.types import RoleType |
|
|
|
|
|
|
|
class RoleDescriptionPromptTemplateDict(AISocietyPromptTemplateDict): |
|
r"""A dictionary containing :obj:`TextPrompt` used in the `role description` |
|
task. |
|
|
|
Attributes: |
|
ROLE_DESCRIPTION_PROMPT (TextPrompt): A default prompt to |
|
describe the role descriptions. |
|
ASSISTANT_PROMPT (TextPrompt): A system prompt for the AI assistant |
|
that outlines the rules of the conversation and provides |
|
instructions for completing tasks. |
|
USER_PROMPT (TextPrompt): A system prompt for the AI user that |
|
outlines the rules of the conversation and provides instructions |
|
for giving instructions to the AI assistant. |
|
""" |
|
|
|
ROLE_DESCRIPTION_PROMPT = TextPrompt("""===== ROLES WITH DESCRIPTION ===== |
|
{user_role} and {assistant_role} are collaborating to complete a task: {task}. |
|
Competencies, characteristics, duties and workflows of {user_role} to complete the task: {user_description} |
|
{assistant_role}'s competencies, characteristics, duties and workflows to complete the task: {assistant_description} |
|
""") |
|
|
|
ASSISTANT_PROMPT = TextPrompt( |
|
ROLE_DESCRIPTION_PROMPT + AISocietyPromptTemplateDict.ASSISTANT_PROMPT |
|
) |
|
|
|
USER_PROMPT = TextPrompt( |
|
ROLE_DESCRIPTION_PROMPT + AISocietyPromptTemplateDict.USER_PROMPT |
|
) |
|
|
|
def __init__(self, *args: Any, **kwargs: Any) -> None: |
|
super().__init__(*args, **kwargs) |
|
self.update( |
|
{ |
|
"role_description": self.ROLE_DESCRIPTION_PROMPT, |
|
RoleType.ASSISTANT: self.ASSISTANT_PROMPT, |
|
RoleType.USER: self.USER_PROMPT, |
|
} |
|
) |
|
|