📌 사용자에게 요약하고자 하는 글을 입력 받으면 최종 요약 결과를 보여주는 프로그램 입니다.

- **웹 기반 애플리케이션 구현: 스트림릿**
글 요약 프로그램은 스트림릿을 활용하여 프런트엔드, 백엔드 코딩 없이 간단하게 구현합니다.
- **요약 글 입력: 사용자**
사용자는 프로그램의 글 입력칸에 요약하고자 하는 글을 입력합니다.
- **요약 작성: ChatGPT**
요약을 요청하는 시스템 프롬프트와 사용자로부터 입력받은 글을 API를 활용하여 ChatGPT에게 전달합니다. ChatGPT는 요약 결과를 다시 프로그램으로 전송합니다.
챗GPT를 활용해서 요약 실습해보기
챗GPT는 정말 요약을 잘 하는지 직접 확인해 봅니다.
챗GPT : https://chatgpt.com/
요약하고자 하는 글:
아래의 글을 요약 주세요
글 내용:
블릿 포인트를 사용해 주요 내용을 3줄로 요약해 주세요.
글 내용:
중요한 사항만 포함하여 두 문장으로 요약해 주세요.
글 내용:
너무 긴 글은 요약 못한다.. 이유는?
📌 각 모델 별로 기억을 할 수 있는 토큰의 길이가 정해져 있습니다.
- 토큰이란? ***AI 나라의 글자 단위!***
- 토큰화(Tokenization)는 텍스트를 작은 단위로 나누는 과정입니다. 이 작은 단위를 토큰(Token)이라고 하며, 토큰은 단어, 어절, 문자, 또는 부분적인 단어일 수도 있습니다. 토큰화는 LLM이 텍스트를 처리할 수 있도록 준비하는 첫 번째 단계입니다.
- OpenAI에서 사용하는 토크나이져 맛보기
- 각 모델 별 기억할수 있는 토큰의 길이
- 길이가 길면 똑똑한 AI 도 기억을 잃어요…
- 그렇다면… 긴 글 요약은 어떻게?
- 아무 걱정 마세요! 추후에 긴 글을 요약하는 방법에 대해 알려 드립니다!
- 그때 바로 유명한 Langchain에 대해서 배워 볼 예정이에요 :)
## **03. 요약 기능 추가하기**
✔️ OpenAI API를 활용해서 글을 요약하고 결과를 프로그램에 보여주는 기능을 만들어봅니다.
askGpt 함수는 이 프로그램의 핵심 요약 기능을 담당합니다. 이 함수는 GPT 모델과의 상호작용을 처리하고, 사용자 입력에 따라 적절한 요약을 생성합니다.함수 정의: askGpt(prompt, apikey) 함수는 GPT 모델에 프롬프트를 보내고 응답을 받아 반환합니다.
프롬프트 구성: 사용자가 입력한 텍스트를 요약하도록 GPT 모델에 요청하는 프롬프트를 구성합니다.
응답 처리: GPT 모델로부터 받은 응답에서 요약된 텍스트를 추출하여 반환합니다.
##### 기능 구현 함수 #####
def askGpt(prompt, apikey):
# OpenAI API 클라이언트를 초기화합니다.
client = openai.OpenAI(api_key=apikey)
# GPT 모델에 프롬프트를 보내어 응답을 요청합니다.
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)
# 응답에서 요약된 텍스트를 추출하여 반환합니다.
gptResponse = response.choices[0].message.content
return gptResponse
askGpt 함수를 호출하여 요약된 텍스트를 생성합니다.