a
    bgM	                     @   sR   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	 G dd dee	Z
dS )	    )List)CallbackManagerForRetrieverRun)Document)BaseRetriever)WikipediaAPIWrapperc                   @   s&   e Zd ZdZeeee dddZdS )WikipediaRetrieveru:  `Wikipedia API` retriever.

    Setup:
        Install the ``wikipedia`` dependency:

        .. code-block:: bash

            pip install -U wikipedia

    Instantiate:
        .. code-block:: python

            from langchain_community.retrievers import WikipediaRetriever

            retriever = WikipediaRetriever()

    Usage:
        .. code-block:: python

            docs = retriever.invoke("TOKYO GHOUL")
            print(docs[0].page_content[:100])

        .. code-block:: none

            Tokyo Ghoul (Japanese: 東京喰種（トーキョーグール）, Hepburn: Tōkyō Gūru) is a Japanese dark fantasy

    Use within a chain:
        .. code-block:: python

            from langchain_core.output_parsers import StrOutputParser
            from langchain_core.prompts import ChatPromptTemplate
            from langchain_core.runnables import RunnablePassthrough
            from langchain_openai import ChatOpenAI

            prompt = ChatPromptTemplate.from_template(
                """Answer the question based only on the context provided.

            Context: {context}

            Question: {question}"""
            )

            llm = ChatOpenAI(model="gpt-3.5-turbo-0125")

            def format_docs(docs):
                return "\n\n".join(doc.page_content for doc in docs)

            chain = (
                {"context": retriever | format_docs, "question": RunnablePassthrough()}
                | prompt
                | llm
                | StrOutputParser()
            )

            chain.invoke(
                "Who is the main character in `Tokyo Ghoul` and does he transform into a ghoul?"
            )

        .. code-block:: none

             'The main character in Tokyo Ghoul is Ken Kaneki, who transforms into a ghoul after receiving an organ transplant from a ghoul named Rize.'
    )queryrun_managerreturnc                C   s   | j |dS )N)r   )load)selfr   r	    r   v/var/www/html/cobodadashboardai.evdpl.com/venv/lib/python3.9/site-packages/langchain_community/retrievers/wikipedia.py_get_relevant_documentsJ   s    z*WikipediaRetriever._get_relevant_documentsN)	__name__
__module____qualname____doc__strr   r   r   r   r   r   r   r   r   
   s   @r   N)typingr   Zlangchain_core.callbacksr   Zlangchain_core.documentsr   Zlangchain_core.retrieversr   Z'langchain_community.utilities.wikipediar   r   r   r   r   r   <module>   s
   