langchain.chains.openai_functions.base
.create_openai_fn_chain¶
- langchain.chains.openai_functions.base.create_openai_fn_chain(functions: Sequence[Union[Dict[str, Any], Type[BaseModel], Callable]], llm: BaseLanguageModel, prompt: BasePromptTemplate, *, enforce_single_function_usage: bool = True, output_key: str = 'function', output_parser: Optional[BaseLLMOutputParser] = None, **kwargs: Any) LLMChain [源代码]¶
自版本 0.1.1 已弃用:请使用
create_openai_fn_runnable
代替。[已废弃] 创建一个使用 OpenAI 功能的 LLM 链。
- 参数
functions (Sequence[Union][Dict][str, Any], Type[BaseModel], Callable]) – 一个字典、pydantic.BaseModel 类型或 Python 函数的序列。如果传入字典,假定这些已经是一个有效的 OpenAI 函数。如果只传入一个函数,将强制模型使用这个函数。pydantic.BaseModel 和 Python 函数应该有描述函数功能的文档字符串。为了获得最佳效果,pydantic.BaseModel 应包含参数说明,Python 函数的文档字符串中应有 Google Python 风格的参数描述。另外,Python 函数应仅使用原始类型(str, int, float, bool)或 pydantic.BaseModel 作为参数。
llm (BaseLanguageModel) – 使用的语言模型,假设支持 OpenAI 函数调用 API。
prompt (BasePromptTemplate) – 将传递给模型的 BasePromptTemplate。
enforce_single_function_usage (bool) – 仅在传递单个函数时使用。如果为 True,则模型将被迫使用所提供的函数。如果为 False,则模型将有选择使用所提供函数或不使用的选项。
output_key (str) – 在 LLMChain.__call__ 中返回输出时使用的键。
output_parser (Optional[BaseLLMOutputParser]) – 用于解析模型输出的 BaseLLMOutputParser。默认情况下,将根据函数类型推断。如果传递了 pydantic.BaseModels,则 OutputParser 将尝试使用这些模型来解析输出。否则,模型输出将被简单地解析为 JSON。如果传递了多个函数且它们不是 pydantic.BaseModels,则链输出将包括返回函数的名称以及传递给函数的参数。
kwargs (Any) –
- 返回
一个将在运行时将给定函数传递给模型的 LLMChain。
- 返回类型
示例
from typing import Optional from langchain.chains.openai_functions import create_openai_fn_chain from langchain_community.chat_models import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate from langchain_core.pydantic_v1 import BaseModel, Field class RecordPerson(BaseModel): """Record some identifying information about a person.""" name: str = Field(..., description="The person's name") age: int = Field(..., description="The person's age") fav_food: Optional[str] = Field(None, description="The person's favorite food") class RecordDog(BaseModel): """Record some identifying information about a dog.""" name: str = Field(..., description="The dog's name") color: str = Field(..., description="The dog's color") fav_food: Optional[str] = Field(None, description="The dog's favorite food") llm = ChatOpenAI(model="gpt-4", temperature=0) prompt = ChatPromptTemplate.from_messages( [ ("system", "You are a world class algorithm for recording entities."), ("human", "Make calls to the relevant function to record the entities in the following input: {input}"), ("human", "Tip: Make sure to answer in the correct format"), ] ) chain = create_openai_fn_chain([RecordPerson, RecordDog], llm, prompt) chain.run("Harry was a chubby brown beagle who loved chicken") # -> RecordDog(name="Harry", color="brown", fav_food="chicken")