langchain_community.chains.ernie_functions.base
.create_structured_output_runnable¶
- langchain_community.chains.ernie_functions.base.create_structured_output_runnable(output_schema: Union[Dict[str, Any], Type[BaseModel]], llm: Runnable, prompt: BasePromptTemplate, *, output_parser: Optional[Union[BaseOutputParser, BaseGenerationOutputParser]] = None, **kwargs: Any) Runnable [source]¶
创建一个可运行的程序,使用Ernie函数来获取结构化输出。
- 参数:
- output_schema: 可以是字典或pydantic.BaseModel类。如果传入的是字典,
则假定它已经是一个有效的JsonSchema。 为了获得最佳结果,pydantic.BaseModels应该有描述模式代表什么以及参数描述的文档字符串。
llm: 要使用的语言模型,假定支持Ernie函数调用API。 prompt: 传递给模型的BasePromptTemplate。 output_parser: 用于解析模型输出的BaseLLMOutputParser。默认情况下
将从函数类型中推断出来。如果传入pydantic.BaseModels, 则OutputParser将尝试使用这些来解析输出。否则 模型输出将简单地被解析为JSON。
- 返回:
一个可运行的序列,当运行时将给定的函数传递给模型。
- 示例:
from typing import Optional from langchain.chains.ernie_functions import create_structured_output_chain from langchain_community.chat_models import ErnieBotChat from langchain_core.prompts import ChatPromptTemplate from langchain.pydantic_v1 import BaseModel, Field class Dog(BaseModel): """关于一只狗的身份信息。""" name: str = Field(..., description="狗的名字") color: str = Field(..., description="狗的颜色") fav_food: Optional[str] = Field(None, description="狗喜欢的食物") llm = ErnieBotChat(model_name="ERNIE-Bot-4") prompt = ChatPromptTemplate.from_messages( [ ("user", "使用给定格式从以下输入中提取信息: {input}"), ("assistant", "好的!"), ("user", "提示: 确保以正确的格式回答"), ] ) chain = create_structured_output_chain(Dog, llm, prompt) chain.invoke({"input": "Harry是一只胖胖的棕色小猎犬,喜欢吃鸡肉"}) # -> Dog(name="Harry", color="brown", fav_food="chicken")
- Parameters
output_schema (Union[Dict[str, Any], Type[BaseModel]]) –
llm (Runnable) –
prompt (BasePromptTemplate) –
output_parser (Optional[Union[BaseOutputParser, BaseGenerationOutputParser]]) –
kwargs (Any) –
- Return type