python 55

[GPT] Vectors

Embedding 사람이 읽는 텍스트를 컴퓨터가 이해할 수 있는 숫자들로 변환하는 작업 벡터 vectorization[벡터화] 작업을 의미 문서마다 각각의 벡터를 만듬 openAI의 embedding 모델은 최소 1000 차원의 벡터를 제공 예 남성성 | 여성성 | 왕족성 왕 | 0.9 | 0.1 | 1.0 여왕 | 0.1 | 0.9 | 1.0 남자 | 0.9 | 0.1 | 0.0 여자 | 0.1 | 0.9 | 0.0 단어를 차원으로 표현할때의 장점 다른 단어를 얻기 위해 가진 차원을 더하거나 빼서 새로운 단어를 만들 수 있다. 예를들어 왕 - 남자 = 0.0 | 0.0 | 1.0 = 왕족 왕족 + 여자 = 0.1 | 0.9 | 1.0 = 여왕 이처럼 벡터에 대한 검색작업을 할수 있으며 이는 유사성을 찾..

python 2024.04.03

[GPT] Data Loaders and Splitters

RAG "Retrieval-Augmented Generation"의 약자로, "검색-증강 생성"이라는 의미 개인으로부터 제공된 data를 사용하거나 탐색함으로써 language Model의 능력을 확장 Retrieval[검색] langchain 모델 소스[여러가지 데이터] => Load =>Transform[변환 및 분할]=>Embed[텍스트의 숫자화] => store[저장]=>Retrieval[검색] 문서를 읽어들이는 방법 1. TextLoader PDF를 읽기위한 PyPDFLoader 등등이 있음 이처럼 각각의 파일마다 다른 class를 호출하다는 대신 UnstructuredFileLoader를 이용하는것이 효율적임 UnstructuredFileLoader 패키지를 사용하여 다양한 유형의 파일을 로드..

python 2024.04.02

[GPT] LCEL Based Memory

메모리를 수동으로 관리하는 방법 으로 커스트마이징하기 쉬움 RunnablePassthrough RunnablePassthrough를 사용하면 입력을 그대로 전달하거나 추가 키를 추가하여 전달할 수 있음 Runnable Passthrough()는 자체적으로 호출되며, 입력을 받아 전달하기만 하면됨 RunnablePassthrough는 assign(RunnablePassthrough.assign(키=값)형태로 호출 [결과] content='Hello Hong! How can I assist you today?' [결과] content='Your name is Hong. How can I assist you today, Hong?'

python 2024.03.30

[GPT] ConversationSummaryBufferMemory

ConversationSummaryBufferMemory 메세지를 저장하다가 Token 기준으로 최대치를 넘어가면 이전 대화를 요약해서 저장 [결과] {'history': [HumanMessage(content="Hi I'm Hong, I live in South Korea"), AIMessage(content='Wow that is so cool!')]} 만약 token 값이 max_token_limit 를 초과할 경우 SystemMessage 가 새롭게 생성되면서 이전 대화내용을 요약하여 메세지에 저장 [결과값] {'history': [SystemMessage(content='The human introduces themselves as Hong from South Korea.'), AIMessage..

python 2024.03.29