🥞 BE
home

API 실습

FastAPI를 활용해 API 서버 제작 → 백엔드 개발
카카오 Karlo의 REST API를 활용해 글에 따른 이미지 생성 → 데이터 생성 및 활용

kakao API Docs

kakao API key 발급받기

kakao developers 가입 → 시작하기 → 애플리케이션 추가하기
내 애플리케이션 → 앱 설정 → 플랫폼 → Web 플랫폼 등록
를 추가하고 저장합니다.
1.
파이썬(3.6 이상)이 설치되어 있다는 가정하에, FastAPI를 설치합니다.
# FastAPI 사용을 위한 라이브러리 설치 > pip3 install fastapi # FastAPI 실시간 미리보기를 위한 라이브러리 설치 > pip3 install "uvicorn[standard]"
Shell
복사
2.
main.py 파일 생성 후 서버 코드를 작성합니다.
from fastapi import FastAPI app = FastAPI() @app.get("/") def hello(): return "BOAZ API 실습! 너무 즐거워"
Python
복사
3.
서버를 실행해봅시다.
> uvicorn main:app --reload
Shell
복사
4.
https://127.0.0.1:8000 으로 접속하면 아래 화면을 확인할 수 있습니다. (새벽에 만들고 있었더니 다크모드로 뜨네요 ㅎㅎ)
5.
정보를 가져오기 위해 Karlo API를 활용해 봅시다.
에러
# REST API 호출, 이미지 파일 처리에 필요한 라이브러리 import requests import json import urllib from PIL import Image # [내 애플리케이션] > [앱 키] 에서 확인한 REST API 키 값 입력 REST_API_KEY = '${REST_API_KEY}' # 이미지 생성하기 요청 def t2i(prompt, negative_prompt): r = requests.post( 'https://api.kakaobrain.com/v2/inference/karlo/t2i', json = { 'prompt': prompt, 'negative_prompt': negative_prompt }, headers = { 'Authorization': f'KakaoAK {REST_API_KEY}', 'Content-Type': 'application/json' } ) # 응답 JSON 형식으로 변환 response = json.loads(r.content) return response # 프롬프트에 사용할 제시어 prompt = "A cat with white fur" negative_prompt = "sleeping cat, dog, human, ugly face, cropped" # 이미지 생성하기 REST API 호출 response = t2i(prompt, negative_prompt) # 응답의 첫 번째 이미지 생성 결과 출력하기 result = Image.open(urllib.request.urlopen(response.get("images")[0].get("image"))) result.show()
Python
복사
저는 이런 이미지가 뜹니당..
6.
prompt를 바꿔서 자신이 원하는 이미지를 생성해 봅시다!
예시

Reference