camel.personas 包#

子模块#

camel.personas.persona 模块#

class camel.personas.persona.Persona(*, name: str | None = None, description: str | None = None, text_to_persona_prompt: ~camel.prompts.base.TextPrompt | str = <factory>, persona_to_persona_prompt: ~camel.prompts.base.TextPrompt | str = <factory>)[来源]#

基类:BaseModel

人物角色是社会中的一个角色。

name#

角色名称。

Type:

可选[str]

description#

人物角色的描述。

Type:

可选[str]

text_to_persona_prompt#

将文本转换为角色的提示。

Type:

Union[TextPrompt, str]

persona_to_persona_prompt#

角色间互动提示。

Type:

联合[TextPrompt, 字符串]

id#

角色的唯一标识符,自动生成。

Type:

uuid.UUID

_id#

人物角色的内部唯一标识符,使用uuid.uuid4延迟生成。

Type:

uuid.UUID

model_config#

Pydantic模型的配置。允许任意类型并包含自定义JSON模式设置。

Type:

类变量[配置字典]

description: str | None#
dict(*args, **kwargs)[来源]#
property id: UUID#
json(*args, **kwargs)[来源]#
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'json_schema_extra': {'properties': {'persona_to_persona_prompt': {'type': 'string'}, 'text_to_persona_prompt': {'type': 'string'}}}}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

classmethod model_json_schema()[来源]#

为模型类生成JSON模式。

Parameters:
  • by_alias – 是否使用属性别名。

  • ref_template – 参考模板。

  • schema_generator – 用于覆盖生成JSON模式的逻辑,作为GenerateJsonSchema的子类,可根据需要进行修改

  • mode – 生成模式时所使用的模式。

Returns:

给定模型类的JSON模式。

model_post_init(context: Any, /) None#

该函数旨在模拟BaseModel方法来初始化私有属性。

它接受context作为参数,因为这是pydantic-core在调用时传递的内容。

Parameters:
  • self – BaseModel实例。

  • context – 上下文。

name: str | None#
persona_to_persona_prompt: TextPrompt | str#
text_to_persona_prompt: TextPrompt | str#

camel.personas.persona_hub 模块#

class camel.personas.persona_hub.PersonaHub(model: BaseModelBackend | None = None)[来源]#

基类:object

PersonaHub改编自“Scaling Synthetic Data Creation with 1,000,000,000 Personas”

PersonaHub提出了一种新颖的角色驱动数据合成方法,该方法利用大型语言模型(LLM)中的多种视角来创建多样化的合成数据。通过展示PersonaHub在合成高质量数学与逻辑推理问题、指令(即用户提示)、知识密集型文本、游戏NPC以及规模化工具(功能)等方面的应用案例,作者证明了角色驱动数据合成具有多功能性、可扩展性、灵活性且易于使用,可能推动合成数据创建与实际应用的范式转变,这对LLM的研究与发展可能产生深远影响。更多详情请参阅论文:https://arxiv.org/pdf/2406.20094

Parameters:

model (BaseModelBackend, optional) – 用于角色生成和操作的基础模型。(默认: None)

deduplicate(embedding_model: BaseEmbedding | None = None, similarity_threshold: float = 0.85) None[来源]#

从群组中移除相似的角色。

Parameters:
  • embedding_model (BaseEmbedding) – 用于相似性比较的嵌入模型。(默认为 None)。

  • similarity_threshold (float) – 用于去重的相似度阈值(默认为0.85)。

get_all_personas() List[角色][来源]#

返回所有角色的列表。

persona_to_persona(persona: 角色) Dict[UUID, 角色][来源]#

基于该角色的人际关系衍生出更多角色。

Parameters:

persona (Persona) – 用于衍生相关角色的原始角色。

Returns:

一个包含相关角色的字典。

Return type:

字典[UUID, Persona]

text_to_persona(text: str, action: Literal['read', 'write', 'like', 'dislike'] = 'read') 角色[来源]#

推断一个特定角色,该角色可能[阅读|写作|喜欢|不喜欢|…]给定的文本。

Parameters:
  • text (str) – 用于推断角色的输入文本。

  • action (str) – 与该角色关联的操作(默认为"read")。

Returns:

推断出的角色。

Return type:

角色设定

class camel.personas.persona_hub.PersonaResponse(*, persona_name: str, persona_description: str)[来源]#

