Flowise로 GPT-4o PDF 질의응답 챗봇 만들기(개발 몰라도 됩니다)
제 AI 활용 수준
저는 AI를 활용하여 팟캐스트 transcript든 유튜브 내용이든 자료 요약을 자주 하는 편입니다.
블로그 글을 쓰면 SEO에 최적화된 제목을 달라고 요청하고, 글의 제목에 맞는 이미지를 만들려고 하는데 그 이미지 생성을 위한 프롬프트도 작성해 달라고 부탁하기도 합니다.
제가 AI를 활용하는 수준은 대략 이 정도인 것 같습니다.
RAG 그게 뭐예요?
RAG라는 개념도 잘 몰라서 4~5일 전에 검색해 봤습니다. 여전히 이해는 잘 안 되지만 자신이 첨부한(=임배딩한?) 파일에서 사용자의 질문 의도에 맞게 AI가 관련 정보를 찾을 수 있게 하는 기술 정도로 이해했습니다. 즉, 챗지피티 사용하는 것보다 개인 맞춤화된 검색이 가능합니다.
챗지피티와 다른 중요한 점 한 가지는 할루시네이션이 없다는 부분 같습니다. 모르면 모른다고 말한다는 것이죠. 또한 첨부한 파일에 근거하여 답하기 때문에 그 파일이 최신 정보라면 챗지피티와 달리 최신 정보를 반영하여 답변을 얻는 것도 가능합니다.
RAG 저와 무슨 상관이죠
이 기술이 끌렸던 이유는 제가 가진 전공 관련 자료들에서 필요한 부분만 빠르게 찾을 수 있다는 기대 때문입니다. pdf나 docx 임배딩이 가능하니, 파일 하나하나 열어 가며 CTRL + F로 매번 눈빠지게 찾을 필요 없이 채팅창에 사람과 대화하듯이 자연어(?)로 질문하고 관련 정보를 빠르게 불러올 수 있습니다. 프롬프트 엔지니어링, 파인튜닝 이런 것들 몰라도 실제 활용 측면에서 크게 상관이 없어진 것 같습니다. 자동차 운전할 때 드라이버가 엔진의 원리까지 이해할 필요는 없듯이 말이죠.
코드 모르는 문외한도 개인 비서로 RAG를 활용할 수 있게 하는 랭체인(LangChain)과 Flowise
더 배러 뉴스레터 87호를 보니 랭체인이란 것을 활용하면 저 같은 개발 문외한도 openAI나 클로드 같은 LLM 기술을 사용하는 RAG 기술을 쉽게 응용해 볼 수 있다고 해서 '나는 못 할 것 같은데' 하는 두려운 마음을 한편에 제쳐두고 유튜브를 검색하기 시작했습니다. 아.. 랭체인을 노코드로 활용할 수 있게 하는 툴이 Flowise입니다.
여러 영상을 보았으나 알아들을 수 없는 얘기만 합니다. 그러다 발견한 초보자 눈높이 영상이 아래와 같습니다. 자신이 올린 PDF에 근거하여 AI가 답변하는 챗봇을 만드는 내용입니다.
이 영상을 그대로 따라 하면 챗봇 설치에 성공할 수도 있고 못 할 수도 있습니다. 제 경우에는 그대로 따라 하였으나 두 번 정도 문제와 맞닥뜨렸습니다.
Flowise 설치 및 문제해결 과정
우선 Node.js 라는 것을 설치(자기 컴퓨터 환경에 맞게 다운로드 옵션을 선택합니다)해야 하고요.
설치가 완료되면 터미널(윈도우 검색창에서 명령 프롬프트 라고 치면 됩니다)을 열어서 아래 명령어 그대로 입력합니다. 처음에 npm install -g flowise 입력하여 설치 완료되면, npx flowise start 로 flowise 실행합니다.
Install Flowise
npm install -g flowise
Start Flowise
npx flowise start
설치 단계에서 아래와 같은 화면이 나오는데, 에러 나는 건가 했는데 제대로 설치되는 과정의 일부인 듯합니다.
설치가 완료되면 http://localhost:3000 로 들어가서 위 유튜브 영상에서 하는 것을 그대로 따라합니다.
따라 하다가 아래 사진에 굵은 선이 연결되지 않아 첫 번째로 막혔습니다.
아래 사진에서와 같이, Conversational Retrieval QA Chain이 아닌 Retrieval QA Chain을 연결하니 선이 이어지네요.
그런데 보시는 것처럼 에러가 나서 좀 헤맸습니다. OpenAI api key를 새로 발급 받으니 해결이 되었습니다.
GPT-4o 탑재한 PDF 챗봇 성능 실험
위 사진과 달리 GPT-4o을 연결해서 실험한 내용입니다. text embedding도 3-small이 아니라 3-large로 했습니다.
Me
Find and quote example dialogues from the PDF I uploaded that enhance the client's reality testing.
AI
Certainly, here are the example dialogues from the provided context that enhance the client's reality testing:
For a patient feeling stuck in a job they hate:
"I know that you feel that you have no alternative but to stay in this job that you hate, but let’s think together about whether there might be other alternatives. What about that job you were offered last year in Washington, DC?"
For a patient with distortions about their boss:
"You’ve said that you think the boss is always talking about you – but can you think of other reasons?"
These dialogues aim to encourage the client to consider alternative perspectives and assess their situations more realistically, which can help improve impaired reality testing.
reality testing이라는 키워드에 연관된 PDF 안의 대화 내용을 정확하게 가져오는지 실험해 보니, 정확하게 가져옵니다.
Me
Explain how psychodynamic psychotherapy improves a client's cognitive functioning.
AI
Psychodynamic psychotherapy aims to enhance a client's cognitive functioning by focusing on improving various executive functions such as reflective capacity, reality testing, managing emotions, judgment/impulse control, problem-solving, decision-making, and organizing. Here are some ways it achieves this improvement:
Uncovering Strategies:
This method involves bringing unconscious thoughts and feelings into conscious awareness. By making unconscious material conscious, clients can subject these thoughts and feelings to scrutiny, understand them more fully, and reduce anxiety. This increased awareness can lead to "a-ha" moments where clients gain new insights, enabling better cognitive functioning.
Supporting Strategies:
Psychodynamic psychotherapy also helps patients strengthen their cognitive functions by providing support. This may involve helping clients improve reality testing, impulse control, and self-esteem regulation. By enhancing these capabilities, clients can better manage their internal mental life and their relationships with the world.
Borrowing and Internalizing Functions:
Initially, clients may "borrow" cognitive functions from their therapists during the therapeutic process. Over time, they can internalize new ways of thinking and behaving, which leads to more permanent improvements in cognitive functioning.
Reactivating Development:
The therapy can reactivate mental and emotional development, fostering new, healthier growth in cognitive functions. Through the therapeutic relationship, clients may develop new patterns of thinking and feeling, which can enhance their overall cognitive functioning.
By addressing both the conscious and unconscious factors that influence cognitive functioning, psychodynamic psychotherapy helps clients organize their thoughts more effectively, make better decisions, test reality more accurately, and manage emotions more successfully.
다른 질문에 대해서도 그럭저럭 무난하게 답변합니다. 다만 질문이 너무 범위가 넓어서인지 답변도 추상적입니다.
전이와 역전이의 개념을 이 책에서는 어떻게 설명하고 있어? 인용문과 인용문에 대한 설명을 부탁해
AI
전이와 역전이(Transference and Countertransference)에 대한 개념은 주로 책의 Part Five에서 다루어질 것으로 보입니다. 이 책에서는 이러한 개념들을 신중하게 정의하고, 학습 초기에는 이러한 용어들의 사용을 최소화하려고 합니다. 그 이유는 독자들이 기존에 가지고 있는 개념들의 영향을 최대한 줄이고, 열린 마음으로 학습을 시작할 수 있도록 하기 위함입니다.
다음은 관련된 설명의 인용문입니다:
"다음으로, 우리는 용어의 사용에 대해 많은 신중한 선택을 했습니다. 예를 들어, 우리는 Part Five에서 정식으로 용어를 도입하기 전까지 '전이'와 '역전이'와 같은 용어를 광범위하게 사용하지 않습니다. 이는 우리가 용어를 신중하게 정의하고, 여러분이 이 치료법을 배우기 시작할 때 가능한 한 열린 마음으로 생각하길 원하기 때문입니다. 우리는 이러한 개념들에 대해 미리 가지고 있는 선입견의 영향을 최대한 줄이려고 합니다." (해당 책, Part Five 도입 부분)
여기에서 전이와 역전이를 충분히 학습할 수 있으며, 책의 후반부에서 이 개념들에 대한 구체적인 내용을 다루기 때문에, 그 시점에서 더 명확한 정의와 설명을 기대할 수 있습니다.
따라서 전이와 역전이에 대한 구체적인 정의나 설명은 책의 Part Five를 참고하는 것이 좋습니다.
한글로 질문했을 때는 질문에 포함된 키워드와 관련된 내용을 말하기는 하지만 질문 의도와 관계 없는 동문서답을 합니다. GPT-4o도 한글로 질문하면 성능이 저하되는 건지, 아니면 질문을 좀 다르게 했어야 하는 건지 의문이 생깁니다(가령 "이 책" -> "내가 업로드한 PDF"로 지칭했으면 더 나은 결과가 나왔을까요).
기대가 커서인지 클로드 3 sonnet(무료)보다 못하다는 느낌입니다. 하지만 거의 4~500페이지에 달하는 pdf 내용을 대체로 무난하게 소화하는 느낌이고 반응속도도 빠르네요. 다른 분이 사용할 때는 질문에 맞는 정교한 답변이 나오는 것을 보면 챗봇을 구성하는 모듈에 어떻게 변화를 주느냐, 그리고 질문을 어떻게 하느냐에 따라서(프롬프트는 여전히 중요한 걸까요?) 답변의 질도 상당히 달라지는 것 같습니다. 공부가 필요해 보입니다.