Notice
Recent Posts
Recent Comments
250x250
Creative Code
geocoder, kakao API를 활용한 지리정보 검색,gpt기능 본문
728x90
먼저 pip install geopy 명령어로 모듈 설치하기..
REST_API_KEY 는 kakao developer 에서 애플리케이션 생성 후 rest api 키를 복사해 json 파일에 딕셔너리 형태로 저장후 사용
# 지오코딩을 위한 모듈을 가져옵니다
from geopy.geocoders import Nominatim
# 사용자 에이전트를 지정하여 지오코더 객체를 생성합니다
geocoder = Nominatim(user_agent='test')
# 특정 주소를 지오코딩하고 결과를 저장합니다
result = geocoder.geocode('서울특별시 송파구 올림픽로 300')
print(type(result)) # 결과의 데이터 타입 출력
print(result.address) # 주소 출력
print(result.latitude) # 위도 출력
print(result.longitude) # 경도 출력
print(result.point) # 지점 출력
# 위도와 경도를 사용하여 역지오코딩을 수행합니다
print(geocoder.reverse('37.5124641, 127.102543'))
# Kakao API와 관련된 모듈을 가져오고 JSON 파일에서 API 키를 로드합니다
import json, os
key = ''
with open('../key.json', 'r') as f:
key = json.load(f)
REST_API_KEY = key['key']
# Kakao 지도 API를 사용하여 위도와 경도를 얻습니다
import requests
address = '서울특별시 송파구 올림픽로 300'
url = f'https://dapi.kakao.com/v2/local/search/address.json?query={address}'
headers = {'Authorization': f'kakaoAK {REST_API_KEY}'}
res = requests.get(url, headers=headers).json()
print(res) # API 응답 출력
print(res['documents'][0]['address']['x']) # X 좌표 출력
print(res['documents'][0]['address']['y']) # Y 좌표 출력
# 20km 반경 내에서 Kakao 프렌즈 매장을 검색합니다
x = res['documents'][0]['address']['x']
y = res['documents'][0]['address']['y']
radius = 20000
query = '카카오프렌즈'
url = f'https://dapi.kakao.com/v2/local/search/keyword.json?y={y}&x={x}&radius={radius}&query={query}'
headers = {'Authorization': f'KakaoAK {REST_API_KEY}'}
res = requests.get(url, headers=headers).json()
print(res)
# Kakao Brain GPT를 사용하여 텍스트를 생성합니다
import requests, json
with open('../key.json', 'r') as f:
key = json.load(f)
REST_API_KEY = key['key']
def kogpt_api(prompt, max_tokens=1, temperature=1.0, top_p=1.0, n=1):
r = requests.post(
'https://api.kakaobrain.com/v1/inference/kogpt/generation',
json={
'prompt': prompt,
'max_tokens': max_tokens,
'temperature': temperature,
'top_p': top_p,
'n': n
},
headers={
'Authorization': 'KakaoAk ' + REST_API_KEY,
'Content_Type': 'application/json'
}
)
response = json.loads(r.content)
return response
# Kogpt를 사용하여 텍스트를 생성합니다
prompt = '''임진왜란때 조선의 왕은'''
response = kogpt_api(
prompt=prompt,
max_tokens=32,
temperature=1.0,
top_p=1.0,
n=3
)
print(response)
# Kakao Brain Karlo를 사용하여 이미지를 생성합니다
import requests, json, urllib
from PIL import Image
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'
}
)
response = json.loads(r.content)
return response
# Karlo를 사용하여 이미지를 생성합니다
prompt = 'lunch'
negative_prompt = 'human'
response = t2i(prompt, negative_prompt)
result = Image.open(urllib.request.urlopen(response.get('images')[0].get('image')))
result.show()
728x90
'코딩 study > python' 카테고리의 다른 글
마커클러스터, 데이터기반 지도 구분하기 (0) | 2023.10.29 |
---|---|
folium을 사용해 지도에 마커추가, 행정구역 구분하기 (0) | 2023.10.29 |
pandas (0) | 2023.10.26 |
Selenium으로 웹페이지 정보 받아오기 (0) | 2023.10.26 |
html파싱 예제(네이버 환율정보 불러오기) (0) | 2023.10.26 |