전체 글108 랭체인으로 쉽고 효율적으로 긴 글 요약하기 load_summarize_chain (1) load_summarize_chain 란?랭체인(LangChain)의 load_summarize_chain은 텍스트 데이터를 요약하는 데 사용되는 강력한 도구이다. 이 기능은 대량의 텍스트 데이터를 처리하고, 이를 간결하고 핵심적인 요약으로 변환하는 데 유용하다. 특히, 대규모 언어 모델(LLM)을 활용하여 텍스트의 주요 내용을 추출하고 요약하는 과정을 자동화한다. 이 기능은 사용자가 긴 문서를 빠르게 이해하거나, 여러 문서의 핵심 내용을 비교 및 분석하는 데 도움을 준다.(2) 동작 방식load_summarize_chain의 동작 방식은 크게 두 가지로 나뉜다. 첫 번째는 입력된 텍스트를 처리하여 요약을 생성하는 과정이다. 이 과정에서 텍스트가 너무 길 경우, 텍스트를 여러 부분으로 나누고 각 .. 2025. 8. 16. 텍스트 분할 도구 RecursiveCharacterTextSplitter, SemanticChunker 📌 텍스트 분할 도구의 필요성 텍스트 분할 도구는 대규모 텍스트 데이터를 처리 가능한 크기로 나누는 데 필수적인 역할을 한다. 현대의 자연어 처리(NLP) 시스템과 언어 모델은 입력 텍스트의 길이에 제한이 있으며, 이 제한을 초과하는 텍스트는 처리할 수 없거나 성능이 저하될 수 있다. 따라서 텍스트를 적절히 분할하여 모델이 효율적으로 처리할 수 있도록 하는 것이 중요하다.1. 언어 모델의 입력 제한 대부분의 언어 모델은 입력 텍스트의 길이에 제한이 있다. 예를 들어, OpenAI의 GPT 모델은 입력 토큰의 최대 개수가 정해져 있다(예: GPT-4는 약 8,000~32,000 토큰 제한). 긴 문서나 대규모 텍스트 데이터를 처리하려면 이러한 제한에 맞게 텍스트를 분할해야 한다. 텍스트 분할 도구는 이 .. 2025. 8. 11. 과거 대화 내역을 반영하여 대화하는 RunnableWithMessageHistory RunnableWithMessageHistory?대화형 애플리케이션에서 메시지 기록을 관리하며, 이를 기반으로 특정 작업을 실행할 수 있도록 설계된 구조이다. 이 개념은 주로 대화형 AI 시스템에서 사용되며, 사용자의 입력과 이전 대화 기록을 활용하여 적절한 응답을 생성하거나 작업을 수행하는 데 유용하다. RunnableWithMessageHistory를 사용하는 방법에 대해 알아본다.1. 프롬프트 템플릿 설계RunnableWithMessageHistory를 활용한 대화형 시스템에서, 프롬프트 템플릿은 대화 기록(history)과 사용자 입력(input)을 포함하여 시스템이 적절한 응답을 생성할 수 있도록 설계된다. 이 템플릿은 대화 기록과 사용자 입력을 구조화된 방식으로 전달하며, 시스템이 이를 기반으.. 2025. 8. 11. VectorDB 사용시 OpenAIEmbeddings() 토큰 수 제한 문제 해결 문제Chroma 백터 DB를 사용할 때 from_documents 메서드 호출 시 OpenAIEmbeddings()를 호출할 때, 다음과 같은 오류가 발생한다. text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=0)splitted_docs = text_splitter.split_documents(pages)Chroma.from_documents( splitted_docs, OpenAIEmbeddings(disallowed_special=(), show_progress_bar=True), persist_directory=db_path, client_settings=get_chroma_setting.. 2025. 7. 6. 이전 1 2 3 4 ··· 27 다음