WebApp → ApiApp → ApiManagement → Azure OpenAI 또는 Spotify
범위가 넓은 탓에 내가 원하는 곡들이 없어서 범위를 한정시킴
Melon Chart top 100 을 바탕으로 Spotify를 사용해보자
멜론 차트는 API를 제공하지 않아서, 크롤링을 해야함
크롤링 방법이 몇 개 있음 : Selenium, PuppTier → Playwright 을 사용
Playwright 라이브러리
마이크로소프트에서 제작한 라이브러리 : 다양한 언어를 지원함
근데, 있는 게 있어서 그냥 있는거 사용하자…
어떻게 감정들을 토대로 Spotify에 집어넣으면 곡 리스트를 만들어줄까?
스포티파이는 API에 해당 기능을 제공중
해당 내용을 넣어줄 데이터 값 중에서, 노래 명단 정도만 코드로 작성해서 제공하고, 나머지 데이터들을 AI를 이용해서 최소한의 코딩으로 만들어봅시다
Semantic Kernel
오픈소스, 최신 AI모델 오케스트레이션, .NET / Python / Java 지원, Microsoft Copilot 만드는 프레임워크
랭체인과 되게 유사한데요, 상황에 알맞게 둘 중 하나를 사용하시면 될 것 같습니다.
어떻게 코드를 짜내려가는지에 대한 내용
Polyglot Notebooks
VS Code Extension에 있음
주피터 노트북(Python, R 지원중)과 유사한데, 다양한 언어를 지원중입니다.
1.
파일 생성
2.
Nuget 패키지들 불러오기
3.
Configuration 설정
4.
Semantic Kernel 생성(build)
a.
Add Google Gemini(또는 Azure OpenAI)
b.
Run prompt directly from the kernel which i just made before
i.
그럼 Gemini(또는 Azure OpenAI)가 응답을 줌
c.
해당 응답을 argument로 줘서, Prompt Chaning을 활용
i.
Run prompt directly from the kernel
ii.
다시 AI가 응답을 반환
5.
중간에 플러그인들을 추가
a.
노래 데이터들을 DB로부터 불러옴
6.
Semantic Kernel에 Plugin들을 추가
7.
Define the goal
a.
goal : 적절한 응답을 받기 위한, 프롬프트 텍스트 형식을 만드는 것
8.
Initialize Planner
a.
Plan이란게 정확히 뭐지…?
9.
Run the planner and get the result
10.
Add another function?
11.
kernel에 add function
12.
Create another plan
13.
add prompt execution settings for auto invocation
14.
new prompt
15.
Get the result from the auto invocation
a.
Semantic kernel이 내부 설정을 자동으로 함
어떻게 플리에 실제 사용하는지 확인
1.
Import Nuget Packages
2.
kernel 불러오기
3.
Comfiguration 설정
4.
Azure OpenAI configuration
5.
Build Semantic Kernel
6.
Import prompts
7.
Import codes
8.
import plugins
9.
Add HttpClient instance
10.
Add JsonSerializerOptions instance
11.
User Input
12.
Invoke the prompt - Get Sentiments
a.
감정 분석 작업 : 5개의 감정 키워드 추출
13.
Invoke the promt - MeasureSentiments
a.
5개의 감정 키워드에 대한 Danceability & Valence 테이블을 생성 : 수치화
14.
Invoke the prompt - Get Spotify Chart tracks
a.
AI의 차트는 최신 버전이 아님
b.
RAG(보강방식) 패턴을 통해, 최신 차트 정보를 불러옴(코드 사용)
15.
Find songs
16.
Invoke the prompt - RefineResult
17.
Add SptifyClient instance
18.
import plugin? - Spotify 플리에 추가
@justinyoo
