python

[GPT] Map Reduce LCEL Chain

으누아빠 2024. 4. 4. 18:59
반응형

[결과]

AIMessage(content='Victory Mansions is a dilapidated apartment building in London where Winston Smith resides in George Orwell\'s novel "1984." The building is run-down, with shabby walls, broken elevators, and small, cramped apartments lacking basic amenities. It is part of a dystopian society controlled by a totalitarian regime, characterized by constant surveillance and poor living conditions. The building houses the Ministry of Truth and is one of four similar buildings in London, all towering over the surrounding architecture. Glass doors let in gritty dust, and the setting includes clocks striking thirteen on a bright cold day in April. The hallway smells of boiled cabbage and old rag mats, with walls adorned by a large colored poster of a man with a black mustache and the caption "BIG BROTHER IS WATCHING YOU." The elevator rarely works due to electricity cuts during daylight hours for an economy drive related to Hate Week.')

 

    return "\n\n".join(
        map_doc_chain.invoke(
            {"context": doc.page_content, "question": question}
        ).content
        for doc in documents
    )
 

'구분자'.join(리스트)'구분자'.join(리스트)를 이용하면 리스트의 값과 값 사이에 '구분자'에 들어온 구분자를 넣어서 하나의 문자열로 합침

 

.'_'.join(['a', 'b', 'c']) 라 하면 "a_b_c" 와 같은 형태로 문자열을 만들어서 반환

map_doc_chain.invoke(
{"context": doc.page_content, "question": question}).content
for doc in documents

 

documents들을 실행하여 doc을 얻는다음 이값을 map_doc_chain.invoke에 반영한다는 뜻

 

map_docs 함수를  풀어서 쓴다면

 

def map_docs(input):
    documents = input["documents"] 
    question = input["question"] 
    results = []

 

    for document in documents:
        result = map_doc_chain.invoke(

                        {"context": doc.page_content, "question": question}
        ).content

        result.append(result)

    results = "\n\n".join(result)

    return results

 

형태로 쓸수 있음

 

RunnableLambda: 사용자 정의 함수의 실행

RunnableLambda  사용자 정의 함수를 실행 할 수 있는 기능

이를 통해 개발자는 자신만의 함수를 정의하고, 해당 함수를 RunnableLambda 를 사용하여 실행

 

예를 들어, 데이터 전처리, 계산, 또는 외부 API와의 상호 작용과 같은 작업을 수행하는 함수를 정의하고 실행할 수 있음

'python' 카테고리의 다른 글

[GPT] streamlit - st.write() 와 Magic  (0) 2024.04.08
[GPT] streamlit  (0) 2024.04.08
[GPT] Stuff LCEL Chain  (0) 2024.04.04
[GPT] RetrievalQA  (0) 2024.04.04
[GPT] Vector Store  (0) 2024.04.03