Skip to main content

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             # 유틸리티 함수들

동작원리

  1. 사용자 입력: 사용자가 자연어 쿼리(예: "내일 서울의 날씨는 어때?")를 입력합니다.
  2. 쿼리 파싱: parse_query.py에서 자연어 쿼리를 분석하여 필요한 정보(위치, 날짜 등)를 추출하고 위치 이름을 통해서 geopy를 사용하여 위도와 경도를 구합니다.
  3. API 호출: get_weather.py에서 OpenWeatherMap API를 호출하여 해당 위치의 날씨 정보를 요청하고, API로부터 받은 날씨 데이터를 처리합니다.
  4. 데이터 처리: generate_natural_language_response에서 사용자에게 이해하기 쉬운 형태로 변환합니다.
  5. 결과 출력: 최종적으로 변환된 날씨 정보를 사용자에게 출력합니다.

사용하기

설치

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

search_weather-0.1.1.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

search_weather-0.1.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for search_weather-0.1.1.tar.gz
Algorithm Hash digest
SHA256 82845dfa481e9f7e767f02e3b417786ef14f884c8770c9c632e9b5119b8b5380
MD5 25737d66012002113f4378786cdc435c
BLAKE2b-256 5b035fbec6f9f539aeb3b242a38691925d862590327e7250e11f2203b4a0adf3

See more details on using hashes here.

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

Hashes for search_weather-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 00f9b61a96102d673adec5aec9934d3e0747778622ad7f5eddffe4f760c43e17
MD5 b9ab2fc73078857d366856459f50cbd9
BLAKE2b-256 20eb7996b9cb4b8424b2aa02447d5b71754ab816e2b7c49fe40249265f66c889

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page