o
    Zh                     @  s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ ed
ddgdZG dd deZdS )9LLM Chain for generating examples for question answering.    )annotations)Any)BaseLanguageModel)BaseLLMOutputParser)Field)LLMChainPROMPT)RegexParserzQUESTION: (.*?)\n+ANSWER: (.*)queryZanswer)regexZoutput_keysc                   @  sL   e Zd ZU dZeedZded< dZded< e	dd
dZ
e	dddZdS )QAGenerateChainr   )defaultr   output_parserZqa_pairsstr
output_keyreturnboolc                 C  s   dS )NF )clsr   r   ]/var/www/html/lang_env/lib/python3.10/site-packages/langchain/evaluation/qa/generate_chain.pyis_lc_serializable   s   z"QAGenerateChain.is_lc_serializablellmr   kwargsr   c                 K  s   | d|t d|S )z Load QA Generate Chain from LLM.)r   promptNr   r	   )r   r   r   r   r   r   from_llm   s   zQAGenerateChain.from_llmN)r   r   )r   r   r   r   r   r   )__name__
__module____qualname____doc__r   _QA_OUTPUT_PARSERr   __annotations__r   classmethodr   r   r   r   r   r   r      s   
 r   N)r    
__future__r   typingr   Zlangchain_core.language_modelsr   Zlangchain_core.output_parsersr   Zpydanticr   Zlangchain.chains.llmr   Z'langchain.evaluation.qa.generate_promptr
   Zlangchain.output_parsers.regexr   r!   r   r   r   r   r   <module>   s    