반응형
langchain 설치 (pip install langchain) 중에 아래와 같은 에러 발생
 
Error Message:
 
In file included from src/greenlet/greenlet.cpp:9:      /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/cstdlib:135:9: error: no member named 'at_quick_exit' in the global namespace      using ::at_quick_exit _LIBCPP_USING_IF_EXISTS;            ~~^      /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include/c++/v1/cstdlib:136:9: error: no member named 'quick_exit' in the global namespace      using ::quick_exit _LIBCPP_USING_IF_EXISTS;            ~~^      2 errors generated.      error: command '/usr/bin/clang' failed with exit code 1      [end of output]    note: This error originates from a subprocess, and is likely not a problem with pip.  ERROR: Failed building wheel for greenletFailed to build greenletERROR: Could not build wheels for greenlet, which is required to install pyproject.toml-based projects(venv) $ 
 
에러 메시지의 이미지

 

에러 내용을 자세히 보면 /usr/bin/clang 과 관련해서 문제가 있다고 나와서 인터넷 검색해보니 아래와 같은 페이지가 나왔음.

How to fix Error: command ‘/usr/bin/clang’ failed with exit code 1?

 
여기서 권장하는 대로 여러가지를 upgrade하고 나니 잘 됬음.
 
1,2,3 brew install openssl re2
 
이렇게 업그레이드 하고 다시 install langchain을 하니 grpcio error가 발생했음.
그래서 잘 돌아가는 가상환경에서 grpcio의 버전을 확인해서 설치를 했으나
 
실패
 
다시 그냥 langchain을 설치하려하니 이번에는 아래 같은 에러 발생
 
  note: This error originates from a subprocess, and is likely not a problem with pip.  ERROR: Failed building wheel for greenletFailed to build greenletERROR: Could not build wheels for greenlet, which is required to install pyproject.toml-based projects
 
내용을 뜯어 보니 greenlet이 문제 인 것 같아서..
다시 잘 돌아가는 가상 환경에서 greenlet이 있는지 찾아보고 같은 버전으로 설치
 
이런 젠장, 그래도 안되서 인터넷을 찾아보니 아래 명령을 실행하라고...
 
pip install --only-binary :all: greenlet
 
이렇게 하는 이유를 아래와 같이 설명하고 있는데..
 
