langchain_community.chains.ernie_functions.base.create_structured_output_chain

langchain_community.chains.ernie_functions.base.create_structured_output_chain(output_schema: Union[Dict[str, Any], Type[BaseModel]], llm: BaseLanguageModel, prompt: BasePromptTemplate, *, output_key: str = 'function', output_parser: Optional[BaseLLMOutputParser] = None, **kwargs: Any) LLMChain[source]

[遗留] 创建一个LLMChain,使用Ernie函数来获取一个结构化的输出。

参数:
output_schema: 可以是字典或pydantic.BaseModel类。如果传入的是字典,则假定它已经是一个有效的JsonSchema。

为了获得最佳结果,pydantic.BaseModels应该有描述模式代表和参数描述的文档字符串。

llm: 要使用的语言模型,假定支持Ernie函数调用API。 prompt: 传递给模型的BasePromptTemplate。 output_key: 在LLMChain.__call__中返回输出时要使用的键。 output_parser: 用于解析模型输出的BaseLLMOutputParser。默认情况下将从函数类型中推断出来。如果传入pydantic.BaseModels,则OutputParser将尝试使用这些来解析输出。否则,模型输出将简单地解析为JSON。

返回:

一个LLMChain,将给定的函数传递给模型。

示例:
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.run("Harry was a chubby brown beagle who loved chicken")
# -> Dog(name="Harry", color="brown", fav_food="chicken")
Parameters
Return type

LLMChain

Examples using create_structured_output_chain