코랩 이용 API서버 만들기 1
API서버 만들기를 서버없이 만들어 테스트하는 과정을 정리하였습니다. colab을 이용하면 flask로 만든 API 서버를 실행할 수 있습니다. 배포, 서비스하기는 어렵겠고 테스트 용도로 활용하시면 되겠습니다. 카카오 챗GPT봇으로 응용해볼 예정입니다.
API서버 만들기 과정
파이썬 flask를 이용하면 간단한 코드로 API서버를 만들 수 있습니다. 배포하고 서비스를 런칭하려면 클라우드 서버에 올리는 것이 좋겠습니다만 기능을 만들어보고 테스트하는 과정에는 코랩도 좋겠습니다. 다만, 코랩은 외부접속 도메인이 제공되지 않습니다. 이 문제는 ngrok 이라는 서비스를 활용하면 됩니다.
과정을 정리하였습니다.
-
파이썬 FastAPI로 API 코드 작성
-
ngrok 실행을 코드에 포함하여 실행
-
외부 접속 URL로 확인
파이썬 FastAPI로 API 코드 작성
API를 호출하면 "안녕~ 반가워~" 리턴하는 예제입니다.
코랩에서 실행하려면 먼저, flask 패키지를 설치해야 하므로
!pip install fastapi uvicorn nest_asyncio
가 필요합니다.
# API서버 만들기 필요한 패키지 설치
!pip install fastapi uvicorn nest_asyncio
# nest_asyncio, FastAPI, uvicorn 가져오기
import nest_asyncio
from fastapi import FastAPI
import uvicorn
# FastAPI 애플리케이션 작성
app = FastAPI()
@app.get("/")
def read_root():
return {"안녕~": "반가워~~"}
# nest_asyncio 적용
nest_asyncio.apply()
# Uvicorn을 사용하여 FastAPI 서버 실행
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
ngrok 실행을 코드에 포함하여 실행
ngrok을 이용하면 내PC도 외부 접속 가능한 서버가 될 수 있습니다. 코랩도 가능합니다. 먼저 ngrok에 접속하여 회원 가입 후 YourAuthToken을 복사하여 아래 코드에 반영한 후 코랩에서 실행하면 됩니다.
!pip install pyngrok fastapi uvicorn nest_asyncio
# API서버 만들기 필요한 패키지 설치
!pip install pyngrok fastapi uvicorn nest_asyncio
# Ngrok, nest_asyncio, FastAPI, uvicorn 가져오기
from pyngrok import ngrok
import nest_asyncio
from fastapi import FastAPI
import uvicorn
# Ngrok 인증 토큰 설정 (여기에 자신의 Ngrok 인증 토큰을 붙여 넣으세요)
ngrok.set_auth_token("여기에_인증_토큰을_붙여넣으세요")
# FastAPI 애플리케이션 작성
app = FastAPI()
@app.get("/")
def read_root():
return {"안녕~": "반가워~~"}
# Ngrok 터널 시작
public_url = ngrok.connect(8000)
print("Public URL:", public_url)
# nest_asyncio 적용
nest_asyncio.apply()
# Uvicorn을 사용하여 FastAPI 서버 실행
uvicorn.run(app, host="0.0.0.0", port=8000)
외부 접속 URL로 확인
위 코드를 코랩에서 실행하면 로그 화면 아래에 "ngrok-free.app/"로 끝나는 URL이 보입니다.
이 링크를 브라우저 새로운 탭에서 열기하면 페이지가 보이는데, 가운데 "Visit Site"라는 파란색 버튼이 보입니다.
이것을 클릭하여 아래 결과 화면이 보이면 성공입니다.
{
"안녕~": "반가워~~"
}
파이썬 기본 문법 code
파이썬 문법 기초 정리
이름으로 성별,나이,나라 판단하는 Open API 파이썬 예제
파이썬 flask를 이용한 홈페이지