langchain.chains.openai_functions.base
.create_structured_output_chain¶
- langchain.chains.openai_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]¶
[Deprecated] [遗留] 创建一个LLMChain,使用OpenAI函数来获取结构化输出。
- 参数:
- output_schema:可以是字典或pydantic.BaseModel类。如果传入字典,则假定已经是有效的JsonSchema。
为了获得最佳结果,pydantic.BaseModels应该有描述模式代表什么以及参数描述的文档字符串。
llm:要使用的语言模型,假定支持OpenAI函数调用API。 prompt:传递给模型的BasePromptTemplate。 output_key:在LLMChain.__call__中返回输出时要使用的键。 output_parser:用于解析模型输出的BaseLLMOutputParser。默认情况下将从函数类型中推断出来。如果传入pydantic.BaseModels,则OutputParser将尝试使用这些来解析输出。否则,模型输出将简单地解析为JSON。
- 返回:
一个LLMChain,将给定的函数传递给模型。
- 示例:
from typing import Optional from langchain.chains.openai_functions import create_structured_output_chain from langchain_community.chat_models import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.pydantic_v1 import BaseModel, Field class Dog(BaseModel): """关于狗的身份信息。""" name: str = Field(..., description="狗的名字") color: str = Field(..., description="狗的颜色") fav_food: Optional[str] = Field(None, description="狗喜欢的食物") llm = ChatOpenAI(model="gpt-3.5-turbo-0613", temperature=0) prompt = ChatPromptTemplate.from_messages( [ ("system", "您是一个世界级的算法,用于提取结构化格式中的信息。"), ("human", "使用给定的格式从以下输入中提取信息:{input}"), ("human", "提示:确保以正确的格式回答"), ] ) 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")
Notes
Deprecated since version 0.1.1: Use ChatOpenAI.with_structured_output instead.
- Parameters
output_schema (Union[Dict[str, Any], Type[BaseModel]]) –
llm (BaseLanguageModel) –
prompt (BasePromptTemplate) –
output_key (str) –
output_parser (Optional[BaseLLMOutputParser]) –
kwargs (Any) –
- Return type