A package for searching weather information
Project description
Search Weather
Search Weather는 사용자의 자연어 쿼리를 기반으로 날씨 정보를 검색하고 제공하는 파이썬 패키지입니다. 이 패키지는 사용자가 일상적인 언어로 날씨 정보를 요청할 수 있도록 설계되었으며, 위치와 날짜 정보를 자동으로 추출하여 정확한 날씨 정보를 제공합니다. OpenWeatherMap API를 활용하여 신뢰할 수 있는 날씨 데이터를 제공하며, 이를 이해하기 쉬운 자연어 형태로 변환하여 사용자에게 전달합니다.
주요 기능
- 자연어 쿼리 처리: 사용자가 입력한 자연어 쿼리를 이해하고, 필요한 정보를 추출합니다.
- 정확한 날씨 정보 제공: OpenWeatherMap API를 통해 실시간 날씨 데이터를 가져와 사용자에게 제공합니다.
- 위도 및 경도 추출: 지역 이름을 통해 위도와 경도를 추출하여 날씨 정보를 조회합니다.
- 다양한 언어 지원: 한국어를 포함한 여러 언어로 날씨 정보를 제공합니다.
- 사용자 친화적인 출력: 날씨 정보를 이해하기 쉬운 형태로 변환하여 출력합니다.
사용 사례
- 사용자가 "내일 서울의 날씨는 어때?"라고 질문하면, 패키지는 서울의 내일 날씨 정보를 자동으로 검색하여 사용자에게 제공합니다.
- 특정 날짜와 위치에 대한 날씨 정보를 요청할 수 있습니다.
기술 스택
- Python: 패키지의 주요 프로그래밍 언어
- OpenWeatherMap API: 날씨 데이터 제공
- spaCy: 자연어 처리 라이브러리 (한국어 모델 포함)
- Geopy: 지역 이름을 통해 위도와 경도를 추출하는 라이브러리
- pytest: 테스트 프레임워크
한계
- 언어 지원: 현재 이 패키지는 한국어만 지원합니다. 다른 언어로의 쿼리는 처리할 수 없습니다.
- 형식 제한: 사용자가 입력하는 쿼리는 정해진 형식에서 많이 벗어나면 지역 또는 시간 정보를 파싱하지 못해 날씨 데이터를 조회하지 못할 수 있습니다. 예를 들어, "서울의 날씨" 대신 "서울"이라고만 입력하면 올바른 결과를 제공하지 못할 수 있습니다.
- API 의존성: OpenWeatherMap API의 가용성에 따라 날씨 정보의 정확성과 신뢰성이 달라질 수 있습니다. API 호출 제한에 도달하면 추가 요청이 실패할 수 있습니다.
아키텍처
이 프로젝트는 다음과 같은 구조로 구성되어 있습니다:
search_weather/
│
├── __init__.py # 패키지 초기화 파일
├── api.py # OpenWeatherMap API와의 통신을 담당
├── parser.py # 자연어 쿼리 파싱을 담당
├── weather.py # 날씨 정보 처리 및 변환
└── utils.py # 유틸리티 함수들
동작원리
- 사용자 입력: 사용자가 자연어 쿼리(예: "내일 서울의 날씨는 어때?")를 입력합니다.
- 쿼리 파싱:
parse_query.py에서 자연어 쿼리를 분석하여 필요한 정보(위치, 날짜 등)를 추출하고 위치 이름을 통해서geopy를 사용하여 위도와 경도를 구합니다. - API 호출:
get_weather.py에서 OpenWeatherMap API를 호출하여 해당 위치의 날씨 정보를 요청하고, API로부터 받은 날씨 데이터를 처리합니다. - 데이터 처리:
generate_natural_language_response에서 사용자에게 이해하기 쉬운 형태로 변환합니다. - 결과 출력: 최종적으로 변환된 날씨 정보를 사용자에게 출력합니다.
사용하기
설치
pip를 사용하여 설치:
pip install search-weather
또는 poetry를 사용하여 설치:
poetry add search-weather
기본 사용법
from search_weather import set_api_key, query
# OpenWeatherMap API 키 설정
set_api_key("your_api_key_here")
# 날씨 쿼리 실행
result = query("내일 서울의 날씨는 어때")
print(result)
주의사항
- OpenWeatherMap API 키가 필요합니다. OpenWeatherMap에서 무료로 API 키를 발급받을 수 있습니다.
- 처음 사용 시 한국어 언어 모델(ko_core_news_sm)을 자동으로 다운로드합니다. 인터넷 연결이 필요하며 다운로드에 시간이 걸릴 수 있습니다.
라이선스
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
연락처
프로젝트 관리자: minarae
프로젝트 홈페이지: https://github.com/minarae/search_weather
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file search_weather-0.1.1.tar.gz.
File metadata
- Download URL: search_weather-0.1.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82845dfa481e9f7e767f02e3b417786ef14f884c8770c9c632e9b5119b8b5380
|
|
| MD5 |
25737d66012002113f4378786cdc435c
|
|
| BLAKE2b-256 |
5b035fbec6f9f539aeb3b242a38691925d862590327e7250e11f2203b4a0adf3
|
File details
Details for the file search_weather-0.1.1-py3-none-any.whl.
File metadata
- Download URL: search_weather-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
00f9b61a96102d673adec5aec9934d3e0747778622ad7f5eddffe4f760c43e17
|
|
| MD5 |
b9ab2fc73078857d366856459f50cbd9
|
|
| BLAKE2b-256 |
20eb7996b9cb4b8424b2aa02447d5b71754ab816e2b7c49fe40249265f66c889
|