langchain_community.chains.ernie_functions.base
.create_ernie_fn_chain¶
- langchain_community.chains.ernie_functions.base.create_ernie_fn_chain(functions: Sequence[Union[Dict[str, Any], Type[BaseModel], Callable]], llm: BaseLanguageModel, prompt: BasePromptTemplate, *, output_key: str = 'function', output_parser: Optional[BaseLLMOutputParser] = None, **kwargs: Any) LLMChain [source]¶
[遗留] 创建一个使用 Ernie 函数的 LLM 链。
- 参数:
functions: 一个序列,可以是字典、pydantic.BaseModels 类或 Python 函数。如果传入字典,则假定它们已经是有效的 Ernie 函数。如果只传入一个函数,则将强制模型使用该函数。pydantic.BaseModels 和 Python 函数应该有描述函数功能的文档字符串。为了获得最佳结果,pydantic.BaseModels 应该有参数的描述,Python 函数应该在文档字符串中使用 Google Python 风格的参数描述。此外,Python 函数应该只使用原始类型(str、int、float、bool)或 pydantic.BaseModels 作为参数。 llm: 要使用的语言模型,假定支持 Ernie 函数调用 API。 prompt: 传递给模型的 BasePromptTemplate。 output_key: 在 LLMChain.__call__ 中返回输出时要使用的键。 output_parser: 用于解析模型输出的 BaseLLMOutputParser。默认情况下,将从函数类型中推断。如果传入 pydantic.BaseModels,则 OutputParser 将尝试使用这些来解析输出。否则,模型输出将简单地解析为 JSON。如果传入多个函数且它们不是 pydantic.BaseModels,则链输出将包括返回的函数名称和要传递给函数的参数。
- 返回:
一个 LLMChain,在运行时将给定的函数传递给模型。
- 示例:
from typing import Optional from langchain.chains.ernie_functions import create_ernie_fn_chain from langchain_community.chat_models import ErnieBotChat from langchain_core.prompts import ChatPromptTemplate from langchain.pydantic_v1 import BaseModel, Field class RecordPerson(BaseModel): """记录有关一个人的一些身份信息。""" name: str = Field(..., description="人的姓名") age: int = Field(..., description="人的年龄") fav_food: Optional[str] = Field(None, description="人喜欢的食物") class RecordDog(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_ernie_fn_chain([RecordPerson, RecordDog], llm, prompt) chain.run("Harry是一只胖乎乎的棕色比格犬,喜欢鸡肉") # -> RecordDog(name="Harry", color="brown", fav_food="chicken")
- Parameters
functions (Sequence[Union[Dict[str, Any], Type[BaseModel], Callable]]) –
llm (BaseLanguageModel) –
prompt (BasePromptTemplate) –
output_key (str) –
output_parser (Optional[BaseLLMOutputParser]) –
kwargs (Any) –
- Return type