文件導航

LangChain 元件

用 pip install "laya[langchain]" 安裝。LangChain 與 LangGraph 指南 展示了這些元件在鏈和圖裡的用法。

名稱、型別、預設值與程式碼保持英文;其餘為譯文(尚未翻譯的條目暫顯示英文原文)。

LayaRouter

LayaRouter(
    criteria: Dict[str, str],
    instructions: str = "Which route should handle this request?",
    confidence_threshold: float = 0.0,
    fallback: Optional[str] = None,
    state_key: Optional[Union[str, Callable[[Any], Any]]] = None,
    agent: Optional[Any] = None,
    base_url: Optional[str] = None,
    api_key: Optional[str] = None,
    model: Optional[str] = None,
    max_len: Optional[int] = None,
    head_max_len: Optional[int] = None,
    lang: Optional[str] = None,
    min_confidence: Optional[float] = None,
    hooks: Optional[Any] = None,
    on_predict_start: Optional[Any] = None,
    on_predict_end: Optional[Any] = None,
    hooks_raise: Optional[bool] = None,
    hooks_timeout: Optional[float] = None,
    kwargs: Any,
)

基類: _BatchedRunnable, RunnableSerializable

零延遲的 LangGraph 條件邊,也是 LangChain LCEL 的路由 runnable。

不做 token 生成,約 33 ms 就能把使用者輸入對照型別化判定標準評完。支援置信度閾值門控與回退路由;一批輸入還可以通過 batch 共用一次前向傳播。

參數

criteriaDict[str, str]
instructionsstr= "Which route should handle this request?"
confidence_thresholdfloat= 0.0
fallbackOptional[str]= None
state_keyOptional[Union[str, Callable[[Any], Any]]]= None
agentOptional[Any]= None
base_urlOptional[str]= None
api_keyOptional[str]= None
modelOptional[str]= None
max_lenOptional[int]= None
head_max_lenOptional[int]= None
langOptional[str]= None
min_confidenceOptional[float]= None
hooksOptional[Any]= None
on_predict_startOptional[Any]= None
on_predict_endOptional[Any]= None
hooks_raiseOptional[bool]= None
hooks_timeoutOptional[float]= None
kwargsAny

invoke

invoke(input: Any, config: Optional[RunnableConfig] = None) -> str

把輸入路由到目標分支的標籤。

參數

inputAny
configOptional[RunnableConfig]= None

LayaGuardrail

LayaGuardrail(
    questions: Optional[Dict[str, Any]] = None,
    action: str = "raise",
    rejection_message: str = "I cannot fulfill this request because it violates safety guidelines.",
    threshold: float = 0.5,
    state_key: Optional[Union[str, Callable[[Any], Any]]] = None,
    agent: Optional[Any] = None,
    base_url: Optional[str] = None,
    api_key: Optional[str] = None,
    model: Optional[str] = None,
    max_len: Optional[int] = None,
    head_max_len: Optional[int] = None,
    lang: Optional[str] = None,
    min_confidence: Optional[float] = None,
    hooks: Optional[Any] = None,
    on_predict_start: Optional[Any] = None,
    on_predict_end: Optional[Any] = None,
    hooks_raise: Optional[bool] = None,
    hooks_timeout: Optional[float] = None,
    kwargs: Any,
)

基類: _BatchedRunnable, RunnableSerializable

給 LangChain chain 與 LangGraph 節點用的內聯防護欄,40 ms 以內出結果。

在把輸入交給下游之前,篩查提示詞注入、越獄、敏感資料或自定義的危害判定標準。一批輸入可以通過 batch 共用一次前向傳播完成篩查。

threshold 是每個 noul 與 score 問題的違規機率,取值 [0, 1]:對 noul 問題,它作用在 noul 上;對 score 問題,它作用在「檔位處於量表中點或更高」的機率上(預設的 harm_severity 下即 serious 或 severe;檔位數為奇數時中點檔位也算)。score 問題的檔位必須從無害排到最嚴重。

參數

questionsOptional[Dict[str, Any]]= None
actionstr= "raise"
rejection_messagestr= "I cannot fulfill this request because it violates safety guidelines."
thresholdfloat= 0.5
state_keyOptional[Union[str, Callable[[Any], Any]]]= None
agentOptional[Any]= None
base_urlOptional[str]= None
api_keyOptional[str]= None
modelOptional[str]= None
max_lenOptional[int]= None
head_max_lenOptional[int]= None
langOptional[str]= None
min_confidenceOptional[float]= None
hooksOptional[Any]= None
on_predict_startOptional[Any]= None
on_predict_endOptional[Any]= None
hooks_raiseOptional[bool]= None
hooks_timeoutOptional[float]= None
kwargsAny

