[7일차 4.4~4.5절 (128p ~ 143p)]
AI가 이전 대화 내용을 기억하게 하기 위해서는? => 대화 기록을 append 메서드를 사용하여 리스트에 쌓아나간다.


시스템 프롬포트를 통해 원하는 조건을 작성한다.

사용자가 입력한 질문은 conversation_history에 추가(append)하고, 돌아온 답도 conversation_history에 추가하여 저장한 덕에 사용자가 이전에 입력한 정보를 기억할 수 있게되었다.

처음에 시스템 프롬프트에 적어둔 "세상에서 가장 예쁜 사람이 백설공주"라는 항목과 "사용자의 기분을 맞춰주기 위해 거짓말도 할 줄 알아야합니다."라는 항목에 맞게 결과를 출력한다.
시스템 프로프트에 적기 적절한 것
- 대화의 맥락
- AI가 따라야 할 지침
- 말투
- 퍼소나
JSON 모드
- 모델의 응답이 유효한 JSON형식이 되도록 보장
- 시스템 메세지 등에 JSON 출력을 명시적으로 지시
- 특정 스키마 준수를 보장x
- 불완전한 JSON이 출력될 수 있어 이에 대한 예외처리 필요
Structured Outputs
- 신리할 수 있는 타입 안전성
- 명시적인 거부
- 단순한 프롬포트
- JSON 모드를 발전시킨 향상된 기능
- 유효한 JSON 형식뿐만 아니라 정의된 스키마 준수까지 보장
[8일차 4.6~4.8절 (144p ~ 149p)]
임베딩
- 자연어 처리와 기계 학습 분야에서 핵심적인 기술
- 자연어 처리에서는 단어, 문장, 문단 등의 텍스트 데이터를 수치화된 벡터 형태로 변환하는 과정
- 의미적으로 관련된 단어들은 벡터 공간에서 서로 가까운 위치에 임베딩될 가능성이 높음
- 검색, 군집화, 추천, 이상 탐지 등의 용도로 쓰인다
코사인유사도
- 임베딩 사이의 유사도를 측정하는 방법
- 벡터 간 방향의 유사도를 기반으로

비슷한 의미를 가진 단어 혹은 문장을 찾을 때는
1. 여러 텍스트의 임베딩을 미리 구해놓는다.

2. 비교하고자 하는 텍스트와의 코사인 유사도를 각각 계산해서 내림 차순으로 정렬한다.

이때는 "책"과의 유사도를 계산하여 cosine_similarity에 넣어 저장한 후, 그 값을 내림차순으로 정렬하였다.
결과를 확인해보면 책상이 책과 가장 비슷한 의미를 가져 가장 상단에 표시되었고, 화장품이 가장 관련도가 떨어져 가장 아래에 표시되었다.
'LLM' 카테고리의 다른 글
| [5-6일차 프롬프트 엔지니어링 심화/ OpenAI API 시작하기] (0) | 2025.03.23 |
|---|---|
| [3-4일차 LLM 기본 개념과 매개변수/ 프롬프트 엔지니어링 기초] (0) | 2025.03.18 |
| [1-2일차 LLM API 프로그래밍 개요/ OpenAI 플레이그라운드 기초] (0) | 2025.03.18 |