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.0fallbackOptional[str]=Nonestate_keyOptional[Union[str, Callable[[Any], Any]]]=NoneagentOptional[Any]=Nonebase_urlOptional[str]=Noneapi_keyOptional[str]=NonemodelOptional[str]=Nonemax_lenOptional[int]=Nonehead_max_lenOptional[int]=NonelangOptional[str]=Nonemin_confidenceOptional[float]=NonehooksOptional[Any]=Noneon_predict_startOptional[Any]=Noneon_predict_endOptional[Any]=Nonehooks_raiseOptional[bool]=Nonehooks_timeoutOptional[float]=NonekwargsAny
invoke
invoke(input: Any, config: Optional[RunnableConfig] = None) -> str把輸入路由到目標分支的標籤。
參數
inputAnyconfigOptional[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]]=Noneactionstr="raise"rejection_messagestr="I cannot fulfill this request because it violates safety guidelines."thresholdfloat=0.5state_keyOptional[Union[str, Callable[[Any], Any]]]=NoneagentOptional[Any]=Nonebase_urlOptional[str]=Noneapi_keyOptional[str]=NonemodelOptional[str]=Nonemax_lenOptional[int]=Nonehead_max_lenOptional[int]=NonelangOptional[str]=Nonemin_confidenceOptional[float]=NonehooksOptional[Any]=Noneon_predict_startOptional[Any]=Noneon_predict_endOptional[Any]=Nonehooks_raiseOptional[bool]=Nonehooks_timeoutOptional[float]=NonekwargsAny
invoke
invoke(input: Any, config: Optional[RunnableConfig] = None) -> Any用防護欄問題篩查輸入。
參數
inputAnyconfigOptional[RunnableConfig]=None
LayaGuardrailError
LayaGuardrailError(
message: str,
violations: Dict[str, Any],
raw_decision: Dict[str, Any],
)基類: ValueError
輸入違反 Laya 防護欄策略時丟擲。
參數
messagestrviolationsDict[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]]]=NoneagentOptional[Any]=Nonebase_urlOptional[str]=Noneapi_keyOptional[str]=NonemodelOptional[str]=Nonemax_lenOptional[int]=Nonehead_max_lenOptional[int]=NonelangOptional[str]=Nonemin_confidenceOptional[float]=NonehooksOptional[Any]=Noneon_predict_startOptional[Any]=Noneon_predict_endOptional[Any]=Nonehooks_raiseOptional[bool]=Nonehooks_timeoutOptional[float]=NonekwargsAny
invoke
invoke(state: Any, config: Optional[RunnableConfig] = None) -> Dict[str, Any]對狀態做分流,返回補齊後的欄位。
參數
stateAnyconfigOptional[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]]]=NoneagentOptional[Any]=Nonebase_urlOptional[str]=Noneapi_keyOptional[str]=NonemodelOptional[str]=Nonemax_lenOptional[int]=Nonehead_max_lenOptional[int]=NonelangOptional[str]=Nonemin_confidenceOptional[float]=NonehooksOptional[Any]=Noneon_predict_startOptional[Any]=Noneon_predict_endOptional[Any]=Nonehooks_raiseOptional[bool]=Nonehooks_timeoutOptional[float]=NonekwargsAny
evaluate_strings
evaluate_strings(
prediction: str,
input: Optional[str] = None,
kwargs: Any,
) -> Dict[str, Any]LangChain 標準的字串評估介面。
參數
predictionstrinputOptional[str]=NonekwargsAny