코어 수, RAM, GPU, SSD(용량), 크기, 무게, 브랜드, 가격, 목적 등 원하는 사양을 적어주세요
코어수: 4, RAM: 16, SSD: 256이상, 크기: 13~14, 무게: 1.2kg 이하, 브랜드: 삼성, 가격: 100만원 내외, 목적: 인공지능
특화 Task AI
- 특정 태스크에 제한된 사용
- 고정된 입출력 인터페이스
- 투자대비 성능 보장 힘듦
- 자동화/무인화 체계가 마련되어 있지 않다면 적용이 힘듦
대규모 언어모델 (ex. chatGPT)
- 자연어 처리 기반
- 대량의 데이터셋으로 기 학습됨
- 업무효율화에 바로 사용가능
- 할루세이션 문제??
에이전트 (특화 테스크 AI + 대규모 언어모델)
- 특화 테스크 AI + 대규모 언어모델 연동
멀티유저, 방문기억, 이미지
import gradio as gr # 그라디오 라이브러리를 불러옵니다.
import random # 무작위 선택을 위한 라이브러리를 불러옵니다.
import time # 시간 지연을 위한 라이브러리를 불러옵니다.
def respond(message, chat_history): # 채팅봇의 응답을 처리하는 함수를 정의합니다.
# 미리 정의된 응답 중 하나를 무작위로 선택합니다.
bot_message = random.choice(["어떻게 지내세요?", "좋아해요", "배고파요"])
chat_history.append((message, bot_message)) # 채팅 기록에 사용자의 메시지와 봇의 응답을 추가합니다.
time.sleep(1) # 응답 간의 시간 지연을 생성합니다. 이는 봇이 실시간으로 답변하고 있는 것처럼 보이게 합니다.
return "", chat_history # 수정된 채팅 기록을 반환합니다.
with gr.Blocks() as demo: # gr.Blocks()를 사용하여 인터페이스를 생성합니다.
chatbot = gr.Chatbot(label="채팅창") # '채팅창'이라는 레이블을 가진 채팅봇 컴포넌트를 생성합니다.
msg = gr.Textbox(label="입력") # '입력'이라는 레이블을 가진 텍스트박스를 생성합니다.
clear = gr.Button("초기화") # '초기화'라는 레이블을 가진 버튼을 생성합니다.
# 텍스트박스에 메시지를 입력하고 제출하면 respond 함수가 호출되도록 합니다.
msg.submit(respond, [msg, chatbot], [msg, chatbot]) # 뒤msg비어있음
# '초기화' 버튼을 클릭하면 채팅 기록을 초기화합니다.
clear.click(lambda: None, None, chatbot, queue=False)
demo.launch() # 인터페이스를 실행합니다.
# 실행하면 사용자는 '입력' 텍스트박스에 메시지를 작성하고 제출할 수 있으며,
# '초기화' 버튼을 통해 채팅 기록을 초기화 할 수 있습니다.
0. 3. 사용자
5. 챗봇
1.텍스트박스
2.메세지
4. 챗히스토리
0. 사용자가 문구를 먼저 입력함
1. 그러면 그 문구가 텍스트 박스에 입력되고
2. 메세지에 입력이 됨.
3. 사용자가 보는 화면에서 보여짐
4. 챗 히스토리로 해당 내용이 올라감 (이는 보이지 않음)
5. 챗봇에게 히스토리의 전체 내용을 전달. (> 그래서 이전 내용까지 이미 아는 상태에서 답을 줄 수 있음)
>> Run Curl Commands Online (reqbin.com)
work_1
{
"warning": "This model version is deprecated. Migrate before January 4, 2024 to avoid disruption of service. Learn more https://platform.openai.com/docs/deprecations",
"id": "cmpl-7jj0r07RtYUqTNPZoyTVofH8P1h5y",
"object": "text_completion",
"created": 1691132145,
"model": "text-davinci-003",
"choices": [{
"text": "\n\n반갑습니다.",
"index": 0,
"logprobs": null,
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 14,
"completion_tokens": 16,
"total_tokens": 30
}
}
curl https://api.openai.com/v1/completions \ 입력
"model": "text-davinci-003", 모델지정
"prompt_tokens": 14, 입력 토큰
"completion_tokens": 15, 입력한 문장의 토큰 수
메세지의 구성
- role : system(ai에게 지시할때 ex. 지시문), user(사용자가 입력), assistance(응답 메세지), function
- contents
- name
- ??
work_2
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-private-api" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "안녕. 신나는 노래를 불러봐"
},
{
"role": "user",
"content": "좋은아침!"
}
]
}'
{
"id": "chatcmpl-7jj8GdWuCaTungtMObfwsBbzdHF9s",
"object": "chat.completion",
"created": 1691132604,
"model": "gpt-3.5-turbo-0613",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "안녕하세요! 신나는 노래를 불러볼게요. 어떤 노래를 듣고 싶으세요?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 39,
"completion_tokens": 41,
"total_tokens": 80
}
}
systemMessage : 지시문
HumanMessage : 사용자의 채팅
AIMessage : 인공지능의 답
'Natural Language Processing' 카테고리의 다른 글
[Goorm] 딥러닝을 이용한 자연어 처리 2 (IMDB 이용) (0) | 2024.07.05 |
---|---|
[Goorm] 딥러닝을 이용한 자연어 처리 1 (토큰화 & 임베딩) (0) | 2024.06.23 |
[ChatGPT] Prompt Engineering (0) | 2023.08.03 |
[NLP] Transformer 트랜스포머 모델 (0) | 2023.08.01 |
[NLP] Sequence to Sequence 모델 (0) | 2023.08.01 |