일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- java17
- Java
- JSON
- chatGPT
- bs4
- API
- 쳇지피티
- Windows
- 오블완
- brew
- 웹크롤링
- ssh
- LLM
- OpenAI
- WSL
- 티스토리챌린지
- 파인튜닝
- Recipe
- 웨크롤링
- jdk
- 포트포워딩
- Llama
- DALL-E
- AI
- Linux
- Python
- PROJECT
- web crowling
- 레시피
- temurin
Archives
- Today
- Total
Nacho
[냉부] 👨🍳 레시피 AI 만드는 여정 (3) 본문
반응형
본문에서는...
끝까지 해결하지 못한 오류- OpenAi 한테 호구당한 이야기
- Flask 서버
- EC2
LLama3.1 파인튜닝웹 크롤링 (완료)
과 같은 내용을 다룹니다..
5. OpenAi API 사용하기
Llama3.1 모델 로드를 실패하고 Colab 비용을 확인하니 chat gpt 비용이랑 별 다를 게 없는 슬픈 사실을 발견..
어차피 모델 로드도 안되는 거 GPT API나 사용해보자는 심정으로 GPT 결제하고 API 충전했다.
API 키를 발급받고나서
사용할만큼 지갑을 채워준다. gpt-4o 기준 답변 1개당 14원 정도였다.
발급받은 api 키를 복사해서 환경변수에 선언해준다.
vi ~/.zshrc
#vi ~/.bashrc
export OPENAI_API_KEY = "여기에 키 입력"
사용하는 zsh, bash 에 맞게 설정하면 api 사용 준비는 끝이다.
from openai import OpenAI
client = OpenAI()
user_chat = '치즈 감자 크림 스파게티면'
completion = client.chat.completions.create(
model="gpt-4o-2024-08-06",
messages=[
{
"role": "system",
"content": '''당신은 주어진 재료를 이용하며 맛있는 요리 레시피를 작성하는 AI입니다.
주어진 역할에 충실하게 단계적으로 음식을 만드는 과정을 쉽고 자세히 설명합니다.
요리를 처음 하는 사람도 따라 할 수 있는 친절한 설명이 필요합니다.
한국어로 단계에 맞춰 설명해주세요.
'''
},
{"role": "user", "content": f"{user_chat}"}
]
}
)
generated_text = completion.choices[0].message.content
print(generated_text)
# Input : 치즈 감자 크림 스파게티면
# Output
'''
치즈 감자 크림 스파게티
감자와 치즈, 그리고 크림의 부드러운 맛이 어우러진 스파게티입니다. 간단하지만 고급스러운 맛을 즐길 수 있는 이 레시피는 어떤 식사 자리에서도 사랑받을 것입니다.
- 스파게티 면 200g
- 감자 2개, 우유 1컵
- 생크림 1/2컵, 버터 2큰술
- 다진 마늘 1작은술
- 모짜렐라 치즈 100g
- 파르메산 치즈 50g
- 소금 적당량
- 후추 적당량
**Step.1**큰 냄비에 물을 넣고 끓입니다. 물이 끓어오르면 소금을 조금 넣고 약 8분 정도 스파게티 면을 삶습니다.
**Step.2**감자는 껍질을 벗기고 작은 크기로 잘라줍니다
**Step.3**다른 팬에 버터를 녹이고 다진 마늘을 넣어 1분간 볶아 향을 내줍니다.
**Step.4**다진 감자를 넣고 중불에서 감자가 반쯤 익을 때까지 약 5분간 볶습니다.
**Step.5**팬에 우유와 생크림, 소금, 후추를 넣고 잘 섞어 중약불에서 크림 소스가 되도록 끓여줍니다.
**Step.6**삶아 놓은 스파게티 면을 건져 팬에 넣고 골고루 섞어줍니다. 그 위에 모짜렐라 치즈를 뿌리고 치즈가 녹을 때까지 끓입니다.
**Step.7**마지막으로 파르메산 치즈를 뿌린 후, 스파게티를 그릇에 옮겨 담습니다.
**Tips**스파게티 면의 알덴테 상태를 원하시면 포장지에 기재된 시간보다 1-2분 짧게 삶아주세요. 감이에 따라 소금과 후추의 양을 조절하여 마무리하시면 더 맛있게 즐길 수 있습니다. 감자 대신 다른 야채나 버섯을 추가해도 좋습니다.
'''
진짜 돈쓰는 맛난다. 레시피 파인튜닝 없이 그냥 가져와 버린다.
나는 json 형식으로 받아와서 post로 내보내는 것이 목정이기 때문에 response_format 을 지정해 준다.
6. OpenAi 답변 양식 설정 (Json)
completion = client.chat.completions.create(
model="gpt-4o-2024-08-06",
messages=[
{
"role": "system",
"content": '''당신은 주어진 재료를 이용하며 맛있는 요리 레시피를 작성하는 AI입니다.
주어진 역할에 충실하게 단계적으로 음식을 만드는 과정을 쉽고 자세히 설명합니다.
요리를 처음 하는 사람도 따라 할 수 있는 친절한 설명이 필요합니다.
한국어로 단계에 맞춰 설명해주세요.
'''
},
{"role": "user", "content": f"{user_chat}"}
],
response_format={
"type": "json_schema",
"json_schema": {
"name": "recipes",
"schema": {
"type": "object",
"properties": {
"title" : {"type": "string"},
"summary" : {"type": "string"},
"ingredients" : {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {"type": "string"},
"ea": {"type": "string"}
},
"required": ["name", "ea"],
"additionalProperties": False
}
},
"steps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"step": {"type": "string"},
},
"required": ["step"],
"additionalProperties": False
}
},
"tips": {"type": "string"}
},
"required": ["title","summary","ingredients","steps", "tips"],
"additionalProperties": False
},
"strict": True
}
}
)
# Output
'''
{
"title":"치즈 감자 크림 스파게티",
"summary":"감자와 치즈, 그리고 크림의 부드러운 맛이 어우러진 스파게티입니다. 간단하지만 고급스러운 맛을 즐길 수 있는 이 레시피는 어떤 식사 자리에서도 사랑받을 것입니다.",
"ingredients":[
{"name":"스파게티 면","ea":"200g"},
{"name":"감자","ea":"2개"},
{"name":"우유","ea":"1컵"},
{"name":"생크림","ea":"1/2컵"},
{"name":"버터","ea":"2큰술"},
{"name":"다진 마늘","ea":"1작은술"},
{"name":"모짜렐라 치즈","ea":"100g"},
{"name":"파르메산 치즈","ea":"50g"},
{"name":"소금","ea":"적당량"},
{"name":"후추","ea":"적당량"}
],
"steps":[
{"step":"큰 냄비에 물을 넣고 끓입니다. 물이 끓어오르면 소금을 조금 넣고 약 8분 정도 스파게티 면을 삶습니다."},
{"step":"감자는 껍질을 벗기고 작은 크기로 잘라줍니다."},
{"step":"다른 팬에 버터를 녹이고 다진 마늘을 넣어 1분간 볶아 향을 내줍니다."},
{"step":"다진 감자를 넣고 중불에서 감자가 반쯤 익을 때까지 약 5분간 볶습니다."},
{"step":"팬에 우유와 생크림, 소금, 후추를 넣고 잘 섞어 중약불에서 크림 소스가 되도록 끓여줍니다."},
{"step":"삶아 놓은 스파게티 면을 건져 팬에 넣고 골고루 섞어줍니다. 그 위에 모짜렐라 치즈를 뿌리고 치즈가 녹을 때까지 끓입니다."},
{"step":"마지막으로 파르메산 치즈를 뿌린 후, 스파게티를 그릇에 옮겨 담습니다."}
],
"tips":"스파게티 면의 알덴테 상태를 원하시면 포장지에 기재된 시간보다 1-2분 짧게 삶아주세요. 감이에 따라 소금과 후추의 양을 조절하여 마무리하시면 더 맛있게 즐길 수 있습니다. 감자 대신 다른 야채나 버섯을 추가해도 좋습니다."
}
'''
7. OpenAi 한테 호구당한 이야기
api를 사용하던 중 gpt 파인튜닝이 눈에 보였고,,
나는 의심도 없이 바로 실행에 옮겼다. 데이터 파일을 .jsonl 형식으로 맞추고 파인튜닝을 시작했다.
결제 한도를 10$로 설정했기 때문에 걱정도 없었다.
뭐 얼마나 나오겠어~
안일한 생각을 가졌다..
나는 장바구니에 있던 청바지를 잃었다.
파인튜닝은 얼마드는지 꼭 계산하고 사용하세요.
🥲
반응형
'Toys' 카테고리의 다른 글
[window/wsl2] ssh로 WSL 외부 연결 하기 (0) | 2024.12.17 |
---|---|
[냉부] 👨🍳 레시피 AI 만드는 여정 (4) (1) | 2024.11.14 |
[냉부] 👨🍳 레시피 AI 만드는 여정 (2) (1) | 2024.11.10 |
[냉부] 👨🍳 레시피 AI 만드는 여정 (1) (0) | 2024.11.10 |