자연어 날씨 앱
이 간단한 웹 애플리케이션을 사용하면 자연어 쿼리(예: "도쿄 일기 예보", "시애틀에 비가 오나요?")를 사용하여 해당 지역의 현재 날씨 또는 일기 예보를 확인할 수 있습니다.
이 기능은 사용자의 요청을 이해하기 위해 Gaia 언어 모델 (OpenAI 호환 엔드포인트를 통해)을 활용하고, 실제 날씨 데이터를 가져오기 위해 Nubila 날씨 API를 활용합니다.
이 예제를 설정하고 실행하기 위한 전체 소스 코드와 자세한 지침은 가이아 쿡북 리포지토리에서 확인할 수 있습니다.
특징
- 일반 영어를 사용하여 현재 날씨 또는 일기 예보를 확인하세요.
- Gaia LLM을 사용하여 쿼리에서 위치 및 원하는 정보(현재/예측)를 해석합니다.
- Nubila API에서 자세한 날씨 데이터를 가져옵니다.
- LLM의 해석(위치, 좌표, 요청 유형)을 표시합니다.
- LLM이 개념적으로 사용하기로 결정한 함수와 인수를 보여줌으로써 LLM "도구 호출"의 개념을 설명합니다.
- 빠른 사용을 위해 클릭 가능한 예제 프롬프트를 제공합니다.
- 바닐라 자바스크립트, Node.js, CSS로 구축된 심플하고 깔끔한 UI.
작동 방식
- 사용자 쿼리: 웹 인터페이스에 "베를린 날씨는 어때요?"와 같은 쿼리를 입력합니다.
- 백엔드 요청: 쿼리가 브라우저에서 Node.js 백엔드 서버로 전송됩니다.
- LLM 분석(가이아): 백엔드는 사용자의 쿼리를 Gaia API로 전송합니다. Gaia가 이를 분석합니다:
- 위치를 식별합니다(예: "베를린").
- 대략적인 지리적 좌표(위도 및 경도)를 결정합니다.
- '현재' 날씨를 원하는지 '예보'를 원하는지 파악하세요.
- API 호출(누빌라): 백엔드는 Gaia에서 식별한 좌표와 요청 유형('현재' 또는 '예보')을 사용하여 적절한 Nubila 날씨 API 엔드포인트에 요청을 보냅니다.
- 날씨 데이터: Nubila API는 요청된 날씨 데이터로 응답합니다.
- 프론트엔드 디스플레이: 백엔드는 가이아의 분석과 누빌라의 날씨 데이터를 모두 브라우저로 다시 전송합니다. 그러면 프론트엔드에 표시됩니다:
- 가이아가 귀하의 요청을 해석한 방법.
- 가이아가 '도구 호출'을 할 때의 시뮬레이션입니다.
- 형식이 지정된 현재 날씨 또는 일기 예보 세부 정보입니다.
전제 조건
- Node.js 및 npm: nodejs.org에서 다운로드하여 설치합니다.
- 누빌라 API 키: Nubila 날씨 API의 API 키가 필요합니다. 여기에서 가입하거나 로그인하여 키를 받으세요.
설정 및 설치
-
리포지토리를 복제(또는 파일을 다운로드)합니다:
git clone <repository-url>
cd <repository-folder-name>(바꾸기
<repository-url>
그리고<repository-folder-name>
따라서) -
종속성을 설치합니다:
npm 설치
이렇게 하면 Express, node-fetch, dotenv 및 cors가 설치됩니다.
구성
-
만들기
.env
파일을 만듭니다: 프로젝트의 루트 디렉터리에서 다음과 같은 이름의 파일을 만듭니다..env
. -
API 키 및 설정을 추가합니다: 열기
.env
파일을 열고 다음 줄을 추가하여YOUR_NUBILA_API_KEY_HERE
를 실제 누빌라 API 키와 함께 사용하세요:누빌라_API_키=귀하의_누빌라_API_키_여기
GAIA_API_ENDPOINT=https://llama70b.gaia.domains/v1/chat/completions
GAIA_API_KEY=귀하의 가이아 API 키
PORT=3000NUBILA_API_KEY
: 누빌라 API의 비밀 키입니다.GAIA_API_ENDPOINT
: Gaia LLM의 엔드포인트입니다.GAIA_API_KEY
: 이 튜토리얼을 따라 Gaia API 키를 받으세요: https://docs.gaianet.ai/getting-started/authenticationPORT
: 로컬 서버가 실행될 포트입니다(기본값은 3000).
-
중요: 그리고
.env
파일에 민감한 정보(API 키)가 포함되어 있는지 확인하세요. 해당 파일이.gitignore
파일(복제한 경우 기본적으로 있어야 함)을 버전 관리에 커밋하여 실수로 커밋하는 일이 없도록 하세요.
애플리케이션 실행
-
서버를 시작합니다:
노드 서버.js
-
앱을 엽니다: 웹 브라우저를 열고 다음으로 이동합니다:
http://localhost:3000
(또는http://localhost:YOUR_PORT
를 변경한 경우PORT
in.env
). -
날씨 검색어를 입력하거나 추천 버튼 중 하나를 클릭하세요!
기술 스택
- 백엔드: Node.js, Express.js
- 프론트엔드: 바닐라 자바스크립트(ES6+), HTML5, CSS3
- API:
- 자연어 이해를 위한 Gaia API(OpenAI 호환 엔드포인트를 통한)
- 날씨 데이터를 위한 누빌라 날씨 API
이 예제를 설정하고 실행하기 위한 전체 소스 코드와 자세한 지침은 가이아 쿡북 리포지토리에서 확인할 수 있습니다.