출처 : https://www.youtube.com/watch?v=sZORZwUxqx8
영상에서 지금 바뀐 openai 상황에 맞게 수정했습니다!
import openai
import os
openai.api_key = os.environ.get("OPENAI_API_KEY")
from openai import OpenAI
def request_chat_completion(prompt,
system="당신은 면접을 20년 이상 맡아온 유능하고 전문적인 면접 도우미이자 전문가입니다.",
model="gpt-3.5-turbo",
stream=False):
client = OpenAI()
messages=[
{"role": "system", "content": system},
{"role": "user", "content": prompt}
]
response = client.chat.completions.create(
model=model,
messages=messages,
stream=stream
)
return response
def print_streaming_response(response):
# streamlit 화면상에서 텍스트를 보여주기 위해
# placeholder 만들어서 마크다운 형식으로 생성된 텍스트를 보여줌.
for chunk in response:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="")
else:
break
response = request_chat_completion("안녕하세요! 전문가님! 저에게 혹시 면접 관련 조언을 해주실 수 있을까요?", stream=True)
print_streaming_response(response)
prompt = "지금 한국의 '삼성전자'라는 기업에 제가 '마케팅기획' 직무의 1분 자기소개 스크립트를 작성하려고 합니다. 신입을 기준으로, 특히 저는 1분 자기소개시 L’Oréal Brandstorm (로레알 브랜드스톰)의 국제대회 우승 이라는 수상경험을 토대로 스크립트를 작성하고 싶습니다. 면접의 스크립트를 작성하려고 할 때 어떻게 작성해야 면접관들의 마음을 움직일 수 있는 스크립트를 작성할 수 있을까요?"
response = request_chat_completion(prompt, stream=True)
print_streaming_response(response)
결과
이렇게 말고 이번에는 프롬프트 템플릿을 만들어서 템플릿을 통해 답변을 만들어낼 수 있도록 해보겠습니다.
prompt_template = """
면접의 합격 확률을 올려줄 수 있는 면접 script를 작성해주세요.
면접은 정답이 정해져 있지 않습니다. 그렇지만 합격 확률을 올릴 수 있는 대답은 존재합니다.
그렇다면 그러한 면접의 합격합률을 올려줄 수 있는 대답을 작성해주세요.
최대한 자세하고 혹시나 나올 수 있는 꼬리질문에도 대답할 수 있도록 수준 높은 면접 script 형식으로 작성해주세요.
---
예상_면접_질문: {prediction_cover_letter_question}
예상_면접_대답: {prediction_cover_letter_answer}
---
""".strip()
prediction_cover_letter_question = "먼저 1분 자기소개 해주세요."
prediction_cover_letter_answer = "안녕하십니까 이번 [회사이름]에 지원한 지원자입니다. 저는 사람들과의 커뮤니케이션을 중시하는 지원자입니다. 저의 능력을 보여드리고 싶습니다."
prompt = prompt_template.format(
prediction_cover_letter_question=prediction_cover_letter_question,
prediction_cover_letter_answer=prediction_cover_letter_answer
)
response = request_chat_completion(
prompt,
system="당신은 면접을 20년 이상 맡아온 유능하고 전문적인 면접 도우미이자 전문가입니다.",
stream=True
)
print_streaming_response(response)
결과
살짝 아쉬운 감이 있지만 그래도 원하는 결과를 제대로 도출해내는것을 확인할 수 있었습니다.