langchain.tools.powerbi.tool.QueryPowerBITool¶
- class langchain.tools.powerbi.tool.QueryPowerBITool(*, name: str = 'query_powerbi', description: str = '\n Input to this tool is a detailed question about the dataset, output is a result from the dataset. It will try to answer the question using the dataset, and if it cannot, it will ask for clarification.\n\n Example Input: "How many rows are in table1?"\n ', args_schema: Optional[Type[BaseModel]] = None, return_direct: bool = False, verbose: bool = False, callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, callback_manager: Optional[BaseCallbackManager] = None, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, handle_tool_error: Optional[Union[bool, str, Callable[[ToolException], str]]] = False, llm_chain: LLMChain, powerbi: PowerBIDataset, examples: Optional[str] = '\nQuestion: How many rows are in the table <table>?\nDAX: EVALUATE ROW("Number of rows", COUNTROWS(<table>))\n----\nQuestion: How many rows are in the table <table> where <column> is not empty?\nDAX: EVALUATE ROW("Number of rows", COUNTROWS(FILTER(<table>, <table>[<column>] <> "")))\n----\nQuestion: What was the average of <column> in <table>?\nDAX: EVALUATE ROW("Average", AVERAGE(<table>[<column>]))\n----\n', session_cache: Dict[str, Any] = None, max_iterations: int = 5, output_token_limit: int = 4000, tiktoken_model_name: Optional[str] = None)[source]¶
Bases:
BaseToolTool for querying a Power BI Dataset.
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- param args_schema: Optional[Type[BaseModel]] = None¶
Pydantic model class to validate and parse the tool’s input arguments.
- param callback_manager: Optional[BaseCallbackManager] = None¶
Deprecated. Please use callbacks instead.
- param callbacks: Callbacks = None¶
Callbacks to be called during tool execution.
- param description: str = '\n Input to this tool is a detailed question about the dataset, output is a result from the dataset. It will try to answer the question using the dataset, and if it cannot, it will ask for clarification.\n\n Example Input: "How many rows are in table1?"\n '¶
Used to tell the model how/when/why to use the tool.
You can provide few-shot examples as a part of the description.
- param examples: Optional[str] = '\nQuestion: How many rows are in the table <table>?\nDAX: EVALUATE ROW("Number of rows", COUNTROWS(<table>))\n----\nQuestion: How many rows are in the table <table> where <column> is not empty?\nDAX: EVALUATE ROW("Number of rows", COUNTROWS(FILTER(<table>, <table>[<column>] <> "")))\n----\nQuestion: What was the average of <column> in <table>?\nDAX: EVALUATE ROW("Average", AVERAGE(<table>[<column>]))\n----\n'¶
- param handle_tool_error: Optional[Union[bool, str, Callable[[ToolException], str]]] = False¶
Handle the content of the ToolException thrown.
- param llm_chain: langchain.chains.llm.LLMChain [Required]¶
- param max_iterations: int = 5¶
- param metadata: Optional[Dict[str, Any]] = None¶
Optional metadata associated with the tool. Defaults to None This metadata will be associated with each call to this tool, and passed as arguments to the handlers defined in callbacks. You can use these to eg identify a specific instance of a tool with its use case.
- param name: str = 'query_powerbi'¶
The unique name of the tool that clearly communicates its purpose.
- param output_token_limit: int = 4000¶
- param powerbi: langchain.utilities.powerbi.PowerBIDataset [Required]¶
- param return_direct: bool = False¶
Whether to return the tool’s output directly. Setting this to True means
that after the tool is called, the AgentExecutor will stop looping.
- param session_cache: Dict[str, Any] [Optional]¶
- param tags: Optional[List[str]] = None¶
Optional list of tags associated with the tool. Defaults to None These tags will be associated with each call to this tool, and passed as arguments to the handlers defined in callbacks. You can use these to eg identify a specific instance of a tool with its use case.
- param tiktoken_model_name: Optional[str] = None¶
- param verbose: bool = False¶
Whether to log the tool’s progress.
- __call__(tool_input: str, callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None) str¶
Make tool callable.
- async ainvoke(input: Union[str, Dict], config: Optional[RunnableConfig] = None, **kwargs: Any) Any¶
- async arun(tool_input: Union[str, Dict], verbose: Optional[bool] = None, start_color: Optional[str] = 'green', color: Optional[str] = 'green', callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, *, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) Any¶
Run the tool asynchronously.
- invoke(input: Union[str, Dict], config: Optional[RunnableConfig] = None, **kwargs: Any) Any¶
- validator raise_deprecation » all fields¶
Raise deprecation warning if callback_manager is used.
- run(tool_input: Union[str, Dict], verbose: Optional[bool] = None, start_color: Optional[str] = 'green', color: Optional[str] = 'green', callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, *, tags: Optional[List[str]] = None, metadata: Optional[Dict[str, Any]] = None, **kwargs: Any) Any¶
Run the tool.
- validator validate_llm_chain_input_variables » llm_chain[source]¶
Make sure the LLM chain has the correct input variables.
- property args: dict¶
- property is_single_input: bool¶
Whether the tool only accepts a single input.