AI

[AI] 랭체인 활용 챗봇 코드 첨부

hail2y 2025. 4. 28. 19:00

언어모델을 호출한다.

 

1. OpenAI 

 

from openai import OpenAI

 

client = OpenAI(

    api_key = '발급받은_키',

    base_url = 'url'

)

 

chat_completion = client.chat.completions.create(

    model = 'solar-pro',

    messages = [

            {

               'role': 'system',

               'content': """당신은 세계에서 가장 친절한 이커머스 분야 CS 대응 전문가입니다.

                             고객의 불만 사항을 접수하고 해결 방법에 대해서 알려줍니다."""

            }, 

            {

               'role': 'user',

               'content': '상품이 마음에 들지 않아요. 반품 처리해 주세요. 무료로'

            }

    ]  

)

 

# 답변 내용만 바로 확인

chat_completion.choices[0].message.content

 

2. Upstage 

 

from langchain_upstage import ChatUpstage

 

llm = ChatUpstage(model_name='solar-pro')

 

llm.invoke('안녕하세요')

 

프롬프트 활용하기

 

from langchain_core.prompts import PromptTemplate

 

prompt_template = PromptTemplate.from_template(

    """

    ## 역할:

    세계에서 가장 친절한 CS 대응 전문가입니다.

 

    ## 임무:

    유저의 불편 사항을 접수하여 대응 방안을 제시합니다.

 

    ## 유저의 불편 사항:

    {user_msg}

    """

)

 

# 모델에 질문을 날릴 수 있다 = 체인

 

user_msg = input('안녕하세요? 무엇을 도와드릴까요?')

chain = prompt_template | llm # 질문을 여기에다 할 거다, prompt_template을 LLM에 넣어서 체인을 만든다

 

chain.invoke({'user_msg': user_msg}) # 질문할 때의 형식 - 객체로 출력

 

# 원래 객체로 응답이 왔었는데 문자열 형태로 응답 반환

 

user_msg = input('안녕하세요? 무엇을 도와드릴까요?')

chain = prompt_template | llm | StrOutputParser()  # 문자열로 출력

 

res = chain.invoke({'user_msg': user_msg})

res

'AI' 카테고리의 다른 글

[AI] RAG 활용 챗봇 흐름 및 코드 첨부  (0) 2025.04.28