본문 바로가기

End-to-End 프로젝트

End_to_End 연습4_LLM 답변 생성하기

이번엔 LLM을 한번 다뤄보는 시간...!!

api key를 받아 프롬프트를 전달하고 결과를 챗봇으로 받아보도록 하겠습니다

 

openai로 하려고 했다가 유료길래
gemini로 변경했습니다

 

(점점 모자이크가 늘어나네..)

 

main함수에도 아래와 같은 명령어 추가

 

그 결과 다음과 같은 메시지가 왔습니다.

 

성공!

하지만 단순히 종가만 알려주는 건 부족하다고 생각합니다

 

이동평균을 고려해 MA5와 MA20 지표를 계산하고

이를 LLM에게 넘겨주어 더 나은 분석결과를 도출해내보겠습니다.

다음과 같이 쿼리 수정, 이동평균값 계산.

    query = "SELECT Date, Close FROM samsung_stock ORDER BY Date ASC"
    df = pd.read_sql(query, con=engine)
    df["MA5"] = df["Close"].rolling(window=5).mean()
    df["MA20"] = df["Close"].rolling(window=20).mean()

    latest = df.iloc[-1]
    raw_date = pd.to_datetime(latest["Date"])
    today_date = raw_date.strftime("%Y-%m-%d")
    close_price = int(latest["Close"])

    ma5 = latest["MA5"] if pd.notnull(latest["MA5"]) else latest["Close"]
    ma20 = latest["MA5"] if pd.notnull(latest["MA20"]) else latest["Close"]

 

그리고 프롬프트를

 

"오늘({today_date})의 삼성전자 종가는 {close_price:,}원이야.
이동평균 값:  MA5 값은 {int(ma5)}, MA20값은 {int(ma20)}이야. 
이 지표들을 보고 오늘의 삼성전자 주식의 동향이 어떤지 증권사 에이전트처럼 한 문장으로 짧고 친절하게 요약해줘.

그리고 내일의 전망은 어떤지도 한줄 덧붙여줘."

 

이렇게 적었습니다

 

그랬더니 꽤나 유용한 정보가 제공되는 모습!

 

마지막으로 등락률도 포함한 결과 제공하면서 오늘은 마무리하겠습니다