2025/03/21TIL

김학열·2025년 3월 21일

글 요약 프로그램이란?

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



![Untitled](attachment:9403d583-b1f3-43cb-bfbe-67adc8fb120d:Untitled.png)

- **웹 기반 애플리케이션 구현: 스트림릿**
    
    글 요약 프로그램은 스트림릿을 활용하여 프런트엔드, 백엔드 코딩 없이 간단하게 구현합니다.
    
- **요약 글 입력: 사용자**
    
    사용자는 프로그램의 글 입력칸에 요약하고자 하는 글을 입력합니다.
    
- **요약 작성: 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 함수를 호출하여 요약된 텍스트를 생성합니다.
      • 사용자 입력 처리: 사용자가 텍스트 영역에 입력한 내용을 가져옵니다.
      • 요약 버튼 클릭: 사용자가 요약 버튼을 클릭하면 요약 작업이 실행됩니다.
      • API 키 유효성 검사: API 키가 입력되었는지 확인하고, 입력된 경우에만 요약 기능을 실행합니다.
      • 프롬프트 구성: 사용자가 입력한 텍스트와 요약 지침을 포함하는 프롬프트를 생성합니다.
      • 결과 출력: 요약된 텍스트를 사용자에게 출력합니다.
profile
QA/QC 1기 김학열

0개의 댓글