Python packages are often distributed as "wheels" (.whl files), which are pre-compiled binary packages. Try installing "greenlet" and "Flask-SQLAlchemy" using wheels instead of source distribution`
 
이말을 풀어보면, 소스 배포형태에서 wheels 를 사용해서 설치하지말고 pre-compiled된 바이너리 패키지를 이용해서 설치하니까 잘 되더라 라는 의미임.
 
음.... 그러니까 소스를 가져다가 컴파일해서 쓰러면 컴피일과 관련 라이브러리, 경로 환경 등 여러가지가 맞아야 설치가 되는 데....바이너리 패키지를 설치하면 이런 복잡한 것 필요없이 쉽게 설치가 되더라 라는 의미로 이해됨.
 
이러고 나서 langchain을 설치하니까 잘 설치됨.
 
즉, 아래 명령 실행 후 langchain을 설치 했음.
pip install --only-binary :all: greenlet
 
 
 
 
 
반응형
반응형

 

Cannot import name OpenAI from openai 그리고 langchain 설치

 

 

Error Message:

Cannot import name OpenAI from openai

 

잘 돌던 OpenAI API 프로그램인데 갑자기 에러를 발생 시킴

Cannot import name OpenAI from openai

 

원인:

써치 결과 openai 버전차이로 발생한 에러임. 

잘 돌아가는 가상환경에서의 openai 버전을 확인해보니 1.3.6

안돌아가는 가상환경의 openai 버전을 확인해보니 0.27.0

인터넷 검색결과 1.2.0 이상이어야 에러가 안난다고함.

 

해결:

그래서 안돌아가는 가상환경에서 아래와 같이 업그레이드 실행하여 해결

pip install --upgrade openai==1.2.0

 

OpenAI API를 사용하다보니 많은 에러가 발생한다. 원인은 주로 버전간 차이 모델별 제공 파라메터 차이인 것 같음.

 

 

 

반응형
반응형

ChatGPT의 API를 사용하면 직접 만든 앱/어플리케이션에서 ChatGPT가 대답하는 것 처럼 개발할 수 있습니다.
이번 내용은 이것을 위한 기본적인 흐름과 코드 내용을 배워 보는 것 입니다. 그래서 사용자가 질문을 입력하면 ChatGPT가 대답하는 대화하는 어플리케이션 프로그램을 만드는 것 입니다.

 

사전 준비 사항

ChatGPT API 사용을 위해서는 먼저 OpenAI에 가입이 되어 있어야 하고 API사용을 위한 [0.1]API Key를 발급 받아야 합니다. API Key란, API를 호출할 때 허가 받은(Credit이 설정되어있는) 사람이 호출하는 것인지 아닌지를 확인하기 위해서 미리 만들어진 텍스트를 말합니다. 'sk-'로 시작하며 예를 들면 다음과 같습니다.

sk-ABCDEFGHIJ1234567890ABCDEFGHIJ1234567890ABCDEFGH

 
개발 환경으로는 Google 의 CoLab을 이용할 예정이며 언어는 파이썬을 사용하겠습니다. Colab은 Google에서 제공하는 온라인 무료/유료 주피터 노트북 서비스입니다. 크롬 브라우저 사용을 권장하고요. 크롬에서 구글 로그인 후 여기를 클릭하시면 [0.2]새로운 노트북 파일을 만들 수 있습니다. 또는 여기 https://colab.google/ 를 통해 New notebook 버튼을 클릭합니다. 그러면 아래와 같은 온라인 주피터 노트북이 열립니다.

 

더보기

여기서 잠깐 : 노트북 기본 사용법

사용방법은 연결하고 작성하고 실행하는 것 입니다.

연결

오른쪽 위에 있는 연결 버튼을 클릭해서 화면에 보이는 프로그램과 실제 파이썬을 실행시킬 프로그램을 연결합니다. 일반 주피터 노트북에서는 이 실행 프로그램을 커널이라는 용어를 사용하는데 Colab에서는 실행 프로그램(커널)의 연결 뿐만아니라 실행된느 하드웨어 서버도 선택하여 연결 할 수 있습니다. 

작성

가운데 부분에 있는 박스 영역을 쎌이라고 말합니다. 쎌을 한번 클릭하면 작성모드로 변하고 작성모드에서 클릭하면 선택 모드로 바뀝니다. 작성 모드에서 실행하려는 파이썬 코드 내용을 입력하여 프로그램을 작성합니다.

실행 

실행 시키고자하는 프로그램이 작성된 쎌을 선택하고 Shift와 Enter를 같이 누르면 쎌의 내용이 실행됩니다. 또는 쎌의 왼쪽에 보이는 삼각형 버튼을 클릭하면 코드나 텍스트를 입력할 수 있습니다. 

 
이렇게 해서 여러분도 온라인 파이썬 개발 환경을 가지게 되셨습니다.
 
QuickStart 에서도 나오지만 API 사용을 위해서 크게 3단계로 진행합니다. 1. 파이썬을 설정하고, 2. API Key를 사용할 수 있게 설정한 뒤에, 3. 필요한 프로그램에서 API Key와 필요한 함수를 호출하여(프로그램을 작성하여) ChatGPT의 기능을 사용할 수 있습니다.

 

1. 파이썬 설정

가장 먼저 할일은 파이썬을 설정 하는 것 입니다. 그런데 우리는 CoLab을 사용할 예정이어서 별도로 파이썬을 설치할 필요가 없습니다.  로컬 PC에서 해보고 싶으신 분은 이전 포스팅 또는 OpenAI -> Docs -> Quickstart의 파이썬 설치/설정 부분을 참고해주세요.
CoLab을 사용할 경우 파이썬 설치는 필요 없지만 필요한 라이브러리는 설치해 주어야 합니다. 물론 CoLab이 ML/AI 개발에 필요한 많은 라이브러리를 설치된 상태로 제공되기 때문에 sci-kit learn 같은 라이브러리는 import만 해서 사용할 수 있습니다. 그러나 openai는 기본 설치가 되어있지 않기 때문에 직접 설치해 주어야 합니다. [1.1]아래의 명령어로 설치할 수 있습니다.

!pip install openai
더보기

(명령어의 제일 앞에 !가 있는 이유는 Colab 주피터 노트북의 쎌에서 shell 명령을 실행하기 위해서는 명령어 제일 앞에 !를 붙여 줘야 합니다.  즉, 로컬 PC 터미널이나 명령창에서 실행되기를 원하는 명령어의 경우에는 제일 앞에 !(느낌표)가 필요 합니다.) 이러한 방법으로 라이브러리를 설치할 수 있습니다. 

 

다른 필요한 라이브러리와 함께 사용하기 위해서 설치된 버전을 조정해주어야 할 경우가 있습니다. 이런 경우 이미 설치된 라이브러리의 삭제가 필요한 데 이때는 아래의 명령어를 사용합니다.

!pip uninstall 라이브러리이름

 

 

2. API Key 설정

API Kye 설정이란, API Kye를 호출 할 때 같이 전송할 수 있도록 준비하는 것을 말합니다.  OpenAI 홈페이지에서 API Key를 만듭니다.
OpenAI -> API Keys 메뉴 페이지에서 Create new secret key 번튼을 눌러서 새로운 API Key를 만들 수 있습니다.

주피터 노트북의 빈 쎌에 아래의 [2.1]내용을 입력하고 Shift와 Enter를 같이 누르거나 쎌 왼쪽에 있는 삼각형을 클릭하여 쎌을 실행시킵니다.

import os
os.environ['OPENAI_API_KEY']='복사한APIKey내용'

위의 내용은 환경변수 'OPENAI_API_KEY'에 복사한APIKey내용을 설정하는 명령 입니다.
 

3. 어플리케이션 작성

자, 이제부터는 위에서 작성한 환경변수를 설정하는 프로그램과 같이 어플리케이션 로직이 들어있는 파이썬 코드를 작성하면 됩니다.
지난 포스트에서 QuickStart에 있는 코드를 실행해 보았습니다. 이번에는 OpenAI Example 에서 하나를 진행해 보겠습니다. 위의 내용 까지 작성하고 실행한 colab 노트북 쎌의 아래쪽에 새로운 쎌을 하나 만들고 [3.1]다음의 코드를 입력하고 실행합니다.

# This code is for v1 of the openai package: pypi.org/project/openai
from openai import OpenAI
client = OpenAI()

response = client.completions.create(
  model="gpt-3.5-turbo-instruct",
  prompt="The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.\n\nHuman: Hello, who are you?\nAI: I am an AI created by OpenAI. How can I help you today?\nHuman: I'd like to cancel my subscription.\nAI:",
  temperature=0.9,
  max_tokens=64,
  top_p=1,
  presence_penalty=0.6,
  stop=[" Human:", " AI:"]
)

이 코드를 실행 시키면 prompt 내용이 chatGPT 모델에 전달되고 회신 받은 내용이 response에 저장됩니다. 전달자 중에 prompt의 내용을 한글로 변환하면 다음과 같습니다. "이어지는 내용은 AI 어시스턴트와의 대화입니다. 어시스턴트는 도움이되고, 창의적이고, 영리하며 매우 친절합니다. 사람: 안녕, 너는 누구니? AI: 나는 OpenAI에서 만든 AI입니다. 어떻게 도와드릴까요? 사람: 나는 가입을 취소하고 싶어 AI: " 
그럼이제 반환된 response 내용을 살펴 볼까요! 아래와 같이 [3.2]쎌에 response 를 입력하고 실행합니다.

출력된 내용을 살펴보니 중간에 text의 값으로 AI 어시스턴트의 회신 내용이 보입니다. " Okay, I can definitely help you with that, May I know the reason for cancellation? ......". [3.3]어시스턴트의 회신 내용만 보기위해서 아래와 같이 쎌에 입력하고 실행합니다.

response.dict()['choices'][0]['text']

지금까지 한번의 대화 턴(Turn)이 있는 하나의 질문과 대답을 보았습니다. 계속적인 대화를 위해서 아래와 같은 파이썬 코드를 작성할 수 있습니다. while 문을 통해 반복 실행하도록 했으며, if 구문을 두어서 사용자가 입력한 값이 exit이면 while 문을 빠져나가서 종료하도록 하였습니다. 사용자가 질문을 입력한 것이라면 그내용을 chatGPT에 보내서 회신을 받고 회신 받은 내용을 출력해주는 명령을 작성하였습니다. [3.4]아래 내용을 복사하여 쎌에 입력후 실행해 보세요.

while True:
  prompt = input("질문을 입력하세요: ")
  if prompt == 'exit': break
  response = client.completions.create(
    model="gpt-3.5-turbo-instruct",
    prompt=prompt,
    temperature=0.9,
    max_tokens=64,
    top_p=1,
    presence_penalty=0.6,
    stop=[" Human:", " AI:"]
  )
  print(response.dict()['choices'][0]['text'])

제가 작성하고 실행한 결과는 아래와 같습니다.

 

더보기

추가 실습 방법:

client.completions.create() 함수에 있는 전달자의 값들을 바꾸어가면서 ChatGPT의 회신 내용을 비교해 보세요. temperature는 허풍, 거짓말 등 꾸며낸 이야기의 정도를 어떻게할지 조정할 수 있습니다. 0이면 꾸며내지 말라는 것이며 1을 최대한 꾸며내라는 것입니다. 이렇게 꾸며낸 이야기를 Hallucination이라고 하여 환각의 정도를 조정할 수 있습니다. max_tokens는 입력과 출력을 합친 단어수라고 생각하시면 됩니다. 간단히 말하면 회신 내용의 길이를 조정할 수 있습니다. top_p는 회신 내용의 건수 이며, presence_penalty는 동일한 답변을 조정하는 전달자 입니다.

 
이것으로 우리가 목표했던 계속적인 대화를 하는 간단한 어플리케이션이 만들어졌습니다. 이 프로그램은 ChatGPT의 대화를 OpenAI가 제공하는 웹서비스에서 사용하는 것이 아니라 별도의 어플리케이션 프로그램에서 사용할 수 있게 했다는 의미가 있습니다. 이후에는 프롬프트 엔지니어링 기법을 이용하여 보다 잘 알아 듣는 챗봇 어플리케이션을 만들어 보겠습니다.
 
안되는 부분이나 더 궁금한 점, 또는 이상한 점 있으시면 언제든지 댓글 달아주세요.
감사합니다.
 

반응형

'인공지능-기계학습 > OpenAI' 카테고리의 다른 글

OpenAI API 활용 방법 : 기초 1.  (0) 2023.11.24
반응형

크롬 앱 스토어에서는 ChatGPT를 활용하는 다양한 플러그인 앱들이 올라와 있는데요, 그 중에서 실용적이고 많이 사용되고 있는 앱인 WebChatGPT를 소개 시켜 드리겠습니다.
이글을 읽고나면 WebChatGPT가 무엇인지, 어떤 효과가 있는지, 어떻게 사용하는지 등을 아실 수 있습니다. 이를 통해서 검색이나 ChatGPT를 사용할 때 좀더 쉽고 빠르게 원하는 정보를 얻으실 수 있습니다.
동영상 설명 자료는 여기를 참고해주세요.
 

무엇인가? : WebChatGPT란?

WebChatGPT는 ChatGPT를 사용하여 검색 결과와 ChatGPT의 결과를 향상 시키는 크롬 브라우저의 플러그인 앱 입니다. 그래서 크롬 앱 스토어로부터 앱을 설치할 수 있습니다. 이 앱의 목적은 인터넷 검색 결과를 활용하여 ChatGPT에 제공 할 질문(프롬프트)을 만들어주는 앱 입니다. 그래서 2가지 방법으로 사용될 수 있는데, 크롬에서 검색시에 사용될 수 있고 ChatGPT에서 채팅 시에 사용될 수 있습니다.

 

어떤 것을 할 수 있나? : 어떤 기능이 있는가?

크롬에서 검색시에는 인터넷 검색을 통해 받은 내용을 활용하여 ChatGPT에게 질문 결과를 자동으로 확인 할 수 있습니다. 즉, 예전처럼 검색 결과로 나온 링크들을 일일히 찾아가서 내용을 보지 않아도, WebChatGPT를 사용하면 검색결과와 함께 요약된 주요 내용이 표시 됩니다.
그리고 ChatGPT를 사용할때는 질문 창에 질문은하면 자동으로 인터넷 검색 결과를 활용하여 답변을 생성해 줍니다. 그래서 LLM(Large Language Medel)이 가지는 훈련 데이터의 한계에서 벗어나서 최신 인터넷 정보를 활용하여 질문에 대답할 수 있습니다.
WebCahtGPT 페이지에서 설명하는 주요 특징들은 아래와 같습니다.
---- 주요 특징들:
1️⃣ 웹 접근 - 검색어에 대한 웹 결과 얻기 - 완전한 통찰력을 위해 전체 검색 결과 페이지 스크랩 - 모든 URL에서 웹페이지 텍스트 추출
2️⃣ 원 클릭 프롬프트 - 원 클릭 ChatGPT 프롬프트 라이브러리 - 나만의 프롬프트 관리
3️⃣ AI로 검색 - 검색 결과 바로 옆에 AI 생성 응답 받기 - ChatGPT, Claude, Bard, Bing AI 제공 - 모든 인기 있는 검색 플랫폼과 호환

 

사용 방법 : 어떻게 설치하는가? 어떻게 사용하는가?

설치 방법은 간단합니다. 구글 크롬 앱 스토어에 가서 WebChatGPT를 검색하거나 그냥 구글 검색에서 WebChatGPT를 검색하여 나온 결과 중 설치 페이지의 링크를 클릭하시면 됩니다. 즉, 구글 크롬 브라우저에서 검색어 입력창에 "webchatgpt 인터넷 액세스가 가능한"을 입력하시고 제일 위에 나오는 링크를 클린하시면 됩니다.

 
그러면 WebChatGPT 앱 페이지로 이동하고 우측 상단에 있는 Chrome에 추가 버튼을 클릭하시면 자동으로 설치됩니다.
설치 후에 구글 검색창에서 검색하시면 결과가 보여질때 오른쪽에 WebChatGPT의 결과도 같이 보여 줍니다. 그리고 OpenAI의 ChatGPT 채팅을 이용할 때에도 아래와 같이 질문 입력창 위에 One-click prompts 와 Web access 버튼이 보입니다.

 
기타 자세한 설치 및 사용 방법에 대한 설명은 아래의 영상을 참고하세요.
https://www.youtube.com/watch?v=midoXcI3By0

 
감사합니다.
 

반응형

+ Recent posts