模块 nemoguardrails.rails.llm.llmrails#

LLM Rails 入口点。

全局变量#

  • explain_info_var

  • streaming_handler_var


LLMRails#

基于给定配置的 Rails。

方法 LLMRails.__init__#

__init__(
    config: nemoguardrails.rails.llm.config.RailsConfig,
    llm: Optional[langchain.llms.base.BaseLLM] = None,
    verbose: bool = False
)

初始化 LLMRails 实例。

参数

  • config: 一个 rails 配置。

  • llm: 要使用的可选 LLM 引擎。

  • verbose: 日志记录是否应详细。


方法 LLMRails.explain#

explain()  ExplainInfo

返回最新 ExplainInfo 对象的辅助函数。


方法 LLMRails.generate#

generate(prompt: Optional[str] = None, messages: Optional[List[dict]] = None)

generate_async 的同步版本。


方法 LLMRails.generate_async#

generate_async(
    prompt: Optional[str] = None,
    messages: Optional[List[dict]] = None,
    streaming_handler: Optional[nemoguardrails.streaming.StreamingHandler] = None
)  Union[str, dict]

生成补全或下一个消息。

消息的格式如下:

     [
         {"role": "context", "content": {"user_name": "John"}},
         {"role": "user", "content": "Hello! How are you?"},
         {"role": "assistant", "content": "I am fine, thank you!"},
         {"role": "event", "event": {"type": "UserSilent"}},
         ...
     ]

参数

  • prompt: 用于补全的提示。

  • messages: 用于生成下一个消息的消息历史记录。

  • streaming_handler: 如果指定,并且配置支持流式传输,将使用提供的处理程序进行流式传输。

返回: 补全(提供提示时)或下一个消息。

暂不支持系统消息。


方法 LLMRails.generate_events#

generate_events(events: List[dict])  List[dict]

LLMRails.generate_events_async 的同步版本。


方法 LLMRails.generate_events_async#

generate_events_async(events: List[dict])  List[dict]

根据提供的历史记录生成下一个事件。

事件的格式如下:

     [
         {"type": "...", ...},
         ...
     ]

参数

  • events: 用于生成下一个事件的事件历史记录。

返回: 新生成的事件。


方法 LLMRails.register_action#

register_action(
    action: <built-in function callable>,
    name: Optional[str] = None
)

为 rails 配置注册一个自定义动作。


方法 LLMRails.register_action_param#

register_action_param(name: str, value: Any)

注册一个自定义动作参数。


方法 LLMRails.register_embedding_search_provider#

register_embedding_search_provider(
    name: str,
    cls: Type[nemoguardrails.embeddings.index.EmbeddingsIndex]
)  None

注册一个新的嵌入搜索提供商。

参数

  • name: 将使用的嵌入搜索提供商的名称。

  • cls: 将用于生成和搜索嵌入的类


方法 LLMRails.register_filter#

register_filter(
    filter_fn: <built-in function callable>,
    name: Optional[str] = None
)

为 rails 配置注册一个自定义过滤器。


方法 LLMRails.register_output_parser#

register_output_parser(output_parser: <built-in function callable>, name: str)

为 rails 配置注册一个自定义输出解析器。


方法 LLMRails.register_prompt_context#

register_prompt_context(name: str, value_or_fn: Any)

注册一个值以包含在提示上下文中。

名称:

将使用的变量或函数的名称。 :value_or_fn: 将用于生成值的值或函数。


方法 LLMRails.stream_async#

stream_async(
    prompt: Optional[str] = None,
    messages: Optional[List[dict]] = None
)  AsyncIterator[str]

用于直接从 LLM 获取流式传输 token 的简化接口。