[ChatGPT] LangChain을 이용한 Linkendin 이력서 요약 / 질문하기

jongmin-oh·2023년 5월 1일
0

내 이력서 링크

링크드인에 들어가서 이력서를 pdf로 다운받을 수 있다.
다운 받으면 위의 형식의 이력서 pdf를 얻을 수 있다.


패키지 설치

pip install langchain openai faiss-cpu PyPDF2

이력서 요약하기

필요 패키지 로드

import openai
from PyPDF2 import PdfReader
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import ElasticVectorSearch, Pinecone, Weaviate, FAISS
import os

os.environ["OPENAI_API_KEY"] = <My Key>

PDF to Text

reader = PdfReader("Profile.pdf")

raw_text = ""

for i, page in enumerate(reader.pages):
    text = page.extract_text()
    if text:
        raw_text += text

요약 테스크 셋팅

from langchain import OpenAI
from langchain.chains import AnalyzeDocumentChain
from langchain.chains.summarize import load_summarize_chain

model = ChatOpenAI(model="gpt-3.5-turbo")
summary_chain = load_summarize_chain(model, chain_type="map_reduce")

summarize_document_chain = AnalyzeDocumentChain(combine_docs_chain=summary_chain)

요약 실행

summarize_document_chain.run(raw_text)

결과

"Jongmin Oh is a machine learning developer with expertise in natural language processing, machine learning, and AWS. He has experience developing chatbot APIs, sentiment analysis, comment filtering, and music recommendation systems. He has a bachelor's degree in computer information technology and a professional degree in computer games and programming technology. Currently, he is working as a machine learning engineer at Reppley."

해석

오종민은 자연어 처리, 머신러닝, AWS 등에 대한 전문 지식을 보유한 머신러닝 개발자입니다. 그는 챗봇 API, 감정 분석, 댓글 필터링, 음악 추천 시스템 개발 경험이 있습니다. 그는 컴퓨터 정보 기술 학사 학위와 컴퓨터 게임 및 프로그래밍 기술 전문 학위를 가지고 있습니다. 현재, 그는 Reppley에서 기계 학습 엔지니어로 일하고 있습니다.

챗GPT를 사용해도 영어로 답변하네요..
하지만 해석해보면 요약이 잘 되었습니다.


Question Answering 질문 답변

QA 테스트 셋팅

from langchain.chains.question_answering import load_qa_chain
from langchain.chat_models import ChatOpenAI

model = ChatOpenAI(model="gpt-3.5-turbo") # gpt-3.5-turbo, gpt-4

qa_chain = load_qa_chain(model, chain_type="map_reduce")
qa_document_chain = AnalyzeDocumentChain(combine_docs_chain=qa_chain)

질문하기

qa_document_chain.run(
    input_document=raw_text,
    question="오종민의 직업은 무엇입니까?")

'오종민은 머신러닝 개발자이며, 현재 Reppley에서 Machine Learning Engineer로 일하고 있습니다.'

qa_document_chain.run(
    input_document=raw_text,
    question="오종민의 경력이 어떻게 됩니까?")

'오종민은 아토머스에서 2021년 9월부터 2021년 12월까지 Machine Learning Engineer로 일했으며,
(주)인디제이에서 2021년 4월부터 2021년 7월까지 Machine Learning Engineer로 일했습니다.
현재는 Reppley에서 2022년 10월부터 Machine Learning Engineer로 일하고 있습니다.
이전에는 음원 가사 감정 분류 모델 개발과 음원 추천시스템 개발, 인공지능 댓글봇 모델 및 API 개발, 비속어 필터 모델 및 API 개발 등의 업무를 수행했습니다.'

qa_document_chain.run(
    input_document=raw_text,
    question="오종민의 최종학력은 무엇입니까?")

'오종민의 최종학력은 인하공업전문대학의 학사, 컴퓨터정보과입니다.'

qa_document_chain.run(
    input_document=raw_text,
    question="오종민은 어디에 살고있습니까?")

'오종민은 대한민국 인천에 살고 있습니다.'

profile
스타트업에서 자연어처리 챗봇을 연구하는 머신러닝 개발자입니다.

0개의 댓글