基类:BaseModel

model_config: ClassVar[ConfigDict] = {}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

persona_description: str#
persona_name: str#

模块内容#

class camel.personas.Persona(*, name: str | None = None, description: str | None = None, text_to_persona_prompt: ~camel.prompts.base.TextPrompt | str = <factory>, persona_to_persona_prompt: ~camel.prompts.base.TextPrompt | str = <factory>)[来源]#

基类:BaseModel

人物角色是社会中的一个角色。

name#

角色名称。

Type:

可选[str]

description#

人物角色的描述。

Type:

可选[str]

text_to_persona_prompt#

将文本转换为角色的提示。

Type:

联合[TextPrompt, 字符串]

persona_to_persona_prompt#

角色间互动提示。

Type:

联合[TextPrompt, 字符串]

id#

角色的唯一标识符,自动生成。

Type:

uuid.UUID

_id#

人物角色的内部唯一标识符,使用uuid.uuid4延迟生成。

Type:

uuid.UUID

model_config#

Pydantic模型的配置。允许任意类型并包含自定义JSON模式设置。

Type:

类变量[配置字典]

description: str | None#
dict(*args, **kwargs)[来源]#
property id: UUID#
json(*args, **kwargs)[来源]#
model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'json_schema_extra': {'properties': {'persona_to_persona_prompt': {'type': 'string'}, 'text_to_persona_prompt': {'type': 'string'}}}}#

模型的配置,应该是一个符合[ConfigDict][pydantic.config.ConfigDict]的字典。

classmethod model_json_schema()[来源]#

为模型类生成JSON模式。

Parameters:
  • by_alias – 是否使用属性别名。

  • ref_template – 参考模板。

  • schema_generator – 用于覆盖生成JSON模式的逻辑,作为GenerateJsonSchema的子类,可根据需要进行修改

  • mode – 生成模式时所使用的模式。

Returns:

给定模型类的JSON模式。

model_post_init(context: Any, /) None#

该函数旨在模拟BaseModel方法来初始化私有属性。

它接受context作为参数,因为这是pydantic-core在调用时传递的内容。

Parameters:
  • self – BaseModel实例。

  • context – 上下文。

name: str | None#
persona_to_persona_prompt: TextPrompt | str#
text_to_persona_prompt: TextPrompt | str#
class camel.personas.PersonaHub(model: BaseModelBackend | None = None)[来源]#

基类:object

PersonaHub改编自“Scaling Synthetic Data Creation with 1,000,000,000 Personas”

PersonaHub提出了一种新颖的人物角色驱动数据合成方法,该方法利用大型语言模型(LLM)中的多种视角来创建多样化的合成数据。通过展示PersonaHub在合成高质量数学与逻辑推理问题、指令(即用户提示)、知识密集型文本、游戏NPC以及规模化工具(函数)等方面的应用案例,作者证明了人物角色驱动的数据合成具有多功能性、可扩展性、灵活性且易于使用,可能推动合成数据创建及其实际应用范式的转变,这将对LLM的研究与开发产生深远影响。更多详情请参阅论文:https://arxiv.org/pdf/2406.20094

Parameters:

model (BaseModelBackend, optional) – 用于角色生成和操作的基础模型。(默认: None)

deduplicate(embedding_model: BaseEmbedding | None = None, similarity_threshold: float = 0.85) None[来源]#

从群组中移除相似的角色。

Parameters:
  • embedding_model (BaseEmbedding) – 用于相似性比较的嵌入模型(默认为None)。

  • similarity_threshold (float) – 用于去重的相似度阈值(默认为0.85)。

get_all_personas() List[角色][来源]#

返回所有角色的列表。

persona_to_persona(persona: 角色) Dict[UUID, 角色][来源]#

基于该人物的人际关系,衍生出额外的角色。

Parameters:

persona (Persona) – 用于派生相关角色的原始角色。

Returns:

相关角色的字典。

Return type:

字典[UUID, Persona]

text_to_persona(text: str, action: Literal['read', 'write', 'like', 'dislike'] = 'read') 角色[来源]#

推断一个可能[阅读|写作|喜欢|不喜欢|...]给定文本的特定人物角色。

Parameters:
  • text (str) – 用于推断角色的输入文本。

  • action (str) – 与该角色关联的操作(默认为"read")。

Returns:

推断出的角色。

Return type:

角色设定