langchain_google_vertexai.chains
.create_structured_runnable¶
- langchain_google_vertexai.chains.create_structured_runnable(function: Union[Type[BaseModel], Sequence[Type[BaseModel]]], llm: Runnable, *, prompt: Optional[BasePromptTemplate] = None, use_extra_step: bool = False) Runnable[source]¶
创建一个使用OpenAI函数的runnable序列。
- 参数
function (Union) – 既可以是一个单一的pydantic.BaseModel类,也可以是一个pydantic.BaseModels类的序列。为了最佳结果,pydantic.BaseModels应具有参数描述。
llm (Runnable) – 使用的语言模型,假定它支持Google Vertex函数调用API。
prompt – 要传递给模型的BasePromptTemplate。
use_extra_step – 是否进行额外的步骤将输出解析为函数
- 返回值
一个runnable序列,当运行时将在模型中传递给给定函数。
- 返回类型
示例
from typing import Optional from langchain_google_vertexai import ChatVertexAI, create_structured_runnable 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 = ChatVertexAI(model_name="gemini-pro") prompt = ChatPromptTemplate.from_template(""" You are a world class algorithm for recording entities. Make calls to the relevant function to record the entities in the following input: {input} Tip: Make sure to answer in the correct format""" ) chain = create_structured_runnable([RecordPerson, RecordDog], llm, prompt=prompt) chain.invoke({"input": "Harry was a chubby brown beagle who loved chicken"}) # -> RecordDog(name="Harry", color="brown", fav_food="chicken")