Classe LangchainAgent (1.50.0)

LangchainAgent(
    model: str,
    *,
    prompt: typing.Optional[RunnableSerializable] = None,
    tools: typing.Optional[
        typing.Sequence[typing.Union[typing.Callable, BaseTool]]
    ] = None,
    output_parser: typing.Optional[RunnableSerializable] = None,
    chat_history: typing.Optional[GetSessionHistoryCallable] = None,
    model_kwargs: typing.Optional[typing.Mapping[str, typing.Any]] = None,
    agent_executor_kwargs: typing.Optional[typing.Mapping[str, typing.Any]] = None,
    runnable_kwargs: typing.Optional[typing.Mapping[str, typing.Any]] = None,
    model_builder: typing.Optional[typing.Callable] = None,
    runnable_builder: typing.Optional[typing.Callable] = None
)

Metodi

LangchainAgent

LangchainAgent(
    model: str,
    *,
    prompt: typing.Optional[RunnableSerializable] = None,
    tools: typing.Optional[
        typing.Sequence[typing.Union[typing.Callable, BaseTool]]
    ] = None,
    output_parser: typing.Optional[RunnableSerializable] = None,
    chat_history: typing.Optional[GetSessionHistoryCallable] = None,
    model_kwargs: typing.Optional[typing.Mapping[str, typing.Any]] = None,
    agent_executor_kwargs: typing.Optional[typing.Mapping[str, typing.Any]] = None,
    runnable_kwargs: typing.Optional[typing.Mapping[str, typing.Any]] = None,
    model_builder: typing.Optional[typing.Callable] = None,
    runnable_builder: typing.Optional[typing.Callable] = None
)

Inizializza LangchainAgent.

In sostanza, supponendo che venga chiamato .set_up(), questo corrisponderà a

model = model_builder(model_name=model, model_kwargs=model_kwargs)
runnable = runnable_builder(
    prompt=prompt,
    model=model,
    tools=tools,
    output_parser=output_parser,
    chat_history=chat_history,
    agent_executor_kwargs=agent_executor_kwargs,
    runnable_kwargs=runnable_kwargs,
)

Se tutto si basa sui valori predefiniti, corrisponde a

# model_builder
from langchain_google_vertexai import ChatVertexAI
llm = ChatVertexAI(model_name=model, **model_kwargs)

# runnable_builder
from langchain import agents
from langchain_core.runnables.history import RunnableWithMessageHistory
agent_executor = agents.AgentExecutor(
    agent=prompt | llm.bind_tools(tools=tools) | output_parser,
    tools=tools,
    **agent_executor_kwargs,
)
runnable = RunnableWithMessageHistory(
    runnable=agent_executor,
    get_session_history=chat_history,
    **runnable_kwargs,
)
Parametri
Nome Description
model str

Facoltativo. Il nome del modello (ad es. "gemini-1.0-pro").

prompt langchain_core.runnables.RunnableSerializable

Facoltativo. Il modello di prompt per il modello. Il valore predefinito è ChatPromptTemplate.

tools Sequence[langchain_core.tools.BaseTool, Callable]

Facoltativo. Gli strumenti che l'agente può utilizzare. Tutti gli elementi richiamabili di input (ad esempio, il metodo di funzione o di classe) verranno convertiti in un cosiddetto longchain.tools.base.StructuredTool. Il valore predefinito è Nessuno.

output_parser langchain_core.runnables.RunnableSerializable

Facoltativo. Il parser di output per il modello. Il valore predefinito è un parser di output che funzioni con le chiamate di funzione Gemini.

chat_history langchain_core.runnables.history.GetSessionHistoryCallable

Facoltativo. Richiamabile che restituisce un nuovo BaseChatMessage alla cronologia. Il valore predefinito è Nessuno, ad esempio la cronologia chat non viene conservata.

model_kwargs Mapping[str, Any]

Facoltativo. Argomenti parole chiave aggiuntivi per il costruttore di chat_models.ChatVertexAI. Un esempio potrebbe essere

 { # temperature (float): Sampling temperature, it controls the # degree of randomness in token selection. "temperature": 0.28, # max_output_tokens (int): Token limit determines the # maximum amount of text output from one prompt. "max_output_tokens": 1000, # top_p (float): Tokens are selected from most probable to # least, until the sum of their probabilities equals the # top_p value. "top_p": 0.95, # top_k (int): How the model selects tokens for output, the # next token is selected from among the top_k most probable # tokens. "top_k": 40, } 

agent_executor_kwargs Mapping[str, Any]

Facoltativo. Argomenti aggiuntivi per le parole chiave per il costruttore di labchain.agents.AgentExecutor. Un esempio potrebbe essere

 { # Whether to return the agent's trajectory of intermediate # steps at the end in addition to the final output. "return_intermediate_steps": False, # The maximum number of steps to take before ending the # execution loop. "max_iterations": 15, # The method to use for early stopping if the agent never # returns AgentFinish. Either 'force' or 'generate'. "early_stopping_method": "force", # How to handle errors raised by the agent's output parser. # Defaults to False, which raises the error. "handle_parsing_errors": False, } 

runnable_kwargs Mapping[str, Any]

Facoltativo. Altri argomenti per le parole chiave per il costruttore di labchain.runnables.history.RunnableWithMessagehistory se chat_history è specificato. Se chat_history è impostato su None, verrà ignorato.

model_builder Callable

Facoltativo. Chiamabile che restituisce un nuovo modello linguistico. Il valore predefinito è un elemento richiamabile che restituisce ChatVertexAI in base a model, model_kwargs e ai parametri in vertexai.init.

runnable_builder Callable

Facoltativo. Richiamabile che restituisce un nuovo elemento eseguibile. Può essere utilizzato per personalizzare la logica di orchestrazione dell'agente in base al modello restituito da model_builder e al resto degli argomenti di input.

Eccezioni
Tipo Description
TypeError Se è presente uno strumento non valido (ad esempio, una funzione con un input
tha non specifica il tipo).

query

query(
    *,
    input: typing.Union[str, typing.Mapping[str, typing.Any]],
    config: typing.Optional[RunnableConfig] = None,
    **kwargs: typing.Any
) -> typing.Dict[str, typing.Any]

Esegue una query sull'agente con l'input e la configurazione specificati.

Parametri
Nome Description
input Union[str, Mapping[str, Any]]

Obbligatorio. L'input da passare all'agente.

config langchain_core.runnables.RunnableConfig

Facoltativo. La configurazione (se presente) da utilizzare per richiamare l'agente.

set_up

set_up()

Configura l'agente per l'esecuzione delle query in fase di runtime.

Inizializza il modello, lo associa agli strumenti e lo collega al modello di prompt e all'analizzatore sintattico di output.

Questo metodo non deve essere chiamato per un oggetto che viene passato al servizio ReasoningEngine per il deployment, poiché inizializza i client che non possono essere serializzati.