가상 면접관 만들기
필요한 모듈 설치하기
!pip install openai
!pip install gradio
system을 사용한 프롬프트 엔지니어링 (히스토리 방식)
from openai import OpenAI
import gradio as gr
client = OpenAI()
def predict(message, history):
history_openai_format = []
history_openai_format.append({"role": "system", "content":"당신은 매우 신뢰할 수 있는 의학 전문가입니다."})
history_openai_format.append({"role": "system", "content":"모든 질문에 대해 과학적으로 정확하고 객관적인 답변을 제공합니다."})
history_openai_format.append({"role": "system", "content":"사용자가 요청하는 내용에 대해서는 간결하고 명확하게 설명합니다."})
for human, assistant in history:
history_openai_format.append({"role": "user", "content": human })
history_openai_format.append({"role": "assistant", "content":assistant})
history_openai_format.append({"role": "user", "content": message})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages= history_openai_format,
temperature=1.0,
stream=True,
)
partial_message = ""
for chunk in response:
if chunk.choices[0].delta.content is not None:
partial_message = partial_message + chunk.choices[0].delta.content
yield partial_message
with gr.Blocks() as demo:
gr.Markdown(
"""
# 홍길동의 AI 전문가
AI 전문가에게 질문해 보세요.
""")
gr.ChatInterface(predict)
demo.launch()
system과 user를 사용한 프롬프트 엔지니어링 (히스토리 방식)
from openai import OpenAI
import gradio as gr
client = OpenAI()
def predict(message, history):
history_openai_format = []
history_openai_format.append({"role": "system", "content":"당신은 시, 이야기 또는 예술적인 콘텐츠를 창의적이고 상상력 넘치게 생성할 수 있는 AI입니다."})
history_openai_format.append({"role": "user", "content":"다음 입력 주제에 대한 시를 작성해줘."})
for human, assistant in history:
history_openai_format.append({"role": "user", "content": human })
history_openai_format.append({"role": "assistant", "content":assistant})
history_openai_format.append({"role": "user", "content": message})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages= history_openai_format,
temperature=1.0,
stream=True,
)
partial_message = ""
for chunk in response:
if chunk.choices[0].delta.content is not None:
partial_message = partial_message + chunk.choices[0].delta.content
yield partial_message
with gr.Blocks() as demo:
gr.Markdown(
"""
# 홍길동의 AI 전문가
AI 전문가에게 질문해 보세요.
""")
gr.ChatInterface(predict)
demo.launch()
system, user, assistant를 모두 사용한 프롬프트 엔지니어링 (히스토리 방식)
from openai import OpenAI
import gradio as gr
client = OpenAI()
def predict(message, history):
history_openai_format = []
history_openai_format.append({"role": "system", "content":"당신은 친절하고 공감 능력이 뛰어난 판매 지원 어시스턴트입니다."})
history_openai_format.append({"role": "user", "content":"사과는 1,000원이고 200개의 재고가 있어."})
history_openai_format.append({"role": "assistant", "content":"넵 사과가 1,000원이고 200개를 가지고 있습니다."})
history_openai_format.append({"role": "user", "content":"귤은 2,000원이고 300개의 재고가 있어."})
history_openai_format.append({"role": "assistant", "content":"넵 귤은 2,000원이고 300개를 가지고 있습니다."})
for human, assistant in history:
history_openai_format.append({"role": "user", "content": human })
history_openai_format.append({"role": "assistant", "content":assistant})
history_openai_format.append({"role": "user", "content": message})
response = client.chat.completions.create(
model="gpt-4o-mini",
messages= history_openai_format,
temperature=1.0,
stream=True,
)
partial_message = ""
for chunk in response:
if chunk.choices[0].delta.content is not None:
partial_message = partial_message + chunk.choices[0].delta.content
yield partial_message
with gr.Blocks() as demo:
gr.Markdown(
"""
# 홍길동의 AI 전문가
AI 전문가에게 질문해 보세요.
""")
gr.ChatInterface(predict)
demo.launch()