
    Ng                        d Z ddlmZ ddlmZmZmZmZmZ ddl	m
Z
 ddlmZ ddlmZmZ ddlmZ ddlmZ erdd	lmZ d
d
d
eed
d
d
ddd
fd(d'Zd
S ))zPower BI agent.    )annotations)TYPE_CHECKINGAnyDictListOptional)BaseCallbackManager)BaseLanguageModel)POWERBI_PREFIXPOWERBI_SUFFIX)PowerBIToolkit)PowerBIDatasetAgentExecutorN
   Fllmr
   toolkitOptional[PowerBIToolkit]powerbiOptional[PowerBIDataset]callback_managerOptional[BaseCallbackManager]prefixstrsuffixformat_instructionsOptional[str]examplesinput_variablesOptional[List[str]]top_kintverboseboolagent_executor_kwargsOptional[Dict[str, Any]]kwargsr   returnr   c                   ddl m} ddlm} ddlm} |#|t          d          t          || |          }|                                }|r|j	        n|j
        j	        }|d|ini } |d ||  |j        |f|                    |		                              |
          ||d|||
          d |D             d|} |j        d||||
d|pi S )a(  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.
    r   r   )ZeroShotAgent)LLMChainNz0Must provide either a toolkit or powerbi dataset)r   r   r   r   )r!   )tables)r   r   r   )r   promptr   r#   c                    g | ]	}|j         
S  )name).0tools     k/var/www/html/ai-engine/env/lib/python3.11/site-packages/langchain_community/agent_toolkits/powerbi/base.py
<listcomp>z$create_pbi_agent.<locals>.<listcomp>U   s    333Tty333    )	llm_chainallowed_tools)agenttoolsr   r#   r/   )langchain.agentsr   langchain.agents.mrkl.baser*   langchain.chains.llmr+   
ValueErrorr   	get_toolstable_namesr   create_promptformatfrom_agent_and_tools)r   r   r   r   r   r   r   r   r   r!   r#   r%   r'   r   r*   r+   r9   r,   prompt_paramsr8   s                       r3   create_pbi_agentrD      s   H /.....888888------?OPPP cHMMME$+LW  1LF * 
 344 
 M (.=.}}5}11888GG /	 
    .
 
 
 43U333   E  .=- )	 
 !&B  r5   )r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r   r(   r   )__doc__
__future__r   typingr   r   r   r   r   langchain_core.callbacksr	   langchain_core.language_modelsr
   1langchain_community.agent_toolkits.powerbi.promptr   r   2langchain_community.agent_toolkits.powerbi.toolkitr   %langchain_community.utilities.powerbir   r:   r   rD   r/   r5   r3   <module>rM      s!     " " " " " " ; ; ; ; ; ; ; ; ; ; ; ; ; ; 8 8 8 8 8 8 < < < < < <        N M M M M M @ @ @ @ @ @ /......
 )-(,6:  )-"+/6:I I I I I I Ir5   