Source code for langchain_community.agent_toolkits.powerbi.base
"""Power BI agent."""from__future__importannotationsfromtypingimportTYPE_CHECKING,Any,Dict,List,Optionalfromlangchain_core.callbacksimportBaseCallbackManagerfromlangchain_core.language_modelsimportBaseLanguageModelfromlangchain_community.agent_toolkits.powerbi.promptimport(POWERBI_PREFIX,POWERBI_SUFFIX,)fromlangchain_community.agent_toolkits.powerbi.toolkitimportPowerBIToolkitfromlangchain_community.utilities.powerbiimportPowerBIDatasetifTYPE_CHECKING:fromlangchain.agentsimportAgentExecutor
[docs]defcreate_pbi_agent(llm:BaseLanguageModel,toolkit:Optional[PowerBIToolkit]=None,powerbi:Optional[PowerBIDataset]=None,callback_manager:Optional[BaseCallbackManager]=None,prefix:str=POWERBI_PREFIX,suffix:str=POWERBI_SUFFIX,format_instructions:Optional[str]=None,examples:Optional[str]=None,input_variables:Optional[List[str]]=None,top_k:int=10,verbose:bool=False,agent_executor_kwargs:Optional[Dict[str,Any]]=None,**kwargs:Any,)->AgentExecutor:"""Construct a Power BI agent from an LLM and tools. Args: llm: The language model to use. toolkit: Optional. The Power BI toolkit. Default is None. powerbi: Optional. The Power BI dataset. Default is None. callback_manager: Optional. The callback manager. Default is None. prefix: Optional. The prefix for the prompt. Default is POWERBI_PREFIX. suffix: Optional. The suffix for the prompt. Default is POWERBI_SUFFIX. format_instructions: Optional. The format instructions for the prompt. Default is None. examples: Optional. The examples for the prompt. Default is None. input_variables: Optional. The input variables for the prompt. Default is None. top_k: Optional. The top k for the prompt. Default is 10. verbose: Optional. Whether to print verbose output. Default is False. agent_executor_kwargs: Optional. The agent executor kwargs. Default is None. kwargs: Any. Additional keyword arguments. Returns: The agent executor. """fromlangchain.agentsimportAgentExecutorfromlangchain.agents.mrkl.baseimportZeroShotAgentfromlangchain.chains.llmimportLLMChainiftoolkitisNone:ifpowerbiisNone:raiseValueError("Must provide either a toolkit or powerbi dataset")toolkit=PowerBIToolkit(powerbi=powerbi,llm=llm,examples=examples)tools=toolkit.get_tools()tables=powerbi.table_namesifpowerbielsetoolkit.powerbi.table_namesprompt_params=({"format_instructions":format_instructions}ifformat_instructionsisnotNoneelse{})agent=ZeroShotAgent(llm_chain=LLMChain(llm=llm,prompt=ZeroShotAgent.create_prompt(tools,prefix=prefix.format(top_k=top_k).format(tables=tables),suffix=suffix,input_variables=input_variables,**prompt_params,),callback_manager=callback_manager,verbose=verbose,),allowed_tools=[tool.namefortoolintools],**kwargs,)returnAgentExecutor.from_agent_and_tools(agent=agent,tools=tools,callback_manager=callback_manager,verbose=verbose,**(agent_executor_kwargsor{}),)