invoke

invoke(input: Any, config: Optional[RunnableConfig] = None) -> Any

用防護欄問題篩查輸入。

參數

inputAny
configOptional[RunnableConfig]= None

LayaGuardrailError

LayaGuardrailError(
    message: str,
    violations: Dict[str, Any],
    raw_decision: Dict[str, Any],
)

基類: ValueError

輸入違反 Laya 防護欄策略時丟擲。

參數

messagestr
violationsDict[str, Any]
raw_decisionDict[str, Any]

LayaTriage

LayaTriage(
    state_key: Optional[Union[str, Callable[[Any], Any]]] = None,
    agent: Optional[Any] = None,
    base_url: Optional[str] = None,
    api_key: Optional[str] = None,
    model: Optional[str] = None,
    max_len: Optional[int] = None,
    head_max_len: Optional[int] = None,
    lang: Optional[str] = None,
    min_confidence: Optional[float] = None,
    hooks: Optional[Any] = None,
    on_predict_start: Optional[Any] = None,
    on_predict_end: Optional[Any] = None,
    hooks_raise: Optional[bool] = None,
    hooks_timeout: Optional[float] = None,
    kwargs: Any,
)

基類: _BatchedRunnable, RunnableSerializable

給 LangGraph 用的客服工單與來信分流節點。

一次前向傳播就分析出意圖、緊急程度、客戶挫敗感與流失風險,並把這些欄位補進圖的狀態字典。一批積壓可以通過 batch 共用一次前向傳播完成分流。

參數

state_keyOptional[Union[str, Callable[[Any], Any]]]= None
agentOptional[Any]= None
base_urlOptional[str]= None
api_keyOptional[str]= None
modelOptional[str]= None
max_lenOptional[int]= None
head_max_lenOptional[int]= None
langOptional[str]= None
min_confidenceOptional[float]= None
hooksOptional[Any]= None
on_predict_startOptional[Any]= None
on_predict_endOptional[Any]= None
hooks_raiseOptional[bool]= None
hooks_timeoutOptional[float]= None
kwargsAny

invoke

invoke(state: Any, config: Optional[RunnableConfig] = None) -> Dict[str, Any]

對狀態做分流,返回補齊後的欄位。

參數

stateAny
configOptional[RunnableConfig]= None

LayaEvaluator

LayaEvaluator(
    questions: Dict[str, Any],
    state_key: Optional[Union[str, Callable[[Any], Any]]] = None,
    agent: Optional[Any] = None,
    base_url: Optional[str] = None,
    api_key: Optional[str] = None,
    model: Optional[str] = None,
    max_len: Optional[int] = None,
    head_max_len: Optional[int] = None,
    lang: Optional[str] = None,
    min_confidence: Optional[float] = None,
    hooks: Optional[Any] = None,
    on_predict_start: Optional[Any] = None,
    on_predict_end: Optional[Any] = None,
    hooks_raise: Optional[bool] = None,
    hooks_timeout: Optional[float] = None,
    kwargs: Any,
)

基類: _BatchedRunnable, RunnableSerializable

給 LangChain 用的量規式輸出評分與幻覺評估。

不生成文本,直接按判定標準評估 LLM 給出的回覆。一批迴復可以通過 batch 共用一次前向傳播完成評分。

參數

questionsDict[str, Any]
state_keyOptional[Union[str, Callable[[Any], Any]]]= None
agentOptional[Any]= None
base_urlOptional[str]= None
api_keyOptional[str]= None
modelOptional[str]= None
max_lenOptional[int]= None
head_max_lenOptional[int]= None
langOptional[str]= None
min_confidenceOptional[float]= None
hooksOptional[Any]= None
on_predict_startOptional[Any]= None
on_predict_endOptional[Any]= None
hooks_raiseOptional[bool]= None
hooks_timeoutOptional[float]= None
kwargsAny

evaluate_strings

evaluate_strings(
    prediction: str,
    input: Optional[str] = None,
    kwargs: Any,
) -> Dict[str, Any]

LangChain 標準的字串評估介面。

參數

predictionstr
inputOptional[str]= None
kwargsAny