Sora에서 Media containing people 에러 나
Sora에서 인물 사진을 기반으로 영상을 제...
※ 이 글은 대단한 설명을 담고 있지는 않습니다. OpenAI API 활용해서 기본적인 동작등을 확인해보고 싶은데, 챗GPT 활용하여 코드를 작성해도 에러가 나는 경우등에 참고할 수 있도록, 그저 동작하는 OpenAI API 기본 코드 형태를 담고 있습니다.
챗GPT는 기본적으로 웹 브라우저를 통해 동작하며, 사용자가 직접 채팅하듯이 대화를 진행해야 합니다.
하지만 서버에서 자동으로 실행되어 특정 문구를 만들어낸다거나, 그 결과를 통해 다시 다른 프로그램의 실행을 유발하는 것과 같이 GPT를 통한 자동화 작업을 수행하려면, 챗GPT의 API 버전인 OpenAI API를 사용하여 직접 프로그램을 작성해야 합니다.
물론 이러한 코드 또한 챗GPT가 작성해 줄 수 있긴 하지만, 챗GPT가 학습된 날짜보다 훨씬 최근에 OpenAI API의 버전이 업데이트 된 상태라, 챗GPT가 작성해준 코드로 프로그램을 돌려봤자 에러가 나곤 합니다.
Error:
You tried to access openai.ChatCompletion, but this is no longer supported in openai>=1.0.0 - see the README at https://github.com/openai/openai-python for the API.
You can run `openai migrate` to automatically upgrade your codebase to use the 1.0.0 interface.
Alternatively, you can pin your installation to the old version, e.g. `pip install openai==0.28`
A detailed migration guide is available here: https://github.com/openai/openai-python/discussions/742
(chatgpt) root@chatgpt2:/# pip3 install openai==0.28
Collecting openai==0.28
Downloading openai-0.28.0-py3-none-any.whl.metadata (13 kB)
Collecting requests>=2.20 (from openai==0.28)
Downloading requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
... 중략 ...
Downloading yarl-1.18.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (336 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 336.9/336.9 kB 18.7 MB/s eta 0:00:00
Installing collected packages: urllib3, tqdm, propcache, multidict, idna, frozenlist, charset-normalizer, certifi, attrs, aiohappyeyeballs, yarl, requests, aiosignal, aiohttp, openai
Successfully installed aiohappyeyeballs-2.4.4 aiohttp-3.11.11 aiosignal-1.3.2 attrs-24.3.0 certifi-2024.12.14 charset-normalizer-3.4.1 frozenlist-1.5.0 idna-3.10 multidict-6.1.0 openai-0.28.0 propcache-0.2.1 requests-2.32.3 tqdm-4.67.1 urllib3-2.3.0 yarl-1.18.3
하지만 새로 작성하는 프로그램 조차 이러한 호환성을 위해 굳이 과거의 API를 사용하는 것 보다는, 코드를 최신으로 수정하는 것이 앞으로의 호환성을 위해 더 나을 것입니다.
아래는 제가 기본형태로 사용하는 코드입니다.
import openai
import time
openai.api_key = "여기에 API키를 넣습니다."
print("chatGPT를 종료하려면 'bye'를 입력하세요.\n")
content = ''
msg = '' # 초기 msg 변수 선언
while True:
prompt = input("명령을 내려 주세요: ")
if prompt.lower() == 'bye':
print("chatGPT를 종료합니다.")
break
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': content},
{'role': 'assistant', 'content': msg},
{'role': 'user', 'content': prompt},
]
response = openai.chat.completions.create(
model="gpt-4o-mini",
messages=messages
)
# 응답 출력 및 처리
reply_content = response.choices[0].message.content.strip()
print(reply_content)
print("--------------------------------")
# 다음 메시지 준비
msg = reply_content
content += msg
time.sleep(1)
실행 예시
(chatgpt) root@chatgpt:/# python3 gpt_sample.py
chatGPT를 종료하려면 'bye'를 입력하세요.
명령을 내려 주세요: 안녕. 동작 테스트중인데 잘되나? 너는 누구니?
안녕하세요! 저는 AI 언어 모델로, 여러분의 질문에 답변하고 정보를 제공하는 역할을 합니다. 어떤 도움을 드릴까요?
--------------------------------
명령을 내려 주세요: 서울이란 어떤곳인가?
서울은 대한민국의 수도이자 최대 도시로, 한반도의 북서부에 위치해 있습니다. 서울은 역사적으로 중요한 도시로, 오랜 역사를 가지고 있으며 다양한 문화와 전통이 혼합된 곳입니다. 다음은 서울에 대한 몇 가지 주요 특징입니다:
1. **역사와 문화**: 서울은 조선 왕조의 수도로서, 경복궁, 창덕궁 등과 같은 많은 궁궐과 문화유산이 있습니다. 전통 시장과 현대적인 건물이 공존하며, 한국의 전통 문화와 현대 문화가 조화롭게 어우러져 있습니다.
2. **경제 중심지**: 서울은 한국의 경제, 금융, 산업의 중심지로, 많은 대기업과 국제 기업들이 본사를 두고 있습니다. 삼성, LG, 현대자동차 등 유명 기업들이 서울에 본사를 두고 있습니다.
3. **교통**: 서울은 잘 발달된 대중교통 시스템을 갖추고 있으며, 지하철, 버스 등이 편리하게 운영되고 있어 이동이 용이합니다. 인천 국제공항도 가까워 국제적인 교통의 중심지 역할을 합니다.
4. **관광 명소**: 서울에는 N서울타워, 명동, 동대문, 홍대, 인사동 등 인기 있는 관광 명소와 쇼핑 지역이 많습니다. 또한, 서울의 유명한 한강 공원은 여가를 즐길 수 있는 좋은 장소입니다.
5. **음식**: 한국의 다양한 음식을 경험할 수 있는 곳으로, 길거리 음식부터 고급 레스토랑까지 다양한 옵션이 있습니다. 김치, 비빔밥, 불고기 등 전통 한국 음식은 물론, 다양한 국제 요리도 즐길 수 있습니다.
서울은 역사와 현대가 공존하는 매력적인 도시로, 방문객들에게 다양한 경험을 제공합니다. 더 궁금한 점이 있다면 말씀해 주세요!
--------------------------------
명령을 내려 주세요: 내가 사과를 5개 샀는데, 내가 1개 먹고, 나머지는 친구 2명에게 나눠주려고한다. 몇개씩 주면 되나?
사과를 5개 샀고, 1개를 먹었다면 남은 사과는 4개입니다. 이 4개를 친구 2명에게 나눠주려고 한다면, 각 친구에게 2개씩 주면 됩니다.
따라서, 2명에게 각각 2개씩 나누어 주면 됩니다.
--------------------------------
명령을 내려 주세요: bye
chatGPT를 종료합니다.
챗GPT가 작성해주는 코드와 비교하자면, ChatCompletion.create -> chat.completions.create 으로 변경된 것이 주된 차이일 것입니다.
실행 예시에서 확인 가능하신 것 처럼, 위 코드는 채팅 형태로 동작하게 되어있습니다.
해당 코드를 기반으로 직접 수정하시거나, 챗GPT 에게 코드 수정을 요청하시면 될 것입